@wildboar/asn1-parser 2.5.1 → 2.7.0

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 (226) hide show
  1. package/README.md +64 -13
  2. package/dist/cli.d.mts +3 -0
  3. package/dist/cli.d.mts.map +1 -0
  4. package/dist/cli.mjs +291 -0
  5. package/dist/cli.mjs.map +1 -0
  6. package/dist/index.d.mts +1 -0
  7. package/dist/index.d.mts.map +1 -1
  8. package/dist/index.mjs +1 -0
  9. package/dist/index.mjs.map +1 -1
  10. package/dist/lib/OptionalParser.d.mts.map +1 -1
  11. package/dist/lib/OptionalParser.mjs +1 -9
  12. package/dist/lib/OptionalParser.mjs.map +1 -1
  13. package/dist/lib/Parser.d.mts +3 -1
  14. package/dist/lib/Parser.d.mts.map +1 -1
  15. package/dist/lib/Parser.mjs +41 -10
  16. package/dist/lib/Parser.mjs.map +1 -1
  17. package/dist/lib/Production.d.mts +2 -0
  18. package/dist/lib/Production.d.mts.map +1 -1
  19. package/dist/lib/Production.mjs +13 -0
  20. package/dist/lib/Production.mjs.map +1 -1
  21. package/dist/lib/ProductionType.d.mts +2 -1
  22. package/dist/lib/ProductionType.d.mts.map +1 -1
  23. package/dist/lib/ProductionType.mjs +1 -0
  24. package/dist/lib/ProductionType.mjs.map +1 -1
  25. package/dist/lib/constructs/Assignment.d.mts.map +1 -1
  26. package/dist/lib/constructs/AssignmentTypes/ObjectAssignment.d.mts +2 -0
  27. package/dist/lib/constructs/AssignmentTypes/ObjectAssignment.d.mts.map +1 -1
  28. package/dist/lib/correct.d.mts.map +1 -1
  29. package/dist/lib/correct.mjs +120 -115
  30. package/dist/lib/correct.mjs.map +1 -1
  31. package/dist/lib/grokers/ConstraintSpecs/GeneralConstraint.d.mts.map +1 -1
  32. package/dist/lib/grokers/ConstraintSpecs/GeneralConstraint.mjs +22 -5
  33. package/dist/lib/grokers/ConstraintSpecs/GeneralConstraint.mjs.map +1 -1
  34. package/dist/lib/grokers/DefinitiveOID.mjs +1 -1
  35. package/dist/lib/grokers/DefinitiveOID.mjs.map +1 -1
  36. package/dist/lib/grokers/Module.d.mts.map +1 -1
  37. package/dist/lib/grokers/Module.mjs +2 -1
  38. package/dist/lib/grokers/Module.mjs.map +1 -1
  39. package/dist/lib/grokers/Types/SetOrSequenceType.d.mts.map +1 -1
  40. package/dist/lib/grokers/Types/SetOrSequenceType.mjs +30 -30
  41. package/dist/lib/grokers/Types/SetOrSequenceType.mjs.map +1 -1
  42. package/dist/lib/grokers/ValueSet.d.mts.map +1 -1
  43. package/dist/lib/grokers/ValueSet.mjs +6 -1
  44. package/dist/lib/grokers/ValueSet.mjs.map +1 -1
  45. package/dist/lib/interfaces/ParserState.d.mts +2 -0
  46. package/dist/lib/interfaces/ParserState.d.mts.map +1 -1
  47. package/dist/lib/interfaces/ParserState.mjs.map +1 -1
  48. package/dist/lib/lex.d.mts.map +1 -1
  49. package/dist/lib/lex.mjs +121 -95
  50. package/dist/lib/lex.mjs.map +1 -1
  51. package/dist/lib/maps/productionTypeToTypeTypeMap.d.mts.map +1 -1
  52. package/dist/lib/maps/productionTypeToTypeTypeMap.mjs +17 -0
  53. package/dist/lib/maps/productionTypeToTypeTypeMap.mjs.map +1 -1
  54. package/dist/lib/normalizers/Assignment/ObjectAssignment.mjs +1 -1
  55. package/dist/lib/normalizers/Assignment/ObjectAssignment.mjs.map +1 -1
  56. package/dist/lib/parse.d.mts.map +1 -1
  57. package/dist/lib/parse.mjs +20 -2
  58. package/dist/lib/parse.mjs.map +1 -1
  59. package/dist/lib/parseMemo.d.mts +18 -0
  60. package/dist/lib/parseMemo.d.mts.map +1 -0
  61. package/dist/lib/parseMemo.mjs +77 -0
  62. package/dist/lib/parseMemo.mjs.map +1 -0
  63. package/dist/lib/parsers/callbacks/Assignment.d.mts.map +1 -1
  64. package/dist/lib/parsers/callbacks/Assignment.mjs +6 -1
  65. package/dist/lib/parsers/callbacks/Assignment.mjs.map +1 -1
  66. package/dist/lib/parsers/callbacks/ObjectClassAssignment.d.mts.map +1 -1
  67. package/dist/lib/parsers/callbacks/ObjectClassAssignment.mjs +20 -10
  68. package/dist/lib/parsers/callbacks/ObjectClassAssignment.mjs.map +1 -1
  69. package/dist/lib/parsers/generic/aliasFor.d.mts.map +1 -1
  70. package/dist/lib/parsers/generic/aliasFor.mjs +4 -1
  71. package/dist/lib/parsers/generic/aliasFor.mjs.map +1 -1
  72. package/dist/lib/parsers/generic/anythingUntil.d.mts.map +1 -1
  73. package/dist/lib/parsers/generic/anythingUntil.mjs +35 -13
  74. package/dist/lib/parsers/generic/anythingUntil.mjs.map +1 -1
  75. package/dist/lib/parsers/generic/assert.d.mts.map +1 -1
  76. package/dist/lib/parsers/generic/assert.mjs +3 -0
  77. package/dist/lib/parsers/generic/assert.mjs.map +1 -1
  78. package/dist/lib/parsers/generic/choiceOf.d.mts.map +1 -1
  79. package/dist/lib/parsers/generic/choiceOf.mjs +7 -4
  80. package/dist/lib/parsers/generic/choiceOf.mjs.map +1 -1
  81. package/dist/lib/parsers/generic/dispatchOnToken.d.mts +8 -0
  82. package/dist/lib/parsers/generic/dispatchOnToken.d.mts.map +1 -0
  83. package/dist/lib/parsers/generic/dispatchOnToken.mjs +43 -0
  84. package/dist/lib/parsers/generic/dispatchOnToken.mjs.map +1 -0
  85. package/dist/lib/parsers/generic/doif.mjs +1 -1
  86. package/dist/lib/parsers/generic/doif.mjs.map +1 -1
  87. package/dist/lib/parsers/generic/index.d.mts +5 -0
  88. package/dist/lib/parsers/generic/index.d.mts.map +1 -1
  89. package/dist/lib/parsers/generic/index.mjs +5 -0
  90. package/dist/lib/parsers/generic/index.mjs.map +1 -1
  91. package/dist/lib/parsers/generic/limitConstructedNesting.d.mts +5 -0
  92. package/dist/lib/parsers/generic/limitConstructedNesting.d.mts.map +1 -0
  93. package/dist/lib/parsers/generic/limitConstructedNesting.mjs +30 -0
  94. package/dist/lib/parsers/generic/limitConstructedNesting.mjs.map +1 -0
  95. package/dist/lib/parsers/generic/literal.d.mts.map +1 -1
  96. package/dist/lib/parsers/generic/literal.mjs +37 -13
  97. package/dist/lib/parsers/generic/literal.mjs.map +1 -1
  98. package/dist/lib/parsers/generic/recursiveParser.d.mts.map +1 -1
  99. package/dist/lib/parsers/generic/recursiveParser.mjs +3 -1
  100. package/dist/lib/parsers/generic/recursiveParser.mjs.map +1 -1
  101. package/dist/lib/parsers/generic/recyclingSequenceOf.d.mts.map +1 -1
  102. package/dist/lib/parsers/generic/recyclingSequenceOf.mjs +10 -10
  103. package/dist/lib/parsers/generic/recyclingSequenceOf.mjs.map +1 -1
  104. package/dist/lib/parsers/generic/repeatable.d.mts.map +1 -1
  105. package/dist/lib/parsers/generic/repeatable.mjs +4 -0
  106. package/dist/lib/parsers/generic/repeatable.mjs.map +1 -1
  107. package/dist/lib/parsers/generic/tokenPeek.d.mts +12 -0
  108. package/dist/lib/parsers/generic/tokenPeek.d.mts.map +1 -0
  109. package/dist/lib/parsers/generic/tokenPeek.mjs +167 -0
  110. package/dist/lib/parsers/generic/tokenPeek.mjs.map +1 -0
  111. package/dist/lib/parsers/generic/when.d.mts +5 -0
  112. package/dist/lib/parsers/generic/when.d.mts.map +1 -0
  113. package/dist/lib/parsers/generic/when.mjs +12 -0
  114. package/dist/lib/parsers/generic/when.mjs.map +1 -0
  115. package/dist/lib/parsers/generic/whitespace.d.mts.map +1 -1
  116. package/dist/lib/parsers/generic/whitespace.mjs +1 -1
  117. package/dist/lib/parsers/generic/whitespace.mjs.map +1 -1
  118. package/dist/lib/parsers/generic/whitespaceIntolerantList.d.mts.map +1 -1
  119. package/dist/lib/parsers/generic/whitespaceIntolerantList.mjs +12 -5
  120. package/dist/lib/parsers/generic/whitespaceIntolerantList.mjs.map +1 -1
  121. package/dist/lib/parsers/generic/whitespaceTolerantSequenceOf.d.mts.map +1 -1
  122. package/dist/lib/parsers/generic/whitespaceTolerantSequenceOf.mjs +11 -1
  123. package/dist/lib/parsers/generic/whitespaceTolerantSequenceOf.mjs.map +1 -1
  124. package/dist/lib/parsers/optimized/ComponentType_NamedType.d.mts.map +1 -1
  125. package/dist/lib/parsers/optimized/ComponentType_NamedType.mjs +4 -2
  126. package/dist/lib/parsers/optimized/ComponentType_NamedType.mjs.map +1 -1
  127. package/dist/lib/parsers/optimized/FieldName_LowercasedFinalPrimitiveFieldName.mjs +2 -5
  128. package/dist/lib/parsers/optimized/FieldName_LowercasedFinalPrimitiveFieldName.mjs.map +1 -1
  129. package/dist/lib/parsers/optimized/FieldName_UppercasedFinalPrimitiveFieldName.mjs +2 -5
  130. package/dist/lib/parsers/optimized/FieldName_UppercasedFinalPrimitiveFieldName.mjs.map +1 -1
  131. package/dist/lib/parsers/optimized/Literal.d.mts.map +1 -1
  132. package/dist/lib/parsers/optimized/Literal.mjs +13 -6
  133. package/dist/lib/parsers/optimized/Literal.mjs.map +1 -1
  134. package/dist/lib/parsers/optimized/ParamGovernor.d.mts.map +1 -1
  135. package/dist/lib/parsers/optimized/ParamGovernor.mjs +9 -4
  136. package/dist/lib/parsers/optimized/ParamGovernor.mjs.map +1 -1
  137. package/dist/lib/parsers/optimized/Setting.d.mts.map +1 -1
  138. package/dist/lib/parsers/optimized/Setting.mjs +1 -1
  139. package/dist/lib/parsers/optimized/Setting.mjs.map +1 -1
  140. package/dist/lib/parsers/optimized/Type.d.mts.map +1 -1
  141. package/dist/lib/parsers/optimized/Type.mjs +13 -8
  142. package/dist/lib/parsers/optimized/Type.mjs.map +1 -1
  143. package/dist/lib/parsers/optimized/Value_listens_to_currentType.d.mts.map +1 -1
  144. package/dist/lib/parsers/optimized/Value_listens_to_currentType.mjs +40 -110
  145. package/dist/lib/parsers/optimized/Value_listens_to_currentType.mjs.map +1 -1
  146. package/dist/lib/parsers/specific/BuiltinType.d.mts +1 -1
  147. package/dist/lib/parsers/specific/BuiltinType.d.mts.map +1 -1
  148. package/dist/lib/parsers/specific/BuiltinType.mjs +59 -31
  149. package/dist/lib/parsers/specific/BuiltinType.mjs.map +1 -1
  150. package/dist/lib/parsers/specific/BuiltinValue.d.mts +1 -1
  151. package/dist/lib/parsers/specific/BuiltinValue.d.mts.map +1 -1
  152. package/dist/lib/parsers/specific/BuiltinValue.mjs +67 -18
  153. package/dist/lib/parsers/specific/BuiltinValue.mjs.map +1 -1
  154. package/dist/lib/parsers/specific/CharacterStringType.d.mts.map +1 -1
  155. package/dist/lib/parsers/specific/CharacterStringType.mjs +11 -5
  156. package/dist/lib/parsers/specific/CharacterStringType.mjs.map +1 -1
  157. package/dist/lib/parsers/specific/ChoiceType.mjs +2 -2
  158. package/dist/lib/parsers/specific/ChoiceType.mjs.map +1 -1
  159. package/dist/lib/parsers/specific/ChoiceValue.mjs +2 -2
  160. package/dist/lib/parsers/specific/ChoiceValue.mjs.map +1 -1
  161. package/dist/lib/parsers/specific/EncodingInstruction.d.mts.map +1 -1
  162. package/dist/lib/parsers/specific/EncodingInstruction.mjs.map +1 -1
  163. package/dist/lib/parsers/specific/EncodingInstructionAssignmentList.d.mts.map +1 -1
  164. package/dist/lib/parsers/specific/EncodingInstructionAssignmentList.mjs.map +1 -1
  165. package/dist/lib/parsers/specific/OpenTypeFieldVal.d.mts.map +1 -1
  166. package/dist/lib/parsers/specific/OpenTypeFieldVal.mjs +3 -3
  167. package/dist/lib/parsers/specific/OpenTypeFieldVal.mjs.map +1 -1
  168. package/dist/lib/parsers/specific/ParameterizedValueSetTypeAssignment.mjs +1 -1
  169. package/dist/lib/parsers/specific/ParameterizedValueSetTypeAssignment.mjs.map +1 -1
  170. package/dist/lib/parsers/specific/ReferencedType.d.mts +1 -1
  171. package/dist/lib/parsers/specific/ReferencedType.d.mts.map +1 -1
  172. package/dist/lib/parsers/specific/ReferencedType.mjs +38 -8
  173. package/dist/lib/parsers/specific/ReferencedType.mjs.map +1 -1
  174. package/dist/lib/parsers/specific/ReferencedValue.d.mts.map +1 -1
  175. package/dist/lib/parsers/specific/ReferencedValue.mjs +6 -2
  176. package/dist/lib/parsers/specific/ReferencedValue.mjs.map +1 -1
  177. package/dist/lib/parsers/specific/RestrictedCharacterStringType.d.mts.map +1 -1
  178. package/dist/lib/parsers/specific/RestrictedCharacterStringType.mjs +6 -16
  179. package/dist/lib/parsers/specific/RestrictedCharacterStringType.mjs.map +1 -1
  180. package/dist/lib/parsers/specific/SequenceOfType.mjs +2 -2
  181. package/dist/lib/parsers/specific/SequenceOfType.mjs.map +1 -1
  182. package/dist/lib/parsers/specific/SequenceOfValue.mjs +2 -2
  183. package/dist/lib/parsers/specific/SequenceOfValue.mjs.map +1 -1
  184. package/dist/lib/parsers/specific/SequenceType.mjs +2 -2
  185. package/dist/lib/parsers/specific/SequenceType.mjs.map +1 -1
  186. package/dist/lib/parsers/specific/SequenceValue.mjs +2 -2
  187. package/dist/lib/parsers/specific/SequenceValue.mjs.map +1 -1
  188. package/dist/lib/parsers/specific/SetOfType.mjs +2 -2
  189. package/dist/lib/parsers/specific/SetOfType.mjs.map +1 -1
  190. package/dist/lib/parsers/specific/SetOfValue.mjs +2 -2
  191. package/dist/lib/parsers/specific/SetOfValue.mjs.map +1 -1
  192. package/dist/lib/parsers/specific/SetType.mjs +2 -2
  193. package/dist/lib/parsers/specific/SetType.mjs.map +1 -1
  194. package/dist/lib/parsers/specific/SetValue.mjs +2 -2
  195. package/dist/lib/parsers/specific/SetValue.mjs.map +1 -1
  196. package/dist/lib/parsers/specific/TypeWithConstraint.mjs +2 -2
  197. package/dist/lib/parsers/specific/TypeWithConstraint.mjs.map +1 -1
  198. package/dist/lib/parsers/specific/UsefulType.d.mts.map +1 -1
  199. package/dist/lib/parsers/specific/UsefulType.mjs +16 -6
  200. package/dist/lib/parsers/specific/UsefulType.mjs.map +1 -1
  201. package/dist/lib/parsers/specific/UserDefinedConstraintParameter.d.mts.map +1 -1
  202. package/dist/lib/parsers/specific/UserDefinedConstraintParameter.mjs +1 -1
  203. package/dist/lib/parsers/specific/UserDefinedConstraintParameter.mjs.map +1 -1
  204. package/dist/lib/parsers/specific/Value.d.mts.map +1 -1
  205. package/dist/lib/parsers/specific/Value.mjs +2 -2
  206. package/dist/lib/parsers/specific/Value.mjs.map +1 -1
  207. package/dist/lib/parsers/specific/ValueSet.d.mts +4 -1
  208. package/dist/lib/parsers/specific/ValueSet.d.mts.map +1 -1
  209. package/dist/lib/parsers/specific/ValueSet.mjs +28 -1
  210. package/dist/lib/parsers/specific/ValueSet.mjs.map +1 -1
  211. package/dist/lib/parsers/specific/ValueSetOptionalitySpec.mjs +1 -1
  212. package/dist/lib/parsers/specific/ValueSetOptionalitySpec.mjs.map +1 -1
  213. package/dist/lib/parsers/specific/ValueSetTypeAssignment.d.mts.map +1 -1
  214. package/dist/lib/parsers/specific/ValueSetTypeAssignment.mjs +1 -1
  215. package/dist/lib/parsers/specific/ValueSetTypeAssignment.mjs.map +1 -1
  216. package/dist/lib/parsers/specific/_word.d.mts.map +1 -1
  217. package/dist/lib/parsers/specific/_word.mjs +6 -3
  218. package/dist/lib/parsers/specific/_word.mjs.map +1 -1
  219. package/dist/lib/parsers/specific/index.d.mts +1 -1
  220. package/dist/lib/parsers/specific/index.d.mts.map +1 -1
  221. package/dist/lib/parsers/specific/index.mjs +1 -1
  222. package/dist/lib/parsers/specific/index.mjs.map +1 -1
  223. package/dist/lib/updateCurrentType.d.mts.map +1 -1
  224. package/dist/lib/updateCurrentType.mjs +9 -2
  225. package/dist/lib/updateCurrentType.mjs.map +1 -1
  226. package/package.json +6 -1
