parser-lr 0.8.1 → 0.8.3
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/bin/parser-lr.js +518 -190
- package/bin/parser-lr.js.map +1 -1
- package/dist/lib/grammar/grammar-from-cst.js +4 -2
- package/dist/lib/grammar/grammar-from-cst.js.map +1 -1
- package/dist/lib/grammar/grammar.json +330 -164
- package/dist/lib/grammar/table-validator.d.ts.map +1 -1
- package/dist/lib/grammar/table-validator.js +127 -2
- package/dist/lib/grammar/table-validator.js.map +1 -1
- package/dist/lib/transform/cst-transformer.d.ts +4 -6
- package/dist/lib/transform/cst-transformer.d.ts.map +1 -1
- package/dist/lib/transform/cst-transformer.js +17 -21
- package/dist/lib/transform/cst-transformer.js.map +1 -1
- package/dist/lib/transform/epsilon-node.d.ts +32 -0
- package/dist/lib/transform/epsilon-node.d.ts.map +1 -0
- package/dist/lib/transform/epsilon-node.js +40 -0
- package/dist/lib/transform/epsilon-node.js.map +1 -0
- package/dist/lib/transform/index.d.ts +1 -0
- package/dist/lib/transform/index.d.ts.map +1 -1
- package/dist/lib/transform/index.js +1 -0
- package/dist/lib/transform/index.js.map +1 -1
- package/docs/grammar.md +36 -3
- package/grammars/grammar.grammar +2 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-validator.d.ts","sourceRoot":"","sources":["../../../src/lib/grammar/table-validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGzD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"table-validator.d.ts","sourceRoot":"","sources":["../../../src/lib/grammar/table-validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGzD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAO5C;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG,OAAO,GAAG,SAAS,CAAC;AAE1D;;GAEG;AACH,MAAM,WAAW,oBAAoB;IAEjC,QAAQ,CAAC,QAAQ,EAAE,uBAAuB,CAAC;IAC3C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAC;CAC5C;AAED;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAEzC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,oBAAoB,EAAE,CAkC7E;AAikBD;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACvC,MAAM,EAAE,SAAS,oBAAoB,EAAE,EACvC,OAAO,GAAE,4BAAiC,GAC3C,MAAM,EAAE,CASV"}
|
|
@@ -15,7 +15,7 @@ export function validateGrammarTable(grammar) {
|
|
|
15
15
|
for (const rule of grammar.transformSchema.rules) {
|
|
16
16
|
validateTransformProductionExists(rule, bnfProductionNames, issues);
|
|
17
17
|
for (const alternative of rule.alternatives) {
|
|
18
|
-
validateTransformExpression(grammar, alternative, issues);
|
|
18
|
+
validateTransformExpression(grammar, rule, alternative, issues);
|
|
19
19
|
collectPassCollapseWarnings(grammar, rule, alternative, bnf.productions, issues);
|
|
20
20
|
}
|
|
21
21
|
}
|
|
@@ -119,12 +119,13 @@ function syntheticRepeatPrefix(name) {
|
|
|
119
119
|
* @param alternative - Transform alternative owning the expression.
|
|
120
120
|
* @param issues - Issue list to append to.
|
|
121
121
|
*/
|
|
122
|
-
function validateTransformExpression(grammar, alternative, issues) {
|
|
122
|
+
function validateTransformExpression(grammar, rule, alternative, issues) {
|
|
123
123
|
const expression = alternative.expression;
|
|
124
124
|
const location = alternative.location ?? null;
|
|
125
125
|
switch (expression.kind) {
|
|
126
126
|
case 'build':
|
|
127
127
|
validateAstTarget(grammar, expression.typeName, expression.variant, location, issues);
|
|
128
|
+
validateBuildArity(grammar, rule, alternative, expression, location, issues);
|
|
128
129
|
break;
|
|
129
130
|
case 'foldLeft':
|
|
130
131
|
case 'foldRight':
|
|
@@ -136,6 +137,130 @@ function validateTransformExpression(grammar, alternative, issues) {
|
|
|
136
137
|
break;
|
|
137
138
|
}
|
|
138
139
|
}
|
|
140
|
+
/**
|
|
141
|
+
* Records an error when a build argument list conflicts with a zero-factor shape.
|
|
142
|
+
*
|
|
143
|
+
* @remarks
|
|
144
|
+
* Build argument counts are not required to match grammar or AST slot counts in
|
|
145
|
+
* general: keywords may be dropped, punctuation may be kept, and child
|
|
146
|
+
* productions may build a shared parent AST variant. The only coherent checks
|
|
147
|
+
* are zero-factor cases and empty builds targeting a non-empty AST variant.
|
|
148
|
+
*
|
|
149
|
+
* @param grammar - Parsed grammar model.
|
|
150
|
+
* @param rule - Transform rule owning the build expression.
|
|
151
|
+
* @param alternative - Transform alternative owning the build expression.
|
|
152
|
+
* @param expression - Build transform expression.
|
|
153
|
+
* @param location - Source span of the transform alternative.
|
|
154
|
+
* @param issues - Issue list to append to.
|
|
155
|
+
*/
|
|
156
|
+
function validateBuildArity(grammar, rule, alternative, expression, location, issues) {
|
|
157
|
+
const argumentCount = expression.arguments.length;
|
|
158
|
+
const production = grammar.production(rule.production);
|
|
159
|
+
// Reject build arguments on a labeled zero-factor grammar alternative.
|
|
160
|
+
if (production !== null) {
|
|
161
|
+
const alternativeExpression = findGrammarAlternativeExpression(production.expression, alternative.label);
|
|
162
|
+
if (alternativeExpression !== null
|
|
163
|
+
&& isZeroFactorExpression(alternativeExpression)
|
|
164
|
+
&& argumentCount > 0) {
|
|
165
|
+
issues.push({
|
|
166
|
+
severity: 'error',
|
|
167
|
+
message: `transform ${expression.typeName}.${expression.variant} has `
|
|
168
|
+
+ `${String(argumentCount)} argument(s) but ast variant declares 0`,
|
|
169
|
+
location,
|
|
170
|
+
});
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
if (grammar.astSchema === null) {
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
const astType = grammar.astSchema.type(expression.typeName);
|
|
178
|
+
if (astType === null) {
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
const variantExpression = findAstVariantExpression(astType.expression, expression.variant);
|
|
182
|
+
if (variantExpression === null) {
|
|
183
|
+
return;
|
|
184
|
+
}
|
|
185
|
+
// Reject build arguments on a zero-factor AST variant.
|
|
186
|
+
if (isZeroFactorExpression(variantExpression)) {
|
|
187
|
+
if (argumentCount > 0) {
|
|
188
|
+
issues.push({
|
|
189
|
+
severity: 'error',
|
|
190
|
+
message: `transform ${expression.typeName}.${expression.variant} has `
|
|
191
|
+
+ `${String(argumentCount)} argument(s) but ast variant declares 0`,
|
|
192
|
+
location,
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
return;
|
|
196
|
+
}
|
|
197
|
+
// Reject empty builds that target a non-empty AST variant.
|
|
198
|
+
if (argumentCount === 0) {
|
|
199
|
+
issues.push({
|
|
200
|
+
severity: 'error',
|
|
201
|
+
message: `transform ${expression.typeName}.${expression.variant} has `
|
|
202
|
+
+ `0 argument(s) but ast variant requires 1`,
|
|
203
|
+
location,
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Returns whether an expression is a labeled zero-factor alternative.
|
|
209
|
+
*
|
|
210
|
+
* @param expression - Grammar or AST alternative expression.
|
|
211
|
+
*/
|
|
212
|
+
function isZeroFactorExpression(expression) {
|
|
213
|
+
return expression.kind === 'sequence' && expression.elements.length === 0;
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Returns the expression for one labeled grammar alternative.
|
|
217
|
+
*
|
|
218
|
+
* @param expression - Production right-hand side expression.
|
|
219
|
+
* @param label - Transform alternative label.
|
|
220
|
+
*/
|
|
221
|
+
function findGrammarAlternativeExpression(expression, label) {
|
|
222
|
+
if (expression.kind === 'choice') {
|
|
223
|
+
for (const alternative of expression.alternatives) {
|
|
224
|
+
if (alternative.label === label) {
|
|
225
|
+
return alternative.expression;
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
if (label === 'main' && expression.alternatives.length === 1) {
|
|
229
|
+
return expression.alternatives[0]?.expression ?? null;
|
|
230
|
+
}
|
|
231
|
+
return null;
|
|
232
|
+
}
|
|
233
|
+
if (label === 'main') {
|
|
234
|
+
return expression;
|
|
235
|
+
}
|
|
236
|
+
return null;
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Returns the expression for one labeled AST alternative.
|
|
240
|
+
*
|
|
241
|
+
* @param expression - AST type right-hand side.
|
|
242
|
+
* @param variant - Variant label to find.
|
|
243
|
+
*/
|
|
244
|
+
function findAstVariantExpression(expression, variant) {
|
|
245
|
+
if (expression.kind === 'choice') {
|
|
246
|
+
for (const alternative of expression.alternatives) {
|
|
247
|
+
if (alternative.label === variant) {
|
|
248
|
+
return alternative.expression;
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
return null;
|
|
252
|
+
}
|
|
253
|
+
if (expression.kind === 'sequence' || expression.kind === 'group') {
|
|
254
|
+
const inner = expression.kind === 'sequence'
|
|
255
|
+
? expression.elements[0]
|
|
256
|
+
: expression.element;
|
|
257
|
+
if (inner === undefined) {
|
|
258
|
+
return null;
|
|
259
|
+
}
|
|
260
|
+
return findAstVariantExpression(inner, variant);
|
|
261
|
+
}
|
|
262
|
+
return null;
|
|
263
|
+
}
|
|
139
264
|
/**
|
|
140
265
|
* Records an error when a transform references an undefined AST type or variant.
|
|
141
266
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-validator.js","sourceRoot":"","sources":["../../../src/lib/grammar/table-validator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAIvE,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AA4BnE;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAgB;IAEjD,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,MAAM,GAAG,GAAG,IAAI,aAAa,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;IACjD,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAEzF,kCAAkC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAEpD,IAAI,OAAO,CAAC,eAAe,KAAK,IAAI,EACpC,CAAC;QACG,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,eAAe,CAAC,KAAK,EAChD,CAAC;YACG,iCAAiC,CAAC,IAAI,EAAE,kBAAkB,EAAE,MAAM,CAAC,CAAC;YAEpE,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,YAAY,EAC3C,CAAC;gBACG,2BAA2B,CACvB,OAAO,EACP,WAAW,EACX,MAAM,CACT,CAAC;gBACF,2BAA2B,CACvB,OAAO,EACP,IAAI,EACJ,WAAW,EACX,GAAG,CAAC,WAAW,EACf,MAAM,CACT,CAAC;YACN,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,kCAAkC,CACvC,OAAgB,EAChB,MAA8B;IAG9B,yDAAyD;IACzD,0BAA0B,CACtB,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QACrC,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,QAAQ,EAAE,UAAU,CAAC,QAAQ,IAAI,IAAI;KACxC,CAAC,CAAC,EACH,SAAS,EACT,YAAY,EACZ,MAAM,CACT,CAAC;IAEF,gCAAgC;IAChC,IAAI,OAAO,CAAC,SAAS,KAAK,IAAI,EAC9B,CAAC;QACG,0BAA0B,CACtB,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACnC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI;SAClC,CAAC,CAAC,EACH,KAAK,EACL,MAAM,EACN,MAAM,CACT,CAAC;IACN,CAAC;IAED,yDAAyD;IACzD,IAAI,OAAO,CAAC,eAAe,KAAK,IAAI,EACpC,CAAC;QACG,0BAA0B,CACtB,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACzC,IAAI,EAAE,IAAI,CAAC,UAAU;YACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI;SAClC,CAAC,CAAC,EACH,WAAW,EACX,MAAM,EACN,MAAM,CACT,CAAC;IACN,CAAC;AACL,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,0BAA0B,CAC/B,WAAyE,EACzE,OAAe,EACf,IAAY,EACZ,MAA8B;IAG9B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IAEnC,KAAK,MAAM,UAAU,IAAI,WAAW,EACpC,CAAC;QACG,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAC/D,CAAC;YACG,MAAM,CAAC,IAAI,CAAC;gBACR,QAAQ,EAAE,SAAS;gBACnB,OAAO,EAAE,aAAa,OAAO,IAAI,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI;sBACtE,gDAAgD;gBACtD,QAAQ,EAAE,UAAU,CAAC,QAAQ;aAChC,CAAC,CAAC;YACH,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,SAAS,iCAAiC,CACtC,IAAmB,EACnB,kBAAuC,EACvC,MAA8B;IAG9B,kCAAkC;IAClC,IAAI,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,EAC3C,CAAC;QACG,OAAO;IACX,CAAC;IAED,mEAAmE;IACnE,MAAM,YAAY,GAAG,qBAAqB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC5D,MAAM,aAAa,GAAG,YAAY,KAAK,IAAI;WACpC,CAAC,GAAG,kBAAkB,CAAC,CAAC,IAAI,CAC3B,CAAC,cAAc,EAAE,EAAE,CAAC,qBAAqB,CAAC,cAAc,CAAC,KAAK,YAAY,CAC7E,CAAC;IAEN,IAAI,CAAC,aAAa,EAClB,CAAC;QACG,MAAM,CAAC,IAAI,CAAC;YACR,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,yCAAyC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YACnF,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI;SAClC,CAAC,CAAC;IACP,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,SAAS,qBAAqB,CAAC,IAAY;IAEvC,MAAM,KAAK,GAAG,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE9C,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAC9B,CAAC;AAED;;;;;;GAMG;AACH,SAAS,2BAA2B,CAChC,OAAgB,EAChB,WAAiC,EACjC,MAA8B;IAG9B,MAAM,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC;IAC1C,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,IAAI,IAAI,CAAC;IAE9C,QAAQ,UAAU,CAAC,IAAI,EACvB,CAAC;QACG,KAAK,OAAO;YACR,iBAAiB,CAAC,OAAO,EAAE,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;YACtF,MAAM;QAEV,KAAK,UAAU,CAAC;QAChB,KAAK,WAAW,CAAC;QACjB,KAAK,SAAS;YACV,iBAAiB,CAAC,OAAO,EAAE,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;YACtF,MAAM;QAEV,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM;YACP,MAAM;IACd,CAAC;AACL,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,iBAAiB,CACtB,OAAgB,EAChB,QAAgB,EAChB,OAAe,EACf,QAA+B,EAC/B,MAA8B;IAG9B,IAAI,OAAO,CAAC,SAAS,KAAK,IAAI,EAC9B,CAAC;QACG,MAAM,CAAC,IAAI,CAAC;YACR,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,wBAAwB,QAAQ,IAAI,OAAO,qCAAqC;YACzF,QAAQ;SACX,CAAC,CAAC;QAEH,OAAO;IACX,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAEjD,IAAI,OAAO,KAAK,IAAI,EACpB,CAAC;QACG,MAAM,CAAC,IAAI,CAAC;YACR,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,2CAA2C,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;YAC9E,QAAQ;SACX,CAAC,CAAC;QAEH,OAAO;IACX,CAAC;IAED,MAAM,QAAQ,GAAG,kBAAkB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAExD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAC/B,CAAC;QACG,MAAM,CAAC,IAAI,CAAC;YACR,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,wBAAwB,QAAQ,IAAI,OAAO,+BAA+B;YACnF,QAAQ;SACX,CAAC,CAAC;IACP,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,SAAS,kBAAkB,CAAC,UAAsB;IAE9C,IAAI,UAAU,CAAC,IAAI,KAAK,QAAQ,EAChC,CAAC;QACG,OAAO,UAAU,CAAC,YAAY;aACzB,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC;aACvC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,UAAU,CAAC,IAAI,KAAK,UAAU,IAAI,UAAU,CAAC,IAAI,KAAK,OAAO,EACjE,CAAC;QACG,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,KAAK,UAAU;YACxC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;YACxB,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC;QAEzB,IAAI,KAAK,KAAK,SAAS,EACvB,CAAC;YACG,OAAO,EAAE,CAAC;QACd,CAAC;QAED,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,EAAE,CAAC;AACd,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,2BAA2B,CAChC,OAAgB,EAChB,IAAmB,EACnB,WAAiC,EACjC,cAAwC,EACxC,MAA8B;IAG9B,MAAM,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC;IAE1C,IAAI,UAAU,CAAC,IAAI,KAAK,MAAM,EAC9B,CAAC;QACG,OAAO;IACX,CAAC;IAED,MAAM,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAE7D,IAAI,gBAAgB,KAAK,IAAI,EAC7B,CAAC;QACG,OAAO;IACX,CAAC;IAED,MAAM,WAAW,GAAG,oBAAoB,CAAC,gBAAgB,CAAC,UAAU,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;IAE5F,IAAI,WAAW,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,EAC/D,CAAC;QACG,OAAO;IACX,CAAC;IAED,IAAI,OAAO,CAAC,eAAe,EAAE,OAAO,CAAC,WAAW,CAAC,KAAK,IAAI,EAC1D,CAAC;QACG,OAAO;IACX,CAAC;IAED,IAAI,CAAC,4BAA4B,CAAC,WAAW,EAAE,cAAc,CAAC,EAC9D,CAAC;QACG,OAAO;IACX,CAAC;IAED,MAAM,CAAC,IAAI,CAAC;QACR,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,QAAQ,UAAU,CAAC,SAAS,QAAQ,IAAI,CAAC,UAAU,UAAU,WAAW,GAAG;cAC9E,+DAA+D;cAC/D,uBAAuB,WAAW,eAAe;QACvD,QAAQ,EAAE,WAAW,CAAC,QAAQ,IAAI,IAAI;KACzC,CAAC,CAAC;AACP,CAAC;AAED;;;;;GAKG;AACH,SAAS,oBAAoB,CAAC,UAAsB,EAAE,OAAe;IAEjE,IAAI,UAAU,CAAC,IAAI,KAAK,gBAAgB,IAAI,UAAU,CAAC,OAAO,KAAK,OAAO,EAC1E,CAAC;QACG,OAAO,UAAU,CAAC,IAAI,CAAC;IAC3B,CAAC;IAED,IAAI,UAAU,CAAC,IAAI,KAAK,UAAU,EAClC,CAAC;QACG,KAAK,MAAM,OAAO,IAAI,UAAU,CAAC,QAAQ,EACzC,CAAC;YACG,MAAM,QAAQ,GAAG,oBAAoB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAExD,IAAI,QAAQ,KAAK,IAAI,EACrB,CAAC;gBACG,OAAO,QAAQ,CAAC;YACpB,CAAC;QACL,CAAC;IACL,CAAC;IAED,IAAI,UAAU,CAAC,IAAI,KAAK,QAAQ,EAChC,CAAC;QACG,KAAK,MAAM,WAAW,IAAI,UAAU,CAAC,YAAY,EACjD,CAAC;YACG,MAAM,QAAQ,GAAG,oBAAoB,CAAC,WAAW,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAEvE,IAAI,QAAQ,KAAK,IAAI,EACrB,CAAC;gBACG,OAAO,QAAQ,CAAC;YACpB,CAAC;QACL,CAAC;IACL,CAAC;IAED,IAAI,UAAU,CAAC,IAAI,KAAK,UAAU,IAAI,UAAU,CAAC,IAAI,KAAK,OAAO,EACjE,CAAC;QACG,OAAO,oBAAoB,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI,UAAU,CAAC,IAAI,KAAK,QAAQ,EAChC,CAAC;QACG,OAAO,oBAAoB,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,SAAS,4BAA4B,CACjC,cAAsB,EACtB,cAAwC;IAGxC,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CACtC,UAAU,CAAC,IAAI,KAAK,cAAc;WAC/B,UAAU,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC;WAC3B,gBAAgB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC;AAED;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,MAA6B;IAEnD,OAAO,MAAM,EAAE,IAAI,KAAK,UAAU,IAAI,MAAM,EAAE,IAAI,KAAK,OAAO,CAAC;AACnE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,2BAA2B,CACvC,MAAuC,EACvC,UAAwC,EAAE;IAG1C,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,gBAAgB,CAAC;QAC1C,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;KAC3B,CAAC,CAAC,CAAC;AACR,CAAC"}
|
|
1
|
+
{"version":3,"file":"table-validator.js","sourceRoot":"","sources":["../../../src/lib/grammar/table-validator.ts"],"names":[],"mappings":"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"}
|
|
@@ -89,6 +89,10 @@ export declare class CstTransformer {
|
|
|
89
89
|
/**
|
|
90
90
|
* Transforms a CST node without explicit transform rules.
|
|
91
91
|
*
|
|
92
|
+
* @remarks
|
|
93
|
+
* Authored labeled epsilon alternatives (`#absent`) keep their identity.
|
|
94
|
+
* Synthetic unlabeled epsilons from `{…}` / `[…]` desugaring are dropped.
|
|
95
|
+
*
|
|
92
96
|
* @param node - CST node to pass through or unwrap.
|
|
93
97
|
*/
|
|
94
98
|
private defaultTransform;
|
|
@@ -132,12 +136,6 @@ export declare class CstTransformer {
|
|
|
132
136
|
* @param node - CST node being transformed.
|
|
133
137
|
*/
|
|
134
138
|
private resolveTransformRule;
|
|
135
|
-
/**
|
|
136
|
-
* Returns whether a CST node represents an epsilon production.
|
|
137
|
-
*
|
|
138
|
-
* @param node - CST node to test.
|
|
139
|
-
*/
|
|
140
|
-
private isEpsilonNode;
|
|
141
139
|
/**
|
|
142
140
|
* Returns parse table production metadata for a CST node.
|
|
143
141
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cst-transformer.d.ts","sourceRoot":"","sources":["../../../src/lib/transform/cst-transformer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAG7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEtE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AACnF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAGhE,OAAO,EAA2D,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"cst-transformer.d.ts","sourceRoot":"","sources":["../../../src/lib/transform/cst-transformer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAG7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEtE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AACnF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAGhE,OAAO,EAA2D,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAMhH;;GAEG;AACH,qBAAa,cAAc;IAEvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAa;IAEnC;;;;;OAKG;gBACgB,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,UAAU;IAM7D;;;;;OAKG;IACI,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,GAAG,OAAO,GAAG,IAAI;IAUrD;;;;;;OAMG;WACW,SAAS,CACnB,GAAG,EAAE,OAAO,GAAG,IAAI,EACnB,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,UAAU,GAClB,OAAO,GAAG,IAAI;IAUjB;;;;OAIG;IACH,OAAO,CAAC,aAAa;IA+BrB;;;;;OAKG;IACH,OAAO,CAAC,eAAe;IAwBvB;;;;;OAKG;IACH,OAAO,CAAC,SAAS;IAKjB;;;;;OAKG;IACH,OAAO,CAAC,UAAU;IAkElB;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IA2DrB;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAsEtB;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IAoCpB;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;IAwC5B;;;;;;;;OAQG;IACH,OAAO,CAAC,gBAAgB;IAkDxB;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAiBzB;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;IAY1B;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;IAyB5B;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IAsBzB;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAoBtB;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IA6B5B;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAUrB;;;;;OAKG;IACH,OAAO,CAAC,eAAe;IAuBvB;;;;;;;OAOG;IACH,OAAO,CAAC,YAAY;CAcvB;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CACxB,GAAG,EAAE,OAAO,GAAG,IAAI,EACnB,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,UAAU,GAClB,OAAO,GAAG,IAAI,CAGhB;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACnC,UAAU,EAAE,wBAAwB,GACrC,SAAS,cAAc,EAAE,CAG3B"}
|
|
@@ -2,6 +2,7 @@ import { AstNode } from '../ast/ast-node.js';
|
|
|
2
2
|
import { AUGMENTED_START_SYMBOL } from '../parse-table/bnf/bnf-grammar.js';
|
|
3
3
|
import { mergeChildLocations } from '../shift-reduce/shift-reduce-engine.js';
|
|
4
4
|
import { productionSlots, referenceSlotIndex, repeatSymbolPrefix } from './binding-map.js';
|
|
5
|
+
import { isAuthoredEpsilonNode, isSyntheticEpsilonNode, } from './epsilon-node.js';
|
|
5
6
|
/**
|
|
6
7
|
* Applies CST-to-AST transform rules to a concrete syntax tree.
|
|
7
8
|
*/
|
|
@@ -127,7 +128,8 @@ export class CstTransformer {
|
|
|
127
128
|
if (childNode === null) {
|
|
128
129
|
return null;
|
|
129
130
|
}
|
|
130
|
-
|
|
131
|
+
// Drop synthetic unlabeled epsilons; keep authored `#label` empty alts.
|
|
132
|
+
if (isSyntheticEpsilonNode(childNode, this.table)) {
|
|
131
133
|
continue;
|
|
132
134
|
}
|
|
133
135
|
const child = this.transformNode(childNode);
|
|
@@ -159,7 +161,7 @@ export class CstTransformer {
|
|
|
159
161
|
}
|
|
160
162
|
let acc = this.buildAstNode(expression.typeName, expression.variant, [left, operator, right], node.location);
|
|
161
163
|
let tail = this.findRepeatTail(node, slots);
|
|
162
|
-
while (tail !== null && !this.
|
|
164
|
+
while (tail !== null && !isSyntheticEpsilonNode(tail, this.table)) {
|
|
163
165
|
const tailSlots = this.resolveReferences(tail, expression.references);
|
|
164
166
|
if (tailSlots === null) {
|
|
165
167
|
return null;
|
|
@@ -183,7 +185,7 @@ export class CstTransformer {
|
|
|
183
185
|
applyFoldRight(node, expression) {
|
|
184
186
|
const parts = [];
|
|
185
187
|
let current = node;
|
|
186
|
-
while (current !== null && !this.
|
|
188
|
+
while (current !== null && !isSyntheticEpsilonNode(current, this.table)) {
|
|
187
189
|
const leftRef = expression.references[0];
|
|
188
190
|
const operatorRef = expression.references[1];
|
|
189
191
|
const rightRef = expression.references[2];
|
|
@@ -225,14 +227,14 @@ export class CstTransformer {
|
|
|
225
227
|
applyFlatten(node, expression) {
|
|
226
228
|
const items = [];
|
|
227
229
|
let current = node;
|
|
228
|
-
while (current !== null && !this.
|
|
230
|
+
while (current !== null && !isSyntheticEpsilonNode(current, this.table)) {
|
|
229
231
|
const head = this.transformFlattenHead(current, expression.head);
|
|
230
232
|
if (head === null) {
|
|
231
233
|
return null;
|
|
232
234
|
}
|
|
233
235
|
items.push(head);
|
|
234
236
|
const tail = this.resolveReferenceNode(current, expression.tail);
|
|
235
|
-
if (tail === null || this.
|
|
237
|
+
if (tail === null || isSyntheticEpsilonNode(tail, this.table)) {
|
|
236
238
|
break;
|
|
237
239
|
}
|
|
238
240
|
current = tail;
|
|
@@ -272,10 +274,19 @@ export class CstTransformer {
|
|
|
272
274
|
/**
|
|
273
275
|
* Transforms a CST node without explicit transform rules.
|
|
274
276
|
*
|
|
277
|
+
* @remarks
|
|
278
|
+
* Authored labeled epsilon alternatives (`#absent`) keep their identity.
|
|
279
|
+
* Synthetic unlabeled epsilons from `{…}` / `[…]` desugaring are dropped.
|
|
280
|
+
*
|
|
275
281
|
* @param node - CST node to pass through or unwrap.
|
|
276
282
|
*/
|
|
277
283
|
defaultTransform(node) {
|
|
278
|
-
|
|
284
|
+
// Authored `#label` empty alternatives are first-class nodes.
|
|
285
|
+
if (isAuthoredEpsilonNode(node, this.table)) {
|
|
286
|
+
return AstNode.rule(node.symbol, [], node.location, node.variant);
|
|
287
|
+
}
|
|
288
|
+
// Synthetic unlabeled epsilons are scaffolding, not AST content.
|
|
289
|
+
if (isSyntheticEpsilonNode(node, this.table)) {
|
|
279
290
|
return null;
|
|
280
291
|
}
|
|
281
292
|
const children = this.transformChildren(node.children);
|
|
@@ -397,21 +408,6 @@ export class CstTransformer {
|
|
|
397
408
|
}
|
|
398
409
|
return null;
|
|
399
410
|
}
|
|
400
|
-
/**
|
|
401
|
-
* Returns whether a CST node represents an epsilon production.
|
|
402
|
-
*
|
|
403
|
-
* @param node - CST node to test.
|
|
404
|
-
*/
|
|
405
|
-
isEpsilonNode(node) {
|
|
406
|
-
if (node.isTerminal) {
|
|
407
|
-
return false;
|
|
408
|
-
}
|
|
409
|
-
if (node.children.length > 0) {
|
|
410
|
-
return false;
|
|
411
|
-
}
|
|
412
|
-
const production = this.productionFor(node);
|
|
413
|
-
return production !== null && production.rhs.length === 0;
|
|
414
|
-
}
|
|
415
411
|
/**
|
|
416
412
|
* Returns parse table production metadata for a CST node.
|
|
417
413
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cst-transformer.js","sourceRoot":"","sources":["../../../src/lib/transform/cst-transformer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cst-transformer.js","sourceRoot":"","sources":["../../../src/lib/transform/cst-transformer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { AstNode } from '../ast/ast-node.js';
|
|
2
|
+
import type { ParseTable } from '../parse-table/parse-table.js';
|
|
3
|
+
/**
|
|
4
|
+
* Returns whether a CST node was reduced by an empty right-hand side.
|
|
5
|
+
*
|
|
6
|
+
* @param node - CST node to test.
|
|
7
|
+
* @param table - Parse table supplying production metadata.
|
|
8
|
+
*/
|
|
9
|
+
export declare function isEpsilonNode(node: AstNode, table: ParseTable): boolean;
|
|
10
|
+
/**
|
|
11
|
+
* Returns whether a CST node is an authored labeled empty alternative.
|
|
12
|
+
*
|
|
13
|
+
* @remarks
|
|
14
|
+
* Labeled epsilons such as `#absent` are first-class grammar alternatives.
|
|
15
|
+
* They keep identity through default transforms.
|
|
16
|
+
*
|
|
17
|
+
* @param node - CST node to test.
|
|
18
|
+
* @param table - Parse table supplying production metadata.
|
|
19
|
+
*/
|
|
20
|
+
export declare function isAuthoredEpsilonNode(node: AstNode, table: ParseTable): boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Returns whether a CST node is synthetic unlabeled epsilon scaffolding.
|
|
23
|
+
*
|
|
24
|
+
* @remarks
|
|
25
|
+
* Unlabeled empty productions come from `{…}` / `[…]` desugaring. They are
|
|
26
|
+
* not authored alternatives and should disappear from AST construction.
|
|
27
|
+
*
|
|
28
|
+
* @param node - CST node to test.
|
|
29
|
+
* @param table - Parse table supplying production metadata.
|
|
30
|
+
*/
|
|
31
|
+
export declare function isSyntheticEpsilonNode(node: AstNode, table: ParseTable): boolean;
|
|
32
|
+
//# sourceMappingURL=epsilon-node.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"epsilon-node.d.ts","sourceRoot":"","sources":["../../../src/lib/transform/epsilon-node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAEhE;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAUvE;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAG/E;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAGhF"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Returns whether a CST node was reduced by an empty right-hand side.
|
|
3
|
+
*
|
|
4
|
+
* @param node - CST node to test.
|
|
5
|
+
* @param table - Parse table supplying production metadata.
|
|
6
|
+
*/
|
|
7
|
+
export function isEpsilonNode(node, table) {
|
|
8
|
+
if (node.isTerminal || node.children.length > 0 || node.productionId === null) {
|
|
9
|
+
return false;
|
|
10
|
+
}
|
|
11
|
+
const production = table.production(node.productionId);
|
|
12
|
+
return production !== null && production.rhs.length === 0;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Returns whether a CST node is an authored labeled empty alternative.
|
|
16
|
+
*
|
|
17
|
+
* @remarks
|
|
18
|
+
* Labeled epsilons such as `#absent` are first-class grammar alternatives.
|
|
19
|
+
* They keep identity through default transforms.
|
|
20
|
+
*
|
|
21
|
+
* @param node - CST node to test.
|
|
22
|
+
* @param table - Parse table supplying production metadata.
|
|
23
|
+
*/
|
|
24
|
+
export function isAuthoredEpsilonNode(node, table) {
|
|
25
|
+
return isEpsilonNode(node, table) && node.variant !== null;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Returns whether a CST node is synthetic unlabeled epsilon scaffolding.
|
|
29
|
+
*
|
|
30
|
+
* @remarks
|
|
31
|
+
* Unlabeled empty productions come from `{…}` / `[…]` desugaring. They are
|
|
32
|
+
* not authored alternatives and should disappear from AST construction.
|
|
33
|
+
*
|
|
34
|
+
* @param node - CST node to test.
|
|
35
|
+
* @param table - Parse table supplying production metadata.
|
|
36
|
+
*/
|
|
37
|
+
export function isSyntheticEpsilonNode(node, table) {
|
|
38
|
+
return isEpsilonNode(node, table) && node.variant === null;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=epsilon-node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"epsilon-node.js","sourceRoot":"","sources":["../../../src/lib/transform/epsilon-node.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,IAAa,EAAE,KAAiB;IAE1D,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,EAC7E,CAAC;QACG,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAEvD,OAAO,UAAU,KAAK,IAAI,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC;AAC9D,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAa,EAAE,KAAiB;IAElE,OAAO,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC;AAC/D,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAa,EAAE,KAAiB;IAEnE,OAAO,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC;AAC/D,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { parseRhsSymbolKey, productionSlots, referenceSlotIndex } from './binding-map.js';
|
|
2
2
|
export type { ProductionSlot } from './binding-map.js';
|
|
3
|
+
export { isAuthoredEpsilonNode, isEpsilonNode, isSyntheticEpsilonNode, } from './epsilon-node.js';
|
|
3
4
|
export { CstTransformer, describeProductionSlots, transformCst } from './cst-transformer.js';
|
|
4
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/transform/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC1F,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/transform/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC1F,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EACH,qBAAqB,EACrB,aAAa,EACb,sBAAsB,GACzB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export { parseRhsSymbolKey, productionSlots, referenceSlotIndex } from './binding-map.js';
|
|
2
|
+
export { isAuthoredEpsilonNode, isEpsilonNode, isSyntheticEpsilonNode, } from './epsilon-node.js';
|
|
2
3
|
export { CstTransformer, describeProductionSlots, transformCst } from './cst-transformer.js';
|
|
3
4
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/transform/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE1F,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/transform/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE1F,OAAO,EACH,qBAAqB,EACrB,aAAa,EACb,sBAAsB,GACzB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC"}
|
package/docs/grammar.md
CHANGED
|
@@ -98,6 +98,23 @@ expr =
|
|
|
98
98
|
;
|
|
99
99
|
```
|
|
100
100
|
|
|
101
|
+
An explicitly labeled alternative may contain zero factors. It matches the
|
|
102
|
+
empty input while preserving its label as the CST variant:
|
|
103
|
+
|
|
104
|
+
```ebnf
|
|
105
|
+
optional_color =
|
|
106
|
+
#absent
|
|
107
|
+
| #present kw_with expression
|
|
108
|
+
;
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
Zero-factor alternatives must have a label; an unlabeled empty production such
|
|
112
|
+
as `optional_color = ;` is not valid.
|
|
113
|
+
|
|
114
|
+
Labeled empty alternatives are first-class CST nodes: `{ symbol, variant, children: [] }`.
|
|
115
|
+
Synthetic unlabeled epsilons created for `{…}` and `[…]` desugaring remain scaffolding
|
|
116
|
+
and are dropped by default transforms and flatten/fold walks.
|
|
117
|
+
|
|
101
118
|
### Production syntax
|
|
102
119
|
|
|
103
120
|
Each production ends with a semicolon:
|
|
@@ -158,6 +175,22 @@ transform
|
|
|
158
175
|
|
|
159
176
|
`type.#variant` refers to an AST type and variant from the `ast` section. Arguments are binding names from the parse production.
|
|
160
177
|
|
|
178
|
+
Use a build target without parentheses for a zero-argument transform:
|
|
179
|
+
|
|
180
|
+
```ebnf
|
|
181
|
+
ast
|
|
182
|
+
optional_color =
|
|
183
|
+
#absent
|
|
184
|
+
| #present expression
|
|
185
|
+
;
|
|
186
|
+
|
|
187
|
+
transform
|
|
188
|
+
optional_color ->
|
|
189
|
+
#absent optional_color.#absent
|
|
190
|
+
| #present optional_color.#present(expression)
|
|
191
|
+
;
|
|
192
|
+
```
|
|
193
|
+
|
|
161
194
|
Example (calculator):
|
|
162
195
|
|
|
163
196
|
```ebnf
|
|
@@ -224,9 +257,9 @@ The transformer applies these rules to every CST node:
|
|
|
224
257
|
| Situation | Behavior |
|
|
225
258
|
|-----------|----------|
|
|
226
259
|
| `pass(slot)` | Preserve the bound production's symbol and `#` variant; never collapse to its sole terminal child. |
|
|
227
|
-
| No transform rule for production `P` | Emit an identity node `{ symbol: P, variant, children }`. A named non-terminal is kept even when it has a single child; the child is not hoisted in its place. |
|
|
228
|
-
| `build(type.#variant, …)` | Absent optional bindings are omitted from `children`, not shifted into other slots. |
|
|
229
|
-
| `flatten(type.#list, head, tail)` | Repeat tails produce no empty placeholder nodes and drop no items. |
|
|
260
|
+
| No transform rule for production `P` | Emit an identity node `{ symbol: P, variant, children }`. A named non-terminal is kept even when it has a single child; the child is not hoisted in its place. Authored labeled epsilons (`#absent`) keep identity with empty children; synthetic unlabeled epsilons are dropped. |
|
|
261
|
+
| `build(type.#variant, …)` | Absent optional bindings are omitted from `children`, not shifted into other slots. `table validate` rejects arguments on zero-factor alternatives (`#absent`) and empty builds that target a non-empty AST variant; it does not require argument count to match grammar or AST slot counts. |
|
|
262
|
+
| `flatten(type.#list, head, tail)` | Repeat tails produce no empty placeholder nodes and drop no items. Synthetic unlabeled epsilons terminate the list. |
|
|
230
263
|
|
|
231
264
|
**Nested non-terminals stay wrapped.** A production referenced inside another production keeps its own node, so consumers match the grammar non-terminal (for example `comparison_op`) rather than a lexer token name (`less`). To retain a token *inside* that wrapper, bind it: write `comparison_op = #less [tok]:less` and reference `tok` from the transform. Without the binding, `build(comparison_op.#less, tok)` has no slot to read and the child is dropped.
|
|
232
265
|
|
package/grammars/grammar.grammar
CHANGED
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "parser-lr",
|
|
3
3
|
"author": "Adam R Moss <adamrmoss@gmail.com>",
|
|
4
|
-
"version": "0.8.
|
|
4
|
+
"version": "0.8.3",
|
|
5
5
|
"description": "Shift-reduce parser library for EBNF grammars with LR table generation, lexing, and CST-to-AST transforms",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"ast",
|