@artel/artc 0.6.26039 → 0.9.26001

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.
Files changed (213) hide show
  1. package/build/Cli.js +3 -3
  2. package/build/api/Api.js +19 -15
  3. package/build/api/ApiNodeJS.js +3 -3
  4. package/build/api/ApiServices.js +11426 -5066
  5. package/build/{chunk-LTJPPRSR.js → chunk-FLMCFMMG.js} +87218 -50777
  6. package/build/{chunk-AEW4TILW.js → chunk-V2TFXOVJ.js} +1 -1
  7. package/build/{chunk-5VVFNKOH.js → chunk-XMOVE7NP.js} +2 -2
  8. package/build/types/analysis/Analyzer.d.ts +6 -1
  9. package/build/types/analysis/TypeMemberLookup.d.ts +3 -1
  10. package/build/types/analysis/WellKnownDeclarations.d.ts +54 -0
  11. package/build/types/analysis/a/Analyzer.d.ts +10 -10
  12. package/build/types/analysis/a/IdentifierExpressionMeaning.d.ts +3 -3
  13. package/build/types/analysis/a/MemberAccessExpressionMeaning.d.ts +3 -3
  14. package/build/types/analysis/a/ModifierValidator.d.ts +3 -2
  15. package/build/types/analysis/a/ResolvedTranslationPackage.d.ts +2 -1
  16. package/build/types/analysis/a/SourceFileAnalyzer.d.ts +1 -1
  17. package/build/types/analysis/a/SourcePackageMembersCreator.d.ts +1 -2
  18. package/build/types/analysis/a/TreeQuery.d.ts +1 -2
  19. package/build/types/analysis/a/TypeMemberLookup.d.ts +3 -1
  20. package/build/types/analysis/a/semantic-context/FieldWithInitializerSemanticContext.d.ts +3 -3
  21. package/build/types/analysis/a/semantic-context/SemanticContext.d.ts +2 -2
  22. package/build/types/analysis/a/semantic-context/SemanticContextBuilder.d.ts +10 -12
  23. package/build/types/analysis/a/semantic-context/SpecialLocalDeclarationsBuilder.d.ts +0 -1
  24. package/build/types/analysis/a/semantic-context/SubprogramBodyAndParametersSemanticContext.d.ts +5 -4
  25. package/build/types/analysis/a/semantic-context/SubprogramSemanticContext.d.ts +11 -10
  26. package/build/types/analysis/a/semantic-context/TypeSemanticContext.d.ts +13 -13
  27. package/build/types/analysis/m/Analyzer.d.ts +425 -1
  28. package/build/types/analysis/m/ArgumentToParameterMatchResult.d.ts +23 -0
  29. package/build/types/analysis/m/ArgumentsToParametersMatcher.d.ts +40 -0
  30. package/build/types/analysis/m/BaseExpressionMeaning.d.ts +25 -0
  31. package/build/types/analysis/m/CallExpressionMeaning.d.ts +72 -0
  32. package/build/types/analysis/m/ConstructorCallResolver.d.ts +24 -0
  33. package/build/types/analysis/m/DeclarationsUsageCounter.d.ts +12 -0
  34. package/build/types/analysis/m/DereferenceExpressionMeaning.d.ts +28 -0
  35. package/build/types/analysis/m/ExpressionAnalysisOptions.d.ts +21 -0
  36. package/build/types/analysis/m/FunctionAccessResolver.d.ts +19 -0
  37. package/build/types/analysis/m/IdentifierExpressionMeaning.d.ts +137 -0
  38. package/build/types/analysis/m/IndexedAccessExpressionMeaning.d.ts +32 -0
  39. package/build/types/analysis/m/InstanceFieldsInitializationValidator.d.ts +18 -0
  40. package/build/types/analysis/m/MemberAccessExpressionMeaning.d.ts +137 -0
  41. package/build/types/analysis/m/ModifierFlags.d.ts +20 -0
  42. package/build/types/analysis/m/NamedTypeResolver.d.ts +44 -0
  43. package/build/types/analysis/m/NamedTypeSpecifierResolver.d.ts +19 -0
  44. package/build/types/analysis/m/ObjectExpressionMeaning.d.ts +29 -0
  45. package/build/types/analysis/m/OverloadResolver.d.ts +104 -0
  46. package/build/types/analysis/m/OwnAndBaseConstructorCallsChecker.d.ts +36 -0
  47. package/build/types/analysis/m/PackageAndStaticVariablesInitializationValidator.d.ts +17 -0
  48. package/build/types/analysis/m/ReachabilityChecker.d.ts +27 -0
  49. package/build/types/analysis/m/ReductionSourceMemberFinder.d.ts +17 -0
  50. package/build/types/analysis/m/ReservedNameDictionary.d.ts +15 -0
  51. package/build/types/analysis/m/ResolvedTranslationPackage.d.ts +68 -0
  52. package/build/types/analysis/m/ReturnTypeInferrer.d.ts +13 -0
  53. package/build/types/analysis/m/SourceFileAnalyzer.d.ts +131 -0
  54. package/build/types/analysis/m/SourcePackageMembersCreator.d.ts +7 -0
  55. package/build/types/analysis/m/SourceTypeMembersCreator.d.ts +9 -0
  56. package/build/types/analysis/m/StaticDeclarationMeaning.d.ts +32 -0
  57. package/build/types/analysis/m/SyntacticAccessKind.d.ts +6 -0
  58. package/build/types/analysis/m/TagMeaning.d.ts +70 -0
  59. package/build/types/analysis/m/TextIdentity.d.ts +7 -0
  60. package/build/types/analysis/m/TranslatedEntityNameConflictsValidator.d.ts +28 -0
  61. package/build/types/analysis/m/TreeQuery.d.ts +15 -0
  62. package/build/types/analysis/m/TypeArgumentInferrer.d.ts +52 -0
  63. package/build/types/analysis/m/TypeInferrer.d.ts +11 -0
  64. package/build/types/analysis/m/TypeMemberLookup.d.ts +4 -1
  65. package/build/types/analysis/m/TypeNarrower.d.ts +31 -0
  66. package/build/types/analysis/m/TypeOverloadResolver.d.ts +9 -0
  67. package/build/types/analysis/m/UserDefinableBinaryOperatorResolver.d.ts +34 -0
  68. package/build/types/analysis/m/UserDefinableUnaryOperatorResolver.d.ts +23 -0
  69. package/build/types/analysis/m/VariableIsAssignedChecker.d.ts +11 -0
  70. package/build/types/analysis/m/VariableIsNotAssignedChecker.d.ts +12 -0
  71. package/build/types/analysis/m/control-flow/GraphBuilder.d.ts +52 -0
  72. package/build/types/analysis/m/control-flow/GraphVisualizer.d.ts +12 -0
  73. package/build/types/analysis/m/control-flow/NarrowableExpression.d.ts +5 -0
  74. package/build/types/analysis/m/control-flow/NarrowableReference.d.ts +72 -0
  75. package/build/types/analysis/m/control-flow/Nodes.d.ts +112 -0
  76. package/build/types/analysis/m/control-flow/index.d.ts +5 -0
  77. package/build/types/analysis/m/semantic-context/Declarations.d.ts +94 -0
  78. package/build/types/analysis/m/semantic-context/FieldWithInitializerSemanticContext.d.ts +28 -0
  79. package/build/types/analysis/m/semantic-context/SemanticContext.d.ts +14 -0
  80. package/build/types/analysis/m/semantic-context/SemanticContextBase.d.ts +190 -0
  81. package/build/types/analysis/m/semantic-context/SemanticContextBuilder.d.ts +69 -0
  82. package/build/types/analysis/m/semantic-context/SemanticContextValidatingNameConflicts.d.ts +51 -0
  83. package/build/types/analysis/m/semantic-context/SemanticContextWithParent.d.ts +12 -0
  84. package/build/types/analysis/m/semantic-context/SourceFileSemanticContext.d.ts +63 -0
  85. package/build/types/analysis/m/semantic-context/StaticDeclarationSemanticContext.d.ts +26 -0
  86. package/build/types/analysis/m/semantic-context/SubprogramBodyAndParametersSemanticContext.d.ts +108 -0
  87. package/build/types/analysis/m/semantic-context/SubprogramSemanticContext.d.ts +92 -0
  88. package/build/types/analysis/m/semantic-context/TypeSemanticContext.d.ts +93 -0
  89. package/build/types/analysis/m/semantic-context/index.d.ts +10 -0
  90. package/build/types/common/LocalizationHelper.d.ts +3 -1
  91. package/build/types/common/LocalizationHelperA.d.ts +0 -2
  92. package/build/types/common/LocalizationHelperM.d.ts +13 -0
  93. package/build/types/common/Name.d.ts +1 -1
  94. package/build/types/common/index.d.ts +1 -0
  95. package/build/types/diagnostic/DiagnosticCode.d.ts +211 -192
  96. package/build/types/diagnostic/TokenDiagnosticM.d.ts +2 -0
  97. package/build/types/emitter/EmitPhaseName.d.ts +2 -2
  98. package/build/types/emitter/EmitterContext.d.ts +4 -4
  99. package/build/types/emitter/Entities.d.ts +4 -2
  100. package/build/types/emitter/IrBuilderM.d.ts +124 -0
  101. package/build/types/emitter/IrFactory.d.ts +2 -2
  102. package/build/types/entities/Entity.d.ts +8 -5
  103. package/build/types/entities/EntityLocalizationContext.d.ts +3 -2
  104. package/build/types/entities/OperatorKind.d.ts +13 -18
  105. package/build/types/entities/Translation.d.ts +4 -3
  106. package/build/types/entities/interfaces/AliasTypeEntity.d.ts +4 -1
  107. package/build/types/entities/interfaces/DereferenceOperatorEntity.d.ts +3 -1
  108. package/build/types/entities/interfaces/FunctionEntity.d.ts +3 -1
  109. package/build/types/entities/interfaces/FunctionTypeEntity.d.ts +3 -1
  110. package/build/types/entities/interfaces/IndexerEntity.d.ts +4 -1
  111. package/build/types/entities/interfaces/PackageAliasEntity.d.ts +4 -1
  112. package/build/types/entities/interfaces/PackageEntity.d.ts +2 -1
  113. package/build/types/entities/interfaces/ReducedTypeEntity.d.ts +3 -1
  114. package/build/types/entities/interfaces/StructuredTypeEntity.d.ts +9 -2
  115. package/build/types/entities/interfaces/TextTranslationEntity.d.ts +4 -1
  116. package/build/types/entities/interfaces/TypeExtensionEntity.d.ts +4 -1
  117. package/build/types/entities/interfaces/TypeParameterEntity.d.ts +7 -3
  118. package/build/types/entities/interfaces/VariableEntity.d.ts +3 -2
  119. package/build/types/entities/interfaces/VariantTypeEntity.d.ts +3 -1
  120. package/build/types/entities/interfaces/m/ConstructorEntityM.d.ts +10 -0
  121. package/build/types/entities/interfaces/m/DestructorEntityM.d.ts +8 -0
  122. package/build/types/entities/interfaces/m/index.d.ts +2 -0
  123. package/build/types/entities/source/a/SourceFunctionEntity.d.ts +1 -1
  124. package/build/types/entities/source/a/SourcePackageEntity.d.ts +2 -1
  125. package/build/types/entities/source/a/SourceStructuredTypeEntity.d.ts +3 -5
  126. package/build/types/entities/source/m/SourceAliasTypeEntity.d.ts +32 -0
  127. package/build/types/entities/source/m/SourceConstructorEntity.d.ts +40 -0
  128. package/build/types/entities/source/m/SourceDestructorEntity.d.ts +38 -0
  129. package/build/types/entities/source/m/SourceFunctionEntity.d.ts +252 -0
  130. package/build/types/entities/source/m/SourceFunctionTypeEntity.d.ts +35 -0
  131. package/build/types/entities/source/m/SourceGetterEntity.d.ts +122 -0
  132. package/build/types/entities/source/m/SourceIndexerEntity.d.ts +36 -0
  133. package/build/types/entities/source/m/SourcePackageAliasEntity.d.ts +22 -0
  134. package/build/types/entities/source/m/SourcePackageEntity.d.ts +68 -0
  135. package/build/types/entities/source/m/SourceSetterEntity.d.ts +122 -0
  136. package/build/types/entities/source/m/SourceStructuredTypeEntity.d.ts +111 -0
  137. package/build/types/entities/source/m/SourceTextTranslationEntity.d.ts +29 -0
  138. package/build/types/entities/source/m/SourceTypeParameterEntity.d.ts +30 -0
  139. package/build/types/entities/source/m/SourceVariableEntity.d.ts +447 -0
  140. package/build/types/entities/source/m/SourceVariantTypeEntity.d.ts +38 -0
  141. package/build/types/entities/source/m/index.d.ts +15 -0
  142. package/build/types/entities/translated/TranslatedPackageEntity.d.ts +2 -1
  143. package/build/types/entities/translated/TranslatedStructuredTypeEntity.d.ts +33 -1
  144. package/build/types/entities/translated/source/a/SourceTranslatedPackageStructuredTypeEntity.d.ts +8 -2
  145. package/build/types/entities/translated/source/m/SourceTranslatedAliasTypeEntity.d.ts +14 -0
  146. package/build/types/entities/translated/source/m/SourceTranslatedDestructorEntity.d.ts +12 -0
  147. package/build/types/entities/translated/source/m/SourceTranslatedFunctionEntity.d.ts +24 -0
  148. package/build/types/entities/translated/source/m/SourceTranslatedFunctionTypeEntity.d.ts +13 -0
  149. package/build/types/entities/translated/source/m/SourceTranslatedIndexerEntity.d.ts +12 -0
  150. package/build/types/entities/translated/source/m/SourceTranslatedPackageEntity.d.ts +19 -0
  151. package/build/types/entities/translated/source/m/SourceTranslatedPackageStructuredTypeEntity.d.ts +26 -0
  152. package/build/types/entities/translated/source/m/SourceTranslatedPackageVariantTypeEntity.d.ts +14 -0
  153. package/build/types/entities/translated/source/m/SourceTranslatedReducedTypeEntity.d.ts +14 -0
  154. package/build/types/entities/translated/source/m/index.d.ts +9 -0
  155. package/build/types/parser/a/KeywordDictionary.d.ts +2 -3
  156. package/build/types/parser/a/Parser.d.ts +2 -2
  157. package/build/types/parser/m/ConvertTokenKind.d.ts +3 -0
  158. package/build/types/parser/m/KeywordDictionary.d.ts +33 -0
  159. package/build/types/parser/m/Parser.d.ts +7 -0
  160. package/build/types/parser/m/Scanner.d.ts +56 -0
  161. package/build/types/parser/m/TokenKind.d.ts +81 -0
  162. package/build/types/parser/m/TriviaInterner.d.ts +8 -0
  163. package/build/types/project/SourceFile.d.ts +5 -6
  164. package/build/types/services/LanguageServer.d.ts +23 -12
  165. package/build/types/services/a/NodeSemanticInfo.d.ts +2 -2
  166. package/build/types/services/common/WorkspaceItemsService.d.ts +1 -0
  167. package/build/types/services/common/completion/Types.d.ts +8 -2
  168. package/build/types/services/common/display/DisplayService.d.ts +3 -0
  169. package/build/types/services/common/display/Types.d.ts +2 -2
  170. package/build/types/services/m/CodeActionsService.d.ts +10 -0
  171. package/build/types/services/m/CompletionService.d.ts +60 -0
  172. package/build/types/services/m/DefinitionService.d.ts +11 -0
  173. package/build/types/services/m/DisplayService.d.ts +52 -0
  174. package/build/types/services/m/EvaluatableExpressionService.d.ts +10 -0
  175. package/build/types/services/m/HoverService.d.ts +11 -0
  176. package/build/types/services/m/NodeSemanticInfo.d.ts +46 -0
  177. package/build/types/services/m/RenameService.d.ts +11 -0
  178. package/build/types/services/m/SelectionRangeService.d.ts +7 -0
  179. package/build/types/services/m/SemanticTokensService.d.ts +11 -0
  180. package/build/types/services/m/SourceFileItemsService.d.ts +10 -0
  181. package/build/types/services/m/TranslationService.d.ts +23 -0
  182. package/build/types/services/m/TranslationsGenerationService.d.ts +7 -0
  183. package/build/types/services/m/TreeUtils.d.ts +58 -0
  184. package/build/types/services/m/references/DefinitionInfoFinder.d.ts +6 -0
  185. package/build/types/services/m/references/ReferencesFinder.d.ts +7 -0
  186. package/build/types/services/m/signature-help/ParametersSignatureHelpProvider.d.ts +15 -0
  187. package/build/types/services/m/signature-help/SignatureHelpService.d.ts +6 -0
  188. package/build/types/services/m/signature-help/SignatureWithParameters.d.ts +94 -0
  189. package/build/types/services/m/signature-help/TypeParameterSignatureHelpProvider.d.ts +21 -0
  190. package/build/types/services/m/signature-help/utils.d.ts +9 -0
  191. package/build/types/tree/a/KeywordKind.d.ts +1 -3
  192. package/build/types/tree/a/NodeKind.d.ts +113 -114
  193. package/build/types/tree/a/Nodes.d.ts +6 -5
  194. package/build/types/tree/a/OperatorKind.d.ts +5 -0
  195. package/build/types/tree/a/Types.d.ts +9 -4
  196. package/build/types/tree/m/BaseNode.d.ts +8 -40
  197. package/build/types/tree/m/KeywordFlags.d.ts +4 -0
  198. package/build/types/tree/m/KeywordKind.d.ts +40 -0
  199. package/build/types/tree/m/NodeKind.d.ts +147 -2
  200. package/build/types/tree/m/Nodes.d.ts +2064 -9
  201. package/build/types/tree/m/NodesDebug.d.ts +9 -0
  202. package/build/types/tree/m/OperatorKind.d.ts +39 -0
  203. package/build/types/tree/m/SyntaxToCode.d.ts +107 -0
  204. package/build/types/tree/m/Token.d.ts +46 -0
  205. package/build/types/tree/m/TokenFlags.d.ts +12 -0
  206. package/build/types/tree/m/TokenKind.d.ts +61 -60
  207. package/build/types/tree/m/TreeTraversal.d.ts +18 -0
  208. package/build/types/tree/m/Types.d.ts +46 -0
  209. package/build/types/tree/m/Utils.d.ts +7 -0
  210. package/build/types/tree/m/index.d.ts +9 -0
  211. package/build/types/types/StandardTypes.d.ts +2 -0
  212. package/package.json +2 -2
  213. /package/build/types/diagnostic/{TokenDiagnostic.d.ts → TokenDiagnosticA.d.ts} +0 -0
