@artel/artc 0.6.26013 → 0.6.26014

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/Cli.js CHANGED
@@ -1,11 +1,11 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  CommandLineCompiler
4
- } from "./chunk-TIVWJ4TV.js";
5
- import "./chunk-I7TWILR4.js";
4
+ } from "./chunk-IIRVH26U.js";
5
+ import "./chunk-NNBGH7J7.js";
6
6
  import {
7
7
  __async
8
- } from "./chunk-E266GANB.js";
8
+ } from "./chunk-K3EBH7V6.js";
9
9
 
10
10
  // source/Cli.ts
11
11
  function main() {
package/build/api/Api.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Compiler
3
- } from "../chunk-I7TWILR4.js";
3
+ } from "../chunk-NNBGH7J7.js";
4
4
  import {
5
5
  AccessKind,
6
6
  AccessedFunctionParameter,
@@ -343,7 +343,7 @@ import {
343
343
  withoutQuotes,
344
344
  withoutTemplateQuotes,
345
345
  yieldTask
346
- } from "../chunk-E266GANB.js";
346
+ } from "../chunk-K3EBH7V6.js";
347
347
  export {
348
348
  AccessKind,
349
349
  AccessedFunctionParameter,
@@ -6,9 +6,9 @@ import {
6
6
  PhysicalFileSystem,
7
7
  PhysicalTypeScriptLibrariesProvider,
8
8
  PrintingDiagnosticAcceptor
9
- } from "../chunk-TIVWJ4TV.js";
10
- import "../chunk-I7TWILR4.js";
11
- import "../chunk-E266GANB.js";
9
+ } from "../chunk-IIRVH26U.js";
10
+ import "../chunk-NNBGH7J7.js";
11
+ import "../chunk-K3EBH7V6.js";
12
12
  export {
13
13
  CommandLineCompiler,
14
14
  FileSystemUri,
@@ -185,7 +185,7 @@ import {
185
185
  unwrapParenthesizedExpressions,
186
186
  visitChildren,
187
187
  yieldTask
188
- } from "../chunk-E266GANB.js";
188
+ } from "../chunk-K3EBH7V6.js";
189
189
 
190
190
  // source/services/CustomRequests.ts
191
191
  import * as ls from "vscode-languageserver";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Compiler
3
- } from "./chunk-I7TWILR4.js";
3
+ } from "./chunk-NNBGH7J7.js";
4
4
  import {
5
5
  ArtelVersion,
6
6
  Cached,
@@ -15,7 +15,7 @@ import {
15
15
  __async,
16
16
  performanceMeasurementStageNames,
17
17
  performanceMeasurementStages
18
- } from "./chunk-E266GANB.js";
18
+ } from "./chunk-K3EBH7V6.js";
19
19
 
20
20
  // source/executor/FileSystemUri.ts
21
21
  import { platform } from "os";
@@ -764,7 +764,7 @@ var UniqueWithComparatorQuery = class extends Query {
764
764
  };
765
765
 
766
766
  // source/common/Constants.ts
767
- var ArtelVersion = true ? "0.6.26013" : "";
767
+ var ArtelVersion = true ? "0.6.26014" : "";
768
768
  var ArtelSourceFileExtensions = [".\u0430\u0440\u0442", ".\u0430\u0440\u0442\u0435\u043B\u044C", ".art", ".artel", ".\u0430\u0440\u0442\u043C", ".\u0430\u0440\u0442\u0435\u043B\u044C\u043C", ".artm", ".artelm"];
769
769
  var ArtelSourceFileExtensionSet = new Set(ArtelSourceFileExtensions);
770
770
  var ArtelSourceAndConfigurationFileExtensionSet = new Set(ArtelSourceFileExtensionSet).add(".json");
