grammar-well 2.0.7 → 2.1.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.
@@ -42,8 +42,21 @@ export function Earley(language, options = {}) {
42
42
  results.push(data);
43
43
  }
44
44
  }
45
+ const clone = results.length > 1;
46
+ for (let i = 0; i < results.length; i++) {
47
+ results[i] = PostProcess(results[i], clone);
48
+ }
45
49
  return { results, info: { table } };
46
50
  }
51
+ function PostProcess(ast, clone) {
52
+ if (!Array.isArray(ast))
53
+ return clone ? { ...ast } : ast;
54
+ const data = [];
55
+ for (let i = 0; i < ast[1].length; i++) {
56
+ data[i] = PostProcess(ast[1][i], clone);
57
+ }
58
+ return ParserUtility.PostProcess(ast[0], data, ast[2]);
59
+ }
47
60
  class Column {
48
61
  rules;
49
62
  index;
@@ -141,7 +154,7 @@ class State {
141
154
  return state;
142
155
  }
143
156
  finish() {
144
- this.data = ParserUtility.PostProcess(this.rule, this.data, { reference: this.reference, dot: this.dot });
157
+ this.data = [this.rule, this.data, { reference: this.reference, dot: this.dot }];
145
158
  }
146
159
  build() {
147
160
  const children = [];
@@ -1 +1 @@
1
- {"version":3,"file":"earley.js","sourceRoot":"","sources":["../../../src/parser/algorithms/earley.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"earley.js","sourceRoot":"","sources":["../../../src/parser/algorithms/earley.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- { "version": "2.0.7" }
1
+ { "version": "2.1.0" }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "grammar-well",
3
3
  "type": "module",
4
- "version": "2.0.7",
4
+ "version": "2.1.0",
5
5
  "description": "Cross-platform Parser written in TypeScript",
6
6
  "scripts": {
7
7
  "prebuild": "tsc --build --clean && tsx scripts/prebuild.ts",
@@ -1,4 +1,4 @@
1
- // Generated automatically by Grammar-Well, version 2.0.6
1
+ // Generated automatically by Grammar-Well, version 2.0.7
2
2
  // https://github.com/0x6563/grammar-well
3
3
  // @ts-nocheck
4
4
 
@@ -1,4 +1,4 @@
1
- // Generated automatically by Grammar-Well, version 2.0.6
1
+ // Generated automatically by Grammar-Well, version 2.0.7
2
2
  // https://github.com/0x6563/grammar-well
3
3
  // @ts-nocheck
4
4
 
@@ -1,4 +1,4 @@
1
- import { Dictionary, RuntimeGrammarProductionRule, RuntimeParserClass } from "../../typings/index.js";
1
+ import { Dictionary, RuntimeGrammarProductionRule, RuntimeLexerToken, RuntimeParserClass } from "../../typings/index.js";
2
2
  import { TokenBuffer } from "../../lexers/token-buffer.js";
3
3
  import { TextFormatter } from "../../utility/text-format.js";
4
4
  import { ParserUtility } from "../../utility/parsing.js";
@@ -58,9 +58,22 @@ export function Earley(language: RuntimeParserClass & { tokens: TokenBuffer }, o
58
58
  results.push(data);
59
59
  }
60
60
  }
61
+ const clone = results.length > 1;
62
+ for (let i = 0; i < results.length; i++) {
63
+ results[i] = PostProcess(results[i], clone);
64
+ }
61
65
  return { results, info: { table } };
62
66
  }
63
67
 
68
+ function PostProcess(ast: PreAST | RuntimeLexerToken, clone?: boolean) {
69
+ if (!Array.isArray(ast))
70
+ return clone ? { ...ast } : ast;
71
+ const data = [];
72
+ for (let i = 0; i < ast[1].length; i++) {
73
+ data[i] = PostProcess(ast[1][i], clone);
74
+ }
75
+ return ParserUtility.PostProcess(ast[0], data, ast[2]);
76
+ }
64
77
 
65
78
  class Column {
66
79
  data: any;
@@ -170,7 +183,7 @@ class State {
170
183
 
171
184
 
172
185
  finish() {
173
- this.data = ParserUtility.PostProcess(this.rule, this.data, { reference: this.reference, dot: this.dot });
186
+ this.data = [this.rule, this.data, { reference: this.reference, dot: this.dot }];
174
187
  }
175
188
 
176
189
  protected build() {
@@ -190,4 +203,6 @@ interface StateToken {
190
203
  token: any,
191
204
  isToken: boolean,
192
205
  reference: number
193
- }
206
+ }
207
+
208
+ type PreAST = [RuntimeGrammarProductionRule, (RuntimeLexerToken | PreAST)[], { reference: number, dot: number }];
package/src/version.json CHANGED
@@ -1 +1 @@
1
- {"version":"2.0.7"}
1
+ {"version":"2.1.0"}