@scinorandex/sparse 0.0.8 → 0.1.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/.github/workflows/ci.yml +41 -0
- package/AGENTS.md +60 -0
- package/README.md +286 -30
- package/dist/cli.js +113 -24
- package/dist/cli.js.map +1 -1
- package/dist/generator.d.ts +9 -2
- package/dist/generator.js +179 -50
- package/dist/generator.js.map +1 -1
- package/dist/index.d.ts +17 -4
- package/dist/index.js +34 -1
- package/dist/index.js.map +1 -1
- package/dist/meta/common.d.ts +17 -0
- package/dist/meta/common.js +66 -1
- package/dist/meta/common.js.map +1 -1
- package/dist/meta/selfhosted.d.ts +4 -5
- package/dist/meta/selfhosted.js +51 -38
- package/dist/meta/selfhosted.js.map +1 -1
- package/dist/parser.d.ts +56 -33
- package/dist/parser.js +146 -18
- package/dist/parser.js.map +1 -1
- package/dist/table/selfhosted.d.ts +10 -1
- package/dist/table/selfhosted.js +32 -12
- package/dist/table/selfhosted.js.map +1 -1
- package/dist/table/validate.d.ts +17 -0
- package/dist/table/validate.js +84 -0
- package/dist/table/validate.js.map +1 -0
- package/dist/utils/Stack.d.ts +4 -0
- package/dist/utils/Stack.js +16 -1
- package/dist/utils/Stack.js.map +1 -1
- package/dist/utils/errorWindowBuilder.js +11 -11
- package/dist/utils/errorWindowBuilder.js.map +1 -1
- package/dist/utils/loadFiles.d.ts +8 -0
- package/dist/utils/loadFiles.js +47 -0
- package/dist/utils/loadFiles.js.map +1 -0
- package/dist/utils/reducers.d.ts +9 -0
- package/dist/utils/reducers.js +56 -0
- package/dist/utils/reducers.js.map +1 -0
- package/example/LoLang/example.ts +42 -18
- package/example/LoLang/tablelalr.txt +381 -0
- package/example/kleene-test/example.ts +35 -17
- package/example/math/example.ts +12 -7
- package/example/selfhosted/example.ts +30 -24
- package/opencode.json +18 -0
- package/package.json +9 -3
- package/src/cli.ts +132 -23
- package/src/generator.ts +237 -67
- package/src/index.ts +56 -3
- package/src/meta/common.ts +116 -0
- package/src/meta/selfhosted.ts +42 -11
- package/src/parser.ts +259 -47
- package/src/table/selfhosted.ts +48 -12
- package/src/table/validate.ts +143 -0
- package/src/utils/Stack.ts +22 -2
- package/src/utils/errorWindowBuilder.ts +15 -13
- package/src/utils/loadFiles.ts +54 -0
- package/src/utils/reducers.ts +93 -0
- package/test/cli.test.ts +144 -0
- package/test/codegen.test.ts +75 -0
- package/test/grammar.test.ts +243 -0
- package/test/helpers.ts +59 -0
- package/test/lalr.test.ts +114 -0
- package/test/parser.test.ts +392 -0
- package/test/table.test.ts +144 -0
- package/tsconfig.json +1 -1
- package/example/complicated/grammar.txt +0 -37
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;;AACA,2DAA6B;AAC7B,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;;AACA,2DAA6B;AAC7B,gDAAwB;AACxB,wDAAgC;AAChC,mCAA+G;AAG/G,MAAM,IAAI,GAAG,IAAA,kBAAQ,EAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAE7C,MAAM,WAAW,GAAG,qBAAqB,CAAC;AAE1C,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;eAeC,WAAW,wCAAwC,CAAC;AAEnE,SAAS,IAAI,CAAC,OAAe;IAC3B,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACvB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC;AAGD,SAAS,aAAa,CAAC,MAAuB;IAC5C,IAAI,CAAC;QACH,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC;IAC1B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACvD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnB,OAAO;IACT,CAAC;IAED,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QACnC,IAAI,CAAC,uBAAuB,KAAK,EAAE,CAAC,CAAC;QACrC,OAAO;IACT,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC;IACvC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC;IAClC,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,SAAS,EAAE,CAAC;QAClD,IAAI,CAAC,wBAAwB,KAAK,EAAE,CAAC,CAAC;QACtC,OAAO;IACT,CAAC;IAED,MAAM,SAAS,GAAG,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,UAAU,GAAG,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAE3F,IAAI,OAAe,CAAC;IACpB,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACjD,CAAC;IAAC,WAAM,CAAC;QACP,IAAI,CAAC,4BAA4B,SAAS,sBAAsB,CAAC,CAAC;QAClE,OAAO;IACT,CAAC;IAED,MAAM,SAAS,GAAG,CAAC,OAA0B,EAAE,EAAE;QAC/C,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI;YAAE,OAAO;QAChC,OAAO,CAAC,KAAK,CAAC,cAAc,SAAS,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/G,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,IAAA,2BAAmB,EAAC,OAAO,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;IACtE,IAAI,iBAAiB,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;QACxC,IAAI,CAAC,GAAG,iBAAiB,CAAC,MAAM,OAAO,IAAA,wBAAgB,EAAC,OAAO,EAAE,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC7F,OAAO;IACT,CAAC;IACD,MAAM,WAAW,GAAG,iBAAiB,CAAC,KAAK,CAAC;IAE5C,IAAI,KAAK,EAAE,CAAC;QACV,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,2DAA2D,KAAK,EAAE,CAAC,CAAC;YACzE,OAAO;QACT,CAAC;QAED,IAAI,aAAqB,CAAC;QAC1B,IAAI,CAAC;YACH,aAAa,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACxD,CAAC;QAAC,WAAM,CAAC;YACP,IAAI,CAAC,gBAAgB,UAAU,sBAAsB,CAAC,CAAC;YACvD,OAAO;QACT,CAAC;QAED,MAAM,YAAY,GAAG,IAAA,sBAAc,EAAC,aAAa,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;QACpE,IAAI,YAAY,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;YACnC,IAAI,CAAC,qDAAqD,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;YACjF,OAAO;QACT,CAAC;QAED,MAAM,gBAAgB,GAAG,IAAA,qBAAa,EAAC,WAAW,EAAE,YAAY,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;QAChG,IAAI,gBAAgB,CAAC,OAAO,KAAK,KAAK;YACpC,IAAI,CAAC,mDAAmD,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC;QAErF,MAAM,QAAQ,GAAG,IAAA,sBAAc,EAAC,WAAW,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QAC7F,IAAI,QAAQ,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;YAC/B,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,OAAO,IAAA,wBAAgB,EAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC3E,OAAO;QACT,CAAC;QAED,MAAM,aAAa,GAAG,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACpD,IAAI,aAAa,IAAI,IAAI;YAAE,OAAO;QAClC,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC;QAEzC,IAAI,aAAa,KAAK,WAAW,EAAE,CAAC;YAClC,IAAI,CACF,GAAG,UAAU,mCAAmC,SAAS,KAAK;gBAC5D,0CAA0C,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,GAAG,CAC1F,CAAC;YACF,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CACT,GAAG,UAAU,kCAAkC,SAAS,KAAK,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,WAAW,CACzG,CAAC;QACF,OAAO;IACT,CAAC;IAED,MAAM,eAAe,GAAG,IAAA,sBAAc,EAAC,WAAW,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IACpG,IAAI,eAAe,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;QACtC,IAAI,CAAC,GAAG,eAAe,CAAC,MAAM,OAAO,IAAA,wBAAgB,EAAC,OAAO,EAAE,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACzF,OAAO;IACT,CAAC;IAED,MAAM,KAAK,GAAG,aAAa,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACnD,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO;IAE1B,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnB,OAAO;IACT,CAAC;IAED,IAAI,UAAU,IAAI,IAAI;QAAE,OAAO;IAE/B,MAAM,kBAAE,CAAC,KAAK,CAAC,cAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9D,MAAM,kBAAE,CAAC,SAAS,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;IAE7D,MAAM,UAAU,GAAG,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;IAC/D,OAAO,CAAC,GAAG,CACT,SAAS,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,gBAAgB,SAAS,OAAO,UAAU,GAAG,CAC7G,CAAC;AACJ,CAAC;AAED,IAAI,EAAE,CAAC"}
|
package/dist/generator.d.ts
CHANGED
|
@@ -1,16 +1,23 @@
|
|
|
1
1
|
import { TableState } from "./parser";
|
|
2
|
-
import { Production } from "./meta/common";
|
|
2
|
+
import { Production, ProductionWarning } from "./meta/common";
|
|
3
3
|
import { Result } from "./utils/Result";
|
|
4
4
|
type Item = Production & {
|
|
5
5
|
dot: number;
|
|
6
6
|
lookahead: string[];
|
|
7
|
+
prodIndex: number;
|
|
8
|
+
key: string;
|
|
7
9
|
};
|
|
8
10
|
type State = {
|
|
9
11
|
itemSet: Item[];
|
|
10
12
|
kernel: Item;
|
|
11
13
|
count: number;
|
|
12
14
|
};
|
|
13
|
-
export
|
|
15
|
+
export type GeneratorOptions = {
|
|
16
|
+
mode?: "lr1" | "lalr1";
|
|
17
|
+
onWarning?: (warning: ProductionWarning) => void;
|
|
18
|
+
onProgress?: (statesGenerated: number) => void;
|
|
19
|
+
};
|
|
20
|
+
export declare const generateStates: (productions: Production[], options?: GeneratorOptions) => Result<GeneratorResult>;
|
|
14
21
|
export declare class GeneratorResult {
|
|
15
22
|
readonly states: State[];
|
|
16
23
|
readonly ActionTable: Map<string, {
|
package/dist/generator.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.GeneratorResult = exports.generateStates = void 0;
|
|
4
4
|
const parser_1 = require("./parser");
|
|
5
|
+
const common_1 = require("./meta/common");
|
|
5
6
|
const xContainsAllOfY = (xs, ys) => [...ys].every((x) => xs.has(x));
|
|
6
7
|
const EOF_STRING = "[EOF]";
|
|
7
8
|
function computeFirstSets(allProductions) {
|
|
@@ -14,6 +15,12 @@ function computeFirstSets(allProductions) {
|
|
|
14
15
|
for (const production of allProductions) {
|
|
15
16
|
const toBeModified = ret.get(production.identifier);
|
|
16
17
|
const firstRhsToken = production.rhs[0];
|
|
18
|
+
if (firstRhsToken == null)
|
|
19
|
+
return {
|
|
20
|
+
success: false,
|
|
21
|
+
reason: `Production "${production.identifier}" has an empty right hand side, which Sparse does not support`,
|
|
22
|
+
token: production.lhs,
|
|
23
|
+
};
|
|
17
24
|
if (firstRhsToken.type === "variable") {
|
|
18
25
|
const add = ret.get(firstRhsToken.identifier);
|
|
19
26
|
if (add == null) {
|
|
@@ -94,7 +101,12 @@ function computeFollowSets(allProductions) {
|
|
|
94
101
|
}
|
|
95
102
|
return { success: true, value: { firstSets, followSets: ret } };
|
|
96
103
|
}
|
|
97
|
-
const
|
|
104
|
+
const KEY_SEP = "\x00";
|
|
105
|
+
const FIELD_SEP = "\x01";
|
|
106
|
+
const generateStates = (productions, options = {}) => {
|
|
107
|
+
const validationResult = (0, common_1.validateProductions)(productions, { onWarning: options.onWarning });
|
|
108
|
+
if (validationResult.success === false)
|
|
109
|
+
return validationResult;
|
|
98
110
|
const followSetsResult = computeFollowSets(productions);
|
|
99
111
|
if (followSetsResult.success == false)
|
|
100
112
|
return followSetsResult;
|
|
@@ -124,41 +136,74 @@ const generateStates = (productions) => {
|
|
|
124
136
|
};
|
|
125
137
|
}
|
|
126
138
|
};
|
|
127
|
-
|
|
139
|
+
const productionIndicesByLhs = new Map();
|
|
140
|
+
for (let i = 0; i < productions.length; i++) {
|
|
141
|
+
const indexList = productionIndicesByLhs.get(productions[i].identifier);
|
|
142
|
+
if (indexList == undefined)
|
|
143
|
+
productionIndicesByLhs.set(productions[i].identifier, [i]);
|
|
144
|
+
else
|
|
145
|
+
indexList.push(i);
|
|
146
|
+
}
|
|
147
|
+
const rhsEntrySignature = (rhsToken) => { var _a; return `${rhsToken.type}${FIELD_SEP}${rhsToken.identifier}${FIELD_SEP}${(_a = rhsToken.name) !== null && _a !== void 0 ? _a : ""}${FIELD_SEP}${rhsToken.token.line}${FIELD_SEP}${rhsToken.token.column}`; };
|
|
148
|
+
const reduceValue = [];
|
|
149
|
+
{
|
|
150
|
+
const lowestIndexBySignature = new Map();
|
|
151
|
+
for (let i = 0; i < productions.length; i++) {
|
|
152
|
+
const production = productions[i];
|
|
153
|
+
const signature = `${production.identifier}${FIELD_SEP}${production.rhs.map(rhsEntrySignature).join(FIELD_SEP)}`;
|
|
154
|
+
const lowest = lowestIndexBySignature.get(signature);
|
|
155
|
+
if (lowest == undefined)
|
|
156
|
+
lowestIndexBySignature.set(signature, i);
|
|
157
|
+
reduceValue[i] = lowestIndexBySignature.get(signature);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
const itemKey = (prodIndex, dot, lookahead) => `${prodIndex}${KEY_SEP}${dot}${KEY_SEP}${lookahead.join(FIELD_SEP)}`;
|
|
161
|
+
const itemSetSignature = (itemSet) => itemSet.map((item) => item.key).join(FIELD_SEP);
|
|
162
|
+
function generateInitialItemSet(production, prodIndex) {
|
|
163
|
+
const lookahead = [EOF_STRING];
|
|
128
164
|
const initialItem = {
|
|
129
165
|
lhs: production.lhs,
|
|
130
166
|
identifier: production.identifier,
|
|
131
167
|
rhs: production.rhs,
|
|
132
168
|
dot: 0,
|
|
133
|
-
lookahead
|
|
169
|
+
lookahead,
|
|
170
|
+
prodIndex,
|
|
171
|
+
key: itemKey(prodIndex, 0, lookahead),
|
|
134
172
|
};
|
|
135
173
|
return expandItemSet([initialItem]);
|
|
136
174
|
}
|
|
137
175
|
function expandItemSet(items) {
|
|
176
|
+
var _a;
|
|
138
177
|
const itemSet = [...items];
|
|
178
|
+
const knownItems = new Set(items.map((item) => item.key));
|
|
139
179
|
const unprocesssedItems = [...items];
|
|
140
|
-
|
|
141
|
-
|
|
180
|
+
let queuePosition = 0;
|
|
181
|
+
while (queuePosition < unprocesssedItems.length) {
|
|
182
|
+
const currentItem = unprocesssedItems[queuePosition++];
|
|
142
183
|
const after = currentItem.rhs[currentItem.dot];
|
|
143
184
|
if (after == null)
|
|
144
185
|
continue;
|
|
145
186
|
if (after.type === "variable") {
|
|
146
|
-
const newProductions = productions.filter((p) => p.identifier === after.identifier);
|
|
147
187
|
const rest = currentItem.rhs.slice(currentItem.dot + 1);
|
|
148
188
|
const lookaheadResult = determineNextLookAhead(currentItem.lhs, currentItem.identifier, rest);
|
|
149
189
|
if (lookaheadResult.success === false)
|
|
150
190
|
return lookaheadResult;
|
|
151
191
|
const lookahead = lookaheadResult.value;
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
192
|
+
const productionIndices = (_a = productionIndicesByLhs.get(after.identifier)) !== null && _a !== void 0 ? _a : [];
|
|
193
|
+
for (const prodIndex of productionIndices) {
|
|
194
|
+
const newProduction = productions[prodIndex];
|
|
195
|
+
const key = itemKey(prodIndex, 0, lookahead);
|
|
196
|
+
if (knownItems.has(key) == false) {
|
|
197
|
+
knownItems.add(key);
|
|
198
|
+
const newItem = {
|
|
199
|
+
lhs: newProduction.lhs,
|
|
200
|
+
identifier: newProduction.identifier,
|
|
201
|
+
rhs: newProduction.rhs,
|
|
202
|
+
dot: 0,
|
|
203
|
+
lookahead,
|
|
204
|
+
prodIndex,
|
|
205
|
+
key,
|
|
206
|
+
};
|
|
162
207
|
unprocesssedItems.push(newItem);
|
|
163
208
|
itemSet.push(newItem);
|
|
164
209
|
}
|
|
@@ -167,34 +212,35 @@ const generateStates = (productions) => {
|
|
|
167
212
|
}
|
|
168
213
|
return { success: true, value: { itemSet, kernel: items[0] } };
|
|
169
214
|
}
|
|
170
|
-
const initialItemSetResult = generateInitialItemSet(productions[0]);
|
|
215
|
+
const initialItemSetResult = generateInitialItemSet(productions[0], 0);
|
|
171
216
|
if (initialItemSetResult.success === false)
|
|
172
217
|
return initialItemSetResult;
|
|
173
218
|
const initialItemSet = initialItemSetResult.value;
|
|
174
219
|
function generateStates(_initialState) {
|
|
220
|
+
var _a, _b;
|
|
175
221
|
const initialState = Object.assign(Object.assign({}, _initialState), { count: 0 });
|
|
176
222
|
const states = [initialState];
|
|
177
223
|
const unprocessedStates = [initialState];
|
|
178
224
|
const GotoTable = [];
|
|
179
225
|
const ActionTable = [];
|
|
180
|
-
|
|
181
|
-
|
|
226
|
+
const stateIndexBySignature = new Map();
|
|
227
|
+
stateIndexBySignature.set(itemSetSignature(initialState.itemSet), 0);
|
|
228
|
+
let statePosition = 0;
|
|
229
|
+
while (statePosition < unprocessedStates.length) {
|
|
230
|
+
const currentState = unprocessedStates[statePosition++];
|
|
182
231
|
const nextStates_Goto = new Map();
|
|
183
232
|
const nextStates_Shift = new Map();
|
|
184
233
|
calculateNextItem: for (const item of currentState.itemSet) {
|
|
185
234
|
const nextSymbol = item.rhs[item.dot];
|
|
186
235
|
if (nextSymbol == null) {
|
|
187
|
-
const productionToReduceTo = productions
|
|
188
|
-
.map((p, i) => [p, i])
|
|
189
|
-
.find(([p, _]) => JSON.stringify(p.rhs) === JSON.stringify(item.rhs) && p.identifier === item.identifier)[1];
|
|
190
236
|
for (const lookahead of item.lookahead) {
|
|
191
237
|
if (ActionTable[currentState.count] === undefined)
|
|
192
238
|
ActionTable[currentState.count] = new Map();
|
|
193
|
-
ActionTable[currentState.count].set(lookahead, { action: "reduce", value:
|
|
239
|
+
ActionTable[currentState.count].set(lookahead, { action: "reduce", value: reduceValue[item.prodIndex] });
|
|
194
240
|
}
|
|
195
241
|
continue calculateNextItem;
|
|
196
242
|
}
|
|
197
|
-
const newItem = Object.assign(Object.assign({}, item), { dot: item.dot + 1 });
|
|
243
|
+
const newItem = Object.assign(Object.assign({}, item), { dot: item.dot + 1, key: itemKey(item.prodIndex, item.dot + 1, item.lookahead) });
|
|
198
244
|
if (nextSymbol.type === "variable") {
|
|
199
245
|
if (nextStates_Goto.has(nextSymbol.identifier))
|
|
200
246
|
nextStates_Goto.get(nextSymbol.identifier).push(newItem);
|
|
@@ -213,17 +259,11 @@ const generateStates = (productions) => {
|
|
|
213
259
|
if (expandedItemsResult.success === false)
|
|
214
260
|
return expandedItemsResult;
|
|
215
261
|
const expandedItems = expandedItemsResult.value;
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
s.kernel.rhs.length === expandedItems.kernel.rhs.length &&
|
|
219
|
-
JSON.stringify(s.kernel.rhs) === JSON.stringify(expandedItems.kernel.rhs) &&
|
|
220
|
-
s.kernel.lookahead.length === expandedItems.kernel.lookahead.length &&
|
|
221
|
-
JSON.stringify(s.kernel.lookahead) === JSON.stringify(expandedItems.kernel.lookahead) &&
|
|
222
|
-
JSON.stringify(s.itemSet) === JSON.stringify(expandedItems.itemSet));
|
|
223
|
-
});
|
|
262
|
+
const signature = itemSetSignature(expandedItems.itemSet);
|
|
263
|
+
let existingStateIndex = stateIndexBySignature.get(signature);
|
|
224
264
|
if (GotoTable[currentState.count] === undefined)
|
|
225
265
|
GotoTable[currentState.count] = new Map();
|
|
226
|
-
if (
|
|
266
|
+
if (existingStateIndex == undefined) {
|
|
227
267
|
const newState = {
|
|
228
268
|
itemSet: expandedItems.itemSet,
|
|
229
269
|
kernel: expandedItems.kernel,
|
|
@@ -231,26 +271,22 @@ const generateStates = (productions) => {
|
|
|
231
271
|
};
|
|
232
272
|
states.push(newState);
|
|
233
273
|
unprocessedStates.push(newState);
|
|
234
|
-
|
|
274
|
+
stateIndexBySignature.set(signature, newState.count);
|
|
275
|
+
existingStateIndex = newState.count;
|
|
235
276
|
}
|
|
236
|
-
|
|
277
|
+
(_a = options.onProgress) === null || _a === void 0 ? void 0 : _a.call(options, states.length);
|
|
278
|
+
GotoTable[currentState.count].set(gotoTransition, existingStateIndex);
|
|
237
279
|
}
|
|
238
280
|
for (const [shiftTransition, shiftItems] of nextStates_Shift.entries()) {
|
|
239
281
|
const expandedItemsResult = expandItemSet(shiftItems);
|
|
240
282
|
if (expandedItemsResult.success === false)
|
|
241
283
|
return expandedItemsResult;
|
|
242
284
|
const expandedItems = expandedItemsResult.value;
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
s.kernel.rhs.length === expandedItems.kernel.rhs.length &&
|
|
246
|
-
JSON.stringify(s.kernel.rhs) === JSON.stringify(expandedItems.kernel.rhs) &&
|
|
247
|
-
s.kernel.lookahead.length === expandedItems.kernel.lookahead.length &&
|
|
248
|
-
JSON.stringify(s.kernel.lookahead) === JSON.stringify(expandedItems.kernel.lookahead) &&
|
|
249
|
-
JSON.stringify(s.itemSet) === JSON.stringify(expandedItems.itemSet));
|
|
250
|
-
});
|
|
285
|
+
const signature = itemSetSignature(expandedItems.itemSet);
|
|
286
|
+
let existingStateIndex = stateIndexBySignature.get(signature);
|
|
251
287
|
if (ActionTable[currentState.count] === undefined)
|
|
252
288
|
ActionTable[currentState.count] = new Map();
|
|
253
|
-
if (
|
|
289
|
+
if (existingStateIndex == undefined) {
|
|
254
290
|
const newState = {
|
|
255
291
|
itemSet: expandedItems.itemSet,
|
|
256
292
|
kernel: expandedItems.kernel,
|
|
@@ -258,9 +294,11 @@ const generateStates = (productions) => {
|
|
|
258
294
|
};
|
|
259
295
|
states.push(newState);
|
|
260
296
|
unprocessedStates.push(newState);
|
|
261
|
-
|
|
297
|
+
stateIndexBySignature.set(signature, newState.count);
|
|
298
|
+
existingStateIndex = newState.count;
|
|
262
299
|
}
|
|
263
|
-
|
|
300
|
+
(_b = options.onProgress) === null || _b === void 0 ? void 0 : _b.call(options, states.length);
|
|
301
|
+
ActionTable[currentState.count].set(shiftTransition, { action: "shift", value: existingStateIndex });
|
|
264
302
|
}
|
|
265
303
|
}
|
|
266
304
|
return { success: true, value: { states, GotoTable, ActionTable } };
|
|
@@ -269,9 +307,90 @@ const generateStates = (productions) => {
|
|
|
269
307
|
if (StatesResult.success === false)
|
|
270
308
|
return StatesResult;
|
|
271
309
|
const { states, ActionTable, GotoTable } = StatesResult.value;
|
|
310
|
+
if (options.mode === "lalr1") {
|
|
311
|
+
const merged = mergeStatesForLALR(states, ActionTable, GotoTable);
|
|
312
|
+
if (merged.success === false)
|
|
313
|
+
return merged;
|
|
314
|
+
return {
|
|
315
|
+
success: true,
|
|
316
|
+
value: new GeneratorResult(merged.value.states, merged.value.ActionTable, merged.value.GotoTable),
|
|
317
|
+
};
|
|
318
|
+
}
|
|
272
319
|
return { success: true, value: new GeneratorResult(states, ActionTable, GotoTable) };
|
|
273
320
|
};
|
|
274
321
|
exports.generateStates = generateStates;
|
|
322
|
+
function mergeStatesForLALR(states, ActionTable, GotoTable) {
|
|
323
|
+
var _a;
|
|
324
|
+
const itemSkeleton = (item) => `${item.prodIndex}${KEY_SEP}${item.dot}`;
|
|
325
|
+
const stateSkeleton = (state) => state.itemSet.map(itemSkeleton).sort().join(FIELD_SEP);
|
|
326
|
+
const groupIndices = [];
|
|
327
|
+
const groupBySkeleton = new Map();
|
|
328
|
+
const oldToNew = new Array(states.length);
|
|
329
|
+
for (let i = 0; i < states.length; i++) {
|
|
330
|
+
const skeleton = stateSkeleton(states[i]);
|
|
331
|
+
let group = groupBySkeleton.get(skeleton);
|
|
332
|
+
if (group == undefined) {
|
|
333
|
+
group = groupIndices.length;
|
|
334
|
+
groupBySkeleton.set(skeleton, group);
|
|
335
|
+
groupIndices.push([]);
|
|
336
|
+
}
|
|
337
|
+
groupIndices[group].push(i);
|
|
338
|
+
oldToNew[i] = group;
|
|
339
|
+
}
|
|
340
|
+
const describeAction = (a) => a.action === "reduce" ? `reduce by production ${a.value}` : `shift to state ${a.value}`;
|
|
341
|
+
const conflictToken = (members) => states[members[0]].kernel.lhs;
|
|
342
|
+
const conflict = (g, members, reason) => ({
|
|
343
|
+
success: false,
|
|
344
|
+
reason: `LALR(1) conflict in state ${g} on ${reason} between LR(1) states ${members.join(", ")}: the grammar is not LALR(1)`,
|
|
345
|
+
token: conflictToken(members),
|
|
346
|
+
});
|
|
347
|
+
const newStates = [];
|
|
348
|
+
const newActionTable = [];
|
|
349
|
+
const newGotoTable = [];
|
|
350
|
+
for (let g = 0; g < groupIndices.length; g++) {
|
|
351
|
+
const members = groupIndices[g];
|
|
352
|
+
const actions = new Map();
|
|
353
|
+
const gotos = new Map();
|
|
354
|
+
for (const member of members) {
|
|
355
|
+
for (const [key, entry] of ((_a = ActionTable[member]) !== null && _a !== void 0 ? _a : new Map()).entries()) {
|
|
356
|
+
const value = {
|
|
357
|
+
action: entry.action,
|
|
358
|
+
value: entry.action === "shift" ? oldToNew[entry.value] : entry.value,
|
|
359
|
+
};
|
|
360
|
+
const existing = actions.get(key);
|
|
361
|
+
if (existing == undefined)
|
|
362
|
+
actions.set(key, value);
|
|
363
|
+
else if (existing.action !== value.action || existing.value !== value.value)
|
|
364
|
+
return conflict(g, members, `"${key}": ${describeAction(existing)} conflicts with ${describeAction(value)}`);
|
|
365
|
+
}
|
|
366
|
+
if (GotoTable[member] !== undefined)
|
|
367
|
+
for (const [key, target] of GotoTable[member].entries()) {
|
|
368
|
+
const value = oldToNew[target];
|
|
369
|
+
const existing = gotos.get(key);
|
|
370
|
+
if (existing == undefined)
|
|
371
|
+
gotos.set(key, value);
|
|
372
|
+
else if (existing !== value)
|
|
373
|
+
return conflict(g, members, `"${key}": goto to state ${existing} conflicts with goto to state ${value}`);
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
const itemsBySkeleton = new Map();
|
|
377
|
+
for (const member of members)
|
|
378
|
+
for (const item of states[member].itemSet) {
|
|
379
|
+
const skeleton = itemSkeleton(item);
|
|
380
|
+
const existing = itemsBySkeleton.get(skeleton);
|
|
381
|
+
if (existing == undefined)
|
|
382
|
+
itemsBySkeleton.set(skeleton, Object.assign(Object.assign({}, item), { lookahead: [...item.lookahead] }));
|
|
383
|
+
else
|
|
384
|
+
for (const lookahead of item.lookahead)
|
|
385
|
+
if (!existing.lookahead.includes(lookahead))
|
|
386
|
+
existing.lookahead.push(lookahead);
|
|
387
|
+
}
|
|
388
|
+
newStates.push({ itemSet: [...itemsBySkeleton.values()], kernel: states[members[0]].kernel, count: g });
|
|
389
|
+
newActionTable.push(actions);
|
|
390
|
+
newGotoTable.push(gotos);
|
|
391
|
+
}
|
|
392
|
+
return { success: true, value: { states: newStates, ActionTable: newActionTable, GotoTable: newGotoTable } };
|
|
393
|
+
}
|
|
275
394
|
class GeneratorResult {
|
|
276
395
|
constructor(states, ActionTable, GotoTable) {
|
|
277
396
|
this.states = states;
|
|
@@ -279,7 +398,11 @@ class GeneratorResult {
|
|
|
279
398
|
this.GotoTable = GotoTable;
|
|
280
399
|
}
|
|
281
400
|
toTable() {
|
|
282
|
-
|
|
401
|
+
const actionless = this.ActionTable.findIndex((actions) => actions === undefined || actions.size === 0);
|
|
402
|
+
if (actionless !== -1)
|
|
403
|
+
throw new Error(`State ${actionless} of this grammar has no actions, so it cannot be written in the parsing table format. ` +
|
|
404
|
+
`Use Sparse.fromProductions to keep the states in memory instead.`);
|
|
405
|
+
return Array.from(this.ActionTable, (actions, idx) => {
|
|
283
406
|
return [
|
|
284
407
|
...[...actions.entries()].map(([k, { action, value }]) => `${k}=${action === "reduce" ? "r" : "s"}${value}`),
|
|
285
408
|
...(this.GotoTable[idx] === undefined ? [] : [...this.GotoTable[idx].entries()].map(([k, v]) => `${k}=${v}`)),
|
|
@@ -287,13 +410,19 @@ class GeneratorResult {
|
|
|
287
410
|
}).join("\n");
|
|
288
411
|
}
|
|
289
412
|
toStates() {
|
|
290
|
-
return this.ActionTable
|
|
413
|
+
return Array.from(this.ActionTable, (actions, idx) => {
|
|
291
414
|
const tableState = new parser_1.TableState();
|
|
292
|
-
|
|
415
|
+
if (actions === undefined)
|
|
416
|
+
return tableState;
|
|
417
|
+
for (const [k, { action, value }] of actions.entries()) {
|
|
293
418
|
tableState.actions.set(k, { type: action === "reduce" ? "reduce" : "shift", value });
|
|
419
|
+
tableState.rawActions.set(k, `${action === "reduce" ? "r" : "s"}${value}`);
|
|
420
|
+
}
|
|
294
421
|
if (this.GotoTable[idx] !== undefined)
|
|
295
|
-
for (const [k, value] of this.GotoTable[idx].entries())
|
|
422
|
+
for (const [k, value] of this.GotoTable[idx].entries()) {
|
|
296
423
|
tableState.actions.set(k, { type: "goto", value });
|
|
424
|
+
tableState.rawActions.set(k, `${value}`);
|
|
425
|
+
}
|
|
297
426
|
return tableState;
|
|
298
427
|
});
|
|
299
428
|
}
|
package/dist/generator.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,19 @@
|
|
|
1
1
|
export { GeneratorResult, generateStates } from "./generator";
|
|
2
|
-
export {
|
|
2
|
+
export type { GeneratorOptions } from "./generator";
|
|
3
|
+
export { buildProductions, tryBuildProductions, grammarLexerGenerator, getSelfHostedParserGenerator, } from "./meta/selfhosted";
|
|
4
|
+
export type { LexerInterface } from "./meta/selfhosted";
|
|
3
5
|
export { Result } from "./utils/Result";
|
|
4
|
-
export { ParserRecoveryFunction, Sparse, LR1ParserGraveError, LR1StackSymbol, ParserResult, ParserError, } from "./parser";
|
|
5
|
-
export {
|
|
6
|
-
export {
|
|
6
|
+
export { ParserRecoveryFunction, Sparse, SparseGrammarError, LR1ParserGraveError, LR1StackSymbol, LR1Parser, ParserResult, ParserError, TableAction, TableState, } from "./parser";
|
|
7
|
+
export type { ReducerType, SparseOptions, FromProductionsOptions } from "./parser";
|
|
8
|
+
export { buildStates, tryBuildStates } from "./table/selfhosted";
|
|
9
|
+
export type { BuildStatesOptions } from "./table/selfhosted";
|
|
10
|
+
export { validateTable, validateTableStates } from "./table/validate";
|
|
11
|
+
export type { ValidateTableOptions, ValidateTableStatesOptions, TableFormatWarning } from "./table/validate";
|
|
12
|
+
export { dehydateProduction, hydrateProduction, isVariableIdentifier, syntheticGrammarToken, terminalIdentifier, validateProductions, variableIdentifier, GrammarTokenType, } from "./meta/common";
|
|
13
|
+
export type { GrammarToken, GrammarTokenMetadata, Production, ProductionRhsItem, ProductionWarning, ProductionWarningKind, ValidateProductionsOptions, } from "./meta/common";
|
|
14
|
+
export { assertReducersCoverGrammar, defineReducers, enumToString, missingReducerMessage, missingReducerNames, namedProductions, KLEENE_REDUCER_NAME, } from "./utils/reducers";
|
|
15
|
+
export type { ReducerMap } from "./utils/reducers";
|
|
16
|
+
export { loadGrammar, loadTable } from "./utils/loadFiles";
|
|
17
|
+
export type { LoadGrammarOptions, LoadTableOptions } from "./utils/loadFiles";
|
|
18
|
+
export { buildErrorWindow } from "./utils/errorWindowBuilder";
|
|
19
|
+
export { Stack } from "./utils/Stack";
|
package/dist/index.js
CHANGED
|
@@ -1,15 +1,48 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.buildStates = exports.LR1ParserGraveError = exports.Sparse = exports.tryBuildProductions = exports.buildProductions = exports.generateStates = exports.GeneratorResult = void 0;
|
|
3
|
+
exports.Stack = exports.buildErrorWindow = exports.loadTable = exports.loadGrammar = exports.KLEENE_REDUCER_NAME = exports.namedProductions = exports.missingReducerNames = exports.missingReducerMessage = exports.enumToString = exports.defineReducers = exports.assertReducersCoverGrammar = exports.GrammarTokenType = exports.variableIdentifier = exports.validateProductions = exports.terminalIdentifier = exports.syntheticGrammarToken = exports.isVariableIdentifier = exports.hydrateProduction = exports.dehydateProduction = exports.validateTableStates = exports.validateTable = exports.tryBuildStates = exports.buildStates = exports.TableState = exports.LR1Parser = exports.LR1ParserGraveError = exports.SparseGrammarError = exports.Sparse = exports.getSelfHostedParserGenerator = exports.grammarLexerGenerator = exports.tryBuildProductions = exports.buildProductions = exports.generateStates = exports.GeneratorResult = void 0;
|
|
4
4
|
var generator_1 = require("./generator");
|
|
5
5
|
Object.defineProperty(exports, "GeneratorResult", { enumerable: true, get: function () { return generator_1.GeneratorResult; } });
|
|
6
6
|
Object.defineProperty(exports, "generateStates", { enumerable: true, get: function () { return generator_1.generateStates; } });
|
|
7
7
|
var selfhosted_1 = require("./meta/selfhosted");
|
|
8
8
|
Object.defineProperty(exports, "buildProductions", { enumerable: true, get: function () { return selfhosted_1.buildProductions; } });
|
|
9
9
|
Object.defineProperty(exports, "tryBuildProductions", { enumerable: true, get: function () { return selfhosted_1.tryBuildProductions; } });
|
|
10
|
+
Object.defineProperty(exports, "grammarLexerGenerator", { enumerable: true, get: function () { return selfhosted_1.grammarLexerGenerator; } });
|
|
11
|
+
Object.defineProperty(exports, "getSelfHostedParserGenerator", { enumerable: true, get: function () { return selfhosted_1.getSelfHostedParserGenerator; } });
|
|
10
12
|
var parser_1 = require("./parser");
|
|
11
13
|
Object.defineProperty(exports, "Sparse", { enumerable: true, get: function () { return parser_1.Sparse; } });
|
|
14
|
+
Object.defineProperty(exports, "SparseGrammarError", { enumerable: true, get: function () { return parser_1.SparseGrammarError; } });
|
|
12
15
|
Object.defineProperty(exports, "LR1ParserGraveError", { enumerable: true, get: function () { return parser_1.LR1ParserGraveError; } });
|
|
16
|
+
Object.defineProperty(exports, "LR1Parser", { enumerable: true, get: function () { return parser_1.LR1Parser; } });
|
|
17
|
+
Object.defineProperty(exports, "TableState", { enumerable: true, get: function () { return parser_1.TableState; } });
|
|
13
18
|
var selfhosted_2 = require("./table/selfhosted");
|
|
14
19
|
Object.defineProperty(exports, "buildStates", { enumerable: true, get: function () { return selfhosted_2.buildStates; } });
|
|
20
|
+
Object.defineProperty(exports, "tryBuildStates", { enumerable: true, get: function () { return selfhosted_2.tryBuildStates; } });
|
|
21
|
+
var validate_1 = require("./table/validate");
|
|
22
|
+
Object.defineProperty(exports, "validateTable", { enumerable: true, get: function () { return validate_1.validateTable; } });
|
|
23
|
+
Object.defineProperty(exports, "validateTableStates", { enumerable: true, get: function () { return validate_1.validateTableStates; } });
|
|
24
|
+
var common_1 = require("./meta/common");
|
|
25
|
+
Object.defineProperty(exports, "dehydateProduction", { enumerable: true, get: function () { return common_1.dehydateProduction; } });
|
|
26
|
+
Object.defineProperty(exports, "hydrateProduction", { enumerable: true, get: function () { return common_1.hydrateProduction; } });
|
|
27
|
+
Object.defineProperty(exports, "isVariableIdentifier", { enumerable: true, get: function () { return common_1.isVariableIdentifier; } });
|
|
28
|
+
Object.defineProperty(exports, "syntheticGrammarToken", { enumerable: true, get: function () { return common_1.syntheticGrammarToken; } });
|
|
29
|
+
Object.defineProperty(exports, "terminalIdentifier", { enumerable: true, get: function () { return common_1.terminalIdentifier; } });
|
|
30
|
+
Object.defineProperty(exports, "validateProductions", { enumerable: true, get: function () { return common_1.validateProductions; } });
|
|
31
|
+
Object.defineProperty(exports, "variableIdentifier", { enumerable: true, get: function () { return common_1.variableIdentifier; } });
|
|
32
|
+
Object.defineProperty(exports, "GrammarTokenType", { enumerable: true, get: function () { return common_1.GrammarTokenType; } });
|
|
33
|
+
var reducers_1 = require("./utils/reducers");
|
|
34
|
+
Object.defineProperty(exports, "assertReducersCoverGrammar", { enumerable: true, get: function () { return reducers_1.assertReducersCoverGrammar; } });
|
|
35
|
+
Object.defineProperty(exports, "defineReducers", { enumerable: true, get: function () { return reducers_1.defineReducers; } });
|
|
36
|
+
Object.defineProperty(exports, "enumToString", { enumerable: true, get: function () { return reducers_1.enumToString; } });
|
|
37
|
+
Object.defineProperty(exports, "missingReducerMessage", { enumerable: true, get: function () { return reducers_1.missingReducerMessage; } });
|
|
38
|
+
Object.defineProperty(exports, "missingReducerNames", { enumerable: true, get: function () { return reducers_1.missingReducerNames; } });
|
|
39
|
+
Object.defineProperty(exports, "namedProductions", { enumerable: true, get: function () { return reducers_1.namedProductions; } });
|
|
40
|
+
Object.defineProperty(exports, "KLEENE_REDUCER_NAME", { enumerable: true, get: function () { return reducers_1.KLEENE_REDUCER_NAME; } });
|
|
41
|
+
var loadFiles_1 = require("./utils/loadFiles");
|
|
42
|
+
Object.defineProperty(exports, "loadGrammar", { enumerable: true, get: function () { return loadFiles_1.loadGrammar; } });
|
|
43
|
+
Object.defineProperty(exports, "loadTable", { enumerable: true, get: function () { return loadFiles_1.loadTable; } });
|
|
44
|
+
var errorWindowBuilder_1 = require("./utils/errorWindowBuilder");
|
|
45
|
+
Object.defineProperty(exports, "buildErrorWindow", { enumerable: true, get: function () { return errorWindowBuilder_1.buildErrorWindow; } });
|
|
46
|
+
var Stack_1 = require("./utils/Stack");
|
|
47
|
+
Object.defineProperty(exports, "Stack", { enumerable: true, get: function () { return Stack_1.Stack; } });
|
|
15
48
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,yCAA8D;AAArD,4GAAA,eAAe,OAAA;AAAE,2GAAA,cAAc,OAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,yCAA8D;AAArD,4GAAA,eAAe,OAAA;AAAE,2GAAA,cAAc,OAAA;AAGxC,gDAK2B;AAJzB,8GAAA,gBAAgB,OAAA;AAChB,iHAAA,mBAAmB,OAAA;AACnB,mHAAA,qBAAqB,OAAA;AACrB,0HAAA,4BAA4B,OAAA;AAK9B,mCAWkB;AAThB,gGAAA,MAAM,OAAA;AACN,4GAAA,kBAAkB,OAAA;AAClB,6GAAA,mBAAmB,OAAA;AAEnB,mGAAA,SAAS,OAAA;AAIT,oGAAA,UAAU,OAAA;AAIZ,iDAAiE;AAAxD,yGAAA,WAAW,OAAA;AAAE,4GAAA,cAAc,OAAA;AAEpC,6CAAsE;AAA7D,yGAAA,aAAa,OAAA;AAAE,+GAAA,mBAAmB,OAAA;AAG3C,wCASuB;AARrB,4GAAA,kBAAkB,OAAA;AAClB,2GAAA,iBAAiB,OAAA;AACjB,8GAAA,oBAAoB,OAAA;AACpB,+GAAA,qBAAqB,OAAA;AACrB,4GAAA,kBAAkB,OAAA;AAClB,6GAAA,mBAAmB,OAAA;AACnB,4GAAA,kBAAkB,OAAA;AAClB,0GAAA,gBAAgB,OAAA;AAYlB,6CAQ0B;AAPxB,sHAAA,0BAA0B,OAAA;AAC1B,0GAAA,cAAc,OAAA;AACd,wGAAA,YAAY,OAAA;AACZ,iHAAA,qBAAqB,OAAA;AACrB,+GAAA,mBAAmB,OAAA;AACnB,4GAAA,gBAAgB,OAAA;AAChB,+GAAA,mBAAmB,OAAA;AAIrB,+CAA2D;AAAlD,wGAAA,WAAW,OAAA;AAAE,sGAAA,SAAS,OAAA;AAE/B,iEAA8D;AAArD,sHAAA,gBAAgB,OAAA;AACzB,uCAAsC;AAA7B,8FAAA,KAAK,OAAA"}
|
package/dist/meta/common.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Token } from "@scinorandex/slex";
|
|
2
|
+
import { Result } from "../utils/Result";
|
|
2
3
|
export type Production = {
|
|
3
4
|
lhs: GrammarToken;
|
|
4
5
|
identifier: string;
|
|
@@ -11,6 +12,7 @@ export type Production = {
|
|
|
11
12
|
name: string | null;
|
|
12
13
|
}[];
|
|
13
14
|
};
|
|
15
|
+
export type ProductionRhsItem = Production["rhs"][number];
|
|
14
16
|
export declare const dehydateProduction: (opts: Production) => {
|
|
15
17
|
lhs: {
|
|
16
18
|
column: number;
|
|
@@ -35,6 +37,21 @@ export declare const dehydateProduction: (opts: Production) => {
|
|
|
35
37
|
};
|
|
36
38
|
export declare const hydrateProduction: (production: ReturnType<typeof dehydateProduction>) => Production;
|
|
37
39
|
export type GrammarTokenMetadata = {};
|
|
40
|
+
export declare const describeThrowable: (err: unknown) => string;
|
|
41
|
+
export declare const syntheticGrammarToken: () => GrammarToken;
|
|
42
|
+
export type ProductionWarningKind = "duplicate-rhs-name" | "unreachable-production";
|
|
43
|
+
export type ProductionWarning = {
|
|
44
|
+
kind: ProductionWarningKind;
|
|
45
|
+
reason: string;
|
|
46
|
+
token: GrammarToken;
|
|
47
|
+
};
|
|
48
|
+
export type ValidateProductionsOptions = {
|
|
49
|
+
onWarning?: (warning: ProductionWarning) => void;
|
|
50
|
+
};
|
|
51
|
+
export declare const validateProductions: (productions: Production[], options?: ValidateProductionsOptions) => Result<Production[]>;
|
|
52
|
+
export declare const isVariableIdentifier: (identifier: string) => boolean;
|
|
53
|
+
export declare const terminalIdentifier: (name: string) => string;
|
|
54
|
+
export declare const variableIdentifier: (name: string) => string;
|
|
38
55
|
export declare enum GrammarTokenType {
|
|
39
56
|
IDENTIFIER = 0,
|
|
40
57
|
L_ANGLE = 1,
|