@scinorandex/sparse 0.0.1 → 0.0.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/README.md +2 -2
- package/dist/cli.js +2 -2
- package/dist/cli.js.map +1 -1
- package/dist/generator.d.ts +4 -1
- package/dist/generator.js +47 -32
- package/dist/generator.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.js +5 -5
- package/dist/index.js.map +1 -1
- package/dist/meta/common.d.ts +57 -0
- package/dist/meta/common.js +62 -0
- package/dist/meta/common.js.map +1 -0
- package/dist/meta/handwritten.d.ts +12 -0
- package/dist/{grammarParser.js → meta/handwritten.js} +24 -24
- package/dist/meta/handwritten.js.map +1 -0
- package/dist/meta/selfhosted.d.ts +23 -0
- package/dist/meta/selfhosted.js +206 -0
- package/dist/meta/selfhosted.js.map +1 -0
- package/dist/meta/states.d.ts +1580 -0
- package/dist/meta/states.js +1493 -0
- package/dist/meta/states.js.map +1 -0
- package/dist/parser.d.ts +16 -5
- package/dist/parser.js +25 -7
- package/dist/parser.js.map +1 -1
- package/dist/{tableParser.d.ts → table/handwritten.d.ts} +1 -1
- package/dist/{tableParser.js → table/handwritten.js} +2 -2
- package/dist/table/handwritten.js.map +1 -0
- package/dist/table/selfhosted.d.ts +2 -0
- package/dist/table/selfhosted.js +65 -0
- package/dist/table/selfhosted.js.map +1 -0
- package/dist/table/states.d.ts +592 -0
- package/dist/table/states.js +593 -0
- package/dist/table/states.js.map +1 -0
- package/dist/utils/Result.d.ts +1 -1
- package/dist/utils/errorWindowBuilder.d.ts +1 -1
- package/example/LoLang/example.ts +14 -7
- package/example/complicated/grammar.txt +37 -0
- package/example/math/example.ts +1 -4
- package/example/selfhosted/01-meta-grammar.txt +10 -0
- package/example/selfhosted/02-table-grammar.txt +6 -0
- package/example/selfhosted/codegen-meta.ts +1489 -0
- package/example/selfhosted/codegen-table.ts +589 -0
- package/example/selfhosted/example.ts +39 -0
- package/package.json +4 -4
- package/src/cli.ts +1 -1
- package/src/generator.ts +52 -34
- package/src/index.ts +3 -2
- package/src/meta/common.ts +74 -0
- package/src/{grammarParser.ts → meta/handwritten.ts} +17 -21
- package/src/meta/selfhosted.ts +272 -0
- package/src/meta/states.ts +1489 -0
- package/src/parser.ts +53 -19
- package/src/{tableParser.ts → table/handwritten.ts} +5 -5
- package/src/table/selfhosted.ts +67 -0
- package/src/table/states.ts +589 -0
- package/src/utils/Result.ts +1 -1
- package/src/utils/errorWindowBuilder.ts +1 -1
- package/tsconfig.build.json +30 -0
- package/tsconfig.json +6 -6
- package/dist/grammarParser.d.ts +0 -27
- package/dist/grammarParser.js.map +0 -1
- package/dist/tableParser.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"states.js","sourceRoot":"","sources":["../../src/meta/states.ts"],"names":[],"mappings":"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"}
|
package/dist/parser.d.ts
CHANGED
|
@@ -1,17 +1,28 @@
|
|
|
1
1
|
import { Slex, Token } from "@scinorandex/slex";
|
|
2
|
-
import { Production } from "./grammarParser";
|
|
3
2
|
import { Stack } from "./utils/Stack";
|
|
4
3
|
import { Result } from "./utils/Result";
|
|
4
|
+
import { Production } from "./meta/common";
|
|
5
5
|
export type TableAction = {
|
|
6
6
|
type: "shift" | "reduce" | "goto";
|
|
7
7
|
value: number;
|
|
8
8
|
};
|
|
9
9
|
export declare class TableState {
|
|
10
10
|
readonly actions: Map<string, TableAction>;
|
|
11
|
-
constructor();
|
|
11
|
+
constructor(actions?: Map<string, TableAction>);
|
|
12
12
|
getTerminalAction(terminal: string): TableAction | undefined;
|
|
13
13
|
getVariableAction(variable: string): TableAction | undefined;
|
|
14
|
+
toJSObject(): {
|
|
15
|
+
[k: string]: TableAction;
|
|
16
|
+
};
|
|
17
|
+
static fromJSObject(json: ReturnType<TableState["toJSObject"]>): TableState;
|
|
14
18
|
}
|
|
19
|
+
type ReducerType<TokenType, Metadata, Node> = (newInput: {
|
|
20
|
+
bag: any;
|
|
21
|
+
name: string | null;
|
|
22
|
+
}, oldInput: {
|
|
23
|
+
input: LR1StackSymbol<TokenType, Metadata, Node>[];
|
|
24
|
+
index: number;
|
|
25
|
+
}) => Node;
|
|
15
26
|
export type LR1StackSymbol<TokenType, Metadata, Node> = {
|
|
16
27
|
type: "token";
|
|
17
28
|
token: Token<TokenType, Metadata>;
|
|
@@ -39,7 +50,7 @@ export declare class Sparse<TokenType, Metadata, Node> {
|
|
|
39
50
|
toStringifiedTokenType: (tokenType: TokenType) => string;
|
|
40
51
|
}): Sparse<TokenType, Metadata, Node>;
|
|
41
52
|
generate(lexer: ReturnType<Slex<TokenType, Metadata>["generate"]>, options: {
|
|
42
|
-
reducer:
|
|
53
|
+
reducer: ReducerType<TokenType, Metadata, Node>;
|
|
43
54
|
recover?: ParserRecoveryFunction<TokenType, Metadata, Node>;
|
|
44
55
|
}): LR1Parser<TokenType, Metadata, Node>;
|
|
45
56
|
}
|
|
@@ -81,7 +92,7 @@ declare class LR1Parser<TokenType, Metadata, Node> {
|
|
|
81
92
|
states: TableState[];
|
|
82
93
|
toStringifiedTokenType: (tokenType: TokenType) => string;
|
|
83
94
|
};
|
|
84
|
-
readonly reducer:
|
|
95
|
+
readonly reducer: ReducerType<TokenType, Metadata, Node>;
|
|
85
96
|
readonly recover: ParserRecoveryFunction<TokenType, Metadata, Node> | null;
|
|
86
97
|
readonly lexer: ReturnType<Slex<TokenType, Metadata>["generate"]>;
|
|
87
98
|
statesStack: Stack<number>;
|
|
@@ -91,7 +102,7 @@ declare class LR1Parser<TokenType, Metadata, Node> {
|
|
|
91
102
|
productions: Production[];
|
|
92
103
|
states: TableState[];
|
|
93
104
|
toStringifiedTokenType: (tokenType: TokenType) => string;
|
|
94
|
-
}, reducer:
|
|
105
|
+
}, reducer: ReducerType<TokenType, Metadata, Node>, recover: ParserRecoveryFunction<TokenType, Metadata, Node> | null, lexer: ReturnType<Slex<TokenType, Metadata>["generate"]>);
|
|
95
106
|
parse(): ParserResult<TokenType, Metadata, Node>;
|
|
96
107
|
}
|
|
97
108
|
export declare class LR1ParserGraveError<TokenType, Metadata> extends Error {
|
package/dist/parser.js
CHANGED
|
@@ -4,8 +4,8 @@ exports.LR1ParserGraveError = exports.Sparse = exports.TableState = void 0;
|
|
|
4
4
|
const generator_1 = require("./generator");
|
|
5
5
|
const Stack_1 = require("./utils/Stack");
|
|
6
6
|
class TableState {
|
|
7
|
-
constructor() {
|
|
8
|
-
this.actions =
|
|
7
|
+
constructor(actions = new Map()) {
|
|
8
|
+
this.actions = actions;
|
|
9
9
|
}
|
|
10
10
|
getTerminalAction(terminal) {
|
|
11
11
|
return this.actions.get(`[${terminal}]`);
|
|
@@ -13,6 +13,12 @@ class TableState {
|
|
|
13
13
|
getVariableAction(variable) {
|
|
14
14
|
return this.actions.get(variable);
|
|
15
15
|
}
|
|
16
|
+
toJSObject() {
|
|
17
|
+
return Object.fromEntries(this.actions);
|
|
18
|
+
}
|
|
19
|
+
static fromJSObject(json) {
|
|
20
|
+
return new TableState(new Map(Object.entries(json)));
|
|
21
|
+
}
|
|
16
22
|
}
|
|
17
23
|
exports.TableState = TableState;
|
|
18
24
|
class Sparse {
|
|
@@ -94,19 +100,31 @@ class LR1Parser {
|
|
|
94
100
|
popped.unshift(this.symbolsStack.pop());
|
|
95
101
|
this.statesStack.pop();
|
|
96
102
|
}
|
|
103
|
+
const productionIndex = production.originalProductionIndex;
|
|
97
104
|
try {
|
|
98
|
-
|
|
105
|
+
const bag = {};
|
|
106
|
+
for (let i = 0; i < production.rhs.length; i++) {
|
|
107
|
+
const rhsItem = production.rhs[i];
|
|
108
|
+
const poppedItem = popped[i];
|
|
109
|
+
if (rhsItem.name != null)
|
|
110
|
+
bag[rhsItem.name] = poppedItem.type === "token" ? poppedItem.token : poppedItem.node;
|
|
111
|
+
}
|
|
112
|
+
const newInput = { bag, name: production.name };
|
|
113
|
+
const oldInput = { input: popped, index: productionIndex };
|
|
114
|
+
const node = this.reducer(newInput, oldInput);
|
|
115
|
+
this.symbolsStack.push({ type: "node", node });
|
|
99
116
|
}
|
|
100
117
|
catch (err) {
|
|
101
118
|
const input = JSON.stringify(popped, null, 2);
|
|
102
|
-
|
|
119
|
+
console.log(err);
|
|
120
|
+
throw new LR1ParserGraveError(`Error while performing reduction for production: ${productionIndex}. Reduction input: ${input}`, token);
|
|
103
121
|
}
|
|
104
122
|
const topNode = this.statesStack.peek();
|
|
105
|
-
const gotoAction = states[topNode].getVariableAction(production.
|
|
123
|
+
const gotoAction = states[topNode].getVariableAction(production.identifier);
|
|
106
124
|
if (gotoAction == undefined)
|
|
107
|
-
throw new LR1ParserGraveError(`No GOTO action for for state: ${topNode} and production: ${production.
|
|
125
|
+
throw new LR1ParserGraveError(`No GOTO action for for state: ${topNode} and production: ${production.identifier}. Actions: Reduce by production ${productionIndex}`, token);
|
|
108
126
|
else if (gotoAction.type !== "goto")
|
|
109
|
-
throw new LR1ParserGraveError(`Expected GOTO action for state: ${topNode} and production: ${production.
|
|
127
|
+
throw new LR1ParserGraveError(`Expected GOTO action for state: ${topNode} and production: ${production.identifier}. Actions: Reduce by production ${productionIndex}. Received: ${gotoAction.type}`, token);
|
|
110
128
|
this.statesStack.push(gotoAction.value);
|
|
111
129
|
}
|
|
112
130
|
}
|
package/dist/parser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":";;;AACA,2CAA6C;
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.buildStates = exports.tableLexerGenerator = exports.TableTokenType = void 0;
|
|
4
4
|
const slex_1 = require("@scinorandex/slex");
|
|
5
|
-
const parser_1 = require("
|
|
5
|
+
const parser_1 = require("../parser");
|
|
6
6
|
var TableTokenType;
|
|
7
7
|
(function (TableTokenType) {
|
|
8
8
|
TableTokenType[TableTokenType["PRODUCTION_NAME"] = 0] = "PRODUCTION_NAME";
|
|
@@ -56,4 +56,4 @@ const buildStates = (grammar) => grammar.split("\n").map((line) => {
|
|
|
56
56
|
return state;
|
|
57
57
|
});
|
|
58
58
|
exports.buildStates = buildStates;
|
|
59
|
-
//# sourceMappingURL=
|
|
59
|
+
//# sourceMappingURL=handwritten.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handwritten.js","sourceRoot":"","sources":["../../src/table/handwritten.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildStates = void 0;
|
|
4
|
+
const selfhosted_1 = require("../meta/selfhosted");
|
|
5
|
+
const parser_1 = require("../parser");
|
|
6
|
+
const states_1 = require("./states");
|
|
7
|
+
class StateNode extends selfhosted_1.BaseNode {
|
|
8
|
+
constructor(items) {
|
|
9
|
+
super();
|
|
10
|
+
this.items = items;
|
|
11
|
+
}
|
|
12
|
+
toTableState() {
|
|
13
|
+
const state = new parser_1.TableState();
|
|
14
|
+
for (const item of this.items.getItems()) {
|
|
15
|
+
const key = item.type === "terminal" ? `[${item.name.lexeme}]` : `<${item.name.lexeme}>`;
|
|
16
|
+
state.actions.set(key, item.action);
|
|
17
|
+
}
|
|
18
|
+
return state;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
class ItemNode extends selfhosted_1.BaseNode {
|
|
22
|
+
constructor(type, name, action) {
|
|
23
|
+
super();
|
|
24
|
+
this.type = type;
|
|
25
|
+
this.name = name;
|
|
26
|
+
this.action = action;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
const reducers = {
|
|
30
|
+
program: (bag) => bag.states,
|
|
31
|
+
states: (bag) => {
|
|
32
|
+
if (bag.rest == null)
|
|
33
|
+
return new selfhosted_1.ListNode([new StateNode(bag.state)]);
|
|
34
|
+
else
|
|
35
|
+
return bag.rest.add(new StateNode(bag.state));
|
|
36
|
+
},
|
|
37
|
+
items: (bag) => {
|
|
38
|
+
if (bag.rest == null)
|
|
39
|
+
return new selfhosted_1.ListNode([bag.item]);
|
|
40
|
+
else
|
|
41
|
+
return bag.rest.add(bag.item);
|
|
42
|
+
},
|
|
43
|
+
terminal: (bag) => {
|
|
44
|
+
const action = {
|
|
45
|
+
type: bag.action.lexeme.startsWith("s") ? "shift" : "reduce",
|
|
46
|
+
value: parseInt(bag.action.lexeme.substring(1)),
|
|
47
|
+
};
|
|
48
|
+
return new ItemNode("terminal", bag.name, action);
|
|
49
|
+
},
|
|
50
|
+
variable: (bag) => {
|
|
51
|
+
const action = { type: "goto", value: parseInt(bag.state.lexeme) };
|
|
52
|
+
return new ItemNode("variable", bag.name, action);
|
|
53
|
+
},
|
|
54
|
+
};
|
|
55
|
+
const buildStates = (grammar) => {
|
|
56
|
+
const lexer = selfhosted_1.grammarLexerGenerator.generate(grammar, () => ({}));
|
|
57
|
+
const parserGenerator = (0, selfhosted_1.getSelfHostedParserGenerator)(states_1.selfhosted);
|
|
58
|
+
const parser = parserGenerator.generate(lexer, {
|
|
59
|
+
reducer: ({ bag, name }) => reducers[name !== null && name !== void 0 ? name : ""](bag),
|
|
60
|
+
});
|
|
61
|
+
const parsingResult = parser.parse().result.getItemsReversed();
|
|
62
|
+
return parsingResult.map((state) => state.toTableState());
|
|
63
|
+
};
|
|
64
|
+
exports.buildStates = buildStates;
|
|
65
|
+
//# sourceMappingURL=selfhosted.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selfhosted.js","sourceRoot":"","sources":["../../src/table/selfhosted.ts"],"names":[],"mappings":"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StB"}
|