@bikky/replication 1.0.2 → 1.0.4

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 (236) hide show
  1. package/.idea/Replication.iml +12 -0
  2. package/.idea/compiler.xml +6 -0
  3. package/.idea/encodings.xml +4 -0
  4. package/.idea/inspectionProfiles/Project_Default.xml +6 -0
  5. package/.idea/modules.xml +8 -0
  6. package/.idea/vcs.xml +6 -0
  7. package/Constants/Errors.js +1 -0
  8. package/Constants/Errors.js.map +1 -0
  9. package/Constants/Logging.d.ts +1 -0
  10. package/Constants/Logging.js +2 -2
  11. package/Constants/Logging.js.map +1 -0
  12. package/Constants/ReplicableRegistry.d.ts +4 -3
  13. package/Constants/ReplicableRegistry.js +7 -8
  14. package/Constants/ReplicableRegistry.js.map +1 -0
  15. package/Constants/SerialisationTypes.js +4 -4
  16. package/Constants/SerialisationTypes.js.map +1 -0
  17. package/Constants/SourceMaps.js +1 -0
  18. package/Constants/SourceMaps.js.map +1 -0
  19. package/Constants/TraversalStep.js +1 -0
  20. package/Constants/TraversalStep.js.map +1 -0
  21. package/Constants/Versions.d.ts +2 -1
  22. package/Constants/Versions.js +1 -0
  23. package/Constants/Versions.js.map +1 -0
  24. package/Expressions/Compiler/BuiltinGrammar.js +1 -0
  25. package/Expressions/Compiler/BuiltinGrammar.js.map +1 -0
  26. package/Expressions/Compiler/ExpressionGrammar.js +1 -0
  27. package/Expressions/Compiler/ExpressionGrammar.js.map +1 -0
  28. package/Expressions/Compiler/Grammar/Accessors.d.ts +32 -0
  29. package/Expressions/Compiler/Grammar/Accessors.js +227 -0
  30. package/Expressions/Compiler/Grammar/Accessors.js.map +1 -0
  31. package/Expressions/Compiler/Grammar/ControlFlow.d.ts +38 -0
  32. package/Expressions/Compiler/Grammar/ControlFlow.js +178 -0
  33. package/Expressions/Compiler/Grammar/ControlFlow.js.map +1 -0
  34. package/Expressions/Compiler/Grammar/Declarations.d.ts +22 -0
  35. package/Expressions/Compiler/Grammar/Declarations.js +84 -0
  36. package/Expressions/Compiler/Grammar/Declarations.js.map +1 -0
  37. package/Expressions/Compiler/Grammar/Function.d.ts +30 -0
  38. package/Expressions/Compiler/Grammar/Function.js +292 -0
  39. package/Expressions/Compiler/Grammar/Function.js.map +1 -0
  40. package/Expressions/Compiler/Grammar/General.d.ts +55 -0
  41. package/Expressions/Compiler/Grammar/General.js +248 -0
  42. package/Expressions/Compiler/Grammar/General.js.map +1 -0
  43. package/Expressions/Compiler/Grammar/Maths.d.ts +26 -0
  44. package/Expressions/Compiler/Grammar/Maths.js +164 -0
  45. package/Expressions/Compiler/Grammar/Maths.js.map +1 -0
  46. package/Expressions/Compiler/Grammar/Misc.d.ts +20 -0
  47. package/Expressions/Compiler/Grammar/Misc.js +50 -0
  48. package/Expressions/Compiler/Grammar/Misc.js.map +1 -0
  49. package/Expressions/Compiler/Grammar/Preprocessors.d.ts +18 -0
  50. package/Expressions/Compiler/Grammar/Preprocessors.js +43 -0
  51. package/Expressions/Compiler/Grammar/Preprocessors.js.map +1 -0
  52. package/Expressions/Compiler/Grammar/Struct.d.ts +21 -0
  53. package/Expressions/Compiler/Grammar/Struct.js +42 -0
  54. package/Expressions/Compiler/Grammar/Struct.js.map +1 -0
  55. package/Expressions/Compiler/Grammar/Tokens.d.ts +7 -0
  56. package/Expressions/Compiler/Grammar/Tokens.js +270 -0
  57. package/Expressions/Compiler/Grammar/Tokens.js.map +1 -0
  58. package/Expressions/Compiler/Grammar/Types.d.ts +35 -0
  59. package/Expressions/Compiler/Grammar/Types.js +230 -0
  60. package/Expressions/Compiler/Grammar/Types.js.map +1 -0
  61. package/Expressions/Compiler/GrammarRegistry.d.ts +20 -0
  62. package/Expressions/Compiler/GrammarRegistry.js +51 -0
  63. package/Expressions/Compiler/GrammarRegistry.js.map +1 -0
  64. package/Expressions/Compiler/Parser/Checks.d.ts +8 -0
  65. package/Expressions/Compiler/Parser/Checks.js +40 -0
  66. package/Expressions/Compiler/Parser/Checks.js.map +1 -0
  67. package/Expressions/Compiler/Parser/Enums.d.ts +73 -0
  68. package/Expressions/Compiler/Parser/Enums.js +77 -0
  69. package/Expressions/Compiler/Parser/Enums.js.map +1 -0
  70. package/Expressions/Compiler/Parser/Interfaces.d.ts +118 -0
  71. package/Expressions/Compiler/Parser/Interfaces.js +112 -0
  72. package/Expressions/Compiler/Parser/Interfaces.js.map +1 -0
  73. package/Expressions/Compiler/Parser/MatchGrammar.d.ts +15 -0
  74. package/Expressions/Compiler/Parser/MatchGrammar.js +128 -0
  75. package/Expressions/Compiler/Parser/MatchGrammar.js.map +1 -0
  76. package/Expressions/Compiler/Parser/MatchRepeatingRule.d.ts +4 -0
  77. package/Expressions/Compiler/Parser/MatchRepeatingRule.js +51 -0
  78. package/Expressions/Compiler/Parser/MatchRepeatingRule.js.map +1 -0
  79. package/Expressions/Compiler/Parser/MatchRule.d.ts +4 -0
  80. package/Expressions/Compiler/Parser/MatchRule.js +57 -0
  81. package/Expressions/Compiler/Parser/MatchRule.js.map +1 -0
  82. package/Expressions/Compiler/Parser/Parser.d.ts +26 -0
  83. package/Expressions/Compiler/Parser/Parser.js +67 -0
  84. package/Expressions/Compiler/Parser/Parser.js.map +1 -0
  85. package/Expressions/Compiler/Parser/Tokenizer.d.ts +12 -0
  86. package/Expressions/Compiler/Parser/Tokenizer.js +138 -0
  87. package/Expressions/Compiler/Parser/Tokenizer.js.map +1 -0
  88. package/Expressions/Compiler/Parser/TypesAndPrint.d.ts +29 -0
  89. package/Expressions/Compiler/Parser/TypesAndPrint.js +15 -0
  90. package/Expressions/Compiler/Parser/TypesAndPrint.js.map +1 -0
  91. package/Expressions/Compiler/Parser/Updates.d.ts +10 -0
  92. package/Expressions/Compiler/Parser/Updates.js +79 -0
  93. package/Expressions/Compiler/Parser/Updates.js.map +1 -0
  94. package/Expressions/Compiler/Parser.js +27 -18
  95. package/Expressions/Compiler/Parser.js.map +1 -0
  96. package/Expressions/Compiler/Tokenizer.js +1 -0
  97. package/Expressions/Compiler/Tokenizer.js.map +1 -0
  98. package/Expressions/Compiler/__tests__/Replicable.Expressions.Parser.test.js +1 -0
  99. package/Expressions/Compiler/__tests__/Replicable.Expressions.Parser.test.js.map +1 -0
  100. package/Expressions/Compiler/__tests__/Replicable.Expressions.Tokenizer.test.js +1 -0
  101. package/Expressions/Compiler/__tests__/Replicable.Expressions.Tokenizer.test.js.map +1 -0
  102. package/Expressions/CreateEvaluator.js +1 -0
  103. package/Expressions/CreateEvaluator.js.map +1 -0
  104. package/Expressions/EvaluatorChain.js +6 -1
  105. package/Expressions/EvaluatorChain.js.map +1 -0
  106. package/Expressions/EvaluatorSteps.js +1 -0
  107. package/Expressions/EvaluatorSteps.js.map +1 -0
  108. package/Expressions/EvaluatorString.js +1 -0
  109. package/Expressions/EvaluatorString.js.map +1 -0
  110. package/Expressions/Expression.js +10 -3
  111. package/Expressions/Expression.js.map +1 -0
  112. package/Expressions/Traverser.js +2 -2
  113. package/Expressions/Traverser.js.map +1 -0
  114. package/Expressions/TypeRegistry/Accessors.js +1 -0
  115. package/Expressions/TypeRegistry/Accessors.js.map +1 -0
  116. package/Expressions/TypeRegistry/ChainCollections.js +1 -0
  117. package/Expressions/TypeRegistry/ChainCollections.js.map +1 -0
  118. package/Expressions/TypeRegistry/ChainTypes.js +1 -0
  119. package/Expressions/TypeRegistry/ChainTypes.js.map +1 -0
  120. package/Expressions/TypeRegistry/CustomAPI.d.ts +6 -4
  121. package/Expressions/TypeRegistry/CustomAPI.js +16 -34
  122. package/Expressions/TypeRegistry/CustomAPI.js.map +1 -0
  123. package/Expressions/TypeRegistry/Primitive.js +1 -0
  124. package/Expressions/TypeRegistry/Primitive.js.map +1 -0
  125. package/Expressions/TypeRegistry/Registry.js +6 -6
  126. package/Expressions/TypeRegistry/Registry.js.map +1 -0
  127. package/Expressions/TypeRegistry/ReplAPI.d.ts +7 -5
  128. package/Expressions/TypeRegistry/ReplAPI.js +9 -22
  129. package/Expressions/TypeRegistry/ReplAPI.js.map +1 -0
  130. package/Expressions/TypeRegistry/Scope.js +1 -0
  131. package/Expressions/TypeRegistry/Scope.js.map +1 -0
  132. package/Expressions/TypeRegistry/Types.js +1 -0
  133. package/Expressions/TypeRegistry/Types.js.map +1 -0
  134. package/Expressions/TypeRegistry/__tests__/Replicable.Expressions.Accessors.test.js +1 -0
  135. package/Expressions/TypeRegistry/__tests__/Replicable.Expressions.Accessors.test.js.map +1 -0
  136. package/Expressions/__tests__/ExpressionExamples.js +1 -0
  137. package/Expressions/__tests__/ExpressionExamples.js.map +1 -0
  138. package/Expressions/__tests__/Replicable.Expressions.Expressions.test.js +4 -3
  139. package/Expressions/__tests__/Replicable.Expressions.Expressions.test.js.map +1 -0
  140. package/IDPool.data.d.ts +2 -0
  141. package/IDPool.js +1 -0
  142. package/IDPool.js.map +1 -0
  143. package/Main.js +1 -0
  144. package/Main.js.map +1 -0
  145. package/Networking.d.ts +3 -0
  146. package/Networking.js +22 -9
  147. package/Networking.js.map +1 -0
  148. package/Replicatable.js +5 -6
  149. package/Replicatable.js.map +1 -0
  150. package/Tracking/Buffable.d.ts +3 -2
  151. package/Tracking/Buffable.js +1 -0
  152. package/Tracking/Buffable.js.map +1 -0
  153. package/Tracking/Class.d.ts +6 -4
  154. package/Tracking/Class.js +37 -19
  155. package/Tracking/Class.js.map +1 -0
  156. package/Tracking/Functions.js +3 -2
  157. package/Tracking/Functions.js.map +1 -0
  158. package/Tracking/GlobalGroup.js +2 -2
  159. package/Tracking/GlobalGroup.js.map +1 -0
  160. package/Tracking/Property.d.ts +3 -2
  161. package/Tracking/Property.js +9 -5
  162. package/Tracking/Property.js.map +1 -0
  163. package/Tracking/Types.js +1 -0
  164. package/Tracking/Types.js.map +1 -0
  165. package/Tracking/__tests__/Replicable.Tracking.Decorator.test.js +1 -0
  166. package/Tracking/__tests__/Replicable.Tracking.Decorator.test.js.map +1 -0
  167. package/Tracking/__tests__/Replicable.Tracking.Deserialisation.test.js +1 -0
  168. package/Tracking/__tests__/Replicable.Tracking.Deserialisation.test.js.map +1 -0
  169. package/Tracking/__tests__/Replicable.Tracking.MixinSchemaGeneration.test.js +1 -0
  170. package/Tracking/__tests__/Replicable.Tracking.MixinSchemaGeneration.test.js.map +1 -0
  171. package/Tracking/__tests__/Replicable.Tracking.Struct.test.js +1 -0
  172. package/Tracking/__tests__/Replicable.Tracking.Struct.test.js.map +1 -0
  173. package/Tracking/__tests__/Replicable.Tracking.Type.test.js +1 -0
  174. package/Tracking/__tests__/Replicable.Tracking.Type.test.js.map +1 -0
  175. package/Transformers/Configurer.d.ts +15 -1
  176. package/Transformers/Configurer.js +130 -21
  177. package/Transformers/Configurer.js.map +1 -0
  178. package/Transformers/Constructor.js +1 -0
  179. package/Transformers/Constructor.js.map +1 -0
  180. package/Transformers/Definitions.d.ts +3 -3
  181. package/Transformers/Definitions.js +41 -21
  182. package/Transformers/Definitions.js.map +1 -0
  183. package/Transformers/Loader.js +21 -11
  184. package/Transformers/Loader.js.map +1 -0
  185. package/Transformers/Progress.js +19 -13
  186. package/Transformers/Progress.js.map +1 -0
  187. package/Transformers/Reference.js +3 -2
  188. package/Transformers/Reference.js.map +1 -0
  189. package/Transformers/SchemaGenerator.d.ts +2 -2
  190. package/Transformers/SchemaGenerator.js +89 -7
  191. package/Transformers/SchemaGenerator.js.map +1 -0
  192. package/Transformers/Serialiser.js +1 -0
  193. package/Transformers/Serialiser.js.map +1 -0
  194. package/Transformers/Utils.d.ts +1 -1
  195. package/Transformers/Utils.js +43 -26
  196. package/Transformers/Utils.js.map +1 -0
  197. package/Transformers/__tests__/Examples.d.ts +36 -0
  198. package/Transformers/__tests__/Examples.js +40 -0
  199. package/Transformers/__tests__/Examples.js.map +1 -0
  200. package/Transformers/__tests__/Replicable.Transformers.Definitions.test.js +18 -16
  201. package/Transformers/__tests__/Replicable.Transformers.Definitions.test.js.map +1 -0
  202. package/Transformers/__tests__/Replicable.Transformers.Loader.test.js +2 -0
  203. package/Transformers/__tests__/Replicable.Transformers.Loader.test.js.map +1 -0
  204. package/Transformers/__tests__/Replicable.Transformers.Progress.test.js +1 -0
  205. package/Transformers/__tests__/Replicable.Transformers.Progress.test.js.map +1 -0
  206. package/Transformers/__tests__/Replicable.Transformers.Reference.test.js +1 -0
  207. package/Transformers/__tests__/Replicable.Transformers.Reference.test.js.map +1 -0
  208. package/Transformers/__tests__/Replicable.Transformers.SchemaGenerator.test.js +14 -2
  209. package/Transformers/__tests__/Replicable.Transformers.SchemaGenerator.test.js.map +1 -0
  210. package/Transformers/__tests__/Replicable.Transformers.SchemaGeneratorOutput.test.js +1 -0
  211. package/Transformers/__tests__/Replicable.Transformers.SchemaGeneratorOutput.test.js.map +1 -0
  212. package/Transformers/__tests__/Replicable.Transformers.Serialiser.test.js +11 -2
  213. package/Transformers/__tests__/Replicable.Transformers.Serialiser.test.js.map +1 -0
  214. package/Transformers/__tests__/Replicable.Transformers.Utils.test.js +95 -82
  215. package/Transformers/__tests__/Replicable.Transformers.Utils.test.js.map +1 -0
  216. package/__tests__/Configuration/Mocks.d.ts +2 -0
  217. package/__tests__/Configuration/Mocks.js +98 -0
  218. package/__tests__/Configuration/Mocks.js.map +1 -0
  219. package/__tests__/Configuration/Setup.d.ts +1 -0
  220. package/__tests__/Configuration/Setup.js +14 -0
  221. package/__tests__/Configuration/Setup.js.map +1 -0
  222. package/__tests__/Configuration/TestTypes.d.ts +33 -0
  223. package/__tests__/Replicable.Expressions.test.js +1 -0
  224. package/__tests__/Replicable.Expressions.test.js.map +1 -0
  225. package/__tests__/Replicable.IDPool.test.js +1 -0
  226. package/__tests__/Replicable.IDPool.test.js.map +1 -0
  227. package/__tests__/Replicable.ReplicableRegistry.test.js +23 -13
  228. package/__tests__/Replicable.ReplicableRegistry.test.js.map +1 -0
  229. package/__tests__/Replicable.Serialisation.test.js +1 -0
  230. package/__tests__/Replicable.Serialisation.test.js.map +1 -0
  231. package/package.json +28 -18
  232. package/tsconfig.json +7 -4
  233. package/tsconfig.tsbuildinfo +1 -0
  234. package/vitest.config.d.ts +2 -0
  235. package/vitest.config.js +32 -0
  236. package/vitest.config.js.map +1 -0
