parser-lr 0.8.0 → 0.8.2
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 +629 -218
- package/bin/parser-lr.js.map +1 -1
- package/dist/lib/diagnostics/format-diagnostic.d.ts +31 -0
- package/dist/lib/diagnostics/format-diagnostic.d.ts.map +1 -0
- package/dist/lib/diagnostics/format-diagnostic.js +36 -0
- package/dist/lib/diagnostics/format-diagnostic.js.map +1 -0
- package/dist/lib/diagnostics/index.d.ts +5 -0
- package/dist/lib/diagnostics/index.d.ts.map +1 -0
- package/dist/lib/diagnostics/index.js +3 -0
- package/dist/lib/diagnostics/index.js.map +1 -0
- package/dist/lib/diagnostics/source-position.d.ts +24 -0
- package/dist/lib/diagnostics/source-position.d.ts.map +1 -0
- package/dist/lib/diagnostics/source-position.js +39 -0
- package/dist/lib/diagnostics/source-position.js.map +1 -0
- package/dist/lib/grammar/ast-type.d.ts +2 -0
- package/dist/lib/grammar/ast-type.d.ts.map +1 -1
- package/dist/lib/grammar/grammar-from-cst.js +8 -5
- package/dist/lib/grammar/grammar-from-cst.js.map +1 -1
- package/dist/lib/grammar/grammar.json +330 -164
- package/dist/lib/grammar/index.d.ts +1 -1
- package/dist/lib/grammar/index.d.ts.map +1 -1
- package/dist/lib/grammar/production.d.ts +2 -0
- package/dist/lib/grammar/production.d.ts.map +1 -1
- package/dist/lib/grammar/table-validator.d.ts +12 -2
- package/dist/lib/grammar/table-validator.d.ts.map +1 -1
- package/dist/lib/grammar/table-validator.js +49 -24
- package/dist/lib/grammar/table-validator.js.map +1 -1
- package/dist/lib/grammar/transform-rule.d.ts +3 -0
- package/dist/lib/grammar/transform-rule.d.ts.map +1 -1
- package/dist/lib/grammar-entry.d.ts +1 -1
- package/dist/lib/grammar-entry.d.ts.map +1 -1
- package/dist/lib/grammar-entry.js.map +1 -1
- package/dist/lib/index.d.ts +3 -0
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +1 -0
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/parse-context.d.ts +7 -0
- package/dist/lib/parse-context.d.ts.map +1 -1
- package/dist/lib/parse-context.js +9 -0
- package/dist/lib/parse-context.js.map +1 -1
- package/dist/lib/parse-table/table/lr-parse-table.d.ts.map +1 -1
- package/dist/lib/parse-table/table/lr-parse-table.js +10 -3
- package/dist/lib/parse-table/table/lr-parse-table.js.map +1 -1
- package/dist/lib/parser-lr.d.ts +15 -0
- package/dist/lib/parser-lr.d.ts.map +1 -1
- package/dist/lib/parser-lr.js +38 -9
- package/dist/lib/parser-lr.js.map +1 -1
- package/docs/grammar.md +29 -0
- package/grammars/grammar.grammar +2 -1
- package/package.json +1 -1
|
@@ -12,5 +12,5 @@ export type { BuildTransform, DropTransform, FlattenTransform, FoldLeftTransform
|
|
|
12
12
|
export type { TransformAlternative, TransformRule } from './transform-rule.js';
|
|
13
13
|
export { TransformSchema } from './transform-schema.js';
|
|
14
14
|
export { formatTableValidationIssues, validateGrammarTable, } from './table-validator.js';
|
|
15
|
-
export type { TableValidationIssue, TableValidationSeverity } from './table-validator.js';
|
|
15
|
+
export type { FormatTableValidationOptions, TableValidationIssue, TableValidationSeverity, } from './table-validator.js';
|
|
16
16
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/grammar/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,YAAY,EACR,WAAW,EACX,wBAAwB,EACxB,gBAAgB,EAChB,UAAU,EACV,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,GACrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC1F,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,YAAY,EACR,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,mBAAmB,GACtB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EACH,2BAA2B,EAC3B,oBAAoB,GACvB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/grammar/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,YAAY,EACR,WAAW,EACX,wBAAwB,EACxB,gBAAgB,EAChB,UAAU,EACV,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,GACrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC1F,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,YAAY,EACR,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,mBAAmB,GACtB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EACH,2BAA2B,EAC3B,oBAAoB,GACvB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACR,4BAA4B,EAC5B,oBAAoB,EACpB,uBAAuB,GAC1B,MAAM,sBAAsB,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SourceLocation } from '../ast/ast-node.js';
|
|
1
2
|
import type { Expression } from './expression.js';
|
|
2
3
|
/**
|
|
3
4
|
* Named production (`identifier = expression ;`).
|
|
@@ -5,5 +6,6 @@ import type { Expression } from './expression.js';
|
|
|
5
6
|
export interface Production {
|
|
6
7
|
readonly name: string;
|
|
7
8
|
readonly expression: Expression;
|
|
9
|
+
readonly location?: SourceLocation | null;
|
|
8
10
|
}
|
|
9
11
|
//# sourceMappingURL=production.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"production.d.ts","sourceRoot":"","sources":["../../../src/lib/grammar/production.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD;;GAEG;AACH,MAAM,WAAW,UAAU;IAEvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"production.d.ts","sourceRoot":"","sources":["../../../src/lib/grammar/production.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD;;GAEG;AACH,MAAM,WAAW,UAAU;IAEvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;CAC7C"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SourceLocation } from '../ast/ast-node.js';
|
|
1
2
|
import type { Grammar } from './grammar.js';
|
|
2
3
|
/**
|
|
3
4
|
* Severity of one grammar table validation issue.
|
|
@@ -9,6 +10,14 @@ export type TableValidationSeverity = 'error' | 'warning';
|
|
|
9
10
|
export interface TableValidationIssue {
|
|
10
11
|
readonly severity: TableValidationSeverity;
|
|
11
12
|
readonly message: string;
|
|
13
|
+
readonly location: SourceLocation | null;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Optional path and source text used when formatting validation diagnostics.
|
|
17
|
+
*/
|
|
18
|
+
export interface FormatTableValidationOptions {
|
|
19
|
+
readonly path?: string | null;
|
|
20
|
+
readonly source?: string | null;
|
|
12
21
|
}
|
|
13
22
|
/**
|
|
14
23
|
* Validates transform and AST consistency for a parsed grammar.
|
|
@@ -18,9 +27,10 @@ export interface TableValidationIssue {
|
|
|
18
27
|
*/
|
|
19
28
|
export declare function validateGrammarTable(grammar: Grammar): TableValidationIssue[];
|
|
20
29
|
/**
|
|
21
|
-
* Formats validation issues as stderr
|
|
30
|
+
* Formats validation issues as stderr diagnostic lines.
|
|
22
31
|
*
|
|
23
32
|
* @param issues - Validation issues to format.
|
|
33
|
+
* @param options - Optional grammar path and source text for line numbers.
|
|
24
34
|
*/
|
|
25
|
-
export declare function formatTableValidationIssues(issues: readonly TableValidationIssue[]): string[];
|
|
35
|
+
export declare function formatTableValidationIssues(issues: readonly TableValidationIssue[], options?: FormatTableValidationOptions): string[];
|
|
26
36
|
//# sourceMappingURL=table-validator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-validator.d.ts","sourceRoot":"","sources":["../../../src/lib/grammar/table-validator.ts"],"names":[],"mappings":"
|
|
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;AAM5C;;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,CAiC7E;AA4YD;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACvC,MAAM,EAAE,SAAS,oBAAoB,EAAE,EACvC,OAAO,GAAE,4BAAiC,GAC3C,MAAM,EAAE,CASV"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { formatDiagnostic } from '../diagnostics/format-diagnostic.js';
|
|
1
2
|
import { EbnfDesugarer } from '../parse-table/bnf/desugar-ebnf.js';
|
|
2
3
|
/**
|
|
3
4
|
* Validates transform and AST consistency for a parsed grammar.
|
|
@@ -14,8 +15,8 @@ export function validateGrammarTable(grammar) {
|
|
|
14
15
|
for (const rule of grammar.transformSchema.rules) {
|
|
15
16
|
validateTransformProductionExists(rule, bnfProductionNames, issues);
|
|
16
17
|
for (const alternative of rule.alternatives) {
|
|
17
|
-
validateTransformExpression(grammar, alternative
|
|
18
|
-
collectPassCollapseWarnings(grammar, rule, alternative
|
|
18
|
+
validateTransformExpression(grammar, alternative, issues);
|
|
19
|
+
collectPassCollapseWarnings(grammar, rule, alternative, bnf.productions, issues);
|
|
19
20
|
}
|
|
20
21
|
}
|
|
21
22
|
}
|
|
@@ -34,37 +35,47 @@ export function validateGrammarTable(grammar) {
|
|
|
34
35
|
*/
|
|
35
36
|
function collectDuplicateDefinitionWarnings(grammar, issues) {
|
|
36
37
|
// Flag repeated production names in the grammar section.
|
|
37
|
-
|
|
38
|
+
reportDuplicateDefinitions(grammar.productions.map((production) => ({
|
|
39
|
+
name: production.name,
|
|
40
|
+
location: production.location ?? null,
|
|
41
|
+
})), 'grammar', 'production', issues);
|
|
38
42
|
// Flag repeated ast type names.
|
|
39
43
|
if (grammar.astSchema !== null) {
|
|
40
|
-
|
|
44
|
+
reportDuplicateDefinitions(grammar.astSchema.types.map((type) => ({
|
|
45
|
+
name: type.name,
|
|
46
|
+
location: type.location ?? null,
|
|
47
|
+
})), 'ast', 'type', issues);
|
|
41
48
|
}
|
|
42
49
|
// Flag repeated transform rules for the same production.
|
|
43
50
|
if (grammar.transformSchema !== null) {
|
|
44
|
-
|
|
51
|
+
reportDuplicateDefinitions(grammar.transformSchema.rules.map((rule) => ({
|
|
52
|
+
name: rule.production,
|
|
53
|
+
location: rule.location ?? null,
|
|
54
|
+
})), 'transform', 'rule', issues);
|
|
45
55
|
}
|
|
46
56
|
}
|
|
47
57
|
/**
|
|
48
58
|
* Records a warning for each name that appears more than once.
|
|
49
59
|
*
|
|
50
|
-
* @param
|
|
60
|
+
* @param definitions - Declared names and locations in source order.
|
|
51
61
|
* @param section - Grammar section name for the message.
|
|
52
62
|
* @param kind - Declaration kind for the message.
|
|
53
63
|
* @param issues - Issue list to append to.
|
|
54
64
|
*/
|
|
55
|
-
function
|
|
65
|
+
function reportDuplicateDefinitions(definitions, section, kind, issues) {
|
|
56
66
|
const seen = new Set();
|
|
57
67
|
const reported = new Set();
|
|
58
|
-
for (const
|
|
59
|
-
if (seen.has(name) && !reported.has(name)) {
|
|
68
|
+
for (const definition of definitions) {
|
|
69
|
+
if (seen.has(definition.name) && !reported.has(definition.name)) {
|
|
60
70
|
issues.push({
|
|
61
71
|
severity: 'warning',
|
|
62
|
-
message: `duplicate ${section} ${kind} ${JSON.stringify(name)}; `
|
|
72
|
+
message: `duplicate ${section} ${kind} ${JSON.stringify(definition.name)}; `
|
|
63
73
|
+ `the later definition overrides the earlier one`,
|
|
74
|
+
location: definition.location,
|
|
64
75
|
});
|
|
65
|
-
reported.add(name);
|
|
76
|
+
reported.add(definition.name);
|
|
66
77
|
}
|
|
67
|
-
seen.add(name);
|
|
78
|
+
seen.add(definition.name);
|
|
68
79
|
}
|
|
69
80
|
}
|
|
70
81
|
/**
|
|
@@ -87,6 +98,7 @@ function validateTransformProductionExists(rule, bnfProductionNames, issues) {
|
|
|
87
98
|
issues.push({
|
|
88
99
|
severity: 'error',
|
|
89
100
|
message: `transform rule for unknown production ${JSON.stringify(rule.production)}`,
|
|
101
|
+
location: rule.location ?? null,
|
|
90
102
|
});
|
|
91
103
|
}
|
|
92
104
|
}
|
|
@@ -104,18 +116,20 @@ function syntheticRepeatPrefix(name) {
|
|
|
104
116
|
* Validates one transform expression against the grammar AST schema.
|
|
105
117
|
*
|
|
106
118
|
* @param grammar - Parsed grammar model.
|
|
107
|
-
* @param
|
|
119
|
+
* @param alternative - Transform alternative owning the expression.
|
|
108
120
|
* @param issues - Issue list to append to.
|
|
109
121
|
*/
|
|
110
|
-
function validateTransformExpression(grammar,
|
|
122
|
+
function validateTransformExpression(grammar, alternative, issues) {
|
|
123
|
+
const expression = alternative.expression;
|
|
124
|
+
const location = alternative.location ?? null;
|
|
111
125
|
switch (expression.kind) {
|
|
112
126
|
case 'build':
|
|
113
|
-
validateAstTarget(grammar, expression.typeName, expression.variant, issues);
|
|
127
|
+
validateAstTarget(grammar, expression.typeName, expression.variant, location, issues);
|
|
114
128
|
break;
|
|
115
129
|
case 'foldLeft':
|
|
116
130
|
case 'foldRight':
|
|
117
131
|
case 'flatten':
|
|
118
|
-
validateAstTarget(grammar, expression.typeName, expression.variant, issues);
|
|
132
|
+
validateAstTarget(grammar, expression.typeName, expression.variant, location, issues);
|
|
119
133
|
break;
|
|
120
134
|
case 'drop':
|
|
121
135
|
case 'pass':
|
|
@@ -128,13 +142,15 @@ function validateTransformExpression(grammar, expression, issues) {
|
|
|
128
142
|
* @param grammar - Parsed grammar model.
|
|
129
143
|
* @param typeName - AST type name from a transform expression.
|
|
130
144
|
* @param variant - AST variant label from a transform expression.
|
|
145
|
+
* @param location - Source span of the transform alternative.
|
|
131
146
|
* @param issues - Issue list to append to.
|
|
132
147
|
*/
|
|
133
|
-
function validateAstTarget(grammar, typeName, variant, issues) {
|
|
148
|
+
function validateAstTarget(grammar, typeName, variant, location, issues) {
|
|
134
149
|
if (grammar.astSchema === null) {
|
|
135
150
|
issues.push({
|
|
136
151
|
severity: 'error',
|
|
137
152
|
message: `transform references ${typeName}.${variant} but the grammar has no ast section`,
|
|
153
|
+
location,
|
|
138
154
|
});
|
|
139
155
|
return;
|
|
140
156
|
}
|
|
@@ -143,6 +159,7 @@ function validateAstTarget(grammar, typeName, variant, issues) {
|
|
|
143
159
|
issues.push({
|
|
144
160
|
severity: 'error',
|
|
145
161
|
message: `transform references undefined ast type ${JSON.stringify(typeName)}`,
|
|
162
|
+
location,
|
|
146
163
|
});
|
|
147
164
|
return;
|
|
148
165
|
}
|
|
@@ -151,6 +168,7 @@ function validateAstTarget(grammar, typeName, variant, issues) {
|
|
|
151
168
|
issues.push({
|
|
152
169
|
severity: 'error',
|
|
153
170
|
message: `transform references ${typeName}.${variant} which is not declared in ast`,
|
|
171
|
+
location,
|
|
154
172
|
});
|
|
155
173
|
}
|
|
156
174
|
}
|
|
@@ -181,11 +199,12 @@ function collectAstVariants(expression) {
|
|
|
181
199
|
*
|
|
182
200
|
* @param grammar - Parsed grammar model.
|
|
183
201
|
* @param rule - Parent production transform rule.
|
|
184
|
-
* @param
|
|
202
|
+
* @param alternative - Transform alternative containing the pass expression.
|
|
185
203
|
* @param bnfProductions - Desugared BNF productions.
|
|
186
204
|
* @param issues - Issue list to append to.
|
|
187
205
|
*/
|
|
188
|
-
function collectPassCollapseWarnings(grammar, rule,
|
|
206
|
+
function collectPassCollapseWarnings(grammar, rule, alternative, bnfProductions, issues) {
|
|
207
|
+
const expression = alternative.expression;
|
|
189
208
|
if (expression.kind !== 'pass') {
|
|
190
209
|
return;
|
|
191
210
|
}
|
|
@@ -208,6 +227,7 @@ function collectPassCollapseWarnings(grammar, rule, expression, bnfProductions,
|
|
|
208
227
|
message: `pass(${expression.reference}) on ${rule.production} binds ${boundSymbol} `
|
|
209
228
|
+ `which has no transform rule and can match a single terminal; `
|
|
210
229
|
+ `add a transform for ${boundSymbol} or use build`,
|
|
230
|
+
location: alternative.location ?? null,
|
|
211
231
|
});
|
|
212
232
|
}
|
|
213
233
|
/**
|
|
@@ -264,13 +284,18 @@ function isTerminalSymbol(symbol) {
|
|
|
264
284
|
return symbol?.kind === 'terminal' || symbol?.kind === 'token';
|
|
265
285
|
}
|
|
266
286
|
/**
|
|
267
|
-
* Formats validation issues as stderr
|
|
287
|
+
* Formats validation issues as stderr diagnostic lines.
|
|
268
288
|
*
|
|
269
289
|
* @param issues - Validation issues to format.
|
|
290
|
+
* @param options - Optional grammar path and source text for line numbers.
|
|
270
291
|
*/
|
|
271
|
-
export function formatTableValidationIssues(issues) {
|
|
272
|
-
return issues.map((issue) =>
|
|
273
|
-
|
|
274
|
-
:
|
|
292
|
+
export function formatTableValidationIssues(issues, options = {}) {
|
|
293
|
+
return issues.map((issue) => formatDiagnostic({
|
|
294
|
+
severity: issue.severity,
|
|
295
|
+
message: issue.message,
|
|
296
|
+
path: options.path,
|
|
297
|
+
source: options.source,
|
|
298
|
+
location: issue.location,
|
|
299
|
+
}));
|
|
275
300
|
}
|
|
276
301
|
//# sourceMappingURL=table-validator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-validator.js","sourceRoot":"","sources":["../../../src/lib/grammar/table-validator.ts"],"names":[],"mappings":"
|
|
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,3 +1,4 @@
|
|
|
1
|
+
import type { SourceLocation } from '../ast/ast-node.js';
|
|
1
2
|
import type { TransformExpression } from './transform-expression.js';
|
|
2
3
|
/**
|
|
3
4
|
* Maps one CST `#` alternative to a transform expression.
|
|
@@ -5,6 +6,7 @@ import type { TransformExpression } from './transform-expression.js';
|
|
|
5
6
|
export interface TransformAlternative {
|
|
6
7
|
readonly label: string;
|
|
7
8
|
readonly expression: TransformExpression;
|
|
9
|
+
readonly location?: SourceLocation | null;
|
|
8
10
|
}
|
|
9
11
|
/**
|
|
10
12
|
* CST production transform (`production -> #alt expr | … ;`).
|
|
@@ -12,5 +14,6 @@ export interface TransformAlternative {
|
|
|
12
14
|
export interface TransformRule {
|
|
13
15
|
readonly production: string;
|
|
14
16
|
readonly alternatives: readonly TransformAlternative[];
|
|
17
|
+
readonly location?: SourceLocation | null;
|
|
15
18
|
}
|
|
16
19
|
//# sourceMappingURL=transform-rule.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform-rule.d.ts","sourceRoot":"","sources":["../../../src/lib/grammar/transform-rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAErE;;GAEG;AACH,MAAM,WAAW,oBAAoB;IAEjC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"transform-rule.d.ts","sourceRoot":"","sources":["../../../src/lib/grammar/transform-rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAErE;;GAEG;AACH,MAAM,WAAW,oBAAoB;IAEjC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;IACzC,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;CAC7C;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAE1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACvD,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;CAC7C"}
|
|
@@ -13,7 +13,7 @@ export type { BuildTransform, DropTransform, FlattenTransform, FoldLeftTransform
|
|
|
13
13
|
export type { TransformAlternative, TransformRule } from './grammar/transform-rule.js';
|
|
14
14
|
export { TransformSchema } from './grammar/transform-schema.js';
|
|
15
15
|
export { formatTableValidationIssues, validateGrammarTable, } from './grammar/table-validator.js';
|
|
16
|
-
export type { TableValidationIssue, TableValidationSeverity } from './grammar/table-validator.js';
|
|
16
|
+
export type { FormatTableValidationOptions, TableValidationIssue, TableValidationSeverity, } from './grammar/table-validator.js';
|
|
17
17
|
import { ParseContext } from './parse-context.js';
|
|
18
18
|
import type { LrAlgorithm } from './parse-table/lr-algorithm.js';
|
|
19
19
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grammar-entry.d.ts","sourceRoot":"","sources":["../../src/lib/grammar-entry.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,YAAY,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,YAAY,EACR,WAAW,EACX,wBAAwB,EACxB,gBAAgB,EAChB,UAAU,EACV,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,GACrB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,YAAY,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,YAAY,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,YAAY,EACR,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,mBAAmB,GACtB,MAAM,mCAAmC,CAAC;AAC3C,YAAY,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACvF,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EACH,2BAA2B,EAC3B,oBAAoB,GACvB,MAAM,8BAA8B,CAAC;AACtC,YAAY,
|
|
1
|
+
{"version":3,"file":"grammar-entry.d.ts","sourceRoot":"","sources":["../../src/lib/grammar-entry.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,YAAY,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,YAAY,EACR,WAAW,EACX,wBAAwB,EACxB,gBAAgB,EAChB,UAAU,EACV,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,GACrB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,YAAY,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,YAAY,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,YAAY,EACR,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,mBAAmB,GACtB,MAAM,mCAAmC,CAAC;AAC3C,YAAY,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACvF,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EACH,2BAA2B,EAC3B,oBAAoB,GACvB,MAAM,8BAA8B,CAAC;AACtC,YAAY,EACR,4BAA4B,EAC5B,oBAAoB,EACpB,uBAAuB,GAC1B,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAKjE;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACnC,MAAM,EAAE,MAAM,EACd,SAAS,GAAE,WAAmB,GAC/B,YAAY,CAOd;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IAEvC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,0BAA0B,GAAG,YAAY,CAiBzF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grammar-entry.js","sourceRoot":"","sources":["../../src/lib/grammar-entry.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAapD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAanE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EACH,2BAA2B,EAC3B,oBAAoB,GACvB,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"grammar-entry.js","sourceRoot":"","sources":["../../src/lib/grammar-entry.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAapD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAanE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EACH,2BAA2B,EAC3B,oBAAoB,GACvB,MAAM,8BAA8B,CAAC;AAOtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CACnC,MAAc,EACd,YAAyB,KAAK;IAG9B,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IACpC,MAAM,KAAK,GAAG,UAAU,CAAC,WAAW,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,IAAI,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAE5C,OAAO,IAAI,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAC3C,CAAC;AAYD;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAAmC;IAEvE,mEAAmE;IACnE,IAAI,OAAO,CAAC,aAAa,KAAK,SAAS,EACvC,CAAC;QACG,OAAO,uBAAuB,CAC1B,OAAO,CAAC,aAAa,EACrB,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,CACtC,CAAC;IACN,CAAC;IAED,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,EACnC,CAAC;QACG,OAAO,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,IAAI,iBAAiB,CAAC,wCAAwC,CAAC,CAAC;AAC1E,CAAC"}
|
package/dist/lib/index.d.ts
CHANGED
|
@@ -16,12 +16,15 @@ export type { CompiledLexerRules, CompiledRule, Token } from './lexer/index.js';
|
|
|
16
16
|
export { LrAlgorithmError, PARSE_TABLE_VERSION, ParseTable, ParseTableError, isLrAlgorithm, parseLrAlgorithm, tokenInventory } from './parse-table/index.js';
|
|
17
17
|
export type { LrAlgorithm, ParseTableJson } from './parse-table/index.js';
|
|
18
18
|
export { formatUserError, isParserLrError, messageContainsStackTrace, ParserLrError } from './errors/index.js';
|
|
19
|
+
export { formatDiagnostic, formatDiagnosticLocationPrefix, offsetToPosition, resolveDiagnosticOffset, } from './diagnostics/index.js';
|
|
20
|
+
export type { DiagnosticSeverity, FormatDiagnosticOptions, SourcePosition } from './diagnostics/index.js';
|
|
19
21
|
export { ParseContextError } from './parse-context-error.js';
|
|
20
22
|
export { ParseOutputError } from './parse-output-error.js';
|
|
21
23
|
export { ParseContext } from './parse-context.js';
|
|
22
24
|
export type { ParseContextSources } from './parse-context.js';
|
|
23
25
|
export { formatParseOutput } from './parse-output.js';
|
|
24
26
|
export { ParserLr } from './parser-lr.js';
|
|
27
|
+
export type { ParserLrParseResult } from './parser-lr.js';
|
|
25
28
|
export { parseWithTable, parseWithTableResult, ShiftReduceEngine } from './shift-reduce/index.js';
|
|
26
29
|
export type { ShiftReduceParseResult } from './shift-reduce/index.js';
|
|
27
30
|
export { transformCst, CstTransformer } from './transform/index.js';
|
package/dist/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,YAAY,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,YAAY,EACR,WAAW,EACX,wBAAwB,EACxB,gBAAgB,EAChB,UAAU,EACV,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,GACrB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,YAAY,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,YAAY,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,YAAY,EACR,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,mBAAmB,GACtB,MAAM,mCAAmC,CAAC;AAC3C,YAAY,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACvF,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,mBAAmB,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC9J,OAAO,EACH,mBAAmB,EACnB,cAAc,EACd,UAAU,EACV,iBAAiB,EACjB,QAAQ,EACR,UAAU,EACV,KAAK,GACR,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,kBAAkB,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7J,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,yBAAyB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC/G,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAClG,YAAY,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,YAAY,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,YAAY,EACR,WAAW,EACX,wBAAwB,EACxB,gBAAgB,EAChB,UAAU,EACV,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,GACrB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,YAAY,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,YAAY,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,YAAY,EACR,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,mBAAmB,GACtB,MAAM,mCAAmC,CAAC;AAC3C,YAAY,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACvF,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,mBAAmB,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC9J,OAAO,EACH,mBAAmB,EACnB,cAAc,EACd,UAAU,EACV,iBAAiB,EACjB,QAAQ,EACR,UAAU,EACV,KAAK,GACR,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,kBAAkB,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7J,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,yBAAyB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC/G,OAAO,EACH,gBAAgB,EAChB,8BAA8B,EAC9B,gBAAgB,EAChB,uBAAuB,GAC1B,MAAM,wBAAwB,CAAC;AAChC,YAAY,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC1G,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,YAAY,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAClG,YAAY,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
|
package/dist/lib/index.js
CHANGED
|
@@ -6,6 +6,7 @@ export { Lexer, LexerCompileError, LexerInputError, LexerStateError, lexChunkStr
|
|
|
6
6
|
export { DEFAULT_LEXER_STATE, EOF_TOKEN_NAME, LexerError, compileLexerRules, eofToken, isEofToken, token, } from './lexer/index.js';
|
|
7
7
|
export { LrAlgorithmError, PARSE_TABLE_VERSION, ParseTable, ParseTableError, isLrAlgorithm, parseLrAlgorithm, tokenInventory } from './parse-table/index.js';
|
|
8
8
|
export { formatUserError, isParserLrError, messageContainsStackTrace, ParserLrError } from './errors/index.js';
|
|
9
|
+
export { formatDiagnostic, formatDiagnosticLocationPrefix, offsetToPosition, resolveDiagnosticOffset, } from './diagnostics/index.js';
|
|
9
10
|
export { ParseContextError } from './parse-context-error.js';
|
|
10
11
|
export { ParseOutputError } from './parse-output-error.js';
|
|
11
12
|
export { ParseContext } from './parse-context.js';
|
package/dist/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AA4B5C,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,mBAAmB,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC9J,OAAO,EACH,mBAAmB,EACnB,cAAc,EACd,UAAU,EACV,iBAAiB,EACjB,QAAQ,EACR,UAAU,EACV,KAAK,GACR,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7J,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,yBAAyB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC/G,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AA4B5C,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,mBAAmB,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC9J,OAAO,EACH,mBAAmB,EACnB,cAAc,EACd,UAAU,EACV,iBAAiB,EACjB,QAAQ,EACR,UAAU,EACV,KAAK,GACR,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7J,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,yBAAyB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC/G,OAAO,EACH,gBAAgB,EAChB,8BAA8B,EAC9B,gBAAgB,EAChB,uBAAuB,GAC1B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAElG,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -78,6 +78,13 @@ export declare class ParseContext {
|
|
|
78
78
|
* @returns Transformed AST, CST when no transform rules exist, or null on syntax error.
|
|
79
79
|
*/
|
|
80
80
|
parse(tokens: readonly Token[]): AstNode | null;
|
|
81
|
+
/**
|
|
82
|
+
* Parses a token stream and retains syntax-error offset details.
|
|
83
|
+
*
|
|
84
|
+
* @param tokens - Token stream ending with `$eof`.
|
|
85
|
+
* @returns Tree and optional syntax-error details.
|
|
86
|
+
*/
|
|
87
|
+
parseResult(tokens: readonly Token[]): import("./parser-lr.js").ParserLrParseResult;
|
|
81
88
|
/**
|
|
82
89
|
* Lexes and parses source text into an AST, applying transforms when present.
|
|
83
90
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-context.d.ts","sourceRoot":"","sources":["../../src/lib/parse-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C;;GAEG;AACH,qBAAa,YAAY;aASD,MAAM,EAAE,QAAQ;aAChB,KAAK,EAAE,UAAU;IARrC;;;;;OAKG;gBAEiB,MAAM,EAAE,QAAQ,EAChB,KAAK,EAAE,UAAU;IAKrC;;;;;OAKG;WACW,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY;IAOvD;;;;;OAKG;WACW,WAAW,CAAC,OAAO,EAAE,mBAAmB,GAAG,YAAY;IAUrE;;;;OAIG;IACI,WAAW,IAAI,KAAK;IAK3B;;;;;OAKG;IACI,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,KAAK,EAAE;IAK5C;;;;;OAKG;IACI,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,gBAAgB,CAAC,KAAK,CAAC;IAKnE;;;;;OAKG;IACI,cAAc,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,qBAAqB,CAAC,KAAK,CAAC;IAKlF;;;;;OAKG;IACI,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,SAAS,KAAK,EAAE;IAKjE;;;;;OAKG;IACU,mBAAmB,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,SAAS,KAAK,EAAE,CAAC;IAK1F;;;;;OAKG;IACI,KAAK,CAAC,MAAM,EAAE,SAAS,KAAK,EAAE,GAAG,OAAO,GAAG,IAAI;IAKtD;;;;;OAKG;IACI,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI;CAIrD;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAEhC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC/B"}
|
|
1
|
+
{"version":3,"file":"parse-context.d.ts","sourceRoot":"","sources":["../../src/lib/parse-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C;;GAEG;AACH,qBAAa,YAAY;aASD,MAAM,EAAE,QAAQ;aAChB,KAAK,EAAE,UAAU;IARrC;;;;;OAKG;gBAEiB,MAAM,EAAE,QAAQ,EAChB,KAAK,EAAE,UAAU;IAKrC;;;;;OAKG;WACW,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY;IAOvD;;;;;OAKG;WACW,WAAW,CAAC,OAAO,EAAE,mBAAmB,GAAG,YAAY;IAUrE;;;;OAIG;IACI,WAAW,IAAI,KAAK;IAK3B;;;;;OAKG;IACI,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,KAAK,EAAE;IAK5C;;;;;OAKG;IACI,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,gBAAgB,CAAC,KAAK,CAAC;IAKnE;;;;;OAKG;IACI,cAAc,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,qBAAqB,CAAC,KAAK,CAAC;IAKlF;;;;;OAKG;IACI,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,SAAS,KAAK,EAAE;IAKjE;;;;;OAKG;IACU,mBAAmB,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,SAAS,KAAK,EAAE,CAAC;IAK1F;;;;;OAKG;IACI,KAAK,CAAC,MAAM,EAAE,SAAS,KAAK,EAAE,GAAG,OAAO,GAAG,IAAI;IAKtD;;;;;OAKG;IACI,WAAW,CAAC,MAAM,EAAE,SAAS,KAAK,EAAE;IAK3C;;;;;OAKG;IACI,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI;CAIrD;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAEhC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC/B"}
|
|
@@ -101,6 +101,15 @@ export class ParseContext {
|
|
|
101
101
|
parse(tokens) {
|
|
102
102
|
return this.parser.parse(tokens);
|
|
103
103
|
}
|
|
104
|
+
/**
|
|
105
|
+
* Parses a token stream and retains syntax-error offset details.
|
|
106
|
+
*
|
|
107
|
+
* @param tokens - Token stream ending with `$eof`.
|
|
108
|
+
* @returns Tree and optional syntax-error details.
|
|
109
|
+
*/
|
|
110
|
+
parseResult(tokens) {
|
|
111
|
+
return this.parser.parseResult(tokens);
|
|
112
|
+
}
|
|
104
113
|
/**
|
|
105
114
|
* Lexes and parses source text into an AST, applying transforms when present.
|
|
106
115
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-context.js","sourceRoot":"","sources":["../../src/lib/parse-context.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAG7D,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C;;GAEG;AACH,MAAM,OAAO,YAAY;IASD;IACA;IARpB;;;;;OAKG;IACH,YACoB,MAAgB,EAChB,KAAiB;QADjB,WAAM,GAAN,MAAM,CAAU;QAChB,UAAK,GAAL,KAAK,CAAY;IAGrC,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,aAAa,CAAC,IAAY;QAEpC,MAAM,KAAK,GAAG,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAE9C,OAAO,IAAI,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;IACnE,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,WAAW,CAAC,OAA4B;QAElD,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,EACnC,CAAC;YACG,OAAO,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACzD,CAAC;QAED,MAAM,IAAI,iBAAiB,CAAC,sBAAsB,CAAC,CAAC;IACxD,CAAC;IAED;;;;OAIG;IACI,WAAW;QAEd,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;IACrC,CAAC;IAED;;;;;OAKG;IACI,GAAG,CAAC,MAAc;QAErB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAED;;;;;OAKG;IACI,SAAS,CAAC,MAAwB;QAErC,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IAED;;;;;OAKG;IACI,cAAc,CAAC,MAA6B;QAE/C,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC;IAED;;;;;OAKG;IACI,cAAc,CAAC,MAAwB;QAE1C,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,mBAAmB,CAAC,MAA6B;QAE1D,OAAO,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACnD,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,MAAwB;QAEjC,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAED;;;;;OAKG;IACI,WAAW,CAAC,MAAc;QAE7B,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;CACJ"}
|
|
1
|
+
{"version":3,"file":"parse-context.js","sourceRoot":"","sources":["../../src/lib/parse-context.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAG7D,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C;;GAEG;AACH,MAAM,OAAO,YAAY;IASD;IACA;IARpB;;;;;OAKG;IACH,YACoB,MAAgB,EAChB,KAAiB;QADjB,WAAM,GAAN,MAAM,CAAU;QAChB,UAAK,GAAL,KAAK,CAAY;IAGrC,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,aAAa,CAAC,IAAY;QAEpC,MAAM,KAAK,GAAG,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAE9C,OAAO,IAAI,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;IACnE,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,WAAW,CAAC,OAA4B;QAElD,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,EACnC,CAAC;YACG,OAAO,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACzD,CAAC;QAED,MAAM,IAAI,iBAAiB,CAAC,sBAAsB,CAAC,CAAC;IACxD,CAAC;IAED;;;;OAIG;IACI,WAAW;QAEd,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;IACrC,CAAC;IAED;;;;;OAKG;IACI,GAAG,CAAC,MAAc;QAErB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAED;;;;;OAKG;IACI,SAAS,CAAC,MAAwB;QAErC,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IAED;;;;;OAKG;IACI,cAAc,CAAC,MAA6B;QAE/C,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC;IAED;;;;;OAKG;IACI,cAAc,CAAC,MAAwB;QAE1C,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,mBAAmB,CAAC,MAA6B;QAE1D,OAAO,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACnD,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,MAAwB;QAEjC,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAED;;;;;OAKG;IACI,WAAW,CAAC,MAAwB;QAEvC,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED;;;;;OAKG;IACI,WAAW,CAAC,MAAc;QAE7B,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;CACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lr-parse-table.d.ts","sourceRoot":"","sources":["../../../../src/lib/parse-table/table/lr-parse-table.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAG9D,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGpE;;GAEG;AACH,qBAAa,YAAY;aAcD,SAAS,EAAE,WAAW;aACtB,OAAO,EAAE,UAAU;aACnB,WAAW,EAAE,SAAS,aAAa,EAAE;aACrC,UAAU,EAAE,MAAM;aAClB,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;aAC9D,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;aACvD,SAAS,EAAE,SAAS,aAAa,EAAE;IAlBvD;;;;;;;;;;OAUG;gBAEiB,SAAS,EAAE,WAAW,EACtB,OAAO,EAAE,UAAU,EACnB,WAAW,EAAE,SAAS,aAAa,EAAE,EACrC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,EAC9D,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACvD,SAAS,EAAE,SAAS,aAAa,EAAE;IAKvD;;OAEG;IACH,IAAW,cAAc,IAAI,OAAO,CAGnC;IAED;;;;;OAKG;IACI,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAKhE;;;;;OAKG;IACI,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;CAIjE;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAYrF;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAYnF;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,MAAM,EAAE,CAMxE;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,MAAM,EAAE,CAG/E;
|
|
1
|
+
{"version":3,"file":"lr-parse-table.d.ts","sourceRoot":"","sources":["../../../../src/lib/parse-table/table/lr-parse-table.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAG9D,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGpE;;GAEG;AACH,qBAAa,YAAY;aAcD,SAAS,EAAE,WAAW;aACtB,OAAO,EAAE,UAAU;aACnB,WAAW,EAAE,SAAS,aAAa,EAAE;aACrC,UAAU,EAAE,MAAM;aAClB,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;aAC9D,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;aACvD,SAAS,EAAE,SAAS,aAAa,EAAE;IAlBvD;;;;;;;;;;OAUG;gBAEiB,SAAS,EAAE,WAAW,EACtB,OAAO,EAAE,UAAU,EACnB,WAAW,EAAE,SAAS,aAAa,EAAE,EACrC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,EAC9D,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACvD,SAAS,EAAE,SAAS,aAAa,EAAE;IAKvD;;OAEG;IACH,IAAW,cAAc,IAAI,OAAO,CAGnC;IAED;;;;;OAKG;IACI,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAKhE;;;;;OAKG;IACI,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;CAIjE;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAYrF;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAYnF;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,MAAM,EAAE,CAMxE;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,MAAM,EAAE,CAG/E;AAID;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,CAqB1E;AAiBD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,MAAM,EAAE,CAa3E;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,MAAM,EAAE,CAa7E;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAG5F;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,aAAa,GAAG,SAAS,MAAM,EAAE,CAGhF"}
|
|
@@ -104,6 +104,7 @@ export function formatLrConflicts(table) {
|
|
|
104
104
|
export function formatLrConflictWarnings(table) {
|
|
105
105
|
return table.conflicts.map((conflict) => formatParseConflictWarning(conflict));
|
|
106
106
|
}
|
|
107
|
+
import { formatDiagnostic } from '../../diagnostics/format-diagnostic.js';
|
|
107
108
|
/**
|
|
108
109
|
* Formats one resolved conflict as a warning line.
|
|
109
110
|
*
|
|
@@ -112,13 +113,19 @@ export function formatLrConflictWarnings(table) {
|
|
|
112
113
|
export function formatParseConflictWarning(conflict) {
|
|
113
114
|
const tokenLabel = formatConflictTokenLabel(conflict.symbol);
|
|
114
115
|
if (conflict.kind === 'shift-reduce') {
|
|
115
|
-
return
|
|
116
|
+
return formatDiagnostic({
|
|
117
|
+
severity: 'warning',
|
|
118
|
+
message: `state ${String(conflict.state)}: shift/reduce conflict on ${tokenLabel} resolved as shift`,
|
|
119
|
+
});
|
|
116
120
|
}
|
|
117
121
|
const keptProduction = conflict.existing.kind === 'reduce'
|
|
118
122
|
? conflict.existing.productionId
|
|
119
123
|
: conflict.incoming.productionId;
|
|
120
|
-
return
|
|
121
|
-
|
|
124
|
+
return formatDiagnostic({
|
|
125
|
+
severity: 'warning',
|
|
126
|
+
message: `state ${String(conflict.state)}: reduce/reduce conflict on ${tokenLabel} `
|
|
127
|
+
+ `resolved using rule ${String(keptProduction)}`,
|
|
128
|
+
});
|
|
122
129
|
}
|
|
123
130
|
/**
|
|
124
131
|
* Returns a readable terminal label for conflict warning text.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lr-parse-table.js","sourceRoot":"","sources":["../../../../src/lib/parse-table/table/lr-parse-table.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"lr-parse-table.js","sourceRoot":"","sources":["../../../../src/lib/parse-table/table/lr-parse-table.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/parser-lr.d.ts
CHANGED
|
@@ -4,6 +4,14 @@ import { Lexer } from './lexer/lexer.js';
|
|
|
4
4
|
import type { Token } from './lexer/token.js';
|
|
5
5
|
import type { LrAlgorithm } from './parse-table/lr-algorithm.js';
|
|
6
6
|
import { ParseTable } from './parse-table/parse-table.js';
|
|
7
|
+
/**
|
|
8
|
+
* Result of parsing a token stream into an AST or CST.
|
|
9
|
+
*/
|
|
10
|
+
export interface ParserLrParseResult {
|
|
11
|
+
readonly tree: AstNode | null;
|
|
12
|
+
readonly errorOffset: number | null;
|
|
13
|
+
readonly errorMessage: string | null;
|
|
14
|
+
}
|
|
7
15
|
/**
|
|
8
16
|
* Shift-reduce parser for EBNF grammars.
|
|
9
17
|
*/
|
|
@@ -72,6 +80,13 @@ export declare class ParserLr {
|
|
|
72
80
|
* @returns Parse tree rooted at the grammar start symbol, or null on syntax error.
|
|
73
81
|
*/
|
|
74
82
|
parseCst(tokens: readonly Token[]): AstNode | null;
|
|
83
|
+
/**
|
|
84
|
+
* Parses a token stream and retains syntax-error offset details.
|
|
85
|
+
*
|
|
86
|
+
* @param tokens - Token stream ending with `$eof`.
|
|
87
|
+
* @returns Tree and optional syntax-error details.
|
|
88
|
+
*/
|
|
89
|
+
parseResult(tokens: readonly Token[]): ParserLrParseResult;
|
|
75
90
|
/**
|
|
76
91
|
* Parses a token stream into an AST when transform rules are declared.
|
|
77
92
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser-lr.d.ts","sourceRoot":"","sources":["../../src/lib/parser-lr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EACH,KAAK,EAKR,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"parser-lr.d.ts","sourceRoot":"","sources":["../../src/lib/parser-lr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EACH,KAAK,EAKR,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAK1D;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAEhC,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CACxC;AAED;;GAEG;AACH,qBAAa,QAAQ;aASG,OAAO,EAAE,OAAO;IAChC,OAAO,CAAC,QAAQ,CAAC,KAAK;IAR1B;;;;;OAKG;gBAEiB,OAAO,EAAE,OAAO,EACf,KAAK,GAAE,UAAU,GAAG,IAAW;IAKpD;;;;;OAKG;WACW,cAAc,CAAC,KAAK,EAAE,UAAU,GAAG,QAAQ;IAKzD;;;;OAIG;IACI,WAAW,IAAI,KAAK;IAK3B;;;;;OAKG;IACI,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,KAAK,EAAE;IAK5C;;;;;OAKG;IACI,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,gBAAgB,CAAC,KAAK,CAAC;IAKnE;;;;;OAKG;IACI,cAAc,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,qBAAqB,CAAC,KAAK,CAAC;IAKlF;;;;;OAKG;IACI,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,SAAS,KAAK,EAAE;IAKjE;;;;;OAKG;IACU,mBAAmB,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,SAAS,KAAK,EAAE,CAAC;IAK1F;;;;;OAKG;IACI,QAAQ,CAAC,MAAM,EAAE,SAAS,KAAK,EAAE,GAAG,OAAO,GAAG,IAAI;IAUzD;;;;;OAKG;IACI,WAAW,CAAC,MAAM,EAAE,SAAS,KAAK,EAAE,GAAG,mBAAmB;IAwCjE;;;;;OAKG;IACI,QAAQ,CAAC,MAAM,EAAE,SAAS,KAAK,EAAE,GAAG,OAAO,GAAG,IAAI;IAKzD;;;;;OAKG;IACI,KAAK,CAAC,MAAM,EAAE,SAAS,KAAK,EAAE,GAAG,OAAO,GAAG,IAAI;IAKtD;;;;;OAKG;IACI,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI;IAKlD;;;;;OAKG;IACI,eAAe,CAAC,SAAS,GAAE,WAAmB,GAAG,UAAU;CAIrE"}
|