@@ -0,0 +1,9 @@
1
+ import { Node } from './Nodes.js';
2
+ /**
3
+ * Проверяет, что тип узла совместим с типом родительского узла всех дочерних узлов.
4
+ */
5
+ export type IsCorrectParent<Parent, Children> = Children extends readonly [infer FirstChild, ...infer RemainingChildren] ? (FirstChild extends Node ? (IsAssignableTo<Parent, FirstChild['parent']> extends true ? IsCorrectParent<Parent, RemainingChildren> : IsAssignableTo<Parent, FirstChild['parent']>) : FirstChild extends undefined ? true : 'Ожидалось, что типом FirstChild будет Node или undefined.') : Children extends readonly (infer ListElement)[] ? (ListElement extends Node ? IsAssignableTo<Parent, ListElement['parent']> : ListElement extends undefined ? true : 'Ожидалось, что типом ListElement будет Node или undefined.') : Children extends readonly [] ? true : 'Ожидался пустой кортеж.';
6
+ export type IsAssignableTo<Source, Target> = Source extends Target ? true : ['Тип', Source, 'не совместим с типом', Target];
7
+ export type NodesWithChild<Child, Nodes = Node> = Nodes extends {
8
+ children: readonly (infer C)[];
9
+ } ? Child extends C ? Nodes : never : never;
@@ -0,0 +1,39 @@
1
+ import { KeywordKind } from './KeywordKind.js';
2
+ import { TokenKind } from './TokenKind.js';
3
+ export declare enum OperatorKind {
4
+ Plus = 0,// Одноместный или двухместный.
5
+ Minus = 1,// Одноместный или двухместный.
6
+ Not = 2,
7
+ Multiply = 3,
8
+ Divide = 4,
9
+ Modulo = 5,
10
+ LessThan = 6,
11
+ GreaterThan = 7,
12
+ LessThanOrEqual = 8,
13
+ GreaterThanOrEqual = 9,
14
+ Or = 10,
15
+ And = 11
16
+ }
17
+ export declare const operatorKinds: readonly [OperatorKind.Plus, OperatorKind.Minus, OperatorKind.Not, OperatorKind.Multiply, OperatorKind.Divide, OperatorKind.Modulo, OperatorKind.LessThan, OperatorKind.GreaterThan, OperatorKind.LessThanOrEqual, OperatorKind.GreaterThanOrEqual, OperatorKind.Or, OperatorKind.And];
18
+ /**
19
+ * Виды операторов, задаваемых токенами (`+`, `-`, `*=` и др.).
20
+ */
21
+ export type KindOfOperatorDefinedByToken = OperatorKind.Plus | OperatorKind.Minus | OperatorKind.Multiply | OperatorKind.Divide | OperatorKind.Modulo | OperatorKind.LessThan | OperatorKind.GreaterThan | OperatorKind.LessThanOrEqual | OperatorKind.GreaterThanOrEqual;
22
+ export declare function isOperatorDefinedByToken(kind: OperatorKind): kind is KindOfOperatorDefinedByToken;
23
+ /**
24
+ * Виды операторов, задаваемых ключевыми словами (`и`, `или`, `не` и др.)
25
+ */
26
+ export type KindOfOperatorDefinedByKeyword = OperatorKind.Not | OperatorKind.Or | OperatorKind.And;
27
+ export declare function isOperatorDefinedByKeyword(kind: OperatorKind): kind is KindOfOperatorDefinedByKeyword;
28
+ export declare const tokenTextByOperatorKind: {
29
+ [T in KindOfOperatorDefinedByToken]: string;
30
+ };
31
+ export declare const operatorKindByTokenText: Record<string, KindOfOperatorDefinedByToken | undefined>;
32
+ export declare const keywordKindByOperatorKind: {
33
+ [T in KindOfOperatorDefinedByKeyword]: KeywordKind;
34
+ };
35
+ export declare const operatorKindByKeywordKind: Record<number, KindOfOperatorDefinedByKeyword | undefined>;
36
+ export declare const tokenKindByOperatorKind: {
37
+ [T in KindOfOperatorDefinedByToken]: TokenKind;
38
+ };
39
+ export declare const operatorKindByTokenKind: Record<number, KindOfOperatorDefinedByToken | undefined>;
@@ -0,0 +1,107 @@
1
+ import { PackageLocale } from '../../common/index.js';
2
+ import type * as tree from './Nodes.js';
3
+ export declare class SyntaxToCode {
4
+ private static writeFunctions_;
5
+ private readonly node;
6
+ private readonly newLine;
7
+ private readonly indentationStep;
8
+ private readonly keywordsLocale;
9
+ private readonly singleWordKeywordValues;
10
+ private code;
11
+ private indentation;
12
+ private isIndentationWritten;
13
+ private isSingleLineMode;
14
+ private static get writeFunctions();
15
+ constructor(node: tree.Node, options?: SyntaxToCodeOptions);
16
+ convert(): string;
17
+ private writeSourceFile;
18
+ private writePackageImportDirectiveList;
19
+ private writePackageImport;
20
+ private writePackageName;
21
+ private writePackageMemberDeclarationList;
22
+ private writePackageVariableDeclaration;
23
+ private writePackageVariableGetterDeclaration;
24
+ private writePackageVariableSetterDeclaration;
25
+ private writePackageFunctionDeclaration;
26
+ private writePackageTypeDeclaration;
27
+ private writePackageAliasTypeDeclaration;
28
+ private writePackageMemberGroupDeclaration;
29
+ private writeExtendsClause;
30
+ private writeBaseTypeList;
31
+ private writeTypeMemberDeclarationBlock;
32
+ private writeFieldDeclaration;
33
+ private writeFieldGetterDeclaration;
34
+ private writeFieldSetterDeclaration;
35
+ private writeMethodDeclaration;
36
+ private writeIndexedElementGetterDeclaration;
37
+ private writeIndexedElementSetterDeclaration;
38
+ private writeVariantValueDeclaration;
39
+ private writeTypeMemberGroupDeclaration;
40
+ private writeTypeParameterClause;
41
+ private writeTypeParameterDeclaration;
42
+ private writeParameterClause;
43
+ private writeParameterList;
44
+ private writeParameterDeclaration;
45
+ private writeDeclarationTags;
46
+ private writeTag;
47
+ private writeTypeAnnotation;
48
+ private writeTypeSpecifier;
49
+ private writeNamedTypeSpecifier;
50
+ private writeLocalTypeSpecifier;
51
+ private writeLocalFunctionTypeDeclaration;
52
+ private writeLocalStructuredTypeDeclaration;
53
+ private writeUnionTypeSpecifier;
54
+ private writeParenthesizedTypeSpecifier;
55
+ private writeNullableTypeSpecifier;
56
+ private doesUnionTypeElementRequireParenthesis;
57
+ private doesTypeMadeNullableRequireParenthesis;
58
+ private writeQualifiedName;
59
+ private writeTypeArgumentClause;
60
+ private writeArgument;
61
+ private writeExpression;
62
+ private writeDeclarationBody;
63
+ private writeStatementBlock;
64
+ private writeFunctionBlock;
65
+ private writeTranslationsDeclaration;
66
+ private writePackageVariableTranslation;
67
+ private writePackageFunctionTranslation;
68
+ private writeTypeTranslation;
69
+ private writeFunctionTypeTranslation;
70
+ private writeFieldOrVariantTranslation;
71
+ private writeMethodTranslation;
72
+ private writeIndexerTranslation;
73
+ private writeTranslationTypeParameterClause;
74
+ private writeTranslationParameterClause;
75
+ private writeIndexParameterTranslationClause;
76
+ private writeStaticFieldDeclaration;
77
+ private writeStaticFieldGetterDeclaration;
78
+ private writeStaticFieldSetterDeclaration;
79
+ private writeStaticMethodDeclaration;
80
+ private writeStaticNameClause;
81
+ private writeTypeParameterReference;
82
+ private writeVariableInitializer;
83
+ private writeNodeDefault;
84
+ private writeWhitespaceSeparatedList;
85
+ private writeSemicolonSeparatedList;
86
+ private writeCommaSeparatedList;
87
+ private writePlusSeparatedList;
88
+ private writeKeyword;
89
+ private writeToken;
90
+ private writeNode;
91
+ private writeNewLineOrWhitespace;
92
+ private writeWhitespace;
93
+ private writeNewLine;
94
+ private writeCode;
95
+ private writeIndentation;
96
+ private increaseIndentation;
97
+ private decreaseIndentation;
98
+ private static createWriteFunctions;
99
+ private escapeLiteralIdentifier;
100
+ }
101
+ export interface SyntaxToCodeOptions {
102
+ newLine?: '\n' | '\r\n';
103
+ indentationStep?: string;
104
+ initialIndentation?: string;
105
+ modifiersOnSeparateLine?: boolean;
106
+ keywordsLocale?: PackageLocale;
107
+ }
@@ -0,0 +1,46 @@
1
+ import { Range } from '../../common/index.js';
2
+ import { BaseNode } from './BaseNode.js';
3
+ import { NodeKind } from './NodeKind.js';
4
+ import { Node } from './Nodes.js';
5
+ import { OperatorKind } from './OperatorKind.js';
6
+ import { TokenFlags } from './TokenFlags.js';
7
+ import { TokenKind } from './TokenKind.js';
8
+ import { TriviaKind } from './TriviaKind.js';
9
+ export declare class Token<TKind extends TokenKind = TokenKind> extends BaseNode {
10
+ readonly kind = NodeKind.Token;
11
+ readonly tokenKind: TKind;
12
+ readonly value: string;
13
+ readonly leadingTrivia: readonly Trivia[];
14
+ readonly trailingTrivia: readonly Trivia[];
15
+ readonly flags: TokenFlags;
16
+ readonly operatorKind: OperatorKind | undefined;
17
+ get children(): readonly [];
18
+ get parent(): Node;
19
+ get isMissing(): boolean;
20
+ protected get thisAsNode(): Node;
21
+ constructor(tokenKind: TKind, value: string, leadingTrivia: readonly Trivia[], trailingTrivia: readonly Trivia[], flags: TokenFlags, operatorKind: OperatorKind | undefined, rangeWithTrivia: Range | undefined);
22
+ get rangeWithoutTrivia(): Range;
23
+ getTextWithTrivia(): string;
24
+ hasLeadingLineBreak(): boolean;
25
+ hasTrailingLineBreak(): boolean;
26
+ getTriviaAt(position: number): TokenTrivia | undefined;
27
+ selectLeadingTrivia(condition: (trivia: Trivia, rangeStart: number, rangeEnd: number) => boolean): TokenTrivia[];
28
+ selectTrailingTrivia(condition: (trivia: Trivia, rangeStart: number, rangeEnd: number) => boolean): TokenTrivia[];
29
+ protected getLengthWithTrivia(): number;
30
+ }
31
+ export declare class Trivia {
32
+ readonly kind: TriviaKind;
33
+ readonly value: string;
34
+ get rangeLength(): number;
35
+ constructor(kind: TriviaKind, value: string);
36
+ }
37
+ export declare class TokenTrivia {
38
+ readonly trivia: Trivia;
39
+ readonly token: Token<TokenKind>;
40
+ readonly isTrailing: boolean;
41
+ readonly index: number;
42
+ readonly range: Range;
43
+ get kind(): TriviaKind;
44
+ get value(): string;
45
+ constructor(token: Token<TokenKind>, trivia: Trivia, isTrailing: boolean, index: number, range: Range);
46
+ }
@@ -0,0 +1,12 @@
1
+ export declare const enum TokenFlags {
2
+ None = 0,// обычная лексема
3
+ Missing = 1,// лексема отсутствует в исходном тексте, но требуется по грамматике.
4
+ CompoundAngle = 2,// составная лексема с угловой скобкой: <<, <<=, >>, >>>, >>=
5
+ QuotedName = 4,// 'имя', 'имя с пробелами', '+'
6
+ RequiresQuotes = 8,// 'имя с пробелами', '+'
7
+ EscapedKeyword = 16,// 'выполнить'
8
+ SingleCharText = 64,// текст из одного символа: "а", "\/", "ю000А"
9
+ EndsWithExclamation = 256,// переводимый текст: "текст"!, }текст"!
10
+ ObjectParameterName = 512,// имя особого параметра "объект"
11
+ LocalizableText = 256
12
+ }
@@ -1,73 +1,74 @@
1
1
  export declare enum TokenKind {
2
2
  Unknown = 1000,
3
- EndOfFile = 1001,
4
- IntegerLiteral = 1002,
5
- RealLiteral = 1003,
6
- MeasureLiteral = 1004,
7
- TextLiteral = 1005,
8
- TextTemplateHead = 1006,
9
- TextTemplatePart = 1007,
10
- TextTemplateTail = 1008,
11
- Identifier = 1009,
12
- Ampersand = 1010,
13
- AmpersandAmpersand = 1011,
14
- AmpersandEquals = 1012,
15
- Asterisk = 1013,
16
- AsteriskAsterisk = 1014,
17
- AsteriskEquals = 1015,
18
- BackQuote = 1016,
19
- Bar = 1017,
20
- BarBar = 1018,
21
- BarEquals = 1019,
22
- BarBarEquals = 1020,
23
- Caret = 1021,
24
- CloseBrace = 1022,
25
- CloseParenthesis = 1023,
26
- CloseSquareBracket = 1024,
27
- Colon = 1025,
28
- Comma = 1026,
29
- CommercialAt = 1027,
30
- Dot = 1028,
31
- DoublePeriod = 1029,
32
- Ellipsis = 1030,
3
+ Ampersand = 1001,
4
+ AmpersandAmpersand = 1002,
5
+ AmpersandEquals = 1003,
6
+ Asterisk = 1004,
7
+ AsteriskAsterisk = 1005,
8
+ AsteriskEquals = 1006,
9
+ BackQuote = 1007,
10
+ Backslash = 1008,
11
+ Bar = 1009,
12
+ BarBar = 1010,
13
+ BarBarEquals = 1011,
14
+ BarEquals = 1012,
15
+ BarGreaterThan = 1013,
16
+ BarGreaterThanEquals = 1014,
17
+ BarGreaterThanGreaterThan = 1015,
18
+ BarGreaterThanGreaterThanEquals = 1016,
19
+ BarLessThan = 1017,
20
+ BarLessThanEquals = 1018,
21
+ Caret = 1019,
22
+ CloseBrace = 1020,
23
+ CloseParenthesis = 1021,
24
+ CloseSquareBracket = 1022,
25
+ Colon = 1023,
26
+ Comma = 1024,
27
+ CommercialAt = 1025,
28
+ Dot = 1026,
29
+ DoublePeriod = 1027,
30
+ Ellipsis = 1028,
31
+ EndOfFile = 1029,
32
+ Equals = 1030,
33
33
  EqualsEquals = 1031,
34
34
  Exclamation = 1032,
35
35
  ExclamationEquals = 1033,
36
36
  GreaterThan = 1034,
37
37
  GreaterThanOrEqual = 1035,
38
38
  HashSign = 1036,
39
- LessThan = 1037,
40
- LessThanOrEqual = 1038,
41
- LessThanMinus = 1039,
42
- LessThanLessThan = 1040,
43
- LessThanLessThanEquals = 1041,
44
- Minus = 1042,
45
- MinusMinus = 1043,
39
+ Identifier = 1037,
40
+ IntegerLiteral = 1038,
41
+ LessThan = 1039,
42
+ LessThanMinus = 1040,
43
+ LessThanOrEqual = 1041,
44
+ MeasureLiteral = 1042,
45
+ Minus = 1043,
46
46
  MinusEquals = 1044,
47
47
  MinusGreaterThan = 1045,
48
- OpenBrace = 1046,
49
- OpenParenthesis = 1047,
50
- OpenSquareBracket = 1048,
51
- Plus = 1049,
52
- PlusPlus = 1050,
53
- PlusEquals = 1051,
54
- Question = 1052,
55
- QuestionQuestion = 1053,
56
- GreaterThanGreaterThan = 1054,
57
- GreaterThanGreaterThanEquals = 1055,
58
- GreaterThanGreaterThanGreaterThan = 1056,
59
- GreaterThanGreaterThanGreaterThanEquals = 1057,
60
- Semicolon = 1058,
61
- Slash = 1059,
62
- SlashEquals = 1060,
63
- Tilde = 1061,
64
- TildeTilde = 1062,
65
- Underscore = 1063,
66
- Equals = 1064,
67
- Percent = 1065,
68
- PercentEquals = 1066,
69
- PercentPercent = 1067,
70
- Backslash = 1068
48
+ MinusMinus = 1046,
49
+ OpenBrace = 1047,
50
+ OpenParenthesis = 1048,
51
+ OpenSquareBracket = 1049,
52
+ Percent = 1050,
53
+ PercentEquals = 1051,
54
+ PercentPercent = 1052,
55
+ Plus = 1053,
56
+ PlusEquals = 1054,
57
+ PlusPlus = 1055,
58
+ Question = 1056,
59
+ QuestionQuestion = 1057,
60
+ RealLiteral = 1058,
61
+ Semicolon = 1059,
62
+ Slash = 1060,
63
+ SlashEquals = 1061,
64
+ TextLiteral = 1062,
65
+ TextLiteralSuffix = 1063,
66
+ TextTemplateHead = 1064,
67
+ TextTemplatePart = 1065,
68
+ TextTemplateTail = 1066,
69
+ Tilde = 1067,
70
+ TildeTilde = 1068,
71
+ Underscore = 1069
71
72
  }