@@ -0,0 +1,18 @@
1
+ import { GrammarInterfaces } from "../Parser/Interfaces.js";
2
+ import { NodeType } from "../Parser/Enums.js";
3
+ import EAST_Token = GrammarInterfaces.EAST_Token;
4
+ import Node = GrammarInterfaces.Node;
5
+ export interface CommentNode extends GrammarInterfaces.EAST_Complex_Node {
6
+ type: NodeType.COMMENT;
7
+ values: {
8
+ comment: EAST_Token[];
9
+ };
10
+ }
11
+ export declare function IsCommentNode(node: Node): node is CommentNode;
12
+ export interface PreprocessorCommandNode extends GrammarInterfaces.EAST_Complex_Node {
13
+ type: NodeType.PREPROCESSOR_COMMAND;
14
+ values: {
15
+ command: EAST_Token;
16
+ };
17
+ }
18
+ export declare function IsPreprocessorCommandNode(node: Node): node is PreprocessorCommandNode;
@@ -0,0 +1,43 @@
1
+ import { NodeType, TokenType } from "../Parser/Enums.js";
2
+ import { GrammarRegistry } from "../GrammarRegistry.js";
3
+ import { Versions } from "../../../Constants/Versions.js";
4
+ var ExpressionSyntaxError = GrammarRegistry.ExpressionSyntaxError;
5
+ export function IsCommentNode(node) {
6
+ return node.type === NodeType.COMMENT;
7
+ }
8
+ GrammarRegistry.AddRule(Versions.v1_0_0, NodeType.COMMENT, [[
9
+ {
10
+ type: [TokenType.BLOCK_COMMENT, TokenType.LINE_COMMENT],
11
+ name: "comment",
12
+ repeat: [1, Number.POSITIVE_INFINITY]
13
+ }
14
+ ]], {
15
+ runtimeExecute(scope, node) {
16
+ // Do nothing
17
+ return {
18
+ type: null,
19
+ value: null
20
+ };
21
+ },
22
+ compileTimeTraversal(scope, node) {
23
+ // Do nothing
24
+ return null;
25
+ }
26
+ });
27
+ export function IsPreprocessorCommandNode(node) {
28
+ return node.type === NodeType.PREPROCESSOR_COMMAND;
29
+ }
30
+ GrammarRegistry.AddRule(Versions.v1_0_0, NodeType.PREPROCESSOR_COMMAND, [[
31
+ {
32
+ type: [TokenType.PREPROCESSOR /*, NodeType.PRECISION_STATEMENT*/],
33
+ name: "command"
34
+ }
35
+ ]], {
36
+ runtimeExecute(scope, node) {
37
+ throw new ExpressionSyntaxError(`Preprocessor commands cannot be executed at runtime`, node);
38
+ },
39
+ compileTimeTraversal(scope, node) {
40
+ throw new ExpressionSyntaxError(`Preprocessor commands are not currently supported`, node);
41
+ }
42
+ });
43
+ //# sourceMappingURL=Preprocessors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Preprocessors.js","sourceRoot":"","sources":["Preprocessors.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAG1D,IAAO,qBAAqB,GAAG,eAAe,CAAC,qBAAqB,CAAC;AAWrE,MAAM,UAAU,aAAa,CAAC,IAAU;IACvC,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,OAAO,CAAC;AACvC,CAAC;AAED,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;QAC3D;YACC,IAAI,EAAE,CAAC,SAAS,CAAC,aAAa,EAAE,SAAS,CAAC,YAAY,CAAC;YACvD,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,iBAAiB,CAAC;SACrC;KACD,CAAC,EAAE;IACH,cAAc,CAAC,KAAK,EAAE,IAAiB;QACtC,aAAa;QACb,OAAO;YACN,IAAI,EAAE,IAAI;YACV,KAAK,EAAE,IAAI;SACX,CAAC;IACH,CAAC;IACD,oBAAoB,CAAC,KAAK,EAAE,IAAiB;QAC5C,aAAa;QACb,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC,CAAC;AAUH,MAAM,UAAU,yBAAyB,CAAC,IAAU;IACnD,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,oBAAoB,CAAC;AACpD,CAAC;AAED,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,oBAAoB,EAAE,CAAC;QACxE;YACC,IAAI,EAAE,CAAC,SAAS,CAAC,YAAY,CAAC,kCAAkC,CAAC;YACjE,IAAI,EAAE,SAAS;SACf;KACD,CAAC,EAAE;IACH,cAAc,CAAC,KAAK,EAAE,IAA6B;QAClD,MAAM,IAAI,qBAAqB,CAAC,qDAAqD,EAAE,IAAI,CAAC,CAAC;IAC9F,CAAC;IACD,oBAAoB,CAAC,KAAK,EAAE,IAA6B;QACxD,MAAM,IAAI,qBAAqB,CAAC,mDAAmD,EAAE,IAAI,CAAC,CAAC;IAC5F,CAAC;CACD,CAAC,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { GrammarInterfaces } from "../Parser/Interfaces.js";
2
+ import { NodeType } from "../Parser/Enums.js";
3
+ import EAST_Token = GrammarInterfaces.EAST_Token;
4
+ import Node = GrammarInterfaces.Node;
5
+ import { TypeDefinitionNode } from "./Types.js";
6
+ export interface StructNode extends GrammarInterfaces.EAST_Complex_Node {
7
+ type: NodeType.STRUCT;
8
+ values: {
9
+ name: EAST_Token;
10
+ members: PropertySignatureNode[];
11
+ };
12
+ }
13
+ export declare function IsStructNode(node: Node): node is StructNode;
14
+ export interface PropertySignatureNode extends GrammarInterfaces.EAST_Complex_Node {
15
+ type: NodeType.PROPERTY_SIGNATURE;
16
+ values: {
17
+ identifier: EAST_Token;
18
+ type: TypeDefinitionNode;
19
+ };
20
+ }
21
+ export declare function IsPropertySignatureNode(node: Node): node is PropertySignatureNode;
@@ -0,0 +1,42 @@
1
+ import { NodeType, TokenType } from "../Parser/Enums.js";
2
+ import { GrammarRegistry } from "../GrammarRegistry.js";
3
+ import { Versions } from "../../../Constants/Versions.js";
4
+ var ExpressionSyntaxError = GrammarRegistry.ExpressionSyntaxError;
5
+ export function IsStructNode(node) {
6
+ return node.type === NodeType.STRUCT;
7
+ }
8
+ GrammarRegistry.AddRule(Versions.v1_0_0, NodeType.STRUCT, [[
9
+ { type: TokenType.KEYWORD, value: "struct" },
10
+ { type: TokenType.IDENTIFIER, name: "name" },
11
+ { type: TokenType.OPERATOR, value: "{" },
12
+ {
13
+ type: NodeType.PROPERTY_SIGNATURE,
14
+ name: "members",
15
+ repeat: [1, Number.POSITIVE_INFINITY],
16
+ repeatSeparator: { type: TokenType.OPERATOR, value: "," }
17
+ },
18
+ { type: TokenType.OPERATOR, value: "}" }
19
+ ]], {
20
+ runtimeExecute(scope, node, outputType) {
21
+ throw new ExpressionSyntaxError(`Structs are not currently supported`, node);
22
+ },
23
+ compileTimeTraversal(scope, node, outputType) {
24
+ throw new ExpressionSyntaxError(`Structs are not currently supported`, node);
25
+ }
26
+ });
27
+ export function IsPropertySignatureNode(node) {
28
+ return node.type === NodeType.PROPERTY_SIGNATURE;
29
+ }
30
+ GrammarRegistry.AddRule(Versions.v1_0_0, NodeType.PROPERTY_SIGNATURE, [[
31
+ { type: TokenType.IDENTIFIER, name: "identifier" },
32
+ { type: TokenType.OPERATOR, value: ":" },
33
+ { type: [NodeType.TYPE_UNION, NodeType.TYPE_DEFINITION], name: "type" },
34
+ ]], {
35
+ runtimeExecute(scope, node, outputType) {
36
+ throw new ExpressionSyntaxError(`Structs are not currently supported`, node);
37
+ },
38
+ compileTimeTraversal(scope, node, outputType) {
39
+ throw new ExpressionSyntaxError(`Structs are not currently supported`, node);
40
+ }
41
+ });
42
+ //# sourceMappingURL=Struct.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Struct.js","sourceRoot":"","sources":["Struct.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAG1D,IAAO,qBAAqB,GAAG,eAAe,CAAC,qBAAqB,CAAC;AAarE,MAAM,UAAU,YAAY,CAAC,IAAU;IACtC,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,MAAM,CAAC;AACtC,CAAC;AAED,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC1D,EAAE,IAAI,EAAE,SAAS,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE;QAC5C,EAAE,IAAI,EAAE,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE;QAC5C,EAAE,IAAI,EAAE,SAAS,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE;QACxC;YACC,IAAI,EAAE,QAAQ,CAAC,kBAAkB;YACjC,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,iBAAiB,CAAC;YACrC,eAAe,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE;SACzD;QACD,EAAE,IAAI,EAAE,SAAS,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE;KACxC,CAAC,EAAE;IACH,cAAc,CAAC,KAAK,EAAE,IAAgB,EAAE,UAAU;QACjD,MAAM,IAAI,qBAAqB,CAAC,qCAAqC,EAAE,IAAI,CAAC,CAAC;IAC9E,CAAC;IACD,oBAAoB,CAAC,KAAK,EAAE,IAAgB,EAAE,UAAU;QACvD,MAAM,IAAI,qBAAqB,CAAC,qCAAqC,EAAE,IAAI,CAAC,CAAC;IAC9E,CAAC;CACD,CAAC,CAAC;AAYH,MAAM,UAAU,uBAAuB,CAAC,IAAU;IACjD,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,kBAAkB,CAAC;AAClD,CAAC;AAED,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,kBAAkB,EAAE,CAAC;QACtE,EAAE,IAAI,EAAE,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE;QAClD,EAAE,IAAI,EAAE,SAAS,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE;QACxC,EAAE,IAAI,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;KACvE,CAAC,EAAE;IACH,cAAc,CAAC,KAAK,EAAE,IAA2B,EAAE,UAAU;QAC5D,MAAM,IAAI,qBAAqB,CAAC,qCAAqC,EAAE,IAAI,CAAC,CAAC;IAC9E,CAAC;IACD,oBAAoB,CAAC,KAAK,EAAE,IAA2B,EAAE,UAAU;QAClE,MAAM,IAAI,qBAAqB,CAAC,qCAAqC,EAAE,IAAI,CAAC,CAAC;IAC9E,CAAC;CACD,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { GrammarInterfaces } from "../Parser/Interfaces.js";
2
+ import TokenCategoryRule = GrammarInterfaces.TokenCategoryRule;
3
+ import Token = GrammarInterfaces.Token;
4
+ export declare const EAST_Tokens: {
5
+ [category: string]: TokenCategoryRule;
6
+ };
7
+ export declare function isToken(object: any): object is Token;
@@ -0,0 +1,270 @@
1
+ import { TokenPrecedence, TokenType } from "../Parser/Enums.js";
2
+ import { GrammarRegistry } from "../GrammarRegistry.js";
3
+ import { ChainNumber, ChainString } from "../../TypeRegistry/Primitive.js";
4
+ import { GrammarInterfaces } from "../Parser/Interfaces.js";
5
+ var ExpressionSyntaxError = GrammarRegistry.ExpressionSyntaxError;
6
+ var isAssignableCompile = GrammarInterfaces.isAssignableCompile;
7
+ var collapseTypeLive = GrammarInterfaces.collapseTypeLive;
8
+ import { ErrorStack } from "../../../Constants/Errors.js";
9
+ // noinspection RegExpUnnecessaryNonCapturingGroup
10
+ export const EAST_Tokens = {
11
+ Builtin_BlockComment: {
12
+ type: TokenType.BLOCK_COMMENT,
13
+ versions: [/\/\*(.|\n|\r)*?\*\//g],
14
+ debug_name: "Block Comment",
15
+ precedence: TokenPrecedence.Block,
16
+ execution: {
17
+ runtimeExecute(scope, currentNode, outputType) {
18
+ return {
19
+ type: null,
20
+ value: null
21
+ };
22
+ },
23
+ compileTimeTraversal(scope, currentNode, outputType) {
24
+ if (outputType !== null) {
25
+ throw new ExpressionSyntaxError("Block comments cannot return values", currentNode);
26
+ }
27
+ return null;
28
+ },
29
+ }
30
+ },
31
+ Builtin_LineComment: {
32
+ type: TokenType.LINE_COMMENT,
33
+ versions: [/\/\/.*/g],
34
+ debug_name: "Line Comment",
35
+ precedence: TokenPrecedence.Line,
36
+ execution: {
37
+ runtimeExecute(scope, currentNode, outputType) {
38
+ return {
39
+ type: null,
40
+ value: null
41
+ };
42
+ },
43
+ compileTimeTraversal(scope, currentNode, outputType) {
44
+ if (outputType !== null) {
45
+ throw new ExpressionSyntaxError("Line comments cannot return values", currentNode);
46
+ }
47
+ return null;
48
+ }
49
+ }
50
+ },
51
+ Buildin_BlockString: {
52
+ type: TokenType.BLOCK_STRING,
53
+ versions: [/`(.|\n|\r)*?`/g],
54
+ debug_name: "Block String",
55
+ precedence: TokenPrecedence.Block,
56
+ execution: {
57
+ runtimeExecute(scope, node, outputType) {
58
+ return {
59
+ type: ChainString,
60
+ value: node.data.slice(1, -1),
61
+ };
62
+ },
63
+ compileTimeTraversal(scope, currentNode, outputType) {
64
+ return {
65
+ type: [ChainString],
66
+ };
67
+ }
68
+ }
69
+ },
70
+ Builtin_LineString: {
71
+ type: TokenType.LINE_STRING,
72
+ versions: [/(?:".*?")|(?:'.*?')/g],
73
+ debug_name: "String",
74
+ precedence: TokenPrecedence.Intricate_Builtins,
75
+ execution: {
76
+ runtimeExecute(scope, node, outputType) {
77
+ return {
78
+ type: ChainString,
79
+ value: node.data.slice(1, -1),
80
+ };
81
+ },
82
+ compileTimeTraversal(scope, currentNode, outputType) {
83
+ return {
84
+ type: [ChainString],
85
+ };
86
+ }
87
+ }
88
+ },
89
+ Builtin_Preprocessor: {
90
+ type: TokenType.PREPROCESSOR,
91
+ versions: [/#.*/gm],
92
+ debug_name: "Preprocessor Directive",
93
+ precedence: TokenPrecedence.Line,
94
+ execution: {
95
+ runtimeExecute(scope, currentNode, outputType) {
96
+ throw new ExpressionSyntaxError("Preprocessor directives are not yet supported", currentNode);
97
+ },
98
+ compileTimeTraversal(scope, currentNode, outputType) {
99
+ throw new ExpressionSyntaxError("Preprocessor directives are not yet supported", currentNode);
100
+ }
101
+ }
102
+ },
103
+ //Precedence 3 so that it is a lower priority than number (because of '.').
104
+ Builtin_Hex: {
105
+ type: TokenType.HEX,
106
+ versions: [/\b0x[0-9abcdef]+\b/g],
107
+ debug_name: "Hex Number",
108
+ precedence: TokenPrecedence.Intricate_Builtins,
109
+ execution: {
110
+ runtimeExecute(scope, currentNode, outputType) {
111
+ return {
112
+ type: ChainNumber,
113
+ value: parseInt(currentNode.data, 16),
114
+ };
115
+ },
116
+ compileTimeTraversal(scope, currentNode, outputType) {
117
+ return {
118
+ type: [ChainNumber],
119
+ };
120
+ }
121
+ }
122
+ },
123
+ //Precedence 2 so that it is a lower priority than float and hex.
124
+ Builtin_Integer: {
125
+ type: TokenType.INTEGER,
126
+ versions: [/\b[0-9]+\b/g],
127
+ debug_name: "Integer",
128
+ precedence: TokenPrecedence.Standard_Builtins,
129
+ execution: {
130
+ runtimeExecute(scope, currentNode, outputType) {
131
+ return {
132
+ type: ChainNumber,
133
+ value: parseInt(currentNode.data),
134
+ };
135
+ },
136
+ compileTimeTraversal(scope, currentNode, outputType) {
137
+ return {
138
+ type: [ChainNumber],
139
+ };
140
+ }
141
+ }
142
+ },
143
+ Builtin_Float: {
144
+ type: TokenType.FLOAT,
145
+ versions: [/\b([0-9]+[.][0-9]+([eE][0-9]+)?)|([0-9]+[fF])\b/g],
146
+ debug_name: "Float",
147
+ precedence: TokenPrecedence.Intricate_Builtins,
148
+ execution: {
149
+ runtimeExecute(scope, currentNode, outputType) {
150
+ return {
151
+ type: ChainNumber,
152
+ value: parseFloat(currentNode.data),
153
+ };
154
+ },
155
+ compileTimeTraversal(scope, currentNode, outputType) {
156
+ return {
157
+ type: [ChainNumber],
158
+ };
159
+ }
160
+ }
161
+ },
162
+ //Lower priority than builtin, keyword and hex.
163
+ Identifier: {
164
+ type: TokenType.IDENTIFIER,
165
+ versions: [/\b[a-zA-Z_][a-zA-Z0-9_]+\b/g],
166
+ debug_name: "Identifier",
167
+ precedence: TokenPrecedence.User_Identifiers,
168
+ execution: {
169
+ runtimeExecute(scope, node, outputType) {
170
+ let data = scope.local[node.data] || scope.global[node.data];
171
+ if (data !== undefined) {
172
+ let type = collapseTypeLive(scope, node, data.value, data.type);
173
+ return {
174
+ type: type,
175
+ value: data.value,
176
+ };
177
+ }
178
+ return {
179
+ type: null,
180
+ value: null
181
+ };
182
+ },
183
+ runtimeExecuteWithValidation(scope, node, outputType) {
184
+ let data = scope.local[node.data] || scope.global[node.data];
185
+ if (!data) {
186
+ throw new Error(`Identifier ${node.data} not found in current scope.`);
187
+ }
188
+ if (outputType) {
189
+ let stack = new ErrorStack({ Version: scope.version, SourceFile: node.file.sourceLocation });
190
+ if (!isAssignableCompile(scope.version, outputType, data.type, node, stack)) {
191
+ throw new ExpressionSyntaxError(`Variable returns types ${data.type} but expected ${outputType}\n` + stack.toString(`GT_IDEN_01`), node);
192
+ }
193
+ }
194
+ if (data !== undefined) {
195
+ let type = collapseTypeLive(scope, node, data.value, data.type);
196
+ return {
197
+ type: type,
198
+ value: data.value,
199
+ };
200
+ }
201
+ return {
202
+ type: null,
203
+ value: null
204
+ };
205
+ },
206
+ compileTimeTraversal(scope, node, outputType) {
207
+ let data = scope.local[node.data] || scope.global[node.data];
208
+ if (!data) {
209
+ throw new Error(`Identifier ${node.data} not found in current scope.`);
210
+ }
211
+ if (outputType) {
212
+ let stack = new ErrorStack({ Version: scope.version, SourceFile: node.file.sourceLocation });
213
+ if (!isAssignableCompile(scope.version, outputType, data.type, node, stack)) {
214
+ throw new ExpressionSyntaxError(`Variable returns types ${data.type} but expected ${outputType}\n` + stack.toString(`GT_IDEN_01`), node);
215
+ }
216
+ }
217
+ return {
218
+ type: data.type,
219
+ };
220
+ },
221
+ }
222
+ },
223
+ //The regex for this might be a bit limited, it should probably be revisited.
224
+ Builtin_Whitespace: {
225
+ type: TokenType.WHITESPACE,
226
+ versions: [/[ \t\r\n]+/g],
227
+ debug_name: "Whitespace",
228
+ precedence: TokenPrecedence.Intricate_Builtins,
229
+ execution: {
230
+ runtimeExecute(scope, node, outputType) {
231
+ throw new ExpressionSyntaxError("Whitespace is not supported", node);
232
+ },
233
+ compileTimeTraversal(scope, node, outputType) {
234
+ throw new ExpressionSyntaxError("Whitespace is not supported", node);
235
+ }
236
+ }
237
+ },
238
+ Operator: {
239
+ versions: [new Set([".", "(", ")", "[]", "[", "]", "{}", ",", "=", ":", "=>", "==", "!=", "<", "<=", ">", ">=", "+", "-", "*", "/", "%", "&&", "||", "&", "|", "^", "~"])],
240
+ type: TokenType.OPERATOR,
241
+ debug_name: "Operator",
242
+ precedence: TokenPrecedence.Operators,
243
+ execution: {
244
+ runtimeExecute(scope, node, outputType) {
245
+ throw new ExpressionSyntaxError("Raw operators are not supported", node);
246
+ },
247
+ compileTimeTraversal(scope, node, outputType) {
248
+ throw new ExpressionSyntaxError("Raw operators are not supported", node);
249
+ }
250
+ }
251
+ },
252
+ Keyword: {
253
+ versions: [new Set(["if", "else", "while", "for", "return", "break", "continue", "switch", "case", "default", "struct", "var", "function"])],
254
+ type: TokenType.KEYWORD,
255
+ debug_name: "Keyword",
256
+ precedence: TokenPrecedence.Standard_Builtins,
257
+ execution: {
258
+ runtimeExecute(scope, node, outputType) {
259
+ throw new ExpressionSyntaxError("Raw keywords are not supported", node);
260
+ },
261
+ compileTimeTraversal(scope, node, outputType) {
262
+ throw new ExpressionSyntaxError("Raw keywords are not supported", node);
263
+ }
264
+ }
265
+ }
266
+ };
267
+ export function isToken(object) {
268
+ return "type" in object && typeof TokenType[object.type] !== "undefined";
269
+ }
270
+ //# sourceMappingURL=Tokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tokens.js","sourceRoot":"","sources":["Tokens.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import { GrammarInterfaces } from "../Parser/Interfaces.js";
2
+ import { NodeType } from "../Parser/Enums.js";
3
+ import { ArrayAccessSequenceNode } from "./Accessors.js";
4
+ import { FunctionCallNode } from "./Function.js";
5
+ import { ParenthetisedExpressionNode } from "./General.js";
6
+ import { LiteralNode } from "./Misc.js";
7
+ import EAST_Token = GrammarInterfaces.EAST_Token;
8
+ import Node = GrammarInterfaces.Node;
9
+ import EAST_Complex_Node = GrammarInterfaces.EAST_Complex_Node;
10
+ export interface TypeDefinitionNode extends GrammarInterfaces.EAST_Complex_Node {
11
+ type: NodeType.TYPE_DEFINITION;
12
+ values: {
13
+ type: EAST_Token;
14
+ array?: EAST_Token[];
15
+ dictKey?: EAST_Token;
16
+ mapKey?: EAST_Token;
17
+ };
18
+ }
19
+ export declare function IsDeclarationTypeNode(node: Node): node is TypeDefinitionNode;
20
+ export interface TypeUnionNode extends EAST_Complex_Node {
21
+ type: NodeType.TYPE_UNION;
22
+ values: {
23
+ lhs: TypeDefinitionNode;
24
+ rhs: TypeDefinitionNode;
25
+ };
26
+ }
27
+ export declare function IsTypeIntersectionNode(node: Node): node is TypeUnionNode;
28
+ export interface CastNode extends EAST_Complex_Node {
29
+ type: NodeType.CAST;
30
+ values: {
31
+ expression: ArrayAccessSequenceNode | FunctionCallNode | ParenthetisedExpressionNode | EAST_Token | LiteralNode;
32
+ castType: TypeDefinitionNode | TypeUnionNode;
33
+ };
34
+ }
35
+ export declare function IsCastNode(node: Node): node is CastNode;