@scinorandex/sparse 0.0.8 → 0.1.1

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/AGENTS.md ADDED
@@ -0,0 +1,40 @@
1
+ # AGENTS.md
2
+
3
+ `@scinorandex/sparse` — LR(1) parser generator library (TypeScript, CJS via tsc, yarn 1).
4
+ Single package: `src/` = library + CLI, `example/` = runnable demos. README.md is the user-facing doc.
5
+
6
+ ## Commands
7
+ - Typecheck: `yarn tc` (covers src/ and example/)
8
+ - Build: `yarn build` → `dist/` (CLI is `dist/cli.js`)
9
+ - Run examples: `tsx example/<name>/example.ts` — tsx is global, not a repo dep; `node file.ts` fails (enums)
10
+ - Table CLI: `node dist/cli.js --input=<grammar> --output=<table>` (build first); output matches committed tables exactly
11
+ - `yarn test` / `yarn bench` (vitest) exist but there are no test/bench files — `yarn test` fails with "No test files found". Verify via examples + `yarn tc` instead.
12
+ - `dist/` and `yarn.lock` are gitignored.
13
+
14
+ ## Self-hosting / codegen (critical, easy to break)
15
+ - The lib parses its own grammar-file and table-file formats using **pre-generated** LR(1) states:
16
+ `src/meta/states.ts` (grammar format) and `src/table/states.ts` (table format) are generated files —
17
+ byte-identical copies of `example/selfhosted/codegen-meta.ts` and `codegen-table.ts`.
18
+ - To change the grammar/table file syntax: edit `example/selfhosted/01-meta-grammar.txt` and/or
19
+ `02-table-grammar.txt`, run `tsx example/selfhosted/example.ts`, then copy the regenerated
20
+ `codegen-*.ts` over the two `src/.../states.ts` files. The old (checked-in) parser must still
21
+ parse the modified grammar (bootstrap constraint).
22
+
23
+ ## Non-obvious behavior
24
+ - `?`, `*`, `+` groups and multi-token alternatives are unrolled into extra productions; `*`/`+`
25
+ create `autogen-N` productions whose reducer is named `autogenerated-kleene` — user reducers must
26
+ handle it (see `example/kleene-test/`).
27
+ - Two construction paths: `Sparse.fromProductions(...)` builds states at runtime (slow, ~30s for
28
+ 150 productions) vs `new Sparse({ productions, states: buildStates(table.txt) })` (fast).
29
+ - Reducers are keyed by production name (`<LHS: name>` in the grammar file); nameless productions
30
+ have `name: null` (use `reducers[name ?? ""]`). Production index 0 is the accept production —
31
+ the parse loop breaks on it without calling the reducer.
32
+ - Table file format: one line per state, comma-separated `[TERMINAL]=sN|rN` and `<VARIABLE>=M`.
33
+ - Errors flow as `Result<T>` (`{ success: false, reason, token }`); `buildProductions` /
34
+ `Sparse.fromProductions` are the throwing wrappers.
35
+
36
+ ## Key files
37
+ - `src/generator.ts` — LR(1) state construction (first/follow sets, item-set expansion), `toTable()` serialization
38
+ - `src/parser.ts` — runtime parser loop + `recover` error-recovery callback API
39
+ - `src/meta/selfhosted.ts` — grammar-file parser + production unrolling
40
+ - `example/` — `math` (prebuilt table), `kleene-test` (`*`/`+`), `LoLang` (large grammar + recovery), `complicated` (grammar only), `selfhosted` (codegen)
package/README.md CHANGED
@@ -107,10 +107,12 @@ console.log(parser.parse().result!.toObject());
107
107
 
108
108
  ## Exporting and Loading the Parsing Table
109
109
 
110
- It takes a while for Sparse to build states (around 30 seconds for a file containing 150 productions). This can be alleviated by generating the parsing table and loading the states directly instead. This method also allows you to edit the parsing table to resolve parsing conflicts.
110
+ It takes a while for Sparse to build states (around 0.5 seconds seconds for a file containing 150 productions). This can be alleviated by generating the parsing table and loading the states directly instead. This method also allows you to edit the parsing table to resolve parsing conflicts.
111
111
 
112
112
  To create the the states, you can run `npx @scinorandex/sparse --input=<input> --output=<output>`.
