@scinorandex/sparse 0.1.1 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/ci.yml +41 -0
- package/AGENTS.md +31 -11
- package/README.md +289 -29
- package/dist/cli.js +113 -24
- package/dist/cli.js.map +1 -1
- package/dist/generator.d.ts +3 -1
- package/dist/generator.js +29 -5
- package/dist/generator.js.map +1 -1
- package/dist/index.d.ts +16 -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 +49 -36
- package/dist/meta/selfhosted.js.map +1 -1
- package/dist/parser.d.ts +55 -35
- package/dist/parser.js +141 -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 +16 -15
- 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 +1 -1
- package/package.json +2 -2
- package/src/cli.ts +132 -23
- package/src/generator.ts +49 -8
- package/src/index.ts +55 -3
- package/src/meta/common.ts +116 -0
- package/src/meta/selfhosted.ts +42 -11
- package/src/parser.ts +243 -51
- 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 +110 -0
- package/test/parser.test.ts +377 -0
- package/test/table.test.ts +144 -0
- package/tsconfig.json +1 -1
- package/example/LoLang/table2.txt +0 -497
- package/example/complicated/grammar.txt +0 -37
package/dist/cli.js
CHANGED
|
@@ -5,43 +5,132 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
};
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
const promises_1 = __importDefault(require("fs/promises"));
|
|
8
|
-
const index_1 = require("./index");
|
|
9
|
-
const generator_1 = require("./generator");
|
|
10
|
-
const minimist_1 = __importDefault(require("minimist"));
|
|
11
8
|
const path_1 = __importDefault(require("path"));
|
|
12
|
-
const
|
|
9
|
+
const minimist_1 = __importDefault(require("minimist"));
|
|
10
|
+
const index_1 = require("./index");
|
|
13
11
|
const args = (0, minimist_1.default)(process.argv.slice(2));
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
12
|
+
const BINARY_NAME = "@scinorandex/sparse";
|
|
13
|
+
const USAGE = `Usage: npx @scinorandex/sparse --input=<grammar> --output=<table> [options]
|
|
14
|
+
|
|
15
|
+
Generates an LR(1) parsing table from a grammar file.
|
|
16
|
+
|
|
17
|
+
Required:
|
|
18
|
+
--input=<file> Grammar file to read
|
|
19
|
+
--output=<file> Where to write the parsing table (created if the directory is missing)
|
|
20
|
+
|
|
21
|
+
Options:
|
|
22
|
+
--lalr Generate LALR(1) states instead of LR(1) (smaller table, ~35% faster parsing)
|
|
23
|
+
--check Do not write anything: verify that <output> already matches the grammar
|
|
24
|
+
--stdout Print the table instead of writing it to a file
|
|
25
|
+
--quiet Do not print warnings about suspicious grammar rules
|
|
26
|
+
--help Show this message
|
|
27
|
+
|
|
28
|
+
Run with npx ${BINARY_NAME} (the package is @scinorandex/sparse).`;
|
|
29
|
+
function fail(message) {
|
|
30
|
+
console.error(message);
|
|
31
|
+
process.exitCode = 1;
|
|
32
|
+
}
|
|
33
|
+
function toTableOrFail(result) {
|
|
34
|
+
try {
|
|
35
|
+
return result.toTable();
|
|
36
|
+
}
|
|
37
|
+
catch (err) {
|
|
38
|
+
fail(err instanceof Error ? err.message : String(err));
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
20
41
|
}
|
|
21
42
|
async function main() {
|
|
22
|
-
if (
|
|
23
|
-
console.log(
|
|
43
|
+
if (args.help === true || args.h === true) {
|
|
44
|
+
console.log(USAGE);
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
if (typeof args.input !== "string") {
|
|
48
|
+
fail(`Missing --input.\n\n${USAGE}`);
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
const useStdout = args.stdout === true;
|
|
52
|
+
const check = args.check === true;
|
|
53
|
+
if (typeof args.output !== "string" && !useStdout) {
|
|
54
|
+
fail(`Missing --output.\n\n${USAGE}`);
|
|
24
55
|
return;
|
|
25
56
|
}
|
|
26
57
|
const inputFile = path_1.default.resolve(args.input);
|
|
27
|
-
const outputFile = path_1.default.resolve(args.output);
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
58
|
+
const outputFile = typeof args.output === "string" ? path_1.default.resolve(args.output) : undefined;
|
|
59
|
+
let grammar;
|
|
60
|
+
try {
|
|
61
|
+
grammar = await promises_1.default.readFile(inputFile, "utf8");
|
|
62
|
+
}
|
|
63
|
+
catch (_a) {
|
|
64
|
+
fail(`Cannot read grammar file ${inputFile}: it does not exist.`);
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
const onWarning = (warning) => {
|
|
68
|
+
if (args.quiet === true)
|
|
69
|
+
return;
|
|
70
|
+
console.error(`Warning in ${inputFile} at ${warning.token.line}:${warning.token.column}: ${warning.reason}`);
|
|
71
|
+
};
|
|
72
|
+
const productionsResult = (0, index_1.tryBuildProductions)(grammar, { onWarning });
|
|
33
73
|
if (productionsResult.success === false) {
|
|
34
|
-
|
|
35
|
-
|
|
74
|
+
fail(`${productionsResult.reason}\n\n${(0, index_1.buildErrorWindow)(grammar, productionsResult.token)}`);
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
const productions = productionsResult.value;
|
|
78
|
+
if (check) {
|
|
79
|
+
if (outputFile == null) {
|
|
80
|
+
fail(`--check needs --output to know which table to check.\n\n${USAGE}`);
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
let existingTable;
|
|
84
|
+
try {
|
|
85
|
+
existingTable = await promises_1.default.readFile(outputFile, "utf8");
|
|
86
|
+
}
|
|
87
|
+
catch (_b) {
|
|
88
|
+
fail(`Cannot check ${outputFile}: it does not exist.`);
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
const statesResult = (0, index_1.tryBuildStates)(existingTable, { productions });
|
|
92
|
+
if (statesResult.success === false) {
|
|
93
|
+
fail(`The existing table is not a valid parsing table:\n${statesResult.reason}`);
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
const tableCheckResult = (0, index_1.validateTable)(productions, statesResult.value, { source: outputFile });
|
|
97
|
+
if (tableCheckResult.success === false)
|
|
98
|
+
fail(`The existing table does not match the grammar:\n${tableCheckResult.reason}`);
|
|
99
|
+
const expected = (0, index_1.generateStates)(productions, { mode: args.lalr === true ? "lalr1" : "lr1" });
|
|
100
|
+
if (expected.success === false) {
|
|
101
|
+
fail(`${expected.reason}\n\n${(0, index_1.buildErrorWindow)(grammar, expected.token)}`);
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
const expectedTable = toTableOrFail(expected.value);
|
|
105
|
+
if (expectedTable == null)
|
|
106
|
+
return;
|
|
107
|
+
const actualTable = existingTable.trim();
|
|
108
|
+
if (expectedTable !== actualTable) {
|
|
109
|
+
fail(`${outputFile} is out of date with respect to ${inputFile}.\n` +
|
|
110
|
+
`Re-run without --check to regenerate it${args.lalr === true ? " (with --lalr)" : ""}.`);
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
console.log(`${outputFile} is up to date with respect to ${inputFile} (${expectedTable.split("\n").length} states).`);
|
|
36
114
|
return;
|
|
37
115
|
}
|
|
38
|
-
const generatorResult = (0,
|
|
116
|
+
const generatorResult = (0, index_1.generateStates)(productions, { mode: args.lalr === true ? "lalr1" : "lr1" });
|
|
39
117
|
if (generatorResult.success === false) {
|
|
40
|
-
|
|
41
|
-
console.log((0, errorWindowBuilder_1.buildErrorWindow)(grammar, generatorResult.token));
|
|
118
|
+
fail(`${generatorResult.reason}\n\n${(0, index_1.buildErrorWindow)(grammar, generatorResult.token)}`);
|
|
42
119
|
return;
|
|
43
120
|
}
|
|
44
|
-
|
|
121
|
+
const table = toTableOrFail(generatorResult.value);
|
|
122
|
+
if (table == null)
|
|
123
|
+
return;
|
|
124
|
+
if (useStdout) {
|
|
125
|
+
console.log(table);
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
if (outputFile == null)
|
|
129
|
+
return;
|
|
130
|
+
await promises_1.default.mkdir(path_1.default.dirname(outputFile), { recursive: true });
|
|
131
|
+
await promises_1.default.writeFile(outputFile, table, { encoding: "utf-8" });
|
|
132
|
+
const stateCount = table === "" ? 0 : table.split("\n").length;
|
|
133
|
+
console.log(`Wrote ${stateCount} ${args.lalr === true ? "LALR(1)" : "LR(1)"} states from ${inputFile} to ${outputFile}.`);
|
|
45
134
|
}
|
|
46
135
|
main();
|
|
47
136
|
//# sourceMappingURL=cli.js.map
|
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":"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"}
|
package/dist/generator.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
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;
|
|
@@ -14,6 +14,8 @@ type State = {
|
|
|
14
14
|
};
|
|
15
15
|
export type GeneratorOptions = {
|
|
16
16
|
mode?: "lr1" | "lalr1";
|
|
17
|
+
onWarning?: (warning: ProductionWarning) => void;
|
|
18
|
+
onProgress?: (statesGenerated: number) => void;
|
|
17
19
|
};
|
|
18
20
|
export declare const generateStates: (productions: Production[], options?: GeneratorOptions) => Result<GeneratorResult>;
|
|
19
21
|
export declare class GeneratorResult {
|
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) {
|
|
@@ -97,6 +104,9 @@ function computeFollowSets(allProductions) {
|
|
|
97
104
|
const KEY_SEP = "\x00";
|
|
98
105
|
const FIELD_SEP = "\x01";
|
|
99
106
|
const generateStates = (productions, options = {}) => {
|
|
107
|
+
const validationResult = (0, common_1.validateProductions)(productions, { onWarning: options.onWarning });
|
|
108
|
+
if (validationResult.success === false)
|
|
109
|
+
return validationResult;
|
|
100
110
|
const followSetsResult = computeFollowSets(productions);
|
|
101
111
|
if (followSetsResult.success == false)
|
|
102
112
|
return followSetsResult;
|
|
@@ -207,6 +217,7 @@ const generateStates = (productions, options = {}) => {
|
|
|
207
217
|
return initialItemSetResult;
|
|
208
218
|
const initialItemSet = initialItemSetResult.value;
|
|
209
219
|
function generateStates(_initialState) {
|
|
220
|
+
var _a, _b;
|
|
210
221
|
const initialState = Object.assign(Object.assign({}, _initialState), { count: 0 });
|
|
211
222
|
const states = [initialState];
|
|
212
223
|
const unprocessedStates = [initialState];
|
|
@@ -263,6 +274,7 @@ const generateStates = (productions, options = {}) => {
|
|
|
263
274
|
stateIndexBySignature.set(signature, newState.count);
|
|
264
275
|
existingStateIndex = newState.count;
|
|
265
276
|
}
|
|
277
|
+
(_a = options.onProgress) === null || _a === void 0 ? void 0 : _a.call(options, states.length);
|
|
266
278
|
GotoTable[currentState.count].set(gotoTransition, existingStateIndex);
|
|
267
279
|
}
|
|
268
280
|
for (const [shiftTransition, shiftItems] of nextStates_Shift.entries()) {
|
|
@@ -285,6 +297,7 @@ const generateStates = (productions, options = {}) => {
|
|
|
285
297
|
stateIndexBySignature.set(signature, newState.count);
|
|
286
298
|
existingStateIndex = newState.count;
|
|
287
299
|
}
|
|
300
|
+
(_b = options.onProgress) === null || _b === void 0 ? void 0 : _b.call(options, states.length);
|
|
288
301
|
ActionTable[currentState.count].set(shiftTransition, { action: "shift", value: existingStateIndex });
|
|
289
302
|
}
|
|
290
303
|
}
|
|
@@ -307,6 +320,7 @@ const generateStates = (productions, options = {}) => {
|
|
|
307
320
|
};
|
|
308
321
|
exports.generateStates = generateStates;
|
|
309
322
|
function mergeStatesForLALR(states, ActionTable, GotoTable) {
|
|
323
|
+
var _a;
|
|
310
324
|
const itemSkeleton = (item) => `${item.prodIndex}${KEY_SEP}${item.dot}`;
|
|
311
325
|
const stateSkeleton = (state) => state.itemSet.map(itemSkeleton).sort().join(FIELD_SEP);
|
|
312
326
|
const groupIndices = [];
|
|
@@ -338,7 +352,7 @@ function mergeStatesForLALR(states, ActionTable, GotoTable) {
|
|
|
338
352
|
const actions = new Map();
|
|
339
353
|
const gotos = new Map();
|
|
340
354
|
for (const member of members) {
|
|
341
|
-
for (const [key, entry] of ActionTable[member].entries()) {
|
|
355
|
+
for (const [key, entry] of ((_a = ActionTable[member]) !== null && _a !== void 0 ? _a : new Map()).entries()) {
|
|
342
356
|
const value = {
|
|
343
357
|
action: entry.action,
|
|
344
358
|
value: entry.action === "shift" ? oldToNew[entry.value] : entry.value,
|
|
@@ -384,7 +398,11 @@ class GeneratorResult {
|
|
|
384
398
|
this.GotoTable = GotoTable;
|
|
385
399
|
}
|
|
386
400
|
toTable() {
|
|
387
|
-
|
|
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) => {
|
|
388
406
|
return [
|
|
389
407
|
...[...actions.entries()].map(([k, { action, value }]) => `${k}=${action === "reduce" ? "r" : "s"}${value}`),
|
|
390
408
|
...(this.GotoTable[idx] === undefined ? [] : [...this.GotoTable[idx].entries()].map(([k, v]) => `${k}=${v}`)),
|
|
@@ -392,13 +410,19 @@ class GeneratorResult {
|
|
|
392
410
|
}).join("\n");
|
|
393
411
|
}
|
|
394
412
|
toStates() {
|
|
395
|
-
return this.ActionTable
|
|
413
|
+
return Array.from(this.ActionTable, (actions, idx) => {
|
|
396
414
|
const tableState = new parser_1.TableState();
|
|
397
|
-
|
|
415
|
+
if (actions === undefined)
|
|
416
|
+
return tableState;
|
|
417
|
+
for (const [k, { action, value }] of actions.entries()) {
|
|
398
418
|
tableState.actions.set(k, { type: action === "reduce" ? "reduce" : "shift", value });
|
|
419
|
+
tableState.rawActions.set(k, `${action === "reduce" ? "r" : "s"}${value}`);
|
|
420
|
+
}
|
|
399
421
|
if (this.GotoTable[idx] !== undefined)
|
|
400
|
-
for (const [k, value] of this.GotoTable[idx].entries())
|
|
422
|
+
for (const [k, value] of this.GotoTable[idx].entries()) {
|
|
401
423
|
tableState.actions.set(k, { type: "goto", value });
|
|
424
|
+
tableState.rawActions.set(k, `${value}`);
|
|
425
|
+
}
|
|
402
426
|
return tableState;
|
|
403
427
|
});
|
|
404
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,7 +1,19 @@
|
|
|
1
1
|
export { GeneratorResult, generateStates } from "./generator";
|
|
2
2
|
export type { GeneratorOptions } from "./generator";
|
|
3
|
-
export { buildProductions, tryBuildProductions } from "./meta/selfhosted";
|
|
3
|
+
export { buildProductions, tryBuildProductions, grammarLexerGenerator, getSelfHostedParserGenerator, } from "./meta/selfhosted";
|
|
4
|
+
export type { LexerInterface } from "./meta/selfhosted";
|
|
4
5
|
export { Result } from "./utils/Result";
|
|
5
|
-
export { ParserRecoveryFunction, Sparse, LR1ParserGraveError, LR1StackSymbol, ParserResult, ParserError, } from "./parser";
|
|
6
|
-
export {
|
|
7
|
-
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,
|
package/dist/meta/common.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.GrammarTokenType = exports.hydrateProduction = exports.dehydateProduction = void 0;
|
|
3
|
+
exports.GrammarTokenType = exports.variableIdentifier = exports.terminalIdentifier = exports.isVariableIdentifier = exports.validateProductions = exports.syntheticGrammarToken = exports.describeThrowable = exports.hydrateProduction = exports.dehydateProduction = void 0;
|
|
4
4
|
const slex_1 = require("@scinorandex/slex");
|
|
5
5
|
const dehydateGrammarToken = ({ column, lexeme, line, type }) => {
|
|
6
6
|
return { column, lexeme, line, type };
|
|
@@ -39,6 +39,71 @@ const hydrateProduction = (production) => {
|
|
|
39
39
|
};
|
|
40
40
|
};
|
|
41
41
|
exports.hydrateProduction = hydrateProduction;
|
|
42
|
+
const describeThrowable = (err) => err instanceof Error ? err.message : `Unexpected error: ${String(err)}`;
|
|
43
|
+
exports.describeThrowable = describeThrowable;
|
|
44
|
+
const syntheticGrammarToken = () => new slex_1.Token(GrammarTokenType.EOF, "", new slex_1.ColumnAndRow(0, 0), {});
|
|
45
|
+
exports.syntheticGrammarToken = syntheticGrammarToken;
|
|
46
|
+
const at = (token) => `${token.line}:${token.column}`;
|
|
47
|
+
const validateProductions = (productions, options = {}) => {
|
|
48
|
+
const warn = (kind, reason, token) => {
|
|
49
|
+
var _a;
|
|
50
|
+
(_a = options.onWarning) === null || _a === void 0 ? void 0 : _a.call(options, { kind, reason, token });
|
|
51
|
+
};
|
|
52
|
+
if (productions.length === 0)
|
|
53
|
+
return {
|
|
54
|
+
success: false,
|
|
55
|
+
reason: "The grammar does not contain any productions. Is the grammar file empty?",
|
|
56
|
+
token: (0, exports.syntheticGrammarToken)(),
|
|
57
|
+
};
|
|
58
|
+
const lhsIdentifiers = new Set(productions.map((production) => production.identifier));
|
|
59
|
+
const referencedIdentifiers = new Set();
|
|
60
|
+
for (const production of productions) {
|
|
61
|
+
if (production.rhs.length === 0)
|
|
62
|
+
return {
|
|
63
|
+
success: false,
|
|
64
|
+
reason: `Production "${production.identifier}" (line ${at(production.lhs)}) has an empty right hand side. Sparse does not support empty productions, so a lone "(...)? " group such as "<X: x>: ([A])?;" is not a valid production.`,
|
|
65
|
+
token: production.lhs,
|
|
66
|
+
};
|
|
67
|
+
const seenNames = new Set();
|
|
68
|
+
for (const rhsItem of production.rhs) {
|
|
69
|
+
if (rhsItem.type === "variable") {
|
|
70
|
+
referencedIdentifiers.add(rhsItem.identifier);
|
|
71
|
+
if (lhsIdentifiers.has(rhsItem.identifier) === false)
|
|
72
|
+
return {
|
|
73
|
+
success: false,
|
|
74
|
+
reason: `Variable "${rhsItem.identifier}" is used on the right hand side of production "${production.identifier}" (line ${at(production.lhs)}) but no production defines it as its left hand side.`,
|
|
75
|
+
token: rhsItem.token,
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
if (rhsItem.name != null) {
|
|
79
|
+
if (seenNames.has(rhsItem.name))
|
|
80
|
+
warn("duplicate-rhs-name", `Production "${production.identifier}" (line ${at(production.lhs)}) names more than one symbol "${rhsItem.name}". Only the last one ends up on the reducer's "bag", use the positional input to reach the others.`, rhsItem.token);
|
|
81
|
+
seenNames.add(rhsItem.name);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
const startProduction = productions[0];
|
|
86
|
+
if (referencedIdentifiers.has(startProduction.identifier))
|
|
87
|
+
return {
|
|
88
|
+
success: false,
|
|
89
|
+
reason: `"${startProduction.identifier}" is the start symbol of the grammar, so it cannot be used on the right hand side of a production. It is used at line ${at(startProduction.lhs)}.`,
|
|
90
|
+
token: startProduction.lhs,
|
|
91
|
+
};
|
|
92
|
+
for (let i = 1; i < productions.length; i++) {
|
|
93
|
+
const production = productions[i];
|
|
94
|
+
if (referencedIdentifiers.has(production.identifier))
|
|
95
|
+
continue;
|
|
96
|
+
warn("unreachable-production", `Production "${production.identifier}" (line ${at(production.lhs)}) is never used on the right hand side of another production, so the parser can never reach it.`, production.lhs);
|
|
97
|
+
}
|
|
98
|
+
return { success: true, value: productions };
|
|
99
|
+
};
|
|
100
|
+
exports.validateProductions = validateProductions;
|
|
101
|
+
const isVariableIdentifier = (identifier) => identifier.startsWith("<") && identifier.endsWith(">");
|
|
102
|
+
exports.isVariableIdentifier = isVariableIdentifier;
|
|
103
|
+
const terminalIdentifier = (name) => `[${name}]`;
|
|
104
|
+
exports.terminalIdentifier = terminalIdentifier;
|
|
105
|
+
const variableIdentifier = (name) => `<${name}>`;
|
|
106
|
+
exports.variableIdentifier = variableIdentifier;
|
|
42
107
|
var GrammarTokenType;
|
|
43
108
|
(function (GrammarTokenType) {
|
|
44
109
|
GrammarTokenType[GrammarTokenType["IDENTIFIER"] = 0] = "IDENTIFIER";
|
package/dist/meta/common.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/meta/common.ts"],"names":[],"mappings":";;;AAAA,4CAAwD;
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/meta/common.ts"],"names":[],"mappings":"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"}
|