72
73
  export declare const tokenKindValues: {
73
74
  [T in TokenKind]: string;
@@ -0,0 +1,18 @@
1
+ import { TaskController } from '../../common/index.js';
2
+ import { Node } from './Nodes.js';
3
+ type ChildNodeVisitor = (node: Node) => void;
4
+ export declare function forEachChild(node: Node, visitTokens: boolean, nodeVisitor: ChildNodeVisitor): void;
5
+ export declare function traverseTree(node: Node, visitTokens: boolean, nodeVisitor: ChildNodeVisitor): void;
6
+ export declare function traverseTreeAsync(root: Node, visitTokens: boolean, taskController: TaskController, nodeVisitor: (node: Node, controller: TraversalController) => Promise<void> | undefined): Promise<void>;
7
+ export declare class TraversalController {
8
+ private shouldStopTraverse_;
9
+ private shouldSkipChildrenTraverse_;
10
+ readonly task: TaskController;
11
+ constructor(task: TaskController);
12
+ shouldStopTraverse(): boolean;
13
+ shouldSkipChildrenTraverse(): boolean;
14
+ stopTraverse(): void;
15
+ skipChildrenTraverse(): void;
16
+ resetSkipChildrenTraverse(): void;
17
+ }
18
+ export {};
@@ -0,0 +1,46 @@
1
+ import { KeywordKind } from './KeywordKind.js';
2
+ import { LocalFunctionTypeDeclaration, Expression, FieldDeclaration, FieldGetterDeclaration, FieldSetterDeclaration, ForStatementVariableDeclaration, FunctionBlockLiteral, FunctionBlockParent, FunctionLiteral, Identifier, IdentifierParent, IndexedElementGetterDeclaration, IndexedElementSetterDeclaration, Keyword, LocalStructuredTypeDeclaration, LocalVariableDeclaration, MethodDeclaration, NestedFunctionDeclaration, Node, PackageAliasTypeDeclaration, PackageFunctionDeclaration, PackageMemberDeclaration, PackageStatement, PackageTypeDeclaration, PackageVariableDeclaration, PackageVariableGetterDeclaration, PackageVariableSetterDeclaration, ParameterDeclaration, Statement, StaticDeclaration, StaticFieldDeclaration, StaticFieldGetterDeclaration, StaticFieldSetterDeclaration, StaticMethodDeclaration, TagListParent, TypeMemberDeclaration, TypeParameterDeclaration, TypeSpecifier, VariantValueDeclaration } from './Nodes.js';
3
+ import { Token } from './Token.js';
4
+ import { TokenKind } from './TokenKind.js';
5
+ export declare function isIdentifier(node: Node): node is Identifier;
6
+ export declare function isToken<T extends TokenKind>(node: Node, kind?: T): node is Token<T>;
7
+ export declare function isKeyword<T extends KeywordKind>(node: Node, kind?: T): node is Keyword<T>;
8
+ export declare function isTypeMemberDeclaration(node: Node): node is TypeMemberDeclaration;
9
+ export declare function isPackageMemberDeclaration(node: Node): node is PackageMemberDeclaration;
10
+ export declare function isExpression(node: Node): node is Expression;
11
+ export declare function isNullLiteral(node: Node): boolean;
12
+ export declare function isStatement(node: Node): node is Statement;
13
+ export declare function isTypeSpecifier(node: Node): node is TypeSpecifier;
14
+ export type TypeDeclaration = LocalStructuredTypeDeclaration | LocalFunctionTypeDeclaration | PackageAliasTypeDeclaration | TypeParameterDeclaration | PackageTypeDeclaration;
15
+ export declare function isTypeDeclaration(node: Node): node is TypeDeclaration;
16
+ export type TypeOrExtensionDeclaration = TypeDeclaration;
17
+ export declare function isTypeOrExtensionDeclaration(node: Node): node is TypeOrExtensionDeclaration;
18
+ export type TypeWithMembersDeclaration = LocalStructuredTypeDeclaration | PackageAliasTypeDeclaration | PackageTypeDeclaration;
19
+ export declare function isTypeWithMembersDeclaration(node: Node): node is TypeWithMembersDeclaration;
20
+ export type TypeWithMembersOrExtensionDeclaration = TypeWithMembersDeclaration;
21
+ export declare function isTypeWithMembersOrExtensionDeclaration(node: Node): node is TypeWithMembersOrExtensionDeclaration;
22
+ export type NamedTypeDeclaration = TypeDeclaration & IdentifierParent;
23
+ export declare function isNamedTypeDeclaration(node: Node): node is NamedTypeDeclaration;
24
+ export declare function isPackageTypeDeclaration(node: Node): node is TypeDeclaration & PackageMemberDeclaration;
25
+ export type FunctionDeclaration = PackageFunctionDeclaration | NestedFunctionDeclaration | MethodDeclaration | StaticMethodDeclaration;
26
+ export declare function isFunctionDeclaration(node: Node): node is FunctionDeclaration;
27
+ export type VariableAccessorDeclaration = FieldGetterDeclaration | FieldSetterDeclaration | StaticFieldGetterDeclaration | StaticFieldSetterDeclaration | PackageVariableGetterDeclaration | PackageVariableSetterDeclaration;
28
+ export declare function isVariableAccessorDeclaration(node: Node): node is VariableAccessorDeclaration;
29
+ export type VariableDeclaration = ForStatementVariableDeclaration | PackageVariableDeclaration | LocalVariableDeclaration | ParameterDeclaration | FieldDeclaration | VariantValueDeclaration | FieldDeclaration | StaticFieldDeclaration;
30
+ export declare function isVariableDeclaration(node: Node): node is VariableDeclaration;
31
+ export type SubprogramDeclarationOrLiteral = FunctionBlockParent;
32
+ export declare function isSubprogramDeclarationOrLiteral(node: Node): node is SubprogramDeclarationOrLiteral;
33
+ export type RegularOrBlockFunctionLiteral = FunctionLiteral | FunctionBlockLiteral;
34
+ export declare function isRegularOrBlockFunctionLiteral(node: Node): node is RegularOrBlockFunctionLiteral;
35
+ export declare function isLocalStructuredTypeDeclaration(node: Node): node is LocalStructuredTypeDeclaration;
36
+ export declare function isStaticDeclaration(node: Node): node is StaticDeclaration;
37
+ export type GetterDeclaration = PackageVariableGetterDeclaration | FieldGetterDeclaration | IndexedElementGetterDeclaration | StaticFieldGetterDeclaration;
38
+ export type SetterDeclaration = PackageVariableSetterDeclaration | FieldSetterDeclaration | IndexedElementSetterDeclaration | StaticFieldSetterDeclaration;
39
+ export type PackageVariableAccessorDeclaration = PackageVariableGetterDeclaration | PackageVariableSetterDeclaration;
40
+ export type PackageVariableOrAccessorDeclaration = PackageVariableDeclaration | PackageVariableGetterDeclaration | PackageVariableSetterDeclaration;
41
+ export type FieldAccessorDeclaration = FieldGetterDeclaration | FieldSetterDeclaration;
42
+ export type FieldOrAccessorDeclaration = FieldDeclaration | FieldGetterDeclaration | FieldSetterDeclaration;
43
+ export type StaticFieldAccessorDeclaration = StaticFieldGetterDeclaration | StaticFieldSetterDeclaration;
44
+ export type StaticFieldOrAccessorDeclaration = StaticFieldDeclaration | StaticFieldGetterDeclaration | StaticFieldSetterDeclaration;
45
+ export type IndexedElementAccessorDeclaration = IndexedElementGetterDeclaration | IndexedElementSetterDeclaration;
46
+ export type NodeWithTags = Exclude<TagListParent, PackageStatement>;
@@ -0,0 +1,7 @@
1
+ import { Expression, FunctionBlock, GenericSpecializationExpression, PackageTypeDeclaration, TypeSingleMemberDeclaration } from './Nodes.js';
2
+ import { TypeWithMembersOrExtensionDeclaration } from './Types.js';
3
+ export declare function getParentGenericSpecializationExpression(expression: Expression): GenericSpecializationExpression | undefined;
4
+ export declare function getGenericSpecializationExpressionOfCallee(callee: Expression): GenericSpecializationExpression | undefined;
5
+ export declare function hasAnyVariantValueDeclaration(node: PackageTypeDeclaration): boolean;
6
+ export declare function getMemberDeclarationsOfTypeOrExtension(node: TypeWithMembersOrExtensionDeclaration): Iterable<TypeSingleMemberDeclaration>;
7
+ export declare function isEmptyFunctionBlock(node: FunctionBlock | undefined): boolean;
@@ -1,5 +1,14 @@
1
1
  export * from './BaseNode.js';
2
+ export * from './KeywordFlags.js';
3
+ export * from './KeywordKind.js';
2
4
  export * from './NodeKind.js';
3
5
  export * from './Nodes.js';
6
+ export * from './OperatorKind.js';
7
+ export * from './SyntaxToCode.js';
8
+ export * from './Token.js';
9
+ export * from './TokenFlags.js';
4
10
  export * from './TokenKind.js';
11
+ export * from './TreeTraversal.js';
5
12
  export * from './TriviaKind.js';
13
+ export * from './Types.js';
14
+ export * from './Utils.js';
@@ -24,6 +24,7 @@ export declare class StandardTypes {
24
24
  private task_;
25
25
  private error_;
26
26
  private func_;
27
+ private typeDesignator_;
27
28
  constructor(analyzer: Analyzer, wellKnownDeclarations: WellKnownDeclarations);
28
29
  get object(): StructuredType;
29
30
  get structure(): StructuredType;
@@ -44,4 +45,5 @@ export declare class StandardTypes {
44
45
  get task(): StructuredType;
45
46
  get error(): StructuredType;
46
47
  get func(): StructuredType;
48
+ get typeDesignator(): StructuredType;
47
49
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@artel/artc",
3
- "version": "0.6.26039",
3
+ "version": "0.9.26001",
4
4
  "description": "Артель Компилятор | Artel Compiler",
5
5
  "author": "Nezaboodka Team <contact@nezaboodka.com>",
6
6
  "license": "Apache-2.0",
@@ -44,7 +44,7 @@
44
44
  "@babel/types": "7.27.3",
45
45
  "@vscode/l10n": "0.0.18",
46
46
  "jsonc-parser": "3.3.1",
47
- "reactronic": "^0.96.26027",
47
+ "reactronic": "^0.96.26029",
48
48
  "typescript": "5.9.3",
49
49
  "vscode-json-languageservice": "5.4.2",
50
50
  "vscode-languageserver": "9.0.1",