113
113
 
114
+ By default, LR(1) states are generated. You can generate LALR(1) states instead by passing the `--lalr` flag (or setting `mode: "lalr1"` in `Sparse.fromProductions`): the resulting table is never larger than the LR(1) one, but generation fails if the grammar is not LALR(1). Using LALR(1) yields a ~35% performance boost over LR(1) for the same grammar (tested on the LoLang example).
115
+
114
116
  Afterwards, you can create a parser with pre-built states like the following:
115
117
 
116
118
  ```ts
@@ -124,8 +126,8 @@ async function main() {
124
126
  }
125
127
  ```
126
128
 
127
- ---
129
+ ## AI Disclaimer
128
130
 
129
- ## Roadmap
131
+ This project was originally written without the use of AI tools, the core LR(1) table generator was written by hand as per the algorithms described in the Dragon Book. Every release prior to v0.1 contained no AI generated code.
130
132
 
131
- 1. Potentially add LALR(1) support. Currently, the parser only supports outputting LR(1) tables. Tables can be significantly smaller if it made LALR(1) tables instead.
133
+ OpenCode and Qwen 3.8 27B were to implement performance improvements on the original LR(1) table generator and to implement LALR(1) support.
package/dist/cli.js CHANGED
@@ -20,7 +20,7 @@ function checkFileExists(filepath) {
20
20
  }
