@mojir/lits 2.2.2 → 2.2.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 (209) hide show
  1. package/README.md +0 -8
  2. package/dist/cli/cli.js +1145 -1105
  3. package/dist/cli/src/AutoCompleter/AutoCompleter.d.ts +2 -1
  4. package/dist/cli/src/builtin/bindingNode.d.ts +3 -3
  5. package/dist/cli/src/builtin/index.d.ts +0 -1
  6. package/dist/cli/src/builtin/interface.d.ts +3 -4
  7. package/dist/cli/src/builtin/specialExpressionTypes.d.ts +0 -1
  8. package/dist/cli/src/builtin/specialExpressions/and.d.ts +2 -2
  9. package/dist/cli/src/builtin/specialExpressions/array.d.ts +2 -2
  10. package/dist/cli/src/builtin/specialExpressions/block.d.ts +2 -2
  11. package/dist/cli/src/builtin/specialExpressions/cond.d.ts +2 -2
  12. package/dist/cli/src/builtin/specialExpressions/if.d.ts +2 -2
  13. package/dist/cli/src/builtin/specialExpressions/loop.d.ts +2 -2
  14. package/dist/cli/src/builtin/specialExpressions/loops.d.ts +4 -4
  15. package/dist/cli/src/builtin/specialExpressions/object.d.ts +2 -2
  16. package/dist/cli/src/builtin/specialExpressions/or.d.ts +2 -2
  17. package/dist/cli/src/builtin/specialExpressions/qq.d.ts +2 -2
  18. package/dist/cli/src/builtin/specialExpressions/recur.d.ts +2 -2
  19. package/dist/cli/src/builtin/specialExpressions/switch.d.ts +2 -2
  20. package/dist/cli/src/builtin/specialExpressions/throw.d.ts +2 -2
  21. package/dist/cli/src/builtin/specialExpressions/try.d.ts +2 -2
  22. package/dist/cli/src/builtin/specialExpressions/unless.d.ts +2 -2
  23. package/dist/cli/src/builtin/utils.d.ts +2 -2
  24. package/dist/cli/src/evaluator/index.d.ts +2 -2
  25. package/dist/cli/src/evaluator/interface.d.ts +4 -3
  26. package/dist/cli/src/getUndefinedSymbols/index.d.ts +2 -2
  27. package/dist/cli/src/parser/ParserContext.d.ts +20 -0
  28. package/dist/cli/src/parser/helpers.d.ts +19 -0
  29. package/dist/cli/src/parser/index.d.ts +3 -0
  30. package/dist/cli/src/parser/subParsers/getPrecedence.d.ts +3 -0
  31. package/dist/cli/src/parser/subParsers/parseArray.d.ts +3 -0
  32. package/dist/cli/src/parser/subParsers/parseBindingTarget.d.ts +6 -0
  33. package/dist/cli/src/parser/subParsers/parseCond.d.ts +4 -0
  34. package/dist/cli/src/parser/subParsers/parseDo.d.ts +3 -0
  35. package/dist/cli/src/parser/subParsers/parseForOrDoseq.d.ts +4 -0
  36. package/dist/cli/src/parser/subParsers/parseFunction.d.ts +4 -0
  37. package/dist/cli/src/parser/subParsers/parseFunctionCall.d.ts +3 -0
  38. package/dist/cli/src/parser/subParsers/parseIfOrUnless.d.ts +5 -0
  39. package/dist/cli/src/parser/subParsers/parseImplicitBlock.d.ts +5 -0
  40. package/dist/cli/src/parser/subParsers/parseLet.d.ts +4 -0
  41. package/dist/cli/src/parser/subParsers/parseLoop.d.ts +4 -0
  42. package/dist/cli/src/parser/subParsers/parseNumber.d.ts +3 -0
  43. package/dist/cli/src/parser/subParsers/parseObject.d.ts +3 -0
  44. package/dist/cli/src/parser/subParsers/parseOperand.d.ts +3 -0
  45. package/dist/cli/src/parser/subParsers/parseRegexpShorthand.d.ts +3 -0
  46. package/dist/cli/src/parser/subParsers/parseReservedSymbol.d.ts +3 -0
  47. package/dist/cli/src/parser/subParsers/parseString.d.ts +4 -0
  48. package/dist/cli/src/parser/subParsers/parseSwitch.d.ts +4 -0
  49. package/dist/cli/src/parser/subParsers/parseSymbol.d.ts +3 -0
  50. package/dist/cli/src/parser/subParsers/parseTry.d.ts +4 -0
  51. package/dist/cli/src/parser/types.d.ts +19 -26
  52. package/dist/cli/src/testFramework/index.d.ts +3 -2
  53. package/dist/cli/src/tokenizer/token.d.ts +0 -2
  54. package/dist/cli/src/tokenizer/tokenizers.d.ts +2 -2
  55. package/dist/cli/src/typeGuards/astNode.d.ts +18 -19
  56. package/dist/cli/src/typeGuards/index.d.ts +0 -1
  57. package/dist/cli/src/typeGuards/lits.d.ts +0 -1
  58. package/dist/full.esm.js +1 -1
  59. package/dist/full.esm.js.map +1 -1
  60. package/dist/full.js +1 -1
  61. package/dist/full.js.map +1 -1
  62. package/dist/index.esm.js +1 -1
  63. package/dist/index.esm.js.map +1 -1
  64. package/dist/index.js +1 -1
  65. package/dist/index.js.map +1 -1
  66. package/dist/lits.iife.js +1 -1
  67. package/dist/lits.iife.js.map +1 -1
  68. package/dist/modules/assert.esm.js.map +1 -1
  69. package/dist/modules/assert.js.map +1 -1
  70. package/dist/modules/bitwise.esm.js.map +1 -1
  71. package/dist/modules/bitwise.js.map +1 -1
  72. package/dist/modules/collection.esm.js.map +1 -1
  73. package/dist/modules/collection.js.map +1 -1
  74. package/dist/modules/functional.esm.js.map +1 -1
  75. package/dist/modules/functional.js.map +1 -1
  76. package/dist/modules/grid.esm.js.map +1 -1
  77. package/dist/modules/grid.js.map +1 -1
  78. package/dist/modules/linear-algebra.esm.js.map +1 -1
  79. package/dist/modules/linear-algebra.js.map +1 -1
  80. package/dist/modules/matrix.esm.js.map +1 -1
  81. package/dist/modules/matrix.js.map +1 -1
  82. package/dist/modules/number-theory.esm.js.map +1 -1
  83. package/dist/modules/number-theory.js.map +1 -1
  84. package/dist/modules/random.esm.js.map +1 -1
  85. package/dist/modules/random.js.map +1 -1
  86. package/dist/modules/sequence.esm.js.map +1 -1
  87. package/dist/modules/sequence.js.map +1 -1
  88. package/dist/modules/src/AutoCompleter/AutoCompleter.d.ts +2 -1
  89. package/dist/modules/src/builtin/bindingNode.d.ts +3 -3
  90. package/dist/modules/src/builtin/index.d.ts +0 -1
  91. package/dist/modules/src/builtin/interface.d.ts +3 -4
  92. package/dist/modules/src/builtin/specialExpressionTypes.d.ts +0 -1
  93. package/dist/modules/src/builtin/specialExpressions/and.d.ts +2 -2
  94. package/dist/modules/src/builtin/specialExpressions/array.d.ts +2 -2
  95. package/dist/modules/src/builtin/specialExpressions/block.d.ts +2 -2
  96. package/dist/modules/src/builtin/specialExpressions/cond.d.ts +2 -2
  97. package/dist/modules/src/builtin/specialExpressions/if.d.ts +2 -2
  98. package/dist/modules/src/builtin/specialExpressions/loop.d.ts +2 -2
  99. package/dist/modules/src/builtin/specialExpressions/loops.d.ts +4 -4
  100. package/dist/modules/src/builtin/specialExpressions/object.d.ts +2 -2
  101. package/dist/modules/src/builtin/specialExpressions/or.d.ts +2 -2
  102. package/dist/modules/src/builtin/specialExpressions/qq.d.ts +2 -2
  103. package/dist/modules/src/builtin/specialExpressions/recur.d.ts +2 -2
  104. package/dist/modules/src/builtin/specialExpressions/switch.d.ts +2 -2
  105. package/dist/modules/src/builtin/specialExpressions/throw.d.ts +2 -2
  106. package/dist/modules/src/builtin/specialExpressions/try.d.ts +2 -2
  107. package/dist/modules/src/builtin/specialExpressions/unless.d.ts +2 -2
  108. package/dist/modules/src/builtin/utils.d.ts +2 -2
  109. package/dist/modules/src/evaluator/index.d.ts +2 -2
  110. package/dist/modules/src/evaluator/interface.d.ts +4 -3
  111. package/dist/modules/src/getUndefinedSymbols/index.d.ts +2 -2
  112. package/dist/modules/src/parser/ParserContext.d.ts +20 -0
  113. package/dist/modules/src/parser/helpers.d.ts +19 -0
  114. package/dist/modules/src/parser/index.d.ts +3 -0
  115. package/dist/modules/src/parser/subParsers/getPrecedence.d.ts +3 -0
  116. package/dist/modules/src/parser/subParsers/parseArray.d.ts +3 -0
  117. package/dist/modules/src/parser/subParsers/parseBindingTarget.d.ts +6 -0
  118. package/dist/modules/src/parser/subParsers/parseCond.d.ts +4 -0
  119. package/dist/modules/src/parser/subParsers/parseDo.d.ts +3 -0
  120. package/dist/modules/src/parser/subParsers/parseForOrDoseq.d.ts +4 -0
  121. package/dist/modules/src/parser/subParsers/parseFunction.d.ts +4 -0
  122. package/dist/modules/src/parser/subParsers/parseFunctionCall.d.ts +3 -0
  123. package/dist/modules/src/parser/subParsers/parseIfOrUnless.d.ts +5 -0
  124. package/dist/modules/src/parser/subParsers/parseImplicitBlock.d.ts +5 -0
  125. package/dist/modules/src/parser/subParsers/parseLet.d.ts +4 -0
  126. package/dist/modules/src/parser/subParsers/parseLoop.d.ts +4 -0
  127. package/dist/modules/src/parser/subParsers/parseNumber.d.ts +3 -0
  128. package/dist/modules/src/parser/subParsers/parseObject.d.ts +3 -0
  129. package/dist/modules/src/parser/subParsers/parseOperand.d.ts +3 -0
  130. package/dist/modules/src/parser/subParsers/parseRegexpShorthand.d.ts +3 -0
  131. package/dist/modules/src/parser/subParsers/parseReservedSymbol.d.ts +3 -0
  132. package/dist/modules/src/parser/subParsers/parseString.d.ts +4 -0
  133. package/dist/modules/src/parser/subParsers/parseSwitch.d.ts +4 -0
  134. package/dist/modules/src/parser/subParsers/parseSymbol.d.ts +3 -0
  135. package/dist/modules/src/parser/subParsers/parseTry.d.ts +4 -0
  136. package/dist/modules/src/parser/types.d.ts +19 -26
  137. package/dist/modules/src/testFramework/index.d.ts +3 -2
  138. package/dist/modules/src/tokenizer/token.d.ts +0 -2
  139. package/dist/modules/src/tokenizer/tokenizers.d.ts +2 -2
  140. package/dist/modules/src/typeGuards/astNode.d.ts +18 -19
  141. package/dist/modules/src/typeGuards/index.d.ts +0 -1
  142. package/dist/modules/src/typeGuards/lits.d.ts +0 -1
  143. package/dist/modules/string.esm.js.map +1 -1
  144. package/dist/modules/string.js.map +1 -1
  145. package/dist/modules/vector.esm.js.map +1 -1
  146. package/dist/modules/vector.js.map +1 -1
  147. package/dist/src/AutoCompleter/AutoCompleter.d.ts +2 -1
  148. package/dist/src/builtin/bindingNode.d.ts +3 -3
  149. package/dist/src/builtin/index.d.ts +0 -1
  150. package/dist/src/builtin/interface.d.ts +3 -4
  151. package/dist/src/builtin/specialExpressionTypes.d.ts +0 -1
  152. package/dist/src/builtin/specialExpressions/and.d.ts +2 -2
  153. package/dist/src/builtin/specialExpressions/array.d.ts +2 -2
  154. package/dist/src/builtin/specialExpressions/block.d.ts +2 -2
  155. package/dist/src/builtin/specialExpressions/cond.d.ts +2 -2
  156. package/dist/src/builtin/specialExpressions/if.d.ts +2 -2
  157. package/dist/src/builtin/specialExpressions/loop.d.ts +2 -2
  158. package/dist/src/builtin/specialExpressions/loops.d.ts +4 -4
  159. package/dist/src/builtin/specialExpressions/object.d.ts +2 -2
  160. package/dist/src/builtin/specialExpressions/or.d.ts +2 -2
  161. package/dist/src/builtin/specialExpressions/qq.d.ts +2 -2
  162. package/dist/src/builtin/specialExpressions/recur.d.ts +2 -2
  163. package/dist/src/builtin/specialExpressions/switch.d.ts +2 -2
  164. package/dist/src/builtin/specialExpressions/throw.d.ts +2 -2
  165. package/dist/src/builtin/specialExpressions/try.d.ts +2 -2
  166. package/dist/src/builtin/specialExpressions/unless.d.ts +2 -2
  167. package/dist/src/builtin/utils.d.ts +2 -2
  168. package/dist/src/evaluator/index.d.ts +2 -2
  169. package/dist/src/evaluator/interface.d.ts +4 -3
  170. package/dist/src/getUndefinedSymbols/index.d.ts +2 -2
  171. package/dist/src/parser/ParserContext.d.ts +20 -0
  172. package/dist/src/parser/helpers.d.ts +19 -0
  173. package/dist/src/parser/index.d.ts +3 -0
  174. package/dist/src/parser/subParsers/getPrecedence.d.ts +3 -0
  175. package/dist/src/parser/subParsers/parseArray.d.ts +3 -0
  176. package/dist/src/parser/subParsers/parseBindingTarget.d.ts +6 -0
  177. package/dist/src/parser/subParsers/parseCond.d.ts +4 -0
  178. package/dist/src/parser/subParsers/parseDo.d.ts +3 -0
  179. package/dist/src/parser/subParsers/parseForOrDoseq.d.ts +4 -0
  180. package/dist/src/parser/subParsers/parseFunction.d.ts +4 -0
  181. package/dist/src/parser/subParsers/parseFunctionCall.d.ts +3 -0
  182. package/dist/src/parser/subParsers/parseIfOrUnless.d.ts +5 -0
  183. package/dist/src/parser/subParsers/parseImplicitBlock.d.ts +5 -0
  184. package/dist/src/parser/subParsers/parseLet.d.ts +4 -0
  185. package/dist/src/parser/subParsers/parseLoop.d.ts +4 -0
  186. package/dist/src/parser/subParsers/parseNumber.d.ts +3 -0
  187. package/dist/src/parser/subParsers/parseObject.d.ts +3 -0
  188. package/dist/src/parser/subParsers/parseOperand.d.ts +3 -0
  189. package/dist/src/parser/subParsers/parseRegexpShorthand.d.ts +3 -0
  190. package/dist/src/parser/subParsers/parseReservedSymbol.d.ts +3 -0
  191. package/dist/src/parser/subParsers/parseString.d.ts +4 -0
  192. package/dist/src/parser/subParsers/parseSwitch.d.ts +4 -0
  193. package/dist/src/parser/subParsers/parseSymbol.d.ts +3 -0
  194. package/dist/src/parser/subParsers/parseTry.d.ts +4 -0
  195. package/dist/src/parser/types.d.ts +19 -26
  196. package/dist/src/testFramework/index.d.ts +3 -2
  197. package/dist/src/tokenizer/token.d.ts +0 -2
  198. package/dist/src/tokenizer/tokenizers.d.ts +2 -2
  199. package/dist/src/typeGuards/astNode.d.ts +18 -19
  200. package/dist/src/typeGuards/index.d.ts +0 -1
  201. package/dist/src/typeGuards/lits.d.ts +0 -1
  202. package/dist/testFramework.esm.js +1 -1
  203. package/dist/testFramework.esm.js.map +1 -1
  204. package/dist/testFramework.js +1 -1
  205. package/dist/testFramework.js.map +1 -1
  206. package/package.json +1 -1
  207. package/dist/cli/src/parser/Parser.d.ts +0 -58
  208. package/dist/modules/src/parser/Parser.d.ts +0 -58
  209. package/dist/src/parser/Parser.d.ts +0 -58
