@tabnas/parser 0.8.6 → 0.8.8
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.
- package/dist/context.d.ts +5 -1
- package/dist/context.js +6 -0
- package/dist/context.js.map +1 -1
- package/dist/defaults.js +42 -1
- package/dist/defaults.js.map +1 -1
- package/dist/error.d.ts +33 -0
- package/dist/error.js +167 -0
- package/dist/error.js.map +1 -1
- package/dist/merge.js +1 -1
- package/dist/merge.js.map +1 -1
- package/dist/parser.js +180 -51
- package/dist/parser.js.map +1 -1
- package/dist/rules.d.ts +2 -1
- package/dist/rules.js +522 -4
- package/dist/rules.js.map +1 -1
- package/dist/tabnas.d.ts +10 -3
- package/dist/tabnas.js +163 -4
- package/dist/tabnas.js.map +1 -1
- package/dist/types.d.ts +42 -0
- package/dist/types.js.map +1 -1
- package/dist/utility.js +43 -4
- package/dist/utility.js.map +1 -1
- package/package.json +4 -3
package/dist/parser.js
CHANGED
|
@@ -18,7 +18,14 @@ class Parser {
|
|
|
18
18
|
#nrspec; // Empty spec backing the NORULE sentinel.
|
|
19
19
|
#srcfmt; // Debug source formatter.
|
|
20
20
|
constructor(options, cfg, j) {
|
|
21
|
-
|
|
21
|
+
// Keyed by rule name, so allocated without a prototype. On a plain literal
|
|
22
|
+
// a rule named __proto__ is not an ordinary key: `this.rsm[name]` reads back
|
|
23
|
+
// Object.prototype, the `||` guard below adopts it as the RuleSpec, and
|
|
24
|
+
// `rs.name = name` then writes onto Object.prototype - polluting every
|
|
25
|
+
// object in the process. Rule names reach here from grammar text (abnf/bnf
|
|
26
|
+
// compile user-supplied grammars), so this is not only a developer-typo
|
|
27
|
+
// path. `constructor` and `toString` hit the same read and threw instead.
|
|
28
|
+
this.rsm = Object.create(null); // Rule specs keyed by rule name.
|
|
22
29
|
this.options = options;
|
|
23
30
|
this.cfg = cfg;
|
|
24
31
|
this.ji = j;
|
|
@@ -73,6 +80,10 @@ class Parser {
|
|
|
73
80
|
// instance in place, so getters/setters and methods survive.
|
|
74
81
|
if (null != parent_ctx) {
|
|
75
82
|
(0, utility_1.deep)(ctx, parent_ctx);
|
|
83
|
+
// The error list is strictly per-parse: a parent context's
|
|
84
|
+
// recorded errors must not leak into this parse's list (the
|
|
85
|
+
// deep merge above would otherwise seed them).
|
|
86
|
+
ctx.errs = [];
|
|
76
87
|
}
|
|
77
88
|
// The no-rule sentinel Rule is per-parse, but its (empty) spec is
|
|
78
89
|
// immutable and cfg-scoped, so build the spec once per Parser.
|
|
@@ -84,13 +95,23 @@ class Parser {
|
|
|
84
95
|
ctx.log = meta.log;
|
|
85
96
|
}
|
|
86
97
|
this.cfg.parse.prepare.forEach((prep) => prep(tabnas, ctx, meta));
|
|
98
|
+
// Opt-in error recovery: parse returns { value, errors } instead of
|
|
99
|
+
// throwing, collecting multiple errors via sync-point recovery
|
|
100
|
+
// (rules.ts attemptRecover; see ts/doc/lsp-feasibility.md).
|
|
101
|
+
const recovering = this.cfg.parse.recover.enabled;
|
|
87
102
|
// Special case - avoids extra per-token tests in main parser rules.
|
|
88
103
|
if ('' === src) {
|
|
89
104
|
if (this.cfg.lex.empty) {
|
|
90
|
-
return
|
|
105
|
+
return recovering
|
|
106
|
+
? { value: this.cfg.lex.emptyResult, errors: ctx.errs }
|
|
107
|
+
: this.cfg.lex.emptyResult;
|
|
91
108
|
}
|
|
92
109
|
else {
|
|
93
|
-
|
|
110
|
+
const emptyErr = new error_1.TabnasError(utility_1.S.unexpected, { src }, ctx.t0, norule, ctx);
|
|
111
|
+
if (recovering) {
|
|
112
|
+
return { value: undefined, errors: ctx.errs };
|
|
113
|
+
}
|
|
114
|
+
throw emptyErr;
|
|
94
115
|
}
|
|
95
116
|
}
|
|
96
117
|
// Bad tokens are converted to throws by the engine's own token
|
|
@@ -105,7 +126,7 @@ class Parser {
|
|
|
105
126
|
ctx.lex = lex;
|
|
106
127
|
let startspec = this.rsm[this.cfg.rule.start];
|
|
107
128
|
if (null == startspec) {
|
|
108
|
-
return undefined;
|
|
129
|
+
return recovering ? { value: undefined, errors: ctx.errs } : undefined;
|
|
109
130
|
}
|
|
110
131
|
let rule = (0, rules_1.makeRule)(startspec, ctx);
|
|
111
132
|
root = rule;
|
|
@@ -119,64 +140,172 @@ class Parser {
|
|
|
119
140
|
let maxr = 2 * rsmCount * lex.src.length * 2 * ctx.cfg.rule.maxmul;
|
|
120
141
|
// Process rules on tokens
|
|
121
142
|
let kI = 0;
|
|
122
|
-
//
|
|
123
|
-
//
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
143
|
+
// Opt-in parse budget: invoke onCheck every checkEveryN rule
|
|
144
|
+
// iterations; a false return cancels the parse. Off (0) by
|
|
145
|
+
// default, costing one falsy test per iteration.
|
|
146
|
+
const budgetN = this.cfg.parse.budget.checkEveryN;
|
|
147
|
+
const onCheck = this.cfg.parse.budget.onCheck;
|
|
148
|
+
try {
|
|
149
|
+
// This loop is the heart of the engine. Keep processing rule
|
|
150
|
+
// occurrences until there's none left.
|
|
151
|
+
while (norule !== rule && kI < maxr) {
|
|
152
|
+
ctx.kI = kI;
|
|
153
|
+
ctx.rule = rule;
|
|
154
|
+
if (budgetN && null != onCheck && 0 === kI % budgetN && 0 < kI) {
|
|
155
|
+
if (false === onCheck(ctx)) {
|
|
156
|
+
throw new error_1.TabnasError('cancel', {}, ctx.t0, rule, ctx);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
ctx.log && ctx.log(utility_1.S.step, ctx.kI + ':');
|
|
160
|
+
if (ctx.sub.rule) {
|
|
161
|
+
ctx.sub.rule.map((sub) => sub(rule, ctx));
|
|
162
|
+
}
|
|
163
|
+
const prev = rule;
|
|
164
|
+
const prevState = rule.state;
|
|
165
|
+
rule = rule.process(ctx, lex);
|
|
166
|
+
// Post-process event: fires with the pass's matched tokens
|
|
167
|
+
// recorded on prev.o / prev.c and the state transition applied.
|
|
168
|
+
// Unlike the pre-process `rule` event, this one can see what the
|
|
169
|
+
// pass actually did (RuleDone: matched alternate's b/g/p/r).
|
|
170
|
+
if (ctx.sub.ruleDone) {
|
|
171
|
+
const dalt = ctx._dalt;
|
|
172
|
+
const done = {
|
|
173
|
+
state: prevState,
|
|
174
|
+
alt: null == dalt
|
|
175
|
+
? null
|
|
176
|
+
: {
|
|
177
|
+
b: dalt.b || 0,
|
|
178
|
+
// Snapshot: the alternate's own g array is live
|
|
179
|
+
// grammar configuration and must not be mutable
|
|
180
|
+
// through the event payload.
|
|
181
|
+
g: dalt.g ? dalt.g.slice() : [],
|
|
182
|
+
p: dalt.p || types_1.EMPTY,
|
|
183
|
+
r: dalt.r || types_1.EMPTY,
|
|
184
|
+
err: dalt.e,
|
|
185
|
+
},
|
|
186
|
+
};
|
|
187
|
+
ctx.sub.ruleDone.map((sub) => sub(prev, ctx, done));
|
|
188
|
+
}
|
|
189
|
+
ctx.log && ctx.log(utility_1.S.stack, ctx, rule, lex);
|
|
190
|
+
kI++;
|
|
130
191
|
}
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
192
|
+
// TODO: option to allow trailing content
|
|
193
|
+
// First check the lookahead buffer. A token that an alt fetched and
|
|
194
|
+
// then backtracked past (b:1) is still sitting in ctx.t[0] and was
|
|
195
|
+
// never consumed by any rule — asking the lexer for a *new* token
|
|
196
|
+
// here would skip straight over it and silently discard input.
|
|
197
|
+
// The Go port has always checked this first (go/parser.go:321-326);
|
|
198
|
+
// TS did not, which is why `[1] 2` parsed as `[1]` in TS and errored
|
|
199
|
+
// in Go. Go is the correct side.
|
|
200
|
+
const buffered = ctx.t[0];
|
|
201
|
+
if (null != buffered &&
|
|
202
|
+
notoken.tin !== buffered.tin &&
|
|
203
|
+
endtkn.tin !== buffered.tin) {
|
|
204
|
+
if (bdtin === buffered.tin) {
|
|
205
|
+
let details = {};
|
|
206
|
+
if (null != buffered.use) {
|
|
207
|
+
details.use = buffered.use;
|
|
208
|
+
}
|
|
209
|
+
throw new error_1.TabnasError(buffered.why || utility_1.S.unexpected, details, buffered, rule, ctx);
|
|
210
|
+
}
|
|
211
|
+
throw new error_1.TabnasError(utility_1.S.unexpected, {}, buffered, norule, ctx);
|
|
212
|
+
}
|
|
213
|
+
// Skip ignorable trivia (space/line/comment) exactly as the rule
|
|
214
|
+
// fetch loop does (rules.ts parse_alts): Go's Lex.Next skips them
|
|
215
|
+
// internally, and a trailing space is not trailing content — without
|
|
216
|
+
// this, a grammar whose rules consume everything before a trailing
|
|
217
|
+
// ignorable would report the ignorable itself as unexpected.
|
|
218
|
+
const IGNORE = this.cfg.tokenSetTins.IGNORE;
|
|
219
|
+
let endtry = lex.next(rule);
|
|
220
|
+
while (IGNORE[endtry.tin]) {
|
|
221
|
+
endtry = lex.next(rule);
|
|
222
|
+
}
|
|
223
|
+
if (bdtin === endtry.tin) {
|
|
224
|
+
// A bad token in trailing content carries its own error code
|
|
225
|
+
// (e.g. unterminated_string), matching the old badlex wrapper.
|
|
148
226
|
let details = {};
|
|
149
|
-
if (null !=
|
|
150
|
-
details.use =
|
|
227
|
+
if (null != endtry.use) {
|
|
228
|
+
details.use = endtry.use;
|
|
151
229
|
}
|
|
152
|
-
throw new error_1.TabnasError(
|
|
230
|
+
throw new error_1.TabnasError(endtry.why || utility_1.S.unexpected, details, endtry, rule, ctx);
|
|
153
231
|
}
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
let details = {};
|
|
161
|
-
if (null != endtry.use) {
|
|
162
|
-
details.use = endtry.use;
|
|
232
|
+
if (endtkn.tin !== endtry.tin) {
|
|
233
|
+
// Raise with the trailing token just fetched — ctx.t0 is a stale
|
|
234
|
+
// NOTOKEN here (the lookahead buffer was empty, which is why the
|
|
235
|
+
// lexer was asked for more), and reporting it placed the error at
|
|
236
|
+
// 1:1 with an empty token instead of at the trailing content.
|
|
237
|
+
throw new error_1.TabnasError(utility_1.S.unexpected, {}, endtry, norule, ctx);
|
|
163
238
|
}
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
239
|
+
// NOTE: by returning root, we get implicit closing of maps and lists.
|
|
240
|
+
const result = ctx.root().node;
|
|
241
|
+
if (this.cfg.result.fail.includes(result)) {
|
|
242
|
+
throw new error_1.TabnasError(utility_1.S.unexpected, {}, ctx.t0, norule, ctx);
|
|
243
|
+
}
|
|
244
|
+
return recovering ? { value: result, errors: ctx.errs } : result;
|
|
168
245
|
}
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
246
|
+
catch (err) {
|
|
247
|
+
// A throwing pass never reached the post-process dispatch: emit
|
|
248
|
+
// the failure event so structural consumers observe the final
|
|
249
|
+
// attempted pass (fail-fast and recovery give-up alike).
|
|
250
|
+
if (ctx.sub.ruleDone && err instanceof error_1.TabnasError) {
|
|
251
|
+
try {
|
|
252
|
+
const frule = ctx.rule;
|
|
253
|
+
if (null != frule && norule !== frule) {
|
|
254
|
+
const dalt = ctx._dalt;
|
|
255
|
+
const done = {
|
|
256
|
+
state: frule.state,
|
|
257
|
+
alt: null == dalt
|
|
258
|
+
? null
|
|
259
|
+
: {
|
|
260
|
+
b: dalt.b || 0,
|
|
261
|
+
g: dalt.g ? dalt.g.slice() : [],
|
|
262
|
+
p: dalt.p || types_1.EMPTY,
|
|
263
|
+
r: dalt.r || types_1.EMPTY,
|
|
264
|
+
err: dalt.e ?? err.internal?.token,
|
|
265
|
+
},
|
|
266
|
+
};
|
|
267
|
+
ctx.sub.ruleDone.map((sub) => sub(frule, ctx, done));
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
catch (subErr) {
|
|
271
|
+
// Subscriber failures must not mask the parse error.
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
// In recovery mode a terminal error (recovery gave up, trailing
|
|
275
|
+
// content, result.fail) has already been recorded on ctx.errs by
|
|
276
|
+
// the TabnasError constructor — convert to the { value, errors }
|
|
277
|
+
// result, keeping whatever partial value exists.
|
|
278
|
+
if (recovering && err instanceof error_1.TabnasError) {
|
|
279
|
+
let value = undefined;
|
|
280
|
+
try {
|
|
281
|
+
value = ctx.root()?.node;
|
|
282
|
+
// When the root never closed, the most complete partial
|
|
283
|
+
// container is the outermost active rule's node.
|
|
284
|
+
if (null == value) {
|
|
285
|
+
for (let d = 0; d < ctx.rsI; d++) {
|
|
286
|
+
const n = ctx.rs[d]?.node;
|
|
287
|
+
if (null != n) {
|
|
288
|
+
value = n;
|
|
289
|
+
break;
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
if (null == value) {
|
|
293
|
+
value = ctx.rule?.node ?? undefined;
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
catch (rootErr) {
|
|
298
|
+
// No root yet: the error preceded the first rule.
|
|
299
|
+
}
|
|
300
|
+
return { value, errors: ctx.errs };
|
|
301
|
+
}
|
|
302
|
+
throw err;
|
|
173
303
|
}
|
|
174
|
-
return result;
|
|
175
304
|
}
|
|
176
305
|
clone(options, config, j) {
|
|
177
306
|
let parser = new Parser(options, config, j);
|
|
178
307
|
// Inherit rules from parent, filtered by config.rule
|
|
179
|
-
parser.rsm = Object.keys(this.rsm).reduce((a, rn) => ((a[rn] = (0, utility_1.filterRules)(this.rsm[rn], this.cfg)), a),
|
|
308
|
+
parser.rsm = Object.keys(this.rsm).reduce((a, rn) => ((a[rn] = (0, utility_1.filterRules)(this.rsm[rn], this.cfg)), a), Object.create(null));
|
|
180
309
|
parser.norm();
|
|
181
310
|
return parser;
|
|
182
311
|
}
|
package/dist/parser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"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"}
|
package/dist/rules.d.ts
CHANGED
|
@@ -108,6 +108,7 @@ declare class RuleSpec {
|
|
|
108
108
|
unknownRule(tkn: Token, name: string): Token;
|
|
109
109
|
}
|
|
110
110
|
declare const makeRuleSpec: (...params: ConstructorParameters<typeof RuleSpec>) => RuleSpec;
|
|
111
|
+
declare function continuationTins(ctx: Context, rule: Rule, atPos?: number): Tin[];
|
|
111
112
|
/** Every problem in an alternate's DECLARATIVE parts, as messages.
|
|
112
113
|
*
|
|
113
114
|
* Pure: it reports instead of throwing, so a whole grammar can be checked and
|
|
@@ -123,4 +124,4 @@ export declare function validateAlt(alt: any): string[];
|
|
|
123
124
|
/** Every problem in a list of alternates, each prefixed with where it is.
|
|
124
125
|
* `label` names the list, e.g. `"val.open"`. */
|
|
125
126
|
export declare function validateAlts(alts: any[], label?: string): string[];
|
|
126
|
-
export { Rule, RuleSpec, AltMatch, makeRule, makeNoRule, makeRuleSpec };
|
|
127
|
+
export { Rule, RuleSpec, AltMatch, makeRule, makeNoRule, makeRuleSpec, continuationTins };
|