21
21
  async function main() {
22
22
  if (typeof args.input !== "string" || typeof args.output !== "string") {
23
- console.log("Usage: npx @scinorandex/sparse --input=<input> --output=<output>");
23
+ console.log("Usage: npx @scinorandex/sparse --input=<input> --output=<output> [--lalr]");
24
24
  return;
25
25
  }
26
26
  const inputFile = path_1.default.resolve(args.input);
@@ -35,7 +35,7 @@ async function main() {
35
35
  console.log((0, errorWindowBuilder_1.buildErrorWindow)(grammar, productionsResult.token));
36
36
  return;
37
37
  }
38
- const generatorResult = (0, generator_1.generateStates)(productionsResult.value);
38
+ const generatorResult = (0, generator_1.generateStates)(productionsResult.value, { mode: args.lalr === true ? "lalr1" : "lr1" });
39
39
  if (generatorResult.success === false) {
40
40
  console.log(generatorResult.reason);
41
41
  console.log((0, errorWindowBuilder_1.buildErrorWindow)(grammar, generatorResult.token));
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;;AACA,2DAA6B;AAC7B,mCAA8C;AAC9C,2CAA6C;AAC7C,wDAAgC;AAChC,gDAAwB;AACxB,mEAA8D;AAE9D,MAAM,IAAI,GAAG,IAAA,kBAAQ,EAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAE7C,SAAS,eAAe,CAAC,QAAgB;IACvC,OAAO,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC9C,kBAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,kBAAE,CAAC,SAAS,CAAC,IAAI,CAAC;aACnC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;aACzB,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACtE,OAAO,CAAC,GAAG,CAAC,kEAAkE,CAAC,CAAC;QAChF,OAAO;IACT,CAAC;IAED,MAAM,SAAS,GAAG,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,UAAU,GAAG,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,CAAC,wBAAwB,SAAS,4BAA4B,UAAU,IAAI,CAAC,CAAC;IAEzF,IAAI,CAAC,CAAC,MAAM,eAAe,CAAC,SAAS,CAAC,CAAC;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,SAAS,iBAAiB,CAAC,CAAC;IAEhG,MAAM,OAAO,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACtD,MAAM,iBAAiB,GAAG,IAAA,2BAAmB,EAAC,OAAO,CAAC,CAAC;IACvD,IAAI,iBAAiB,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,IAAA,qCAAgB,EAAC,OAAO,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;QAChE,OAAO;IACT,CAAC;IAED,MAAM,eAAe,GAAG,IAAA,0BAAc,EAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAChE,IAAI,eAAe,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,IAAA,qCAAgB,EAAC,OAAO,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9D,OAAO;IACT,CAAC;IAED,MAAM,kBAAE,CAAC,SAAS,CAAC,UAAU,EAAE,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;AACzF,CAAC;AAED,IAAI,EAAE,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;;AACA,2DAA6B;AAC7B,mCAA8C;AAC9C,2CAA6C;AAC7C,wDAAgC;AAChC,gDAAwB;AACxB,mEAA8D;AAE9D,MAAM,IAAI,GAAG,IAAA,kBAAQ,EAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAE7C,SAAS,eAAe,CAAC,QAAgB;IACvC,OAAO,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC9C,kBAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,kBAAE,CAAC,SAAS,CAAC,IAAI,CAAC;aACnC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;aACzB,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACtE,OAAO,CAAC,GAAG,CAAC,2EAA2E,CAAC,CAAC;QACzF,OAAO;IACT,CAAC;IAED,MAAM,SAAS,GAAG,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,UAAU,GAAG,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,CAAC,wBAAwB,SAAS,4BAA4B,UAAU,IAAI,CAAC,CAAC;IAEzF,IAAI,CAAC,CAAC,MAAM,eAAe,CAAC,SAAS,CAAC,CAAC;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,SAAS,iBAAiB,CAAC,CAAC;IAEhG,MAAM,OAAO,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACtD,MAAM,iBAAiB,GAAG,IAAA,2BAAmB,EAAC,OAAO,CAAC,CAAC;IACvD,IAAI,iBAAiB,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,IAAA,qCAAgB,EAAC,OAAO,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;QAChE,OAAO;IACT,CAAC;IAED,MAAM,eAAe,GAAG,IAAA,0BAAc,EAAC,iBAAiB,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IAChH,IAAI,eAAe,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,IAAA,qCAAgB,EAAC,OAAO,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9D,OAAO;IACT,CAAC;IAED,MAAM,kBAAE,CAAC,SAAS,CAAC,UAAU,EAAE,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;AACzF,CAAC;AAED,IAAI,EAAE,CAAC"}
@@ -4,13 +4,18 @@ 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 declare const generateStates: (productions: Production[]) => Result<GeneratorResult>;
15
+ export type GeneratorOptions = {
16
+ mode?: "lr1" | "lalr1";
17
+ };
18
+ export declare const generateStates: (productions: Production[], options?: GeneratorOptions) => Result<GeneratorResult>;
14
19
  export declare class GeneratorResult {
15
20
  readonly states: State[];
16
21
  readonly ActionTable: Map<string, {
package/dist/generator.js CHANGED
@@ -94,7 +94,9 @@ function computeFollowSets(allProductions) {
94
94
  }
95
95
  return { success: true, value: { firstSets, followSets: ret } };
96
96
  }
97
- const generateStates = (productions) => {
97
+ const KEY_SEP = "\x00";
98
+ const FIELD_SEP = "\x01";
99
+ const generateStates = (productions, options = {}) => {
98
100
  const followSetsResult = computeFollowSets(productions);
99
101
  if (followSetsResult.success == false)
100
102
  return followSetsResult;
@@ -124,41 +126,74 @@ const generateStates = (productions) => {
124
126
  };
125
127
  }
126
128
  };
127
- function generateInitialItemSet(production) {
129
+ const productionIndicesByLhs = new Map();
130
+ for (let i = 0; i < productions.length; i++) {
131
+ const indexList = productionIndicesByLhs.get(productions[i].identifier);
132
+ if (indexList == undefined)
133
+ productionIndicesByLhs.set(productions[i].identifier, [i]);
134
+ else
135
+ indexList.push(i);
136
+ }
137
+ 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}`; };
138
+ const reduceValue = [];
139
+ {
140
+ const lowestIndexBySignature = new Map();
141
+ for (let i = 0; i < productions.length; i++) {
142
+ const production = productions[i];
143
+ const signature = `${production.identifier}${FIELD_SEP}${production.rhs.map(rhsEntrySignature).join(FIELD_SEP)}`;
144
+ const lowest = lowestIndexBySignature.get(signature);
145
+ if (lowest == undefined)
146
+ lowestIndexBySignature.set(signature, i);
147
+ reduceValue[i] = lowestIndexBySignature.get(signature);
148
+ }
149
+ }
150
+ const itemKey = (prodIndex, dot, lookahead) => `${prodIndex}${KEY_SEP}${dot}${KEY_SEP}${lookahead.join(FIELD_SEP)}`;
151
+ const itemSetSignature = (itemSet) => itemSet.map((item) => item.key).join(FIELD_SEP);
152
+ function generateInitialItemSet(production, prodIndex) {
153
+ const lookahead = [EOF_STRING];
128
154
  const initialItem = {
129
155
  lhs: production.lhs,
130
156
  identifier: production.identifier,
131
157
  rhs: production.rhs,
132
158
  dot: 0,
133
- lookahead: [EOF_STRING],
159
+ lookahead,
160
+ prodIndex,
161
+ key: itemKey(prodIndex, 0, lookahead),
134
162
  };
135
163
  return expandItemSet([initialItem]);
136
164
  }
137
165
  function expandItemSet(items) {
166
+ var _a;
138
167
  const itemSet = [...items];
168
+ const knownItems = new Set(items.map((item) => item.key));
139
169
  const unprocesssedItems = [...items];
140
- while (unprocesssedItems.length > 0) {
141
- const currentItem = unprocesssedItems.shift();
170
+ let queuePosition = 0;
171
+ while (queuePosition < unprocesssedItems.length) {
172
+ const currentItem = unprocesssedItems[queuePosition++];
142
173
  const after = currentItem.rhs[currentItem.dot];
143
174
  if (after == null)
144
175
  continue;
145
176
  if (after.type === "variable") {
146
- const newProductions = productions.filter((p) => p.identifier === after.identifier);
147
177
  const rest = currentItem.rhs.slice(currentItem.dot + 1);
148
178
  const lookaheadResult = determineNextLookAhead(currentItem.lhs, currentItem.identifier, rest);
149
179
  if (lookaheadResult.success === false)
150
180
  return lookaheadResult;
151
181
  const lookahead = lookaheadResult.value;
152
- for (const newProduction of newProductions) {
153
- const newItem = {
154
- lhs: newProduction.lhs,
155
- identifier: newProduction.identifier,
156
- rhs: newProduction.rhs,
157
- dot: 0,
158
- lookahead,
159
- };
160
- const encoding = JSON.stringify(newItem);
161
- if (itemSet.some((i) => JSON.stringify(i) === encoding) == false) {
182
+ const productionIndices = (_a = productionIndicesByLhs.get(after.identifier)) !== null && _a !== void 0 ? _a : [];
183
+ for (const prodIndex of productionIndices) {
184
+ const newProduction = productions[prodIndex];
185
+ const key = itemKey(prodIndex, 0, lookahead);
186
+ if (knownItems.has(key) == false) {
187
+ knownItems.add(key);
188
+ const newItem = {
189
+ lhs: newProduction.lhs,
190
+ identifier: newProduction.identifier,
191
+ rhs: newProduction.rhs,
192
+ dot: 0,
193
+ lookahead,
194
+ prodIndex,
195
+ key,
196
+ };
162
197
  unprocesssedItems.push(newItem);
163
198
  itemSet.push(newItem);
164
199
  }
@@ -167,7 +202,7 @@ const generateStates = (productions) => {
167
202
  }
168
203
  return { success: true, value: { itemSet, kernel: items[0] } };
169
204
  }
170
- const initialItemSetResult = generateInitialItemSet(productions[0]);
205
+ const initialItemSetResult = generateInitialItemSet(productions[0], 0);
171
206
  if (initialItemSetResult.success === false)
172
207
  return initialItemSetResult;
173
208
  const initialItemSet = initialItemSetResult.value;
@@ -177,24 +212,24 @@ const generateStates = (productions) => {
177
212
  const unprocessedStates = [initialState];
178
213
  const GotoTable = [];
179
214
  const ActionTable = [];
180
- while (unprocessedStates.length > 0) {
181
- const currentState = unprocessedStates.shift();
215
+ const stateIndexBySignature = new Map();
216
+ stateIndexBySignature.set(itemSetSignature(initialState.itemSet), 0);
217
+ let statePosition = 0;
218
+ while (statePosition < unprocessedStates.length) {
219
+ const currentState = unprocessedStates[statePosition++];
182
220
  const nextStates_Goto = new Map();
183
221
  const nextStates_Shift = new Map();
184
222
  calculateNextItem: for (const item of currentState.itemSet) {
185
223
  const nextSymbol = item.rhs[item.dot];
186
224
  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
225
  for (const lookahead of item.lookahead) {
191
226
  if (ActionTable[currentState.count] === undefined)
192
227
  ActionTable[currentState.count] = new Map();
193
- ActionTable[currentState.count].set(lookahead, { action: "reduce", value: productionToReduceTo });
228
+ ActionTable[currentState.count].set(lookahead, { action: "reduce", value: reduceValue[item.prodIndex] });
194
229
  }
195
230
  continue calculateNextItem;
196
231
  }
197
- const newItem = Object.assign(Object.assign({}, item), { dot: item.dot + 1 });
232
+ const newItem = Object.assign(Object.assign({}, item), { dot: item.dot + 1, key: itemKey(item.prodIndex, item.dot + 1, item.lookahead) });
198
233
  if (nextSymbol.type === "variable") {
199
234
  if (nextStates_Goto.has(nextSymbol.identifier))
200
235
  nextStates_Goto.get(nextSymbol.identifier).push(newItem);
@@ -213,17 +248,11 @@ const generateStates = (productions) => {
213
248
  if (expandedItemsResult.success === false)
214
249
  return expandedItemsResult;
215
250
  const expandedItems = expandedItemsResult.value;
216
- let existingState = states.find((s) => {
217
- return (s.kernel.lhs === expandedItems.kernel.lhs &&
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
- });
251
+ const signature = itemSetSignature(expandedItems.itemSet);
252
+ let existingStateIndex = stateIndexBySignature.get(signature);
224
253
  if (GotoTable[currentState.count] === undefined)
225
254
  GotoTable[currentState.count] = new Map();
226
- if (existingState == undefined) {
255
+ if (existingStateIndex == undefined) {
227
256
  const newState = {
228
257
  itemSet: expandedItems.itemSet,
229
258
  kernel: expandedItems.kernel,
@@ -231,26 +260,21 @@ const generateStates = (productions) => {
231
260
  };
232
261
  states.push(newState);
233
262
  unprocessedStates.push(newState);
234
- existingState = newState;
263
+ stateIndexBySignature.set(signature, newState.count);
264
+ existingStateIndex = newState.count;
235
265
  }
236
- GotoTable[currentState.count].set(gotoTransition, existingState.count);
266
+ GotoTable[currentState.count].set(gotoTransition, existingStateIndex);
237
267
  }
238
268
  for (const [shiftTransition, shiftItems] of nextStates_Shift.entries()) {
239
269
  const expandedItemsResult = expandItemSet(shiftItems);
240
270
  if (expandedItemsResult.success === false)
241
271
  return expandedItemsResult;
242
272
  const expandedItems = expandedItemsResult.value;
243
- let existingState = states.find((s) => {
244
- return (s.kernel.lhs === expandedItems.kernel.lhs &&
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
- });
273
+ const signature = itemSetSignature(expandedItems.itemSet);
274
+ let existingStateIndex = stateIndexBySignature.get(signature);
251
275
  if (ActionTable[currentState.count] === undefined)
252
276
  ActionTable[currentState.count] = new Map();
253
- if (existingState == undefined) {
277
+ if (existingStateIndex == undefined) {
254
278
  const newState = {
255
279
  itemSet: expandedItems.itemSet,
256
280
  kernel: expandedItems.kernel,
@@ -258,9 +282,10 @@ const generateStates = (productions) => {
258
282
  };
259
283
  states.push(newState);
260
284
  unprocessedStates.push(newState);
261
- existingState = newState;
285
+ stateIndexBySignature.set(signature, newState.count);
286
+ existingStateIndex = newState.count;
262
287
  }
263
- ActionTable[currentState.count].set(shiftTransition, { action: "shift", value: existingState.count });
288
+ ActionTable[currentState.count].set(shiftTransition, { action: "shift", value: existingStateIndex });
264
289
  }
265
290
  }
266
291
  return { success: true, value: { states, GotoTable, ActionTable } };
@@ -269,9 +294,89 @@ const generateStates = (productions) => {
269
294
  if (StatesResult.success === false)
270
295
  return StatesResult;
271
296
  const { states, ActionTable, GotoTable } = StatesResult.value;
297
+ if (options.mode === "lalr1") {
298
+ const merged = mergeStatesForLALR(states, ActionTable, GotoTable);
299
+ if (merged.success === false)
300
+ return merged;
301
+ return {
302
+ success: true,
303
+ value: new GeneratorResult(merged.value.states, merged.value.ActionTable, merged.value.GotoTable),
304
+ };
305
+ }
272
306
  return { success: true, value: new GeneratorResult(states, ActionTable, GotoTable) };
273
307
  };
274
308
  exports.generateStates = generateStates;
309
+ function mergeStatesForLALR(states, ActionTable, GotoTable) {
310
+ const itemSkeleton = (item) => `${item.prodIndex}${KEY_SEP}${item.dot}`;
311
+ const stateSkeleton = (state) => state.itemSet.map(itemSkeleton).sort().join(FIELD_SEP);
312
+ const groupIndices = [];
313
+ const groupBySkeleton = new Map();
314
+ const oldToNew = new Array(states.length);
315
+ for (let i = 0; i < states.length; i++) {
316
+ const skeleton = stateSkeleton(states[i]);
317
+ let group = groupBySkeleton.get(skeleton);
318
+ if (group == undefined) {
319
+ group = groupIndices.length;
320
+ groupBySkeleton.set(skeleton, group);
321
+ groupIndices.push([]);
322
+ }
323
+ groupIndices[group].push(i);
324
+ oldToNew[i] = group;
325
+ }
326
+ const describeAction = (a) => a.action === "reduce" ? `reduce by production ${a.value}` : `shift to state ${a.value}`;
327
+ const conflictToken = (members) => states[members[0]].kernel.lhs;
328
+ const conflict = (g, members, reason) => ({
329
+ success: false,
330
+ reason: `LALR(1) conflict in state ${g} on ${reason} between LR(1) states ${members.join(", ")}: the grammar is not LALR(1)`,
331
+ token: conflictToken(members),
332
+ });
333
+ const newStates = [];
334
+ const newActionTable = [];
335
+ const newGotoTable = [];
336
+ for (let g = 0; g < groupIndices.length; g++) {
337
+ const members = groupIndices[g];
338
+ const actions = new Map();
339
+ const gotos = new Map();
340
+ for (const member of members) {
341
+ for (const [key, entry] of ActionTable[member].entries()) {
342
+ const value = {
343
+ action: entry.action,
344
+ value: entry.action === "shift" ? oldToNew[entry.value] : entry.value,
345
+ };
346
+ const existing = actions.get(key);
347
+ if (existing == undefined)
348
+ actions.set(key, value);
349
+ else if (existing.action !== value.action || existing.value !== value.value)
350
+ return conflict(g, members, `"${key}": ${describeAction(existing)} conflicts with ${describeAction(value)}`);
351
+ }
352
+ if (GotoTable[member] !== undefined)
353
+ for (const [key, target] of GotoTable[member].entries()) {
354
+ const value = oldToNew[target];
355
+ const existing = gotos.get(key);
356
+ if (existing == undefined)
357
+ gotos.set(key, value);
358
+ else if (existing !== value)
359
+ return conflict(g, members, `"${key}": goto to state ${existing} conflicts with goto to state ${value}`);
360
+ }
361
+ }
362
+ const itemsBySkeleton = new Map();
363
+ for (const member of members)
364
+ for (const item of states[member].itemSet) {
365
+ const skeleton = itemSkeleton(item);
366
+ const existing = itemsBySkeleton.get(skeleton);
367
+ if (existing == undefined)
368
+ itemsBySkeleton.set(skeleton, Object.assign(Object.assign({}, item), { lookahead: [...item.lookahead] }));
369
+ else
370
+ for (const lookahead of item.lookahead)
371
+ if (!existing.lookahead.includes(lookahead))
372
+ existing.lookahead.push(lookahead);
373
+ }
374
+ newStates.push({ itemSet: [...itemsBySkeleton.values()], kernel: states[members[0]].kernel, count: g });
375
+ newActionTable.push(actions);
376
+ newGotoTable.push(gotos);
377
+ }
378
+ return { success: true, value: { states: newStates, ActionTable: newActionTable, GotoTable: newGotoTable } };
379
+ }
275
380
  class GeneratorResult {
276
381
  constructor(states, ActionTable, GotoTable) {
277
382
  this.states = states;
@@ -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,4 +1,5 @@
1
1
  export { GeneratorResult, generateStates } from "./generator";
2
+ export type { GeneratorOptions } from "./generator";
2
3
  export { buildProductions, tryBuildProductions } from "./meta/selfhosted";
3
4
  export { Result } from "./utils/Result";
4
5
  export { ParserRecoveryFunction, Sparse, LR1ParserGraveError, LR1StackSymbol, ParserResult, ParserError, } from "./parser";
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;AACxC,gDAA0E;AAAjE,8GAAA,gBAAgB,OAAA;AAAE,iHAAA,mBAAmB,OAAA;AAE9C,mCAOkB;AALhB,gGAAA,MAAM,OAAA;AACN,6GAAA,mBAAmB,OAAA;AAKrB,iDAAiD;AAAxC,yGAAA,WAAW,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,yCAA8D;AAArD,4GAAA,eAAe,OAAA;AAAE,2GAAA,cAAc,OAAA;AAExC,gDAA0E;AAAjE,8GAAA,gBAAgB,OAAA;AAAE,iHAAA,mBAAmB,OAAA;AAE9C,mCAOkB;AALhB,gGAAA,MAAM,OAAA;AACN,6GAAA,mBAAmB,OAAA;AAKrB,iDAAiD;AAAxC,yGAAA,WAAW,OAAA"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.buildProductions = exports.tryBuildProductions = exports.getSelfHostedParserGenerator = exports.ListNode = exports.BaseNode = exports.grammarLexerGenerator = void 0;
3
+ exports.buildProductions = exports.tryBuildProductions = exports.ListNode = exports.BaseNode = exports.grammarLexerGenerator = void 0;
4
+ exports.getSelfHostedParserGenerator = getSelfHostedParserGenerator;
4
5
  const slex_1 = require("@scinorandex/slex");
5
6
  const index_1 = require("../index");
6
7
  const states_1 = require("./states");
@@ -210,7 +211,6 @@ function getSelfHostedParserGenerator(e = states_1.selfhosted) {
210
211
  toStringifiedTokenType: (type) => common_1.GrammarTokenType[type],
211
212
  });
212
213
  }
213
- exports.getSelfHostedParserGenerator = getSelfHostedParserGenerator;
214
214
  const reducers = {
215
215
  program: (bag) => { var _a; return new ProgramNode((_a = bag.productions) !== null && _a !== void 0 ? _a : new ListNode([])); },
216
216
  productions: (bag) => {
@@ -1 +1 @@
1
- {"version":3,"file":"selfhosted.js","sourceRoot":"","sources":["../../src/meta/selfhosted.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"selfhosted.js","sourceRoot":"","sources":["../../src/meta/selfhosted.ts"],"names":[],"mappings":"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"}
package/dist/parser.d.ts CHANGED
@@ -44,10 +44,12 @@ export declare class Sparse<TokenType, Metadata, Node> {
44
44
  static tryFromProductions<TokenType, Metadata, Node>(options: {
45
45
  productions: Production[];
46
46
  toStringifiedTokenType: (tokenType: TokenType) => string;
47
+ mode?: "lr1" | "lalr1";
47
48
  }): Result<Sparse<TokenType, Metadata, Node>>;
48
49
  static fromProductions<TokenType, Metadata, Node>(options: {
49
50
  productions: Production[];
50
51
  toStringifiedTokenType: (tokenType: TokenType) => string;
52
+ mode?: "lr1" | "lalr1";
51
53
  }): Sparse<TokenType, Metadata, Node>;
52
54
  generate(lexer: ReturnType<Slex<TokenType, Metadata>["generate"]>, options: {
53
55
  reducer: ReducerType<TokenType, Metadata, Node>;
package/dist/parser.js CHANGED
@@ -26,7 +26,7 @@ class Sparse {
26
26
  this.options = options;
27
27
  }
28
28
  static tryFromProductions(options) {
29
- const statesResult = (0, generator_1.generateStates)(options.productions);
29
+ const statesResult = (0, generator_1.generateStates)(options.productions, { mode: options.mode });
30
30
  if (statesResult.success === false)
31
31
  return statesResult;
32
32
  const states = statesResult.value;