@@ -1,5 +1,5 @@
1
1
  import type { ContextParams, Lits } from '../Lits/Lits';
2
- export type AutoCompleteSuggestion = {
2
+ type AutoCompleteSuggestion = {
3
3
  program: string;
4
4
  position: number;
5
5
  };
@@ -22,3 +22,4 @@ export declare class AutoCompleter {
22
22
  private generateSuggestions;
23
23
  private generateWithPredicate;
24
24
  }
25
+ export {};
@@ -1,5 +1,5 @@
1
1
  import type { Any } from '../interface';
2
- import { type BindingTarget, type Node } from '../parser/types';
3
- export declare function walkDefaults(bindingTarget: BindingTarget, onDefault: (Node: Node) => void): void;
4
- export declare function evaluateBindingNodeValues(target: BindingTarget, value: Any, evaluate: (Node: Node) => Any): Record<string, Any>;
2
+ import { type AstNode, type BindingTarget } from '../parser/types';
3
+ export declare function walkDefaults(bindingTarget: BindingTarget, onDefault: (Node: AstNode) => void): void;
4
+ export declare function evaluateBindingNodeValues(target: BindingTarget, value: Any, evaluate: (Node: AstNode) => Any): Record<string, Any>;
5
5
  export declare function getAllBindingTargetNames(bindingTarget: BindingTarget): Record<string, true>;
@@ -11,4 +11,3 @@ export type SpecialExpressionType = typeof specialExpressionTypes[SpecialExpress
11
11
  export declare const builtin: Builtin;
12
12
  export declare const normalExpressionKeys: string[];
13
13
  export declare const specialExpressionKeys: string[];
14
- export declare const specialExpressionNameSet: Set<string>;
@@ -74,8 +74,7 @@ export interface CustomDocs {
74
74
  }
75
75
  export type SpecialExpressionDocs = FunctionDocs | CustomDocs;
76
76
  export declare function isFunctionDocs(docs: SpecialExpressionDocs): docs is FunctionDocs;
77
- export declare function isCustomDocs(docs: SpecialExpressionDocs): docs is CustomDocs;
78
- export type NormalExpressionEvaluator<T> = (params: Arr, sourceCodeInfo: SourceCodeInfo | undefined, contextStack: ContextStack, { executeFunction }: {
77
+ type NormalExpressionEvaluator<T> = (params: Arr, sourceCodeInfo: SourceCodeInfo | undefined, contextStack: ContextStack, { executeFunction }: {
79
78
  executeFunction: ExecuteFunction;
80
79
  }) => T;
81
80
  export interface BuiltinNormalExpression<T> {
@@ -85,8 +84,8 @@ export interface BuiltinNormalExpression<T> {
85
84
  docs?: FunctionDocs;
86
85
  }
87
86
  export type BuiltinNormalExpressions = Record<string, BuiltinNormalExpression<Any>>;
88
- export type BuiltinAllNormalExpressions = BuiltinNormalExpression<Any>[];
89
- export interface EvaluateHelpers {
87
+ type BuiltinAllNormalExpressions = BuiltinNormalExpression<Any>[];
88
+ interface EvaluateHelpers {
90
89
  evaluateNode: EvaluateNode;
91
90
  builtin: Builtin;
92
91
  getUndefinedSymbols: GetUndefinedSymbols;
@@ -20,4 +20,3 @@ export declare const specialExpressionTypes: {
20
20
  readonly try: 18;
21
21
  readonly unless: 19;
22
22
  };
23
- export type SpecialExpressionTypes = typeof specialExpressionTypes;
@@ -1,6 +1,6 @@
1
1
  import type { Any } from '../../interface';
2
- import type { Node, SpecialExpressionNode } from '../../parser/types';
2
+ import type { AstNode, SpecialExpressionNode } from '../../parser/types';
3
3
  import type { BuiltinSpecialExpression } from '../interface';
4
4
  import type { specialExpressionTypes } from '../specialExpressionTypes';
5
- export type AndNode = SpecialExpressionNode<[typeof specialExpressionTypes['&&'], Node[]]>;
5
+ export type AndNode = SpecialExpressionNode<[typeof specialExpressionTypes['&&'], AstNode[]]>;
6
6
  export declare const andSpecialExpression: BuiltinSpecialExpression<Any, AndNode>;
@@ -1,6 +1,6 @@
1
1
  import type { Any } from '../../interface';
2
- import type { Node, SpecialExpressionNode } from '../../parser/types';
2
+ import type { AstNode, SpecialExpressionNode } from '../../parser/types';
3
3
  import type { BuiltinSpecialExpression } from '../interface';
4
4
  import type { specialExpressionTypes } from '../specialExpressionTypes';
5
- export type ArrayNode = SpecialExpressionNode<[typeof specialExpressionTypes['array'], Node[]]>;
5
+ export type ArrayNode = SpecialExpressionNode<[typeof specialExpressionTypes['array'], AstNode[]]>;
6
6
  export declare const arraySpecialExpression: BuiltinSpecialExpression<Any, ArrayNode>;
@@ -1,6 +1,6 @@
1
1
  import type { Any } from '../../interface';
2
- import type { Node, SpecialExpressionNode } from '../../parser/types';
2
+ import type { AstNode, SpecialExpressionNode } from '../../parser/types';
3
3
  import type { BuiltinSpecialExpression } from '../interface';
4
4
  import type { specialExpressionTypes } from '../specialExpressionTypes';
5
- export type DoNode = SpecialExpressionNode<[typeof specialExpressionTypes['block'], Node[]]>;
5
+ export type DoNode = SpecialExpressionNode<[typeof specialExpressionTypes['block'], AstNode[]]>;
6
6
  export declare const doSpecialExpression: BuiltinSpecialExpression<Any, DoNode>;
@@ -1,6 +1,6 @@
1
1
  import type { Any } from '../../interface';
2
- import type { Node, SpecialExpressionNode } from '../../parser/types';
2
+ import type { AstNode, SpecialExpressionNode } from '../../parser/types';
3
3
  import type { BuiltinSpecialExpression } from '../interface';
4
4
  import type { specialExpressionTypes } from '../specialExpressionTypes';
5
- export type CondNode = SpecialExpressionNode<[typeof specialExpressionTypes['cond'], [Node, Node][]]>;
5
+ export type CondNode = SpecialExpressionNode<[typeof specialExpressionTypes['cond'], [AstNode, AstNode][]]>;
6
6
  export declare const condSpecialExpression: BuiltinSpecialExpression<Any, CondNode>;
@@ -1,6 +1,6 @@
1
1
  import type { Any } from '../../interface';
2
- import type { Node, SpecialExpressionNode } from '../../parser/types';
2
+ import type { AstNode, SpecialExpressionNode } from '../../parser/types';
3
3
  import type { BuiltinSpecialExpression } from '../interface';
4
4
  import type { specialExpressionTypes } from '../specialExpressionTypes';
5
- export type IfNode = SpecialExpressionNode<[typeof specialExpressionTypes['if'], [Node, Node, Node?]]>;
5
+ export type IfNode = SpecialExpressionNode<[typeof specialExpressionTypes['if'], [AstNode, AstNode, AstNode?]]>;
6
6
  export declare const ifSpecialExpression: BuiltinSpecialExpression<Any, IfNode>;
@@ -1,6 +1,6 @@
1
1
  import type { Any } from '../../interface';
2
- import type { BindingNode, Node, SpecialExpressionNode } from '../../parser/types';
2
+ import type { AstNode, BindingNode, SpecialExpressionNode } from '../../parser/types';
3
3
  import type { BuiltinSpecialExpression } from '../interface';
4
4
  import type { specialExpressionTypes } from '../specialExpressionTypes';
5
- export type LoopNode = SpecialExpressionNode<[typeof specialExpressionTypes['loop'], BindingNode[], Node]>;
5
+ export type LoopNode = SpecialExpressionNode<[typeof specialExpressionTypes['loop'], BindingNode[], AstNode]>;
6
6
  export declare const loopSpecialExpression: BuiltinSpecialExpression<Any, LoopNode>;
@@ -1,9 +1,9 @@
1
1
  import type { Any } from '../../interface';
2
- import type { BindingNode, Node, SpecialExpressionNode } from '../../parser/types';
2
+ import type { AstNode, BindingNode, SpecialExpressionNode } from '../../parser/types';
3
3
  import type { BuiltinSpecialExpression } from '../interface';
4
4
  import type { specialExpressionTypes } from '../specialExpressionTypes';
5
- export type LoopBindingNode = [BindingNode, BindingNode[], Node?, Node?];
6
- export type ForNode = SpecialExpressionNode<[typeof specialExpressionTypes['for'], LoopBindingNode[], Node]>;
7
- export type DoSeqNode = SpecialExpressionNode<[typeof specialExpressionTypes['doseq'], LoopBindingNode[], Node]>;
5
+ export type LoopBindingNode = [BindingNode, BindingNode[], AstNode?, AstNode?];
6
+ export type ForNode = SpecialExpressionNode<[typeof specialExpressionTypes['for'], LoopBindingNode[], AstNode]>;
7
+ export type DoSeqNode = SpecialExpressionNode<[typeof specialExpressionTypes['doseq'], LoopBindingNode[], AstNode]>;
8
8
  export declare const forSpecialExpression: BuiltinSpecialExpression<Any, ForNode>;
9
9
  export declare const doseqSpecialExpression: BuiltinSpecialExpression<null, DoSeqNode>;
@@ -1,6 +1,6 @@
1
1
  import type { Any } from '../../interface';
2
- import type { Node, SpecialExpressionNode } from '../../parser/types';
2
+ import type { AstNode, SpecialExpressionNode } from '../../parser/types';
3
3
  import type { BuiltinSpecialExpression } from '../interface';
4
4
  import type { specialExpressionTypes } from '../specialExpressionTypes';
5
- export type ObjectNode = SpecialExpressionNode<[typeof specialExpressionTypes['object'], Node[]]>;
5
+ export type ObjectNode = SpecialExpressionNode<[typeof specialExpressionTypes['object'], AstNode[]]>;
6
6
  export declare const objectSpecialExpression: BuiltinSpecialExpression<Any, ObjectNode>;
@@ -1,6 +1,6 @@
1
1
  import type { Any } from '../../interface';
2
- import type { Node, SpecialExpressionNode } from '../../parser/types';
2
+ import type { AstNode, SpecialExpressionNode } from '../../parser/types';
3
3
  import type { BuiltinSpecialExpression } from '../interface';
4
4
  import type { specialExpressionTypes } from '../specialExpressionTypes';
5
- export type OrNode = SpecialExpressionNode<[typeof specialExpressionTypes['||'], Node[]]>;
5
+ export type OrNode = SpecialExpressionNode<[typeof specialExpressionTypes['||'], AstNode[]]>;
6
6
  export declare const orSpecialExpression: BuiltinSpecialExpression<Any, OrNode>;
@@ -1,6 +1,6 @@
1
1
  import type { Any } from '../../interface';
2
- import type { Node, SpecialExpressionNode } from '../../parser/types';
2
+ import type { AstNode, SpecialExpressionNode } from '../../parser/types';
3
3
  import type { BuiltinSpecialExpression } from '../interface';
4
4
  import type { specialExpressionTypes } from '../specialExpressionTypes';
5
- export type QqNode = SpecialExpressionNode<[typeof specialExpressionTypes['??'], Node[]]>;
5
+ export type QqNode = SpecialExpressionNode<[typeof specialExpressionTypes['??'], AstNode[]]>;
6
6
  export declare const qqSpecialExpression: BuiltinSpecialExpression<Any, QqNode>;
@@ -1,5 +1,5 @@
1
- import type { Node, SpecialExpressionNode } from '../../parser/types';
1
+ import type { AstNode, SpecialExpressionNode } from '../../parser/types';
2
2
  import type { BuiltinSpecialExpression } from '../interface';
3
3
  import type { specialExpressionTypes } from '../specialExpressionTypes';
4
- export type RecurNode = SpecialExpressionNode<[typeof specialExpressionTypes['recur'], Node[]]>;
4
+ export type RecurNode = SpecialExpressionNode<[typeof specialExpressionTypes['recur'], AstNode[]]>;
5
5
  export declare const recurSpecialExpression: BuiltinSpecialExpression<null, RecurNode>;
@@ -1,6 +1,6 @@
1
1
  import type { Any } from '../../interface';
2
- import type { Node, SpecialExpressionNode } from '../../parser/types';
2
+ import type { AstNode, SpecialExpressionNode } from '../../parser/types';
3
3
  import type { BuiltinSpecialExpression } from '../interface';
4
4
  import type { specialExpressionTypes } from '../specialExpressionTypes';
5
- export type SwitchNode = SpecialExpressionNode<[typeof specialExpressionTypes['switch'], Node, [Node, Node][]]>;
5
+ export type SwitchNode = SpecialExpressionNode<[typeof specialExpressionTypes['switch'], AstNode, [AstNode, AstNode][]]>;
6
6
  export declare const switchSpecialExpression: BuiltinSpecialExpression<Any, SwitchNode>;
@@ -1,5 +1,5 @@
1
- import type { Node, SpecialExpressionNode } from '../../parser/types';
1
+ import type { AstNode, SpecialExpressionNode } from '../../parser/types';
2
2
  import type { BuiltinSpecialExpression } from '../interface';
3
3
  import type { specialExpressionTypes } from '../specialExpressionTypes';
4
- export type ThrowNode = SpecialExpressionNode<[typeof specialExpressionTypes['throw'], Node]>;
4
+ export type ThrowNode = SpecialExpressionNode<[typeof specialExpressionTypes['throw'], AstNode]>;
5
5
  export declare const throwSpecialExpression: BuiltinSpecialExpression<null, ThrowNode>;
@@ -1,6 +1,6 @@
1
1
  import type { Any } from '../../interface';
2
- import type { Node, SpecialExpressionNode, SymbolNode } from '../../parser/types';
2
+ import type { AstNode, SpecialExpressionNode, SymbolNode } from '../../parser/types';
3
3
  import type { BuiltinSpecialExpression } from '../interface';
4
4
  import type { specialExpressionTypes } from '../specialExpressionTypes';
5
- export type TryNode = SpecialExpressionNode<[typeof specialExpressionTypes['try'], Node, SymbolNode | undefined, Node]>;
5
+ export type TryNode = SpecialExpressionNode<[typeof specialExpressionTypes['try'], AstNode, SymbolNode | undefined, AstNode]>;
6
6
  export declare const trySpecialExpression: BuiltinSpecialExpression<Any, TryNode>;
@@ -1,6 +1,6 @@
1
1
  import type { Any } from '../../interface';
2
- import type { Node, SpecialExpressionNode } from '../../parser/types';
2
+ import type { AstNode, SpecialExpressionNode } from '../../parser/types';
3
3
  import type { BuiltinSpecialExpression } from '../interface';
4
4
  import type { specialExpressionTypes } from '../specialExpressionTypes';
5
- export type UnlessNode = SpecialExpressionNode<[typeof specialExpressionTypes['unless'], [Node, Node, Node?]]>;
5
+ export type UnlessNode = SpecialExpressionNode<[typeof specialExpressionTypes['unless'], [AstNode, AstNode, AstNode?]]>;
6
6
  export declare const unlessSpecialExpression: BuiltinSpecialExpression<Any, UnlessNode>;
@@ -1,6 +1,6 @@
1
1
  import type { ContextStack } from '../evaluator/ContextStack';
2
- import type { BindingTarget, Node } from '../parser/types';
2
+ import type { AstNode, BindingTarget } from '../parser/types';
3
3
  import type { SourceCodeInfo } from '../tokenizer/token';
4
4
  import type { Builtin } from './interface';
5
- export type Function = [BindingTarget[], Node[]];
5
+ export type Function = [BindingTarget[], AstNode[]];
6
6
  export declare function assertNameNotDefined<T>(name: T, contextStack: ContextStack, builtin: Builtin, sourceCodeInfo?: SourceCodeInfo): asserts name is T;
@@ -1,5 +1,5 @@
1
1
  import type { Any } from '../interface';
2
- import type { Ast, Node } from '../parser/types';
2
+ import type { Ast, AstNode } from '../parser/types';
3
3
  import type { ContextStack } from './ContextStack';
4
4
  export declare function evaluate(ast: Ast, contextStack: ContextStack): Any;
5
- export declare function evaluateNode(node: Node, contextStack: ContextStack): Any;
5
+ export declare function evaluateNode(node: AstNode, contextStack: ContextStack): Any;
@@ -1,12 +1,13 @@
1
1
  import type { Any, Arr } from '../interface';
2
- import type { FunctionLike, Node } from '../parser/types';
2
+ import type { AstNode, FunctionLike } from '../parser/types';
3
3
  import type { SourceCodeInfo } from '../tokenizer/token';
4
4
  import type { ContextStack } from './ContextStack';
5
- export interface ContextEntry {
5
+ interface ContextEntry {
6
6
  value: Any;
7
7
  }
8
8
  export type Context = Record<string, ContextEntry>;
9
- export type EvaluateNode = (node: Node, contextStack: ContextStack) => Any;
9
+ export type EvaluateNode = (node: AstNode, contextStack: ContextStack) => Any;
10
10
  export type ExecuteFunction = (fn: FunctionLike, params: Arr, contextStack: ContextStack, sourceCodeInfo?: SourceCodeInfo) => Any;
11
11
  export type LookUpResult = ContextEntry | null;
12
12
  export declare function isContextEntry(value: unknown): value is ContextEntry;
13
+ export {};
@@ -1,7 +1,7 @@
1
1
  import type { Builtin } from '../builtin/interface';
2
2
  import type { ContextStack } from '../evaluator/ContextStack';
3
3
  import type { EvaluateNode } from '../evaluator/interface';
4
- import type { Ast, Node } from '../parser/types';
4
+ import type { Ast, AstNode } from '../parser/types';
5
5
  export type UndefinedSymbols = Set<string>;
6
6
  export declare const getUndefinedSymbols: GetUndefinedSymbols;
7
- export type GetUndefinedSymbols = (ast: Ast | Node[], contextStack: ContextStack, builtin: Builtin, evaluateNode: EvaluateNode) => UndefinedSymbols;
7
+ export type GetUndefinedSymbols = (ast: Ast | AstNode[], contextStack: ContextStack, builtin: Builtin, evaluateNode: EvaluateNode) => UndefinedSymbols;
@@ -0,0 +1,20 @@
1
+ import type { SourceCodeInfo, Token } from '../tokenizer/token';
2
+ import type { TokenStream } from '../tokenizer/tokenize';
3
+ import type { AstNode } from './types';
4
+ export declare class ParserContext {
5
+ private readonly tokens;
6
+ private position;
7
+ private storedPosition;
8
+ parseExpression: (precedence?: number, moduleScope?: boolean) => AstNode;
9
+ constructor(tokenStream: TokenStream);
10
+ advance(): void;
11
+ tryPeek(): Token | undefined;
12
+ peek(): Token;
13
+ isAtEnd(): boolean;
14
+ peekSourceCodeInfo(): SourceCodeInfo | undefined;
15
+ storePosition(): number;
16
+ restorePosition(): void;
17
+ peekAhead(count: number): Token | undefined;
18
+ getPosition(): number;
19
+ getTokenAt(pos: number): Token | undefined;
20
+ }
@@ -0,0 +1,19 @@
1
+ import type { OperatorToken, SourceCodeInfo } from '../tokenizer/token';
2
+ import type { AstNode, BindingTarget, NormalBuiltinSymbolNode, NormalExpressionNodeWithName, SymbolNode, UserDefinedSymbolNode } from './types';
3
+ import type { ParserContext } from './ParserContext';
4
+ export declare const exponentiationPrecedence = 12;
5
+ export declare const binaryFunctionalOperatorPrecedence = 3;
6
+ export declare const conditionalOperatorPrecedence = 1;
7
+ export declare function withSourceCodeInfo<T extends AstNode | BindingTarget>(node: T, sourceCodeInfo: SourceCodeInfo | undefined): T;
8
+ export declare function stringToSymbolNode(value: string, sourceCodeInfo: SourceCodeInfo | undefined): SymbolNode;
9
+ export declare function stringFromQuotedSymbol(value: string): string;
10
+ /**
11
+ * Extract the symbol name from any symbol node type.
12
+ * UserDefinedSymbolNode: node[1] is the string name
13
+ * NormalBuiltinSymbolNode: node[1] is an index, need reverse lookup
14
+ * SpecialBuiltinSymbolNode: node[1] is an index, need reverse lookup
15
+ */
16
+ export declare function getSymbolName(symbol: SymbolNode): string;
17
+ export declare function createNamedNormalExpressionNode(symbolNode: NormalBuiltinSymbolNode | UserDefinedSymbolNode, params: AstNode[], sourceCodeInfo: SourceCodeInfo | undefined): NormalExpressionNodeWithName;
18
+ export declare function isAtExpressionEnd(ctx: ParserContext): boolean;
19
+ export declare function fromBinaryOperatorToNode(operator: OperatorToken, symbolNode: SymbolNode, left: AstNode, right: AstNode, sourceCodeInfo: SourceCodeInfo | undefined): AstNode;
@@ -0,0 +1,3 @@
1
+ import type { TokenStream } from '../tokenizer/tokenize';
2
+ import type { AstNode } from './types';
3
+ export declare function parse(tokenStream: TokenStream): AstNode[];
@@ -0,0 +1,3 @@
1
+ import type { SourceCodeInfo } from '../../tokenizer/token';
2
+ import type { SymbolicBinaryOperator } from '../../tokenizer/operators';
3
+ export declare function getPrecedence(operatorSign: SymbolicBinaryOperator, sourceCodeInfo: SourceCodeInfo | undefined): number;
@@ -0,0 +1,3 @@
1
+ import type { ArrayNode } from '../../builtin/specialExpressions/array';
2
+ import type { ParserContext } from '../ParserContext';
3
+ export declare function parseArray(ctx: ParserContext): ArrayNode;
@@ -0,0 +1,6 @@
1
+ import type { BindingTarget } from '../types';
2
+ import type { ParserContext } from '../ParserContext';
3
+ export declare function parseBindingTarget(ctx: ParserContext, { requireDefaultValue, noRest }?: {
4
+ requireDefaultValue?: true;
5
+ noRest?: true;
6
+ }): BindingTarget;
@@ -0,0 +1,4 @@
1
+ import type { CondNode } from '../../builtin/specialExpressions/cond';
2
+ import { type SymbolToken } from '../../tokenizer/token';
3
+ import type { ParserContext } from '../ParserContext';
4
+ export declare function parseCond(ctx: ParserContext, token: SymbolToken): CondNode;
@@ -0,0 +1,3 @@
1
+ import type { DoNode } from '../../builtin/specialExpressions/block';
2
+ import type { ParserContext } from '../ParserContext';
3
+ export declare function parseDo(ctx: ParserContext, allowDocString?: boolean): [DoNode, string];
@@ -0,0 +1,4 @@
1
+ import type { DoSeqNode, ForNode } from '../../builtin/specialExpressions/loops';
2
+ import type { SymbolToken } from '../../tokenizer/token';
3
+ import type { ParserContext } from '../ParserContext';
4
+ export declare function parseForOrDoseq(ctx: ParserContext, firstToken: SymbolToken): ForNode | DoSeqNode;
@@ -0,0 +1,4 @@
1
+ import type { LambdaNode } from '../../builtin/specialExpressions/functions';
2
+ import type { ParserContext } from '../ParserContext';
3
+ export declare function parseLambdaFunction(ctx: ParserContext): LambdaNode | null;
4
+ export declare function parseShorthandLambdaFunction(ctx: ParserContext): LambdaNode;
@@ -0,0 +1,3 @@
1
+ import type { AstNode } from '../types';
2
+ import type { ParserContext } from '../ParserContext';
3
+ export declare function parseFunctionCall(ctx: ParserContext, symbol: AstNode): AstNode;
@@ -0,0 +1,5 @@
1
+ import type { IfNode } from '../../builtin/specialExpressions/if';
2
+ import type { UnlessNode } from '../../builtin/specialExpressions/unless';
3
+ import type { SymbolToken } from '../../tokenizer/token';
4
+ import type { ParserContext } from '../ParserContext';
5
+ export declare function parseIfOrUnless(ctx: ParserContext, token: SymbolToken): IfNode | UnlessNode;
@@ -0,0 +1,5 @@
1
+ import type { AstNode } from '../types';
2
+ import type { ParserContext } from '../ParserContext';
3
+ type ImplicitBlockEnd = 'end' | 'else' | 'catch' | 'case';
4
+ export declare function parseImplicitBlock(ctx: ParserContext, ends: ImplicitBlockEnd[]): AstNode;
5
+ export {};
@@ -0,0 +1,4 @@
1
+ import type { LetNode } from '../../builtin/specialExpressions/let';
2
+ import type { SymbolToken } from '../../tokenizer/token';
3
+ import type { ParserContext } from '../ParserContext';
4
+ export declare function parseLet(ctx: ParserContext, token: SymbolToken): LetNode;
@@ -0,0 +1,4 @@
1
+ import type { LoopNode } from '../../builtin/specialExpressions/loop';
2
+ import type { SymbolToken } from '../../tokenizer/token';
3
+ import type { ParserContext } from '../ParserContext';
4
+ export declare function parseLoop(ctx: ParserContext, firstToken: SymbolToken): LoopNode;
@@ -0,0 +1,3 @@
1
+ import type { NumberNode } from '../types';
2
+ import type { ParserContext } from '../ParserContext';
3
+ export declare function parseNumber(ctx: ParserContext): NumberNode;
@@ -0,0 +1,3 @@
1
+ import type { ObjectNode } from '../../builtin/specialExpressions/object';
2
+ import type { ParserContext } from '../ParserContext';
3
+ export declare function parseObject(ctx: ParserContext): ObjectNode;
@@ -0,0 +1,3 @@
1
+ import type { AstNode } from '../types';
2
+ import type { ParserContext } from '../ParserContext';
3
+ export declare function parseOperand(ctx: ParserContext): AstNode;
@@ -0,0 +1,3 @@
1
+ import type { NormalExpressionNodeWithName } from '../types';
2
+ import type { ParserContext } from '../ParserContext';
3
+ export declare function parseRegexpShorthand(ctx: ParserContext): NormalExpressionNodeWithName;
@@ -0,0 +1,3 @@
1
+ import type { NumberNode, ReservedSymbolNode } from '../types';
2
+ import type { ParserContext } from '../ParserContext';
3
+ export declare function parseReservedSymbol(ctx: ParserContext): ReservedSymbolNode | NumberNode;
@@ -0,0 +1,4 @@
1
+ import type { StringNode } from '../types';
2
+ import type { StringToken } from '../../tokenizer/token';
3
+ import type { ParserContext } from '../ParserContext';
4
+ export declare function parseString(ctx: ParserContext, token: StringToken): StringNode;
@@ -0,0 +1,4 @@
1
+ import type { SwitchNode } from '../../builtin/specialExpressions/switch';
2
+ import { type SymbolToken } from '../../tokenizer/token';
3
+ import type { ParserContext } from '../ParserContext';
4
+ export declare function parseSwitch(ctx: ParserContext, token: SymbolToken): SwitchNode;
@@ -0,0 +1,3 @@
1
+ import type { NormalBuiltinSymbolNode, SpecialBuiltinSymbolNode, SymbolNode } from '../types';
2
+ import type { ParserContext } from '../ParserContext';
3
+ export declare function parseSymbol(ctx: ParserContext): SymbolNode | NormalBuiltinSymbolNode | SpecialBuiltinSymbolNode;
@@ -0,0 +1,4 @@
1
+ import type { TryNode } from '../../builtin/specialExpressions/try';
2
+ import type { SymbolToken } from '../../tokenizer/token';
3
+ import type { ParserContext } from '../ParserContext';
4
+ export declare function parseTry(ctx: ParserContext, token: SymbolToken): TryNode;
@@ -6,12 +6,9 @@ import type { FunctionType, NodeType, NodeTypes } from '../constants/constants';
6
6
  import type { Context } from '../evaluator/interface';
7
7
  import type { Any, Arr, Coll } from '../interface';
8
8
  import type { ReservedSymbol } from '../tokenizer/reservedNames';
9
- import type { SourceCodeInfo, Token } from '../tokenizer/token';
9
+ import type { SourceCodeInfo } from '../tokenizer/token';
10
10
  import type { FUNCTION_SYMBOL, REGEXP_SYMBOL } from '../utils/symbols';
11
- export interface ParseState {
12
- position: number;
13
- }
14
- export type EvaluatedFunction = [BindingTarget[], Node[], Context];
11
+ export type EvaluatedFunction = [BindingTarget[], AstNode[], Context];
15
12
  interface GenericLitsFunction {
16
13
  [FUNCTION_SYMBOL]: true;
17
14
  sourceCodeInfo?: SourceCodeInfo;
@@ -93,23 +90,19 @@ export interface ModuleFunction extends GenericLitsFunction {
93
90
  export type LitsFunction = NativeJsFunction | UserDefinedFunction | NormalBuiltinFunction | SpecialBuiltinFunction | ModuleFunction | PartialFunction | CompFunction | ConstantlyFunction | JuxtFunction | ComplementFunction | EveryPredFunction | SomePredFunction | FNullFunction;
94
91
  export type LitsFunctionType = LitsFunction['functionType'];
95
92
  export type FunctionLike = LitsFunction | Coll | number;
96
- export type DebugData = {
97
- token: Token;
98
- nameToken?: Token;
99
- };
100
- export type Node<T extends NodeType = NodeType, Payload = unknown> = [T, Payload] | [T, Payload, SourceCodeInfo];
93
+ export type AstNode<T extends NodeType = NodeType, Payload = unknown> = [T, Payload] | [T, Payload, SourceCodeInfo];
101
94
  export type ExpressionNode = NormalExpressionNode | SpecialExpressionNode | NumberNode | StringNode;
102
- export type SpreadNode = Node<typeof NodeTypes.Spread, Node>;
103
- export type NumberNode = Node<typeof NodeTypes.Number, number>;
104
- export type StringNode = Node<typeof NodeTypes.String, string>;
105
- export type UserDefinedSymbolNode = Node<typeof NodeTypes.UserDefinedSymbol, string>;
106
- export type NormalBuiltinSymbolNode = Node<typeof NodeTypes.NormalBuiltinSymbol, number>;
107
- export type SpecialBuiltinSymbolNode = Node<typeof NodeTypes.SpecialBuiltinSymbol, SpecialExpressionType>;
95
+ export type SpreadNode = AstNode<typeof NodeTypes.Spread, AstNode>;
96
+ export type NumberNode = AstNode<typeof NodeTypes.Number, number>;
97
+ export type StringNode = AstNode<typeof NodeTypes.String, string>;
98
+ export type UserDefinedSymbolNode = AstNode<typeof NodeTypes.UserDefinedSymbol, string>;
99
+ export type NormalBuiltinSymbolNode = AstNode<typeof NodeTypes.NormalBuiltinSymbol, number>;
100
+ export type SpecialBuiltinSymbolNode = AstNode<typeof NodeTypes.SpecialBuiltinSymbol, SpecialExpressionType>;
108
101
  export type SymbolNode = UserDefinedSymbolNode | NormalBuiltinSymbolNode | SpecialBuiltinSymbolNode;
109
- export type ReservedSymbolNode = Node<typeof NodeTypes.ReservedSymbol, ReservedSymbol>;
110
- export type SpecialExpressionNode<T extends [SpecialExpressionType, ...unknown[]] = [SpecialExpressionType, ...unknown[]]> = Node<typeof NodeTypes.SpecialExpression, T>;
111
- export type NormalExpressionNodeWithName = Node<typeof NodeTypes.NormalExpression, [NormalBuiltinSymbolNode | UserDefinedSymbolNode, Node[]]>;
112
- export type NormalExpressionNodeExpression = Node<typeof NodeTypes.NormalExpression, [Node, Node[]]>;
102
+ export type ReservedSymbolNode = AstNode<typeof NodeTypes.ReservedSymbol, ReservedSymbol>;
103
+ export type SpecialExpressionNode<T extends [SpecialExpressionType, ...unknown[]] = [SpecialExpressionType, ...unknown[]]> = AstNode<typeof NodeTypes.SpecialExpression, T>;
104
+ export type NormalExpressionNodeWithName = AstNode<typeof NodeTypes.NormalExpression, [NormalBuiltinSymbolNode | UserDefinedSymbolNode, AstNode[]]>;
105
+ export type NormalExpressionNodeExpression = AstNode<typeof NodeTypes.NormalExpression, [AstNode, AstNode[]]>;
113
106
  export type NormalExpressionNode = NormalExpressionNodeWithName | NormalExpressionNodeExpression;
114
107
  export declare const bindingTargetTypes: {
115
108
  readonly symbol: 11;
@@ -119,13 +112,13 @@ export declare const bindingTargetTypes: {
119
112
  };
120
113
  export type BindingTargetType = typeof bindingTargetTypes[keyof typeof bindingTargetTypes];
121
114
  type GenericTarget<T extends BindingTargetType, Payload extends unknown[]> = [T, Payload] | [T, Payload, SourceCodeInfo];
122
- export type SymbolBindingTarget = GenericTarget<typeof bindingTargetTypes.symbol, [SymbolNode, Node | undefined]>;
123
- export type RestBindingTarget = GenericTarget<typeof bindingTargetTypes.rest, [string, Node | undefined]>;
124
- export type ObjectBindingTarget = GenericTarget<typeof bindingTargetTypes.object, [Record<string, BindingTarget>, Node | undefined]>;
125
- export type ArrayBindingTarget = GenericTarget<typeof bindingTargetTypes.array, [(BindingTarget | null)[], Node | undefined]>;
115
+ export type SymbolBindingTarget = GenericTarget<typeof bindingTargetTypes.symbol, [SymbolNode, AstNode | undefined]>;
116
+ export type RestBindingTarget = GenericTarget<typeof bindingTargetTypes.rest, [string, AstNode | undefined]>;
117
+ export type ObjectBindingTarget = GenericTarget<typeof bindingTargetTypes.object, [Record<string, BindingTarget>, AstNode | undefined]>;
118
+ export type ArrayBindingTarget = GenericTarget<typeof bindingTargetTypes.array, [(BindingTarget | null)[], AstNode | undefined]>;
126
119
  export type BindingTarget = SymbolBindingTarget | RestBindingTarget | ObjectBindingTarget | ArrayBindingTarget;
127
- export type BindingNode = Node<typeof NodeTypes.Binding, [BindingTarget, Node]>;
128
- type AstBody = Node[];
120
+ export type BindingNode = AstNode<typeof NodeTypes.Binding, [BindingTarget, AstNode]>;
121
+ type AstBody = AstNode[];
129
122
  export interface Ast {
130
123
  body: AstBody;
131
124
  hasDebugData: boolean;
@@ -1,8 +1,8 @@
1
- export interface RunTestParams {
1
+ interface RunTestParams {
2
2
  testPath: string;
3
3
  testNamePattern?: RegExp;
4
4
  }
5
- export interface TestResult {
5
+ interface TestResult {
6
6
  /**
7
7
  * Test report
8
8
  * http://testanything.org/
@@ -12,3 +12,4 @@ export interface TestResult {
12
12
  }
13
13
  export declare function runTest({ testPath: filePath, testNamePattern }: RunTestParams): TestResult;
14
14
  export declare function getErrorYaml(error: unknown): string;
15
+ export {};
@@ -2,8 +2,6 @@ import type { ReservedSymbol } from './reservedNames';
2
2
  import { type SymbolicBinaryOperator, type SymbolicOperator } from './operators';
3
3
  export declare const tokenTypes: readonly ["LBrace", "LBracket", "RBrace", "RBracket", "LParen", "RParen", "BasePrefixedNumber", "DocString", "Error", "MultiLineComment", "Number", "Operator", "RegexpShorthand", "ReservedSymbol", "SingleLineComment", "Shebang", "string", "Symbol", "Whitespace"];
4
4
  export type TokenType = typeof tokenTypes[number];
5
- declare const modifierNames: readonly ["&rest", "&let", "&when", "&while"];
6
- export type ModifierName = typeof modifierNames[number];
7
5
  type GenericToken<T extends TokenType, V extends string = string> = [T, V] | [T, V, SourceCodeInfo];
8
6
  export type ErrorToken = ['Error', string, SourceCodeInfo | undefined, string];
9
7
  export type LBraceToken = GenericToken<'LBrace', '{'>;
@@ -1,8 +1,7 @@
1
1
  import type { BasePrefixedNumberToken, DocStringToken, ErrorToken, LBraceToken, LBracketToken, LParenToken, MultiLineCommentToken, NumberToken, OperatorToken, RBraceToken, RBracketToken, RParenToken, RegexpShorthandToken, ReservedSymbolToken, SingleLineCommentToken, StringToken, SymbolToken, Token, TokenDescriptor, WhitespaceToken } from './token';
2
- export type Tokenizer<T extends Token> = (input: string, position: number) => TokenDescriptor<T | ErrorToken>;
2
+ type Tokenizer<T extends Token> = (input: string, position: number) => TokenDescriptor<T | ErrorToken>;
3
3
  export declare const NO_MATCH: TokenDescriptor<never>;
4
4
  export declare const tokenizeDocString: Tokenizer<DocStringToken>;
5
- export declare const tokenizeWhitespace: Tokenizer<WhitespaceToken>;
6
5
  export declare const tokenizeNumber: Tokenizer<NumberToken>;
7
6
  export declare const tokenizeBasePrefixedNumber: Tokenizer<BasePrefixedNumberToken>;
8
7
  export declare const tokenizeSymbol: Tokenizer<SymbolToken>;
@@ -12,3 +11,4 @@ export declare const tokenizeMultiLineComment: Tokenizer<MultiLineCommentToken>;
12
11
  export declare const tokenizeShebang: Tokenizer<SingleLineCommentToken>;
13
12
  export declare const tokenizeSingleLineComment: Tokenizer<SingleLineCommentToken>;
14
13
  export declare const tokenizers: [Tokenizer<WhitespaceToken>, Tokenizer<MultiLineCommentToken>, Tokenizer<SingleLineCommentToken>, Tokenizer<ReservedSymbolToken>, Tokenizer<LParenToken>, Tokenizer<RParenToken>, Tokenizer<LBracketToken>, Tokenizer<RBracketToken>, Tokenizer<LBraceToken>, Tokenizer<RBraceToken>, Tokenizer<DocStringToken>, Tokenizer<StringToken>, Tokenizer<RegexpShorthandToken>, Tokenizer<BasePrefixedNumberToken>, Tokenizer<NumberToken>, Tokenizer<OperatorToken>, Tokenizer<SymbolToken>];
14
+ export {};