package/README.md CHANGED
@@ -21,6 +21,12 @@ and [X.683](https://www.itu.int/rec/T-REC-X.683/en).
21
21
  - [Terminology Used by this Module](./doc/terminology.md)
22
22
  - [Design Mistakes](./doc/design-mistakes.md)
23
23
 
24
+ ## Security
25
+
26
+ It is ill-advised to allow this to be used with untrusted inputs. There have
27
+ been denial-of-service vulnerabilities found, and there are probably more yet
28
+ to be uncovered.
29
+
24
30
  ## Usage Example
25
31
 
26
32
  This is a test, completely copied and pasted here to showcase the capabilies
@@ -111,17 +117,15 @@ assertEquals(ta.identifier, "MyType");
111
117
  If you are re-parsing a substring of the entire ASN.1 file:
112
118
 
113
119
  - Supply a `Location` object to the `startloc` parameter of
114
- `lex(text, startloc)`, which will add that location's
115
- `startIndex` to the start and end offsets of all lexical
116
- tokens (`Production`s). It will also adjust the line and
117
- column number. That way, the offsets for those tokens
118
- correctly point to their offsets in the original text, not
119
- the substring you re-lexed.
120
- - In the `GrokContext`, set `textStartsAtOffset` to the same
121
- `startIndex` of the `Location` you used for `startloc` in
122
- `lex()`. This is needed because the groking functions take
123
- the substring, not the whole string, so you have to "undo"
124
- the offset correction you did in `lex()`.
120
+ `lex(text, startloc)`, which will add that location's `startIndex` to the
121
+ start and end offsets of all lexical tokens (`Production`s). It will also
122
+ adjust the line and column number. That way, the offsets for those tokens
123
+ correctly point to their offsets in the original text, not the substring you
124
+ re-lexed.
125
+ - In the `GrokContext`, set `textStartsAtOffset` to the same `startIndex` of the
126
+ `Location` you used for `startloc` in `lex()`. This is needed because the
127
+ groking functions take the substring, not the whole string, so you have to
128
+ "undo" the offset correction you did in `lex()`.
125
129
 
126
130
  Sorry this API is so dumb. I have never written a lexer / parser before this,
127
131
  and I originally had no intention or even thoughts about this being able to
@@ -154,6 +158,55 @@ assignment identifiers.
154
158
  This module theoretically supports reading XML value assignments, but this was
155
159
  never tested at all. It is very plausible that it works poorly, if at all.
156
160
 
161
+ ### JSON Exports
162
+
163
+ If you want to use this parser to do the parsing of ASN.1, then hand off
164
+ friendlier data to another program, you can export the lexed tokens, the
165
+ concrete syntax tree (CST), and the abstract syntax tree (AST) as JSON.
166
+ The types used for these data structures were chosen so that they could
167
+ serialize to JSON for consumption externally.
168
+
169
+ Example of exporting at each stage:
170
+
171
+ ```typescript
172
+ const lexResults = Array.from(lex(text));
173
+ const parseResults = parse(text, lexResults);
174
+ const modules = grok(text, parseResults);
175
+ const normalizedModules = normalize(modules);
176
+ fs.writeFileSync("./lexical-tokens.json", JSON.stringify(lexResults));
177
+ fs.writeFileSync("./cst.json", JSON.stringify(parseResults.cst));
178
+ fs.writeFileSync("./ast.json", JSON.stringify(normalizedModules));
179
+ ```
180
+
181
+ See [`doc/example.ast.json`] for an example of what one ASN.1 module in
182
+ `./ast.json` would look like for you.
183
+
184
+ See [`doc/example.lex.json`] for what `./lexical-tokens.json` might look like
185
+ for you.
186
+
187
+ See [Usage](./doc/usage.md) for slightly better documentation about this.
188
+
189
+ ### Command Line
190
+
191
+ After this package is installed, `npx asn1parser` concatenates one or more
192
+ ASN.1 files and prints JSON (or `ok` for `check`):
193
+
194
+ ```sh
195
+ npx asn1parser lex module.asn1
196
+ npx asn1parser cst module.asn1
197
+ npx asn1parser ast a.asn1 b.asn1
198
+ npx asn1parser check module.asn1
199
+ npx asn1parser --pretty ast -o ast.json module.asn1
200
+ ```
201
+
202
+ `ast` runs grok, correct, and normalize so the JSON is ready for other
203
+ programs. `-p` / `--pretty` indents with tabs. `-o` / `--output FILE` writes
204
+ to a file instead of stdout. `--help` / `help` and `--version` / `version`
205
+ are also supported.
206
+
207
+ Without a local install, the equivalent one-shot command is
208
+ `npx @wildboar/asn1-parser`.
209
+
157
210
  ## Module System and Environment
158
211
 
159
212
  This module is published as an ESM module exclusively. If you are still using
@@ -201,8 +254,6 @@ annotations.
201
254
 
202
255
  ## To Do
203
256
 
204
- - [ ] Performance Enhancements
205
257
  - [ ] Make dependency on `dependency-graph` optional
206
258
  - [ ] Could the lexer take a `TNext` to change behavior, such as by returning a syntax error?
207
- - [ ] Line numbers and column numbers seem to be off when there is a leading comment.
208
259
  - [ ] Convert `ProductionType` to string constants (maybe other enums too) (will require major version bump)
package/dist/cli.d.mts ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=cli.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.mts","sourceRoot":"","sources":["../src/cli.mts"],"names":[],"mappings":""}
package/dist/cli.mjs ADDED
@@ -0,0 +1,291 @@
1
+ #!/usr/bin/env node
2
+ import { readFileSync, writeFileSync } from 'node:fs';
3
+ import { argv, exit, stderr, stdout } from 'node:process';
4
+ import { correct, grok, lex, LogLevel, parse, } from './index.mjs';
5
+ import { Production } from './index.mjs';
6
+ import consoleLogger from './lib/loggers/console.mjs';
7
+ const USAGE_COMMANDS = [
8
+ 'lex',
9
+ 'cst',
10
+ 'ast',
11
+ 'check',
12
+ 'help',
13
+ 'version',
14
+ ];
15
+ const GENERAL_HELP = `\
16
+ Usage: asn1parser <command> [options] [files...]
17
+
18
+ Parse ASN.1 modules and print lexical tokens, a concrete syntax tree,
19
+ or an abstract syntax tree as JSON.
20
+
21
+ Commands:
22
+ lex Print lexical tokens as JSON
23
+ cst Print the concrete syntax tree as JSON
24
+ ast Print the abstract syntax tree as JSON
25
+ check Parse files and print ok on success
26
+ help [command] Show this help, or help for a command
27
+ version Print the version
28
+
29
+ Options:
30
+ -o, --output FILE Write output to FILE instead of stdout
31
+ -p, --pretty Pretty-print JSON using tabs
32
+ -h, --help Show this help
33
+ --version Print the version
34
+
35
+ Files are concatenated in the order given. Locations in the JSON refer
36
+ to the concatenated document.
37
+
38
+ Examples:
39
+ npx asn1parser lex module.asn1
40
+ npx asn1parser --pretty ast a.asn1 b.asn1
41
+ npx asn1parser check module.asn1
42
+ npx asn1parser cst -o cst.json module.asn1
43
+ `;
44
+ const COMMAND_HELP = {
45
+ lex: `\
46
+ Usage: asn1parser lex [options] FILE...
47
+
48
+ Print lexical tokens from the concatenated FILE(s) as JSON.
49
+
50
+ Options:
51
+ -o, --output FILE Write output to FILE instead of stdout
52
+ -p, --pretty Pretty-print JSON using tabs
53
+ -h, --help Show this help
54
+ `,
55
+ cst: `\
56
+ Usage: asn1parser cst [options] FILE...
57
+
58
+ Parse the concatenated FILE(s) and print the concrete syntax tree as JSON.
59
+
60
+ Options:
61
+ -o, --output FILE Write output to FILE instead of stdout
62
+ -p, --pretty Pretty-print JSON using tabs
63
+ -h, --help Show this help
64
+ `,
65
+ ast: `\
66
+ Usage: asn1parser ast [options] FILE...
67
+
68
+ Parse, grok, correct, and normalize the concatenated FILE(s), then print
69
+ the abstract syntax tree as JSON.
70
+
71
+ Options:
72
+ -o, --output FILE Write output to FILE instead of stdout
73
+ -p, --pretty Pretty-print JSON using tabs
74
+ -h, --help Show this help
75
+ `,
76
+ check: `\
77
+ Usage: asn1parser check [options] FILE...
78
+
79
+ Parse, grok, correct, and normalize the concatenated FILE(s).
80
+ Print ok and exit 0 on success.
81
+
82
+ Options:
83
+ -o, --output FILE Write ok to FILE instead of stdout
84
+ -h, --help Show this help
85
+ `,
86
+ };
87
+ function isUsageCommand(value) {
88
+ return USAGE_COMMANDS.includes(value);
89
+ }
90
+ function isPipelineCommand(value) {
91
+ return value === 'lex'
92
+ || value === 'cst'
93
+ || value === 'ast'
94
+ || value === 'check';
95
+ }
96
+ function parseArgs(args) {
97
+ let help = false;
98
+ let version = false;
99
+ let pretty = false;
100
+ let output;
101
+ const positionals = [];
102
+ let endOfFlags = false;
103
+ for (let i = 0; i < args.length; i++) {
104
+ const arg = args[i];
105
+ if (!endOfFlags && arg === '--') {
106
+ endOfFlags = true;
107
+ continue;
108
+ }
109
+ if (!endOfFlags && (arg === '--help' || arg === '-h')) {
110
+ help = true;
111
+ continue;
112
+ }
113
+ if (!endOfFlags && arg === '--version') {
114
+ version = true;
115
+ continue;
116
+ }
117
+ if (!endOfFlags && (arg === '--pretty' || arg === '-p')) {
118
+ pretty = true;
119
+ continue;
120
+ }
121
+ if (!endOfFlags && (arg === '--output' || arg === '-o')) {
122
+ const next = args[i + 1];
123
+ if (next === undefined) {
124
+ return { error: 'option -o/--output requires a file path' };
125
+ }
126
+ output = next;
127
+ i++;
128
+ continue;
129
+ }
130
+ if (!endOfFlags && arg.startsWith('-')) {
131
+ return { error: `unrecognized option '${arg}'` };
132
+ }
133
+ positionals.push(arg);
134
+ }
135
+ const command = positionals[0];
136
+ const files = command === undefined ? [] : positionals.slice(1);
137
+ return { help, version, pretty, output, command, files };
138
+ }
139
+ function readPackageVersion() {
140
+ const pkgUrl = new URL('../package.json', import.meta.url);
141
+ const pkg = JSON.parse(readFileSync(pkgUrl, 'utf8'));
142
+ return pkg.version;
143
+ }
144
+ function jsonReplacer(_key, value) {
145
+ if (value instanceof Set) {
146
+ return [...value];
147
+ }
148
+ if (value instanceof Map) {
149
+ return Object.fromEntries(value);
150
+ }
151
+ return value;
152
+ }
153
+ function stringifyJson(value, pretty) {
154
+ return pretty
155
+ ? JSON.stringify(value, jsonReplacer, '\t')
156
+ : JSON.stringify(value, jsonReplacer);
157
+ }
158
+ function writeOutput(text, outputPath) {
159
+ const withNewline = text.endsWith('\n') ? text : `${text}\n`;
160
+ if (outputPath !== undefined) {
161
+ writeFileSync(outputPath, withNewline, 'utf8');
162
+ }
163
+ else {
164
+ stdout.write(withNewline);
165
+ }
166
+ }
167
+ function usageError(message) {
168
+ stderr.write(`${message}\n`);
169
+ stderr.write("Try 'asn1parser --help' for more information.\n");
170
+ exit(2);
171
+ }
172
+ function printParseErrors(parseResult) {
173
+ const errors = Object.values(parseResult.syntaxErrors);
174
+ if (errors.length === 0) {
175
+ stderr.write('Parse failed.\n');
176
+ return;
177
+ }
178
+ for (const err of errors) {
179
+ const loc = err.production.location;
180
+ stderr.write(`${loc.lineNumber}:${loc.columnNumber}: ${err.message}\n`);
181
+ }
182
+ }
183
+ function formatError(err) {
184
+ if (err instanceof Error) {
185
+ return err.message;
186
+ }
187
+ return String(err);
188
+ }
189
+ function parseFailed(parseResult) {
190
+ return Boolean(parseResult.error)
191
+ || Object.keys(parseResult.syntaxErrors).length > 0;
192
+ }
193
+ function concatFiles(files) {
194
+ return files.map((file) => readFileSync(file, 'utf8')).join('\n');
195
+ }
196
+ function grokCorrect(text, parseResult) {
197
+ const modules = grok(text, parseResult);
198
+ correct(modules);
199
+ return modules;
200
+ }
201
+ function helpFor(command) {
202
+ if (command !== undefined && isPipelineCommand(command)) {
203
+ return COMMAND_HELP[command];
204
+ }
205
+ return GENERAL_HELP;
206
+ }
207
+ function deleteChildren(prod) {
208
+ return new Production(prod.type, [], prod.location);
209
+ }
210
+ function runPipeline(command, files, pretty) {
211
+ const text = concatFiles(files);
212
+ if (command === 'lex') {
213
+ return stringifyJson(Array.from(lex(text)), pretty);
214
+ }
215
+ const parseResult = parse(text);
216
+ if (parseFailed(parseResult)) {
217
+ printParseErrors(parseResult);
218
+ exit(1);
219
+ }
220
+ if (command === 'cst') {
221
+ return stringifyJson(parseResult.cst, pretty);
222
+ }
223
+ const modules = grokCorrect(text, parseResult);
224
+ if (command === 'check') {
225
+ return 'ok';
226
+ }
227
+ for (const mod of modules) {
228
+ if (mod.production) {
229
+ mod.production = deleteChildren(mod.production);
230
+ }
231
+ delete mod.productionType;
232
+ for (const arc of mod.oid ?? []) {
233
+ delete arc.production;
234
+ delete arc.productionType;
235
+ delete arc.text;
236
+ }
237
+ for (const assignment of Object.values(mod.assignments)) {
238
+ if (assignment.production) {
239
+ assignment.production = deleteChildren(assignment.production);
240
+ }
241
+ delete assignment.productionType;
242
+ delete assignment.text;
243
+ }
244
+ }
245
+ return stringifyJson(modules, pretty);
246
+ }
247
+ function main() {
248
+ consoleLogger.level = LogLevel.silent;
249
+ const parsed = parseArgs(argv.slice(2));
250
+ if ('error' in parsed) {
251
+ usageError(parsed.error);
252
+ }
253
+ const { help, version, pretty, output, command, files } = parsed;
254
+ if (command === 'help') {
255
+ const topic = files[0];
256
+ if (topic !== undefined && !isUsageCommand(topic)) {
257
+ usageError(`unknown command '${topic}'`);
258
+ }
259
+ stdout.write(helpFor(topic));
260
+ return;
261
+ }
262
+ if (help) {
263
+ if (command !== undefined && !isUsageCommand(command)) {
264
+ usageError(`unknown command '${command}'`);
265
+ }
266
+ stdout.write(helpFor(command));
267
+ return;
268
+ }
269
+ if (version || command === 'version') {
270
+ stdout.write(`${readPackageVersion()}\n`);
271
+ return;
272
+ }
273
+ if (command === undefined) {
274
+ usageError('missing command');
275
+ }
276
+ if (!isPipelineCommand(command)) {
277
+ usageError(`unknown command '${command}'`);
278
+ }
279
+ if (files.length === 0) {
280
+ usageError(`missing FILE operand for '${command}'`);
281
+ }
282
+ try {
283
+ writeOutput(runPipeline(command, files, pretty), output);
284
+ }
285
+ catch (err) {
286
+ stderr.write(`${formatError(err)}\n`);
287
+ exit(1);
288
+ }
289
+ }
290
+ main();
291
+ //# sourceMappingURL=cli.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.mjs","sourceRoot":"","sources":["../src/cli.mts"],"names":[],"mappings":"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"}
package/dist/index.d.mts CHANGED
@@ -135,6 +135,7 @@ export { default as newlineWhitespaceCharacters } from './lib/newlineWhitespaceC
135
135
  export { default as nonNewlineWhitespaceCharacters } from './lib/nonNewlineWhitespaceCharacters.mjs';
136
136
  export { default as normalize } from './lib/normalize.mjs';
137
137
  export { default as parse } from './lib/parse.mjs';
138
+ export { MAX_CONSTRUCTED_NESTING_DEPTH } from './lib/parsers/generic/limitConstructedNesting.mjs';
138
139
  export { default as recursivelyResolve } from './lib/recursivelyResolve.mjs';
139
140
  export { default as replicateComponentsOf } from './lib/normalizers/replicateComponentsOf.mjs';
140
141
  export { default as resolve } from './lib/resolve.mjs';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../src/index.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../src/index.mts"],"names":[],"mappings":"AAAA,YAAY,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAC5E,YAAY,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,YAAY,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAClF,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAChF,YAAY,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AACpF,YAAY,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAChE,YAAY,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACxE,YAAY,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7E,YAAY,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAC1E,YAAY,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,8BAA8B,CAAC;AACvE,YAAY,EAAE,wBAAwB,EAAE,MAAM,+CAA+C,CAAC;AAC9F,YAAY,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAC1E,YAAY,EAAE,wBAAwB,EAAE,MAAM,+CAA+C,CAAC;AAC9F,YAAY,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AAC1F,YAAY,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvF,YAAY,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvF,YAAY,EAAE,uBAAuB,EAAE,MAAM,8CAA8C,CAAC;AAC5F,YAAY,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAC5D,YAAY,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAChE,YAAY,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAC9E,YAAY,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAC5D,YAAY,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,6BAA6B,CAAC;AACrE,YAAY,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAC5E,YAAY,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAC/F,YAAY,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/E,YAAY,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3E,YAAY,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAC5E,YAAY,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAChE,YAAY,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnF,YAAY,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAChF,YAAY,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3E,YAAY,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3E,YAAY,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAClF,YAAY,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AACpF,YAAY,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3F,YAAY,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAC/D,YAAY,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC1E,YAAY,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAC9E,YAAY,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACnE,YAAY,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACpE,YAAY,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAC1F,YAAY,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAC9D,YAAY,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAEtE,YAAY,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,uDAAuD,CAAC;AACzG,YAAY,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,4DAA4D,CAAC;AACnH,YAAY,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,0DAA0D,CAAC;AAC/G,YAAY,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,qDAAqD,CAAC;AACrG,YAAY,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,sDAAsD,CAAC;AACvG,YAAY,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,6DAA6D,CAAC;AAErH,YAAY,EAAE,OAAO,EAAE,MAAM,+DAA+D,CAAC;AAC7F,YAAY,EAAE,OAAO,EAAE,MAAM,8DAA8D,CAAC;AAC5F,YAAY,EAAE,UAAU,EAAE,MAAM,kEAAkE,CAAC;AACnG,YAAY,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,wEAAwE,CAAC;AAC1H,YAAY,EAAE,OAAO,EAAE,MAAM,+DAA+D,CAAC;AAE7F,YAAY,EAAE,aAAa,EAAE,MAAM,gFAAgF,CAAC;AACpH,YAAY,EAAE,aAAa,EAAE,MAAM,gFAAgF,CAAC;AAEpH,YAAY,EAAE,WAAW,EAAE,MAAM,wEAAwE,CAAC;AAC1G,YAAY,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,4EAA4E,CAAC;AAE7H,YAAY,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,wDAAwD,CAAC;AACjH,YAAY,EAAE,OAAO,IAAI,0BAA0B,EAAE,MAAM,2DAA2D,CAAC;AACvH,YAAY,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,gDAAgD,CAAC;AACjG,YAAY,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,mDAAmD,CAAC;AACvG,YAAY,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,8CAA8C,CAAC;AAC7F,YAAY,EAAE,OAAO,IAAI,0BAA0B,EAAE,MAAM,2DAA2D,CAAC;AACvH,YAAY,EAAE,OAAO,IAAI,6BAA6B,EAAE,MAAM,8DAA8D,CAAC;AAE7H,YAAY,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,qDAAqD,CAAC;AACtG,YAAY,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,qDAAqD,CAAC;AAEtG,YAAY,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,oCAAoC,CAAC;AAC7E,YAAY,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,0CAA0C,CAAC;AACzF,YAAY,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,uCAAuC,CAAC;AACnF,YAAY,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAC3F,YAAY,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAC3F,YAAY,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,wCAAwC,CAAC;AACrF,YAAY,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,iDAAiD,CAAC;AACvG,YAAY,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,0CAA0C,CAAC;AACzF,YAAY,EACR,OAAO,IAAI,mBAAmB,EAC9B,OAAO,IAAI,SAAS,EACpB,OAAO,IAAI,cAAc,GAC5B,MAAM,gDAAgD,CAAC;AACxD,YAAY,EACR,OAAO,IAAI,iBAAiB,EAC5B,OAAO,IAAI,OAAO,EAClB,OAAO,IAAI,YAAY,GAC1B,MAAM,8CAA8C,CAAC;AACtD,YAAY,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAChF,YAAY,EAAE,mBAAmB,EAAE,MAAM,gDAAgD,CAAC;AAE1F,YAAY,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAChF,YAAY,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,4CAA4C,CAAC;AAC5F,YAAY,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAC;AAC7F,YAAY,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,yCAAyC,CAAC;AACtF,YAAY,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AAChG,YAAY,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAC1F,YAAY,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AACvF,YAAY,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAC;AAC7E,YAAY,EAAE,qBAAqB,EAAE,MAAM,mDAAmD,CAAC;AAC/F,YAAY,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,mDAAmD,CAAC;AAC1G,YAAY,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AAChG,YAAY,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AAChG,YAAY,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAC/E,YAAY,EAAE,SAAS,EAAE,MAAM,uCAAuC,CAAC;AACvE,YAAY,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AACrF,YAAY,EAAE,8BAA8B,EAAE,MAAM,4DAA4D,CAAC;AACjH,YAAY,EAAE,gCAAgC,EAAE,MAAM,8DAA8D,CAAC;AACrH,YAAY,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAC;AAC7F,YAAY,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;AACzF,YAAY,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAEnF,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACzD,YAAY,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,0BAA0B,CAAC;AACrE,YAAY,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1D,YAAY,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/E,YAAY,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjF,YAAY,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/E,YAAY,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EACH,cAAc,EACd,qBAAqB,EACrB,yBAAyB,EACzB,sBAAsB,EACtB,qBAAqB,EACrB,yBAAyB,EACzB,4BAA4B,EAC5B,4BAA4B,EAC5B,yCAAyC,EACzC,kDAAkD,EAClD,qBAAqB,EACrB,4BAA4B,EAC5B,4BAA4B,EAC5B,4BAA4B,EAC5B,gCAAgC,EAChC,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,GAC3B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,OAAO,IAAI,iCAAiC,EAAE,MAAM,0DAA0D,CAAC;AACxH,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AACvF,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,gDAAgD,CAAC;AACrG,OAAO,EAAE,OAAO,IAAI,iCAAiC,EAAE,MAAM,6CAA6C,CAAC;AAC3G,OAAO,EAAE,OAAO,IAAI,wCAAwC,EAAE,MAAM,oDAAoD,CAAC;AACzH,OAAO,EAAE,OAAO,IAAI,iCAAiC,EAAE,MAAM,yDAAyD,CAAC;AACvH,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,OAAO,IAAI,yCAAyC,EAAE,MAAM,qDAAqD,CAAC;AAC3H,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAC7F,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AACvF,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAC3F,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAChF,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,2BAA2B,EAAE,MAAM,uCAAuC,CAAC;AAC/F,OAAO,EAAE,OAAO,IAAI,8BAA8B,EAAE,MAAM,0CAA0C,CAAC;AACrG,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,6BAA6B,EAAE,MAAM,mDAAmD,CAAC;AAClG,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AAC/F,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,0BAA0B,EAAE,MAAM,2CAA2C,CAAC;AAClG,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAClF,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC1F,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAM1F,OAAO,KAAK,SAAS,MAAM,yBAAyB,CAAC;AAMrD,OAAO,KAAK,SAAS,MAAM,yBAAyB,CAAC;AAErD,OAAO,EAAE,OAAO,IAAI,qCAAqC,EAAE,MAAM,6DAA6D,CAAC;AAE/H,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,mDAAmD,CAAC;AACzG,OAAO,EAAE,OAAO,IAAI,8BAA8B,EAAE,MAAM,wDAAwD,CAAC;AACnH,OAAO,EAAE,OAAO,IAAI,4BAA4B,EAAE,MAAM,sDAAsD,CAAC;AAC/G,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,iDAAiD,CAAC;AACrG,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,kDAAkD,CAAC;AACvG,OAAO,EAAE,OAAO,IAAI,+BAA+B,EAAE,MAAM,yDAAyD,CAAC;AAErH,OAAO,EAAE,2BAA2B,EAAE,MAAM,uCAAuC,CAAC;AACpF,OAAO,EAAE,6BAA6B,EAAE,MAAM,yCAAyC,CAAC;AACxF,OAAO,EAAE,2BAA2B,EAAE,MAAM,yCAAyC,CAAC;AAEtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,0BAA0B,EAAE,MAAM,6CAA6C,CAAC;AACzF,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAEvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC"}
package/dist/index.mjs CHANGED
@@ -31,6 +31,7 @@ export { default as newlineWhitespaceCharacters } from './lib/newlineWhitespaceC
31
31
  export { default as nonNewlineWhitespaceCharacters } from './lib/nonNewlineWhitespaceCharacters.mjs';
32
32
  export { default as normalize } from './lib/normalize.mjs';
33
33
  export { default as parse } from './lib/parse.mjs';
34
+ export { MAX_CONSTRUCTED_NESTING_DEPTH } from './lib/parsers/generic/limitConstructedNesting.mjs';
34
35
  export { default as recursivelyResolve } from './lib/recursivelyResolve.mjs';
35
36
  export { default as replicateComponentsOf } from './lib/normalizers/replicateComponentsOf.mjs';
36
37
  export { default as resolve } from './lib/resolve.mjs';
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../src/index.mts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAiBhF,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAc9E,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAKlF,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAI1E,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAEpE,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAG1F,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,gCAAgC,CAAC;AA0EtE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAMrE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EACH,cAAc,EACd,qBAAqB,EACrB,yBAAyB,EACzB,sBAAsB,EACtB,qBAAqB,EACrB,yBAAyB,EACzB,4BAA4B,EAC5B,4BAA4B,EAC5B,yCAAyC,EACzC,kDAAkD,EAClD,qBAAqB,EACrB,4BAA4B,EAC5B,4BAA4B,EAC5B,4BAA4B,EAC5B,gCAAgC,EAChC,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,GAC3B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,OAAO,IAAI,iCAAiC,EAAE,MAAM,0DAA0D,CAAC;AACxH,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AACvF,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,gDAAgD,CAAC;AACrG,OAAO,EAAE,OAAO,IAAI,iCAAiC,EAAE,MAAM,6CAA6C,CAAC;AAC3G,OAAO,EAAE,OAAO,IAAI,wCAAwC,EAAE,MAAM,oDAAoD,CAAC;AACzH,OAAO,EAAE,OAAO,IAAI,iCAAiC,EAAE,MAAM,yDAAyD,CAAC;AACvH,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,OAAO,IAAI,yCAAyC,EAAE,MAAM,qDAAqD,CAAC;AAC3H,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAC7F,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AACvF,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAC3F,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAChF,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,2BAA2B,EAAE,MAAM,uCAAuC,CAAC;AAC/F,OAAO,EAAE,OAAO,IAAI,8BAA8B,EAAE,MAAM,0CAA0C,CAAC;AACrG,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AAC/F,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,0BAA0B,EAAE,MAAM,2CAA2C,CAAC;AAClG,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAClF,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC1F,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAM1F,OAAO,KAAK,SAAS,MAAM,yBAAyB,CAAC;AAMrD,OAAO,KAAK,SAAS,MAAM,yBAAyB,CAAC;AAErD,OAAO,EAAE,OAAO,IAAI,qCAAqC,EAAE,MAAM,6DAA6D,CAAC;AAE/H,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,mDAAmD,CAAC;AACzG,OAAO,EAAE,OAAO,IAAI,8BAA8B,EAAE,MAAM,wDAAwD,CAAC;AACnH,OAAO,EAAE,OAAO,IAAI,4BAA4B,EAAE,MAAM,sDAAsD,CAAC;AAC/G,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,iDAAiD,CAAC;AACrG,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,kDAAkD,CAAC;AACvG,OAAO,EAAE,OAAO,IAAI,+BAA+B,EAAE,MAAM,yDAAyD,CAAC;AAErH,OAAO,EAAE,2BAA2B,EAAE,MAAM,uCAAuC,CAAC;AACpF,OAAO,EAAE,6BAA6B,EAAE,MAAM,yCAAyC,CAAC;AACxF,OAAO,EAAE,2BAA2B,EAAE,MAAM,yCAAyC,CAAC;AAEtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,0BAA0B,EAAE,MAAM,6CAA6C,CAAC;AACzF,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAEvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../src/index.mts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"OptionalParser.d.mts","sourceRoot":"","sources":["../../src/lib/OptionalParser.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,+BAA+B,CAAC;AAC9D,OAAO,MAAM,MAAM,cAAc,CAAC;AASlC,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,MAAM;IAWhC,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,YAAY;CAW3D"}
1
+ {"version":3,"file":"OptionalParser.d.mts","sourceRoot":"","sources":["../../src/lib/OptionalParser.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,+BAA+B,CAAC;AAC9D,OAAO,MAAM,MAAM,cAAc,CAAC;AASlC,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,MAAM;IAWhC,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,YAAY;CAG3D"}
@@ -1,15 +1,7 @@
1
1
  import Parser from './Parser.mjs';
2
2
  export default class OptionalParser extends Parser {
3
3
  execute(state) {
4
- if (state.error) {
5
- return state;
6
- }
7
- if (state.index >= state.tokens.length) {
8
- return {
9
- ...state,
10
- };
11
- }
12
- return this.executor(state);
4
+ return this.executeInternal(state, false, false);
13
5
  }
14
6
  }
15
7
  //# sourceMappingURL=OptionalParser.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"OptionalParser.mjs","sourceRoot":"","sources":["../../src/lib/OptionalParser.mts"],"names":[],"mappings":"AACA,OAAO,MAAM,MAAM,cAAc,CAAC;AASlC,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,MAAM;IAWhC,OAAO,CAAC,KAAmB;QACzC,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAChB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACvC,OAAO;gBACL,GAAG,KAAK;aACT,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;CACF"}
1
+ {"version":3,"file":"OptionalParser.mjs","sourceRoot":"","sources":["../../src/lib/OptionalParser.mts"],"names":[],"mappings":"AACA,OAAO,MAAM,MAAM,cAAc,CAAC;AASlC,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,MAAM;IAWhC,OAAO,CAAC,KAAmB;QACzC,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IACnD,CAAC;CACF"}
@@ -3,8 +3,10 @@ import Production from './Production.mjs';
3
3
  export default class Parser {
4
4
  readonly name: () => string;
5
5
  readonly executor: (state: ParseContext) => ParseContext;
6
- constructor(name: () => string, executor: (state: ParseContext) => ParseContext);
6
+ readonly packrat: boolean;
7
+ constructor(name: () => string, executor: (state: ParseContext) => ParseContext, packrat?: boolean);
7
8
  start(tokens: Production[], text: string): ParseContext;
8
9
  execute(state: ParseContext): ParseContext;
10
+ protected executeInternal(state: ParseContext, eofIsError: boolean, runCallbacks: boolean): ParseContext;
9
11
  }
10
12
  //# sourceMappingURL=Parser.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Parser.d.mts","sourceRoot":"","sources":["../../src/lib/Parser.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,+BAA+B,CAAC;AAC9D,OAAO,UAAU,MAAM,kBAAkB,CAAC;AAiB1C,MAAM,CAAC,OAAO,OAAO,MAAM;IAQvB,QAAQ,CAAC,IAAI,EAAE,MAAM,MAAM;IAC3B,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,YAAY;gBAD/C,IAAI,EAAE,MAAM,MAAM,EAClB,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,YAAY;IAiBnD,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,YAAY;IA0CvD,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,YAAY;CAgBlD"}
1
+ {"version":3,"file":"Parser.d.mts","sourceRoot":"","sources":["../../src/lib/Parser.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,+BAA+B,CAAC;AAC9D,OAAO,UAAU,MAAM,kBAAkB,CAAC;AAuB1C,MAAM,CAAC,OAAO,OAAO,MAAM;IASvB,QAAQ,CAAC,IAAI,EAAE,MAAM,MAAM;IAC3B,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,YAAY;IAOxD,QAAQ,CAAC,OAAO,EAAE,OAAO;gBARhB,IAAI,EAAE,MAAM,MAAM,EAClB,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,YAAY,EAO/C,OAAO,GAAE,OAAe;IAiB5B,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,YAAY;IA8CvD,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,YAAY;IA2BjD,SAAS,CAAC,eAAe,CACvB,KAAK,EAAE,YAAY,EACnB,UAAU,EAAE,OAAO,EACnB,YAAY,EAAE,OAAO,GACpB,YAAY;CAwChB"}
@@ -10,15 +10,18 @@ import onDidParseModuleDefinition from './parsers/callbacks/ModuleDefinition.mjs
10
10
  import onDidParseNamedType from './parsers/callbacks/NamedType.mjs';
11
11
  import onDidParseValue from './parsers/callbacks/Value.mjs';
12
12
  import onDidParseLiteral from './parsers/callbacks/Literal.mjs';
13
+ import { createParseMemo, lookupMemo, memoFingerprint, storeMemo, } from './parseMemo.mjs';
13
14
  export default class Parser {
14
15
  name;
15
16
  executor;
16
- constructor(name, executor) {
17
+ packrat;
18
+ constructor(name, executor, packrat = false) {
17
19
  this.name = name;
18
20
  this.executor = executor;
21
+ this.packrat = packrat;
19
22
  }
20
23
  start(tokens, text) {
21
- return this.executor({
24
+ const ret = this.executor({
22
25
  log: consoleLogger,
23
26
  tokens,
24
27
  index: 0,
@@ -44,23 +47,51 @@ export default class Parser {
44
47
  text,
45
48
  definedSyntaxTokens: new Set([]),
46
49
  definedEnumItems: new Set([]),
50
+ memo: createParseMemo(),
47
51
  });
52
+ ret.memo = undefined;
53
+ return ret;
48
54
  }
49
55
  execute(state) {
56
+ return this.executeInternal(state, true, true);
57
+ }
58
+ executeInternal(state, eofIsError, runCallbacks) {
50
59
  if (state.error) {
51
60
  return state;
52
61
  }
53
62
  if (state.index >= state.tokens.length) {
54
- return {
55
- ...state,
56
- error: true,
57
- };
63
+ return eofIsError
64
+ ? {
65
+ ...state,
66
+ error: true,
67
+ }
68
+ : {
69
+ ...state,
70
+ };
58
71
  }
59
- const ret = this.executor(state);
60
- if (!ret.error && state.callbackMap.has(ret.cst.type)) {
61
- ret.callbackMap.get(ret.cst.type)(ret);
72
+ const startIndex = state.index;
73
+ const applyCallbacks = (result) => {
74
+ if (runCallbacks &&
75
+ !result.error &&
76
+ result.callbackMap.has(result.cst.type)) {
77
+ result.callbackMap.get(result.cst.type)(result);
78
+ }
79
+ return result;
80
+ };
81
+ const run = () => applyCallbacks(this.executor(state));
82
+ if (this.packrat && state.memo) {
83
+ const fingerprint = memoFingerprint(state);
84
+ if (fingerprint !== undefined) {
85
+ const cached = lookupMemo(this, state, fingerprint);
86
+ if (cached) {
87
+ return applyCallbacks(cached);
88
+ }
89
+ const ret = run();
90
+ storeMemo(this, state, startIndex, fingerprint, ret);
91
+ return ret;
92
+ }
62
93
  }
63
- return ret;
94
+ return run();
64
95
  }
65
96
  }
66
97
  //# sourceMappingURL=Parser.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Parser.mjs","sourceRoot":"","sources":["../../src/lib/Parser.mts"],"names":[],"mappings":"AACA,OAAO,UAAU,MAAM,kBAAkB,CAAC;AAC1C,OAAO,aAAa,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,oBAAoB,MAAM,oCAAoC,CAAC;AACtE,OAAO,+BAA+B,MAAM,+CAA+C,CAAC;AAC5F,OAAO,gBAAgB,MAAM,gCAAgC,CAAC;AAC9D,OAAO,yBAAyB,MAAM,yCAAyC,CAAC;AAChF,OAAO,qBAAqB,MAAM,qCAAqC,CAAC;AACxE,OAAO,0BAA0B,MAAM,0CAA0C,CAAC;AAClF,OAAO,mBAAmB,MAAM,mCAAmC,CAAC;AACpE,OAAO,eAAe,MAAM,+BAA+B,CAAC;AAC5D,OAAO,iBAAiB,MAAM,iCAAiC,CAAC;AAMhE,MAAM,CAAC,OAAO,OAAO,MAAM;IAQd;IACA;IAFX,YACW,IAAkB,EAClB,QAA+C;QAD/C,SAAI,GAAJ,IAAI,CAAc;QAClB,aAAQ,GAAR,QAAQ,CAAuC;IACvD,CAAC;IAgBG,KAAK,CAAC,MAAoB,EAAE,IAAY;QAC7C,OAAO,IAAI,CAAC,QAAQ,CAAC;YACnB,GAAG,EAAE,aAAa;YAClB,MAAM;YACN,KAAK,EAAE,CAAC;YACR,GAAG,EAAE,IAAI,UAAU,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,EAAE;gBAC5C,UAAU,EAAE,CAAC;gBACb,QAAQ,EAAE,CAAC;gBACX,UAAU,EAAE,CAAC;gBACb,YAAY,EAAE,CAAC;aAChB,CAAC;YACF,YAAY,EAAE,EAAE;YAChB,qBAAqB,EAAE,IAAI,GAAG,CAAC,EAAE,CAAC;YAClC,WAAW,EAAE,IAAI,GAAG,CAAC;gBACnB,CAAC,YAAY,EAAE,oBAAoB,CAAC;gBACpC,CAAC,uBAAuB,EAAE,+BAA+B,CAAC;gBAC1D,CAAC,QAAQ,EAAE,gBAAgB,CAAC;gBAC5B,CAAC,iBAAiB,EAAE,yBAAyB,CAAC;gBAC9C,CAAC,aAAa,EAAE,qBAAqB,CAAC;gBACtC,CAAC,kBAAkB,EAAE,0BAA0B,CAAC;gBAChD,CAAC,WAAW,EAAE,mBAAmB,CAAC;gBAClC,CAAC,OAAO,EAAE,eAAe,CAAC;gBAC1B,CAAC,SAAS,EAAE,iBAAiB,CAAC;aAC/B,CAAC;YACF,IAAI;YACJ,mBAAmB,EAAE,IAAI,GAAG,CAAC,EAAE,CAAC;YAChC,gBAAgB,EAAE,IAAI,GAAG,CAAC,EAAE,CAAC;SAC9B,CAAC,CAAC;IACL,CAAC;IAcM,OAAO,CAAC,KAAmB;QAChC,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAChB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACvC,OAAO;gBACL,GAAG,KAAK;gBACR,KAAK,EAAE,IAAI;aACZ,CAAC;QACJ,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACtD,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC,GAAG,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;CACF"}
1
+ {"version":3,"file":"Parser.mjs","sourceRoot":"","sources":["../../src/lib/Parser.mts"],"names":[],"mappings":"AACA,OAAO,UAAU,MAAM,kBAAkB,CAAC;AAC1C,OAAO,aAAa,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,oBAAoB,MAAM,oCAAoC,CAAC;AACtE,OAAO,+BAA+B,MAAM,+CAA+C,CAAC;AAC5F,OAAO,gBAAgB,MAAM,gCAAgC,CAAC;AAC9D,OAAO,yBAAyB,MAAM,yCAAyC,CAAC;AAChF,OAAO,qBAAqB,MAAM,qCAAqC,CAAC;AACxE,OAAO,0BAA0B,MAAM,0CAA0C,CAAC;AAClF,OAAO,mBAAmB,MAAM,mCAAmC,CAAC;AACpE,OAAO,eAAe,MAAM,+BAA+B,CAAC;AAC5D,OAAO,iBAAiB,MAAM,iCAAiC,CAAC;AAChE,OAAO,EACL,eAAe,EACf,UAAU,EACV,eAAe,EACf,SAAS,GACV,MAAM,iBAAiB,CAAC;AAMzB,MAAM,CAAC,OAAO,OAAO,MAAM;IASd;IACA;IAOA;IATX,YACW,IAAkB,EAClB,QAA+C,EAO/C,UAAmB,KAAK;QARxB,SAAI,GAAJ,IAAI,CAAc;QAClB,aAAQ,GAAR,QAAQ,CAAuC;QAO/C,YAAO,GAAP,OAAO,CAAiB;IAChC,CAAC;IAgBG,KAAK,CAAC,MAAoB,EAAE,IAAY;QAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC;YACxB,GAAG,EAAE,aAAa;YAClB,MAAM;YACN,KAAK,EAAE,CAAC;YACR,GAAG,EAAE,IAAI,UAAU,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,EAAE;gBAC5C,UAAU,EAAE,CAAC;gBACb,QAAQ,EAAE,CAAC;gBACX,UAAU,EAAE,CAAC;gBACb,YAAY,EAAE,CAAC;aAChB,CAAC;YACF,YAAY,EAAE,EAAE;YAChB,qBAAqB,EAAE,IAAI,GAAG,CAAC,EAAE,CAAC;YAClC,WAAW,EAAE,IAAI,GAAG,CAAC;gBACnB,CAAC,YAAY,EAAE,oBAAoB,CAAC;gBACpC,CAAC,uBAAuB,EAAE,+BAA+B,CAAC;gBAC1D,CAAC,QAAQ,EAAE,gBAAgB,CAAC;gBAC5B,CAAC,iBAAiB,EAAE,yBAAyB,CAAC;gBAC9C,CAAC,aAAa,EAAE,qBAAqB,CAAC;gBACtC,CAAC,kBAAkB,EAAE,0BAA0B,CAAC;gBAChD,CAAC,WAAW,EAAE,mBAAmB,CAAC;gBAClC,CAAC,OAAO,EAAE,eAAe,CAAC;gBAC1B,CAAC,SAAS,EAAE,iBAAiB,CAAC;aAC/B,CAAC;YACF,IAAI;YACJ,mBAAmB,EAAE,IAAI,GAAG,CAAC,EAAE,CAAC;YAChC,gBAAgB,EAAE,IAAI,GAAG,CAAC,EAAE,CAAC;YAC7B,IAAI,EAAE,eAAe,EAAE;SACxB,CAAC,CAAC;QAEH,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC;QACrB,OAAO,GAAG,CAAC;IACb,CAAC;IAcM,OAAO,CAAC,KAAmB;QAChC,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACjD,CAAC;IAyBS,eAAe,CACvB,KAAmB,EACnB,UAAmB,EACnB,YAAqB;QAErB,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAChB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACvC,OAAO,UAAU;gBACf,CAAC,CAAC;oBACE,GAAG,KAAK;oBACR,KAAK,EAAE,IAAI;iBACZ;gBACH,CAAC,CAAC;oBACE,GAAG,KAAK;iBACT,CAAC;QACR,CAAC;QACD,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC;QAC/B,MAAM,cAAc,GAAG,CAAC,MAAoB,EAAgB,EAAE;YAC5D,IACE,YAAY;gBACZ,CAAC,MAAM,CAAC,KAAK;gBACb,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EACvC,CAAC;gBACD,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC,MAAM,CAAC,CAAC;YACnD,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;QACF,MAAM,GAAG,GAAG,GAAiB,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QACrE,IAAI,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YAC/B,MAAM,WAAW,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;YAC3C,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;gBAC9B,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;gBACpD,IAAI,MAAM,EAAE,CAAC;oBACX,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC;gBAChC,CAAC;gBACD,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC;gBAClB,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,CAAC,CAAC;gBACrD,OAAO,GAAG,CAAC;YACb,CAAC;QACH,CAAC;QACD,OAAO,GAAG,EAAE,CAAC;IACf,CAAC;CACF"}
@@ -5,6 +5,8 @@ export default class Production<Types extends ProductionType = ProductionType> {
5
5
  readonly children: Production[];
6
6
  parent?: Production<Types>;
7
7
  private _location?;
8
+ private _emptyLocation?;
9
+ get emptyLocation(): Location;
8
10
  get location(): Location;
9
11
  constructor(type: Types, children?: Production[], loc?: Location);
10
12
  toJSON(): any;