@@ -2434,6 +2434,9 @@ var Token = class extends BaseNode {
2434
2434
  getTextWithTrivia() {
2435
2435
  return this.leadingTrivia.map((t) => t.value).join("") + this.value + this.trailingTrivia.map((t) => t.value).join("");
2436
2436
  }
2437
+ hasLeadingLineBreak() {
2438
+ return this.leadingTrivia.some((x) => x.kind === 1 /* NewLine */);
2439
+ }
2437
2440
  hasTrailingLineBreak() {
2438
2441
  return this.trailingTrivia.length > 0 && this.trailingTrivia[this.trailingTrivia.length - 1].kind === 1 /* NewLine */;
2439
2442
  }
@@ -6919,16 +6922,16 @@ var englishKeywords = new Lazy(() => [
6919
6922
  { keyword: "xor", kind: 28 /* Xor */, flags: 3145728 /* AllContexts */, dialects: [0 /* ArtelA */] },
6920
6923
  { keyword: "yes", kind: 56 /* Yes */, flags: 3145728 /* AllContexts */, dialects: [0 /* ArtelA */, 1 /* ArtelM */] },
6921
6924
  { keyword: "yield", kind: 32 /* Yield */, flags: 3145728 /* AllContexts */, dialects: [0 /* ArtelA */] },
6922
- { keyword: "abstract", kind: 42 /* Abstract */, flags: 1055752 /* DeclComAdjective */, dialects: [0 /* ArtelA */] },
6925
+ { keyword: "abstract", kind: 42 /* Abstract */, flags: 3152904 /* ComAdjective */, dialects: [0 /* ArtelA */] },
6923
6926
  { keyword: "async", kind: 44 /* Async */, flags: 3152904 /* ComAdjective */, dialects: [0 /* ArtelA */] },
6924
6927
  { keyword: "base", kind: 21 /* Basic */, flags: 1055752 /* DeclComAdjective */, dialects: [0 /* ArtelA */] },
6925
6928
  { keyword: "hidden", kind: 41 /* Hidden */, flags: 1055752 /* DeclComAdjective */, dialects: [0 /* ArtelA */] },
6926
- { keyword: "in type", kind: 55 /* InType */, flags: 1048576 /* Declaration */, dialects: [0 /* ArtelA */] },
6927
- { keyword: "in hierarchy", kind: 52 /* InHierarchy */, flags: 1048576 /* Declaration */, dialects: [0 /* ArtelA */] },
6928
- { keyword: "in file", kind: 53 /* InFile */, flags: 1048576 /* Declaration */, dialects: [0 /* ArtelA */] },
6929
- { keyword: "in package", kind: 54 /* InPackage */, flags: 1048576 /* Declaration */, dialects: [0 /* ArtelA */] },
6930
- { keyword: "override", kind: 43 /* Override */, flags: 1055752 /* DeclComAdjective */, dialects: [0 /* ArtelA */] },
6931
- { keyword: "static", kind: 45 /* Static */, flags: 1055752 /* DeclComAdjective */, dialects: [0 /* ArtelA */] }
6929
+ { keyword: "in type", kind: 55 /* InType */, flags: 3145728 /* AllContexts */, dialects: [0 /* ArtelA */] },
6930
+ { keyword: "in hierarchy", kind: 52 /* InHierarchy */, flags: 3145728 /* AllContexts */, dialects: [0 /* ArtelA */] },
6931
+ { keyword: "in file", kind: 53 /* InFile */, flags: 3145728 /* AllContexts */, dialects: [0 /* ArtelA */] },
6932
+ { keyword: "in package", kind: 54 /* InPackage */, flags: 3145728 /* AllContexts */, dialects: [0 /* ArtelA */] },
6933
+ { keyword: "override", kind: 43 /* Override */, flags: 3152904 /* ComAdjective */, dialects: [0 /* ArtelA */] },
6934
+ { keyword: "static", kind: 45 /* Static */, flags: 3152904 /* ComAdjective */, dialects: [0 /* ArtelA */] }
6932
6935
  ]);
6933
6936
  var russianKeywords = new Lazy(() => [
6934
6937
  { keyword: "\u0430\u0432\u0442\u043E\u0442\u0438\u043F", kind: 2 /* Autotype */, flags: 3154946 /* SingularMasNoun */, dialects: [0 /* ArtelA */] },
@@ -6991,10 +6994,10 @@ var russianKeywords = new Lazy(() => [
6991
6994
  { keyword: "\u0446\u0438\u043A\u043B \u043F\u043E\u043A\u0430", kind: 64 /* LoopWhile */, flags: 3145728 /* AllContexts */, dialects: [1 /* ArtelM */] },
6992
6995
  { keyword: "\u0447\u0442\u0435\u043D\u0438\u0435", kind: 62 /* Get */, flags: 3158018 /* SingularNeuNoun */, dialects: [0 /* ArtelA */] },
6993
6996
  { keyword: "\u044D\u0442\u043E", kind: 18 /* Is */, flags: 3145728 /* AllContexts */, dialects: [0 /* ArtelA */] },
6994
- { keyword: "\u0430\u0431\u0441\u0442\u0440\u0430\u043A\u0442\u043D\u0430\u044F", kind: 42 /* Abstract */, flags: 1058824 /* DeclSingularFemAdjective */, dialects: [0 /* ArtelA */] },
6995
- { keyword: "\u0430\u0431\u0441\u0442\u0440\u0430\u043A\u0442\u043D\u043E\u0435", kind: 42 /* Abstract */, flags: 1060872 /* DeclSingularNeuAdjective */, dialects: [0 /* ArtelA */] },
6996
- { keyword: "\u0430\u0431\u0441\u0442\u0440\u0430\u043A\u0442\u043D\u044B\u0439", kind: 42 /* Abstract */, flags: 1057800 /* DeclSingularMasAdjective */, dialects: [0 /* ArtelA */] },
6997
- { keyword: "\u0430\u0431\u0441\u0442\u0440\u0430\u043A\u0442\u043D\u044B\u0435", kind: 42 /* Abstract */, flags: 1064968 /* DeclPluralAdjective */, dialects: [0 /* ArtelA */] },
6997
+ { keyword: "\u0430\u0431\u0441\u0442\u0440\u0430\u043A\u0442\u043D\u0430\u044F", kind: 42 /* Abstract */, flags: 3155976 /* SingularFemAdjective */, dialects: [0 /* ArtelA */] },
6998
+ { keyword: "\u0430\u0431\u0441\u0442\u0440\u0430\u043A\u0442\u043D\u043E\u0435", kind: 42 /* Abstract */, flags: 3158024 /* SingularNeuAdjective */, dialects: [0 /* ArtelA */] },
6999
+ { keyword: "\u0430\u0431\u0441\u0442\u0440\u0430\u043A\u0442\u043D\u044B\u0439", kind: 42 /* Abstract */, flags: 3154952 /* SingularMasAdjective */, dialects: [0 /* ArtelA */] },
7000
+ { keyword: "\u0430\u0431\u0441\u0442\u0440\u0430\u043A\u0442\u043D\u044B\u0435", kind: 42 /* Abstract */, flags: 3162120 /* PluralAdjective */, dialects: [0 /* ArtelA */] },
6998
7001
  { keyword: "\u0430\u0441\u0438\u043D\u0445\u0440\u043E\u043D\u043D\u0430\u044F", kind: 44 /* Async */, flags: 3155976 /* SingularFemAdjective */, dialects: [0 /* ArtelA */] },
6999
7002
  { keyword: "\u0430\u0441\u0438\u043D\u0445\u0440\u043E\u043D\u043D\u043E\u0435", kind: 44 /* Async */, flags: 3158024 /* SingularNeuAdjective */, dialects: [0 /* ArtelA */] },
7000
7003
  { keyword: "\u0430\u0441\u0438\u043D\u0445\u0440\u043E\u043D\u043D\u044B\u0439", kind: 44 /* Async */, flags: 3154952 /* SingularMasAdjective */, dialects: [0 /* ArtelA */] },
@@ -7004,23 +7007,23 @@ var russianKeywords = new Lazy(() => [
7004
7007
  { keyword: "\u0431\u0430\u0437\u043E\u0432\u043E\u0435", kind: 21 /* Basic */, flags: 1060872 /* DeclSingularNeuAdjective */, dialects: [0 /* ArtelA */] },
7005
7008
  { keyword: "\u0431\u0430\u0437\u043E\u0432\u044B\u0439", kind: 21 /* Basic */, flags: 1057800 /* DeclSingularMasAdjective */, dialects: [0 /* ArtelA */] },
7006
7009
  { keyword: "\u0431\u0430\u0437\u043E\u0432\u044B\u0435", kind: 21 /* Basic */, flags: 1064968 /* DeclPluralAdjective */, dialects: [0 /* ArtelA */] },
7007
- { keyword: "\u0432 \u0442\u0438\u043F\u0435", kind: 55 /* InType */, flags: 1048576 /* Declaration */, dialects: [0 /* ArtelA */] },
7008
- { keyword: "\u0432 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438", kind: 52 /* InHierarchy */, flags: 1048576 /* Declaration */, dialects: [0 /* ArtelA */] },
7009
- { keyword: "\u0432 \u0444\u0430\u0439\u043B\u0435", kind: 53 /* InFile */, flags: 1048576 /* Declaration */, dialects: [0 /* ArtelA */] },
7010
- { keyword: "\u0432 \u043F\u0430\u043A\u0435\u0442\u0435", kind: 54 /* InPackage */, flags: 1048576 /* Declaration */, dialects: [0 /* ArtelA */] },
7011
- { keyword: "\u0432\u0441\u0435\u043E\u0431\u0449\u0430\u044F", kind: 45 /* Static */, flags: 1058824 /* DeclSingularFemAdjective */, dialects: [0 /* ArtelA */] },
7012
- { keyword: "\u0432\u0441\u0435\u043E\u0431\u0449\u0435\u0435", kind: 45 /* Static */, flags: 1060872 /* DeclSingularNeuAdjective */, dialects: [0 /* ArtelA */] },
7013
- { keyword: "\u0432\u0441\u0435\u043E\u0431\u0449\u0438\u0439", kind: 45 /* Static */, flags: 1057800 /* DeclSingularMasAdjective */, dialects: [0 /* ArtelA */] },
7014
- { keyword: "\u0432\u0441\u0435\u043E\u0431\u0449\u0438\u0435", kind: 45 /* Static */, flags: 1064968 /* DeclPluralAdjective */, dialects: [0 /* ArtelA */] },
7015
- { keyword: "\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u043D\u0430\u044F", kind: 43 /* Override */, flags: 1058824 /* DeclSingularFemAdjective */, dialects: [0 /* ArtelA */] },
7016
- { keyword: "\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u043D\u043E\u0435", kind: 43 /* Override */, flags: 1060872 /* DeclSingularNeuAdjective */, dialects: [0 /* ArtelA */] },
7017
- { keyword: "\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u043D\u044B\u0439", kind: 43 /* Override */, flags: 1057800 /* DeclSingularMasAdjective */, dialects: [0 /* ArtelA */] },
7018
- { keyword: "\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u043D\u044B\u0435", kind: 43 /* Override */, flags: 1064968 /* DeclPluralAdjective */, dialects: [0 /* ArtelA */] },
7019
- { keyword: "\u0441\u043A\u0440\u044B\u0442\u043E", kind: 41 /* Hidden */, flags: 1048592 /* DeclAdverb */, dialects: [0 /* ArtelA */] },
7020
- { keyword: "\u0441\u043A\u0440\u044B\u0442\u0430\u044F", kind: 41 /* Hidden */, flags: 1058824 /* DeclSingularFemAdjective */, dialects: [0 /* ArtelA */] },
7021
- { keyword: "\u0441\u043A\u0440\u044B\u0442\u043E\u0435", kind: 41 /* Hidden */, flags: 1060872 /* DeclSingularNeuAdjective */, dialects: [0 /* ArtelA */] },
7022
- { keyword: "\u0441\u043A\u0440\u044B\u0442\u044B\u0439", kind: 41 /* Hidden */, flags: 1057800 /* DeclSingularMasAdjective */, dialects: [0 /* ArtelA */] },
7023
- { keyword: "\u0441\u043A\u0440\u044B\u0442\u044B\u0435", kind: 41 /* Hidden */, flags: 1064968 /* DeclPluralAdjective */, dialects: [0 /* ArtelA */] }
7010
+ { keyword: "\u0432 \u0442\u0438\u043F\u0435", kind: 55 /* InType */, flags: 3145728 /* AllContexts */, dialects: [0 /* ArtelA */] },
7011
+ { keyword: "\u0432 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438", kind: 52 /* InHierarchy */, flags: 3145728 /* AllContexts */, dialects: [0 /* ArtelA */] },
7012
+ { keyword: "\u0432 \u0444\u0430\u0439\u043B\u0435", kind: 53 /* InFile */, flags: 3145728 /* AllContexts */, dialects: [0 /* ArtelA */] },
7013
+ { keyword: "\u0432 \u043F\u0430\u043A\u0435\u0442\u0435", kind: 54 /* InPackage */, flags: 3145728 /* AllContexts */, dialects: [0 /* ArtelA */] },
7014
+ { keyword: "\u0432\u0441\u0435\u043E\u0431\u0449\u0430\u044F", kind: 45 /* Static */, flags: 3155976 /* SingularFemAdjective */, dialects: [0 /* ArtelA */] },
7015
+ { keyword: "\u0432\u0441\u0435\u043E\u0431\u0449\u0435\u0435", kind: 45 /* Static */, flags: 3158024 /* SingularNeuAdjective */, dialects: [0 /* ArtelA */] },
7016
+ { keyword: "\u0432\u0441\u0435\u043E\u0431\u0449\u0438\u0439", kind: 45 /* Static */, flags: 3154952 /* SingularMasAdjective */, dialects: [0 /* ArtelA */] },
7017
+ { keyword: "\u0432\u0441\u0435\u043E\u0431\u0449\u0438\u0435", kind: 45 /* Static */, flags: 3162120 /* PluralAdjective */, dialects: [0 /* ArtelA */] },
7018
+ { keyword: "\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u043D\u0430\u044F", kind: 43 /* Override */, flags: 3155976 /* SingularFemAdjective */, dialects: [0 /* ArtelA */] },
7019
+ { keyword: "\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u043D\u043E\u0435", kind: 43 /* Override */, flags: 3158024 /* SingularNeuAdjective */, dialects: [0 /* ArtelA */] },
7020
+ { keyword: "\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u043D\u044B\u0439", kind: 43 /* Override */, flags: 3154952 /* SingularMasAdjective */, dialects: [0 /* ArtelA */] },
7021
+ { keyword: "\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u043D\u044B\u0435", kind: 43 /* Override */, flags: 3162120 /* PluralAdjective */, dialects: [0 /* ArtelA */] },
7022
+ { keyword: "\u0441\u043A\u0440\u044B\u0442\u043E", kind: 41 /* Hidden */, flags: 3145744 /* AllAdverb */, dialects: [0 /* ArtelA */] },
7023
+ { keyword: "\u0441\u043A\u0440\u044B\u0442\u0430\u044F", kind: 41 /* Hidden */, flags: 3155976 /* SingularFemAdjective */, dialects: [0 /* ArtelA */] },
7024
+ { keyword: "\u0441\u043A\u0440\u044B\u0442\u043E\u0435", kind: 41 /* Hidden */, flags: 3158024 /* SingularNeuAdjective */, dialects: [0 /* ArtelA */] },
7025
+ { keyword: "\u0441\u043A\u0440\u044B\u0442\u044B\u0439", kind: 41 /* Hidden */, flags: 3154952 /* SingularMasAdjective */, dialects: [0 /* ArtelA */] },
7026
+ { keyword: "\u0441\u043A\u0440\u044B\u0442\u044B\u0435", kind: 41 /* Hidden */, flags: 3162120 /* PluralAdjective */, dialects: [0 /* ArtelA */] }
7024
7027
  ]);
7025
7028
  var keywordsPerLocale = new Lazy(() => [
7026
7029
  {
@@ -10291,6 +10294,7 @@ var TextParser = class {
10291
10294
  this.scanner = new Scanner(text);
10292
10295
  this.sequenceParsers = new Array();
10293
10296
  this.keywords = getOrCreateKeywordDictionary(locale, this.dialect);
10297
+ this.tokenQueue = new Array();
10294
10298
  this.keywordsContextFlags_ = 1048576 /* Declaration */;
10295
10299
  this.lookingAhead = false;
10296
10300
  this.diagnostics = new Array();
@@ -10307,6 +10311,7 @@ var TextParser = class {
10307
10311
  new Range(0, 0)
10308
10312
  );
10309
10313
  this.currentTokenOrKeyword_ = this.currentToken;
10314
+ this.currentTokenOrKeywordContextFlags_ = 1048576 /* Declaration */;
10310
10315
  this.hasCurrentTokenOrKeyword = false;
10311
10316
  this.packageImportDirectiveParser = new PackageImportDirectiveParser(this);
10312
10317
  this.packageMemberDeclarationParser = new PackageMemberDeclarationParser(this);
@@ -10328,6 +10333,12 @@ var TextParser = class {
10328
10333
  getCurrentTokenOrKeyword() {
10329
10334
  if (!this.hasCurrentTokenOrKeyword) {
10330
10335
  this.nextTokenOrKeyword();
10336
+ } else if (this.currentTokenOrKeyword_.kind === 0 /* Token */ && this.currentTokenOrKeyword_.tokenKind === 9 /* Identifier */ && (this.currentTokenOrKeywordContextFlags_ & this.keywordsContextFlags) === 0) {
10337
+ this.tokenQueue.push(this.currentTokenOrKeyword_);
10338
+ this.nextTokenOrKeyword();
10339
+ } else if (this.currentTokenOrKeyword_.kind === 3 /* Keyword */ && (this.currentTokenOrKeyword_.flags & this.keywordsContextFlags) === 0) {
10340
+ this.tokenQueue.push(...this.currentTokenOrKeyword_.tokens);
10341
+ this.nextTokenOrKeyword();
10331
10342
  }
10332
10343
  return this.currentTokenOrKeyword_;
10333
10344
  }
@@ -10466,8 +10477,15 @@ var TextParser = class {
10466
10477
  return void 0;
10467
10478
  }
10468
10479
  lookAhead(callback) {
10480
+ const savedKeywordsContextFlags = this.keywordsContextFlags_;
10481
+ const savedTokenQueueLength = this.tokenQueue.length;
10482
+ if (savedTokenQueueLength > 0) {
10483
+ this.tokenQueue = this.tokenQueue.slice();
10484
+ }
10485
+ const savedTokenQueue = this.tokenQueue;
10469
10486
  const savedCurrentToken = this.currentToken;
10470
10487
  const savedCurrentTokenOrKeyword = this.currentTokenOrKeyword_;
10488
+ const savedCurrentTokenOrKeywordContextFlags = this.currentTokenOrKeywordContextFlags_;
10471
10489
  const savedHasCurrentTokenOrKeyword = this.hasCurrentTokenOrKeyword;
10472
10490
  const savedHasPrecedingLineBreak = this.hasPrecedingLineBreak;
10473
10491
  const savedSkippedTokenOrKeywords = this.skippedTokenOrKeywords;
@@ -10478,8 +10496,10 @@ var TextParser = class {
10478
10496
  const savedLookingAhead = this.lookingAhead;
10479
10497
  this.lookingAhead = true;
10480
10498
  const result = this.scanner.lookAhead(callback);
10499
+ this.keywordsContextFlags_ = savedKeywordsContextFlags;
10481
10500
  this.currentToken = savedCurrentToken;
10482
10501
  this.currentTokenOrKeyword_ = savedCurrentTokenOrKeyword;
10502
+ this.currentTokenOrKeywordContextFlags_ = savedCurrentTokenOrKeywordContextFlags;
10483
10503
  this.hasCurrentTokenOrKeyword = savedHasCurrentTokenOrKeyword;
10484
10504
  this.hasPrecedingLineBreak = savedHasPrecedingLineBreak;
10485
10505
  if (savedSkippedTokenOrKeywordsLength > 0) {
@@ -10487,12 +10507,24 @@ var TextParser = class {
10487
10507
  } else {
10488
10508
  this.skippedTokenOrKeywords.length = 0;
10489
10509
  }
10510
+ if (savedTokenQueueLength > 0) {
10511
+ this.tokenQueue = savedTokenQueue;
10512
+ } else {
10513
+ this.tokenQueue.length = 0;
10514
+ }
10490
10515
  this.lookingAhead = savedLookingAhead;
10491
10516
  return result;
10492
10517
  }
10493
10518
  tryParse(callback) {
10519
+ const savedKeywordsContextFlags = this.keywordsContextFlags_;
10520
+ const savedTokenQueueLength = this.tokenQueue.length;
10521
+ if (savedTokenQueueLength > 0) {
10522
+ this.tokenQueue = this.tokenQueue.slice();
10523
+ }
10524
+ const savedTokenQueue = this.tokenQueue;
10494
10525
  const savedCurrentToken = this.currentToken;
10495
10526
  const savedCurrentTokenOrKeyword = this.currentTokenOrKeyword_;
10527
+ const savedCurrentTokenOrKeywordContextFlags = this.currentTokenOrKeywordContextFlags_;
10496
10528
  const savedHasCurrentTokenOrKeyword = this.hasCurrentTokenOrKeyword;
10497
10529
  const savedHasPrecedingLineBreak = this.hasPrecedingLineBreak;
10498
10530
  const savedDiagnostics = this.diagnostics;
@@ -10513,8 +10545,10 @@ var TextParser = class {
10513
10545
  const savedLookingAhead = this.lookingAhead;
10514
10546
  const result = this.scanner.tryScan(callback);
10515
10547
  if (result === void 0) {
10548
+ this.keywordsContextFlags_ = savedKeywordsContextFlags;
10516
10549
  this.currentToken = savedCurrentToken;
10517
10550
  this.currentTokenOrKeyword_ = savedCurrentTokenOrKeyword;
10551
+ this.currentTokenOrKeywordContextFlags_ = savedCurrentTokenOrKeywordContextFlags;
10518
10552
  this.hasCurrentTokenOrKeyword = savedHasCurrentTokenOrKeyword;
10519
10553
  this.hasPrecedingLineBreak = savedHasPrecedingLineBreak;
10520
10554
  if (savedSkippedTokenOrKeywordsLength > 0) {
@@ -10523,6 +10557,11 @@ var TextParser = class {
10523
10557
  this.skippedTokenOrKeywords.length = 0;
10524
10558
  }
10525
10559
  this.lookingAhead = savedLookingAhead;
10560
+ if (savedTokenQueueLength > 0) {
10561
+ this.tokenQueue = savedTokenQueue;
10562
+ } else {
10563
+ this.tokenQueue.length = 0;
10564
+ }
10526
10565
  if (!this.lookingAhead) {
10527
10566
  if (savedDiagnosticsLength > 0) {
10528
10567
  this.diagnostics = savedDiagnostics;
@@ -10701,22 +10740,19 @@ var TextParser = class {
10701
10740
  return scannerTokenKindToTreeTokenKind(scannerToken.kind);
10702
10741
  }
10703
10742
  parseDetectedToken() {
10704
- const tokenOrKeyword = this.getCurrentTokenOrKeyword();
10705
- Debug.assert(this.hasCurrentTokenOrKeyword && tokenOrKeyword.kind === 0 /* Token */);
10706
- const result = this.tokenWithSkippedTokens(tokenOrKeyword);
10743
+ Debug.assert(this.hasCurrentTokenOrKeyword && this.currentTokenOrKeyword_.kind === 0 /* Token */);
10744
+ const result = this.tokenWithSkippedTokens(this.currentTokenOrKeyword_);
10707
10745
  this.hasCurrentTokenOrKeyword = false;
10708
10746
  return result;
10709
10747
  }
10710
10748
  parseDetectedKeyword() {
10711
- const tokenOrKeyword = this.getCurrentTokenOrKeyword();
10712
- Debug.assert(this.hasCurrentTokenOrKeyword && tokenOrKeyword.kind === 3 /* Keyword */);
10713
- const result = this.keywordWithSkippedTokens(tokenOrKeyword);
10749
+ Debug.assert(this.hasCurrentTokenOrKeyword && this.currentTokenOrKeyword_.kind === 3 /* Keyword */);
10750
+ const result = this.keywordWithSkippedTokens(this.currentTokenOrKeyword_);
10714
10751
  this.hasCurrentTokenOrKeyword = false;
10715
10752
  return result;
10716
10753
  }
10717
10754
  nextTokenOrKeyword() {
10718
10755
  let result;
10719
- this.hasPrecedingLineBreak = this.hasTrailingLineBreak();
10720
10756
  this.nextToken();
10721
10757
  const keyword = this.tryParseKeyword();
10722
10758
  if (keyword !== void 0) {
@@ -10728,15 +10764,17 @@ var TextParser = class {
10728
10764
  result = token;
10729
10765
  }
10730
10766
  this.hasCurrentTokenOrKeyword = true;
10767
+ this.hasPrecedingLineBreak = this.currentTokenHasLeadingLineBreak();
10768
+ this.currentTokenOrKeywordContextFlags_ = this.keywordsContextFlags_;
10731
10769
  return result;
10732
10770
  }
10733
- hasTrailingLineBreak() {
10771
+ currentTokenHasLeadingLineBreak() {
10734
10772
  const tokenOrKeyword = this.currentTokenOrKeyword_;
10735
10773
  if (tokenOrKeyword.kind === 0 /* Token */) {
10736
- return tokenOrKeyword.hasTrailingLineBreak();
10774
+ return tokenOrKeyword.hasLeadingLineBreak();
10737
10775
  } else if (tokenOrKeyword.kind === 3 /* Keyword */) {
10738
10776
  const tokens = tokenOrKeyword.tokens;
10739
- return tokens.length > 0 && tokens[tokens.length - 1].hasTrailingLineBreak();
10777
+ return tokens.length > 0 && tokens[0].hasLeadingLineBreak();
10740
10778
  } else {
10741
10779
  Debug.never(tokenOrKeyword);
10742
10780
  }
@@ -10782,47 +10820,51 @@ var TextParser = class {
10782
10820
  return result;
10783
10821
  }
10784
10822
  nextToken() {
10785
- const tokenStart = this.scanner.getToken().startPosition;
10786
- const leadingTrivia = this.scanLeadingTrivia();
10787
- const scannerToken = this.scanner.getToken();
10788
- this.validateScannerToken(scannerToken);
10789
- this.scanner.nextToken();
10790
- const trailingTrivia = this.tryScanTrailingTrivia();
10791
- const tokenEnd = this.scanner.getToken().startPosition;
10792
- const kind = scannerTokenKindToTreeTokenKind(scannerToken.kind);
10793
10823
  let result;
10794
- switch (kind) {
10795
- case 9 /* Identifier */:
10796
- result = this.createIdentifierToken(
10797
- scannerToken,
10798
- leadingTrivia,
10799
- trailingTrivia,
10800
- new Range(tokenStart, tokenEnd)
10801
- );
10802
- break;
10803
- case 5 /* TextLiteral */:
10804
- case 6 /* TextTemplateHead */:
10805
- case 7 /* TextTemplatePart */:
10806
- case 8 /* TextTemplateTail */:
10807
- result = this.createTextOrTextTemplateToken(
10808
- kind,
10809
- scannerToken,
10810
- leadingTrivia,
10811
- trailingTrivia,
10812
- new Range(tokenStart, tokenEnd)
10813
- );
10814
- break;
10815
- default:
10816
- result = new Token(
10817
- kind,
10818
- scannerToken.value,
10819
- leadingTrivia,
10820
- trailingTrivia,
10821
- 0 /* None */,
10822
- void 0,
10823
- new Range(tokenStart, tokenEnd)
10824
- );
10825
- break;
10824
+ if (this.tokenQueue.length > 0) {
10825
+ result = this.tokenQueue.shift();
10826
+ } else {
10827
+ const tokenStart = this.scanner.getToken().startPosition;
10828
+ const leadingTrivia = this.scanLeadingTrivia();
10829
+ const scannerToken = this.scanner.getToken();
10830
+ this.validateScannerToken(scannerToken);
10831
+ this.scanner.nextToken();
10832
+ const trailingTrivia = this.tryScanTrailingTrivia();
10833
+ const tokenEnd = this.scanner.getToken().startPosition;
10834
+ const kind = scannerTokenKindToTreeTokenKind(scannerToken.kind);
10835
+ switch (kind) {
10836
+ case 9 /* Identifier */:
10837
+ result = this.createIdentifierToken(
10838
+ scannerToken,
10839
+ leadingTrivia,
10840
+ trailingTrivia,
10841
+ new Range(tokenStart, tokenEnd)
10842
+ );
10843
+ break;
10844
+ case 5 /* TextLiteral */:
10845
+ case 6 /* TextTemplateHead */:
10846
+ case 7 /* TextTemplatePart */:
10847
+ case 8 /* TextTemplateTail */:
10848
+ result = this.createTextOrTextTemplateToken(
10849
+ kind,
10850
+ scannerToken,
10851
+ leadingTrivia,
10852
+ trailingTrivia,
10853
+ new Range(tokenStart, tokenEnd)
10854
+ );
10855
+ break;
10856
+ default:
10857
+ result = new Token(
10858
+ kind,
10859
+ scannerToken.value,
10860
+ leadingTrivia,
10861
+ trailingTrivia,
10862
+ 0 /* None */,
10863
+ void 0,
10864
+ new Range(tokenStart, tokenEnd)
10865
+ );
10866
+ break;
10867
+ }
10826
10868
  }
10827
10869
  this.currentToken = result;
10828
10870
  return result;
@@ -10953,9 +10995,10 @@ var TextParser = class {
10953
10995
  trivia = new Trivia(0 /* Whitespace */, scannerToken.value);
10954
10996
  break;
10955
10997
  case 3 /* NewLine */:
10956
- trivia = new Trivia(1 /* NewLine */, scannerToken.value);
10957
10998
  if (untilNewLine) {
10958
10999
  doneParsingTrivia = true;
11000
+ } else {
11001
+ trivia = new Trivia(1 /* NewLine */, scannerToken.value);
10959
11002
  }
10960
11003
  break;
10961
11004
  case 4 /* SingleLineComment */:
@@ -11837,16 +11880,29 @@ var ExpressionParser = class _ExpressionParser {
11837
11880
  this.indexerArgumentListParser = new ArgumentListParser(this.parser, 24 /* CloseSquareBracket */);
11838
11881
  }
11839
11882
  // isFollowedByStatementBlock = true если по синтаксису сразу после выражения следует блок.
11840
- // В таком случае не будет разбираться сокращённая форма анонимной функции ({ ... }).
11883
+ // В таком случае не будет разбираться сокращённая форма безымянной функции ({ ... }).
11841
11884
  isStartOfExpression(isFollowedByStatementBlock) {
11842
- let result = this.isPrefixUnaryOperator();
11843
- if (!result) {
11844
- result = this.isStartOfPrimaryExpression(isFollowedByStatementBlock);
11845
- }
11846
- return result;
11885
+ return this.parser.lookAhead(() => {
11886
+ this.parser.keywordsContextFlags = 2097152 /* Expression */;
11887
+ if (this.isPrefixUnaryOperator()) {
11888
+ return true;
11889
+ }
11890
+ if (this.parser.isTokenOneOf(_ExpressionParser.primaryExpressionTokens) || this.parser.isKeywordOneOf(_ExpressionParser.primaryExpressionKeywords)) {
11891
+ return true;
11892
+ } else if (this.parser.isToken(46 /* OpenBrace */)) {
11893
+ return !isFollowedByStatementBlock;
11894
+ }
11895
+ this.parser.parseOptionalKeyword(44 /* Async */);
11896
+ const functionKeyword = this.parser.parseOptionalKeyword(16 /* Function */);
11897
+ return functionKeyword !== void 0 && this.parser.isToken(47 /* OpenParenthesis */);
11898
+ });
11847
11899
  }
11848
11900
  parseExpression(isFollowedByStatementBlock) {
11849
- return this.parseNullCoalescingExpression(isFollowedByStatementBlock);
11901
+ const savedKeywordsContextFlags = this.parser.keywordsContextFlags;
11902
+ this.parser.keywordsContextFlags = 2097152 /* Expression */;
11903
+ const result = this.parseNullCoalescingExpression(isFollowedByStatementBlock);
11904
+ this.parser.keywordsContextFlags = savedKeywordsContextFlags;
11905
+ return result;
11850
11906
  }
11851
11907
  parseNullCoalescingExpression(isFollowedByStatementBlock) {
11852
11908
  const expressionStart = this.parser.tokenOrKeywordStartPosition();
@@ -12203,20 +12259,6 @@ var ExpressionParser = class _ExpressionParser {
12203
12259
  35 /* Creation */
12204
12260
  ];
12205
12261
  }
12206
- isStartOfPrimaryExpression(isFollowedByStatementBlock) {
12207
- if (this.parser.isTokenOneOf(_ExpressionParser.primaryExpressionTokens) || this.parser.isKeywordOneOf(_ExpressionParser.primaryExpressionKeywords)) {
12208
- return true;
12209
- } else if (this.parser.isToken(46 /* OpenBrace */)) {
12210
- return !isFollowedByStatementBlock;
12211
- } else if (this.parser.isKeyword(44 /* Async */) || this.parser.isKeyword(16 /* Function */)) {
12212
- return this.parser.lookAhead(() => {
12213
- this.parser.parseOptionalKeyword(44 /* Async */);
12214
- const functionKeyword = this.parser.parseOptionalKeyword(16 /* Function */);
12215
- return functionKeyword !== void 0 && this.parser.isToken(47 /* OpenParenthesis */);
12216
- });
12217
- }
12218
- return false;
12219
- }
12220
12262
  parsePrimaryExpression(isFollowedByStatementBlock) {
12221
12263
  let result = void 0;
12222
12264
  const tokenOrKeyword = this.parser.getCurrentTokenOrKeyword();
@@ -10,7 +10,7 @@ import {
10
10
  WellKnownDeclarationsLoadError,
11
11
  __async,
12
12
  createTsInteropInputsForCompilation
13
- } from "./chunk-E266GANB.js";
13
+ } from "./chunk-K3EBH7V6.js";
14
14
 
15
15
  // source/executor/Compiler.ts
16
16
  var Compiler = class {
@@ -59,6 +59,7 @@ export declare class Token<TKind extends TokenKind = TokenKind> extends BaseNode
59
59
  constructor(tokenKind: TKind, value: string, leadingTrivia: readonly Trivia[], trailingTrivia: readonly Trivia[], flags: TokenFlags, operatorKind: OperatorKind | undefined, rangeWithTrivia: Range | undefined);
60
60
  get rangeWithoutTrivia(): Range;
61
61
  getTextWithTrivia(): string;
62
+ hasLeadingLineBreak(): boolean;
62
63
  hasTrailingLineBreak(): boolean;
63
64
  getTriviaAt(position: number): TokenTrivia | undefined;
64
65
  selectLeadingTrivia(condition: (trivia: Trivia, rangeStart: number, rangeEnd: number) => boolean): TokenTrivia[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@artel/artc",
3
- "version": "0.6.26013",
3
+ "version": "0.6.26014",
4
4
  "description": "Артель Компилятор | Artel Compiler",
5
5
  "author": "Nezaboodka Team <contact@nezaboodka.com>",
6
6
  "license": "Apache-2.0",