yukigo-mini-parser 0.1.3 → 0.2.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/.mocharc.json +7 -7
- package/CHANGELOG.md +27 -7
- package/dist/grammar.cjs +102 -0
- package/dist/grammar.cjs.map +1 -0
- package/dist/grammar.d.cts +12 -0
- package/dist/index.js +5 -3
- package/dist/index.js.map +1 -1
- package/dist/lexer.js +1 -0
- package/dist/lexer.js.map +1 -1
- package/package.json +5 -11
- package/src/{grammar.ts → grammar.cjs} +61 -99
- package/src/grammar.d.ts +3 -0
- package/src/grammar.ne +130 -131
- package/src/index.ts +50 -39
- package/src/lexer.ts +50 -49
- package/tests/parser.spec.ts +158 -158
- package/tsconfig.json +27 -24
- package/tutorial.md +752 -752
- package/dist/grammar.d.ts +0 -28
- package/dist/grammar.js +0 -100
- package/dist/grammar.js.map +0 -1
- package/dist/parse.d.ts +0 -1
- package/dist/parse.js +0 -16
- package/dist/parse.js.map +0 -1
- package/dist/src/grammar.d.ts +0 -28
- package/dist/src/grammar.js +0 -100
- package/dist/src/grammar.js.map +0 -1
- package/dist/src/index.d.ts +0 -7
- package/dist/src/index.js +0 -33
- package/dist/src/index.js.map +0 -1
- package/dist/src/lexer.d.ts +0 -38
- package/dist/src/lexer.js +0 -46
- package/dist/src/lexer.js.map +0 -1
- package/dist/src/parse.d.ts +0 -1
- package/dist/src/parse.js +0 -16
- package/dist/src/parse.js.map +0 -1
- package/src/parse.ts +0 -18
package/.mocharc.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
{
|
|
2
|
-
"extensions": [
|
|
3
|
-
"ts"
|
|
4
|
-
],
|
|
5
|
-
"spec": [
|
|
6
|
-
"tests/**/*.spec.ts"
|
|
7
|
-
]
|
|
1
|
+
{
|
|
2
|
+
"extensions": [
|
|
3
|
+
"ts"
|
|
4
|
+
],
|
|
5
|
+
"spec": [
|
|
6
|
+
"tests/**/*.spec.ts"
|
|
7
|
+
]
|
|
8
8
|
}
|
package/CHANGELOG.md
CHANGED
|
@@ -1,17 +1,37 @@
|
|
|
1
|
-
## 0.1
|
|
1
|
+
## 0.2.1 (2026-08-01)
|
|
2
2
|
|
|
3
3
|
### 🧱 Updated Dependencies
|
|
4
4
|
|
|
5
|
-
- Updated yukigo-ast to 0.
|
|
5
|
+
- Updated yukigo-ast to 0.3.1
|
|
6
6
|
|
|
7
|
-
## 0.
|
|
7
|
+
## 0.2.0 (2026-08-01)
|
|
8
8
|
|
|
9
|
-
###
|
|
10
|
-
|
|
11
|
-
- Updated yukigo-ast to 0.2.0
|
|
9
|
+
### 🩹 Fixes
|
|
12
10
|
|
|
13
|
-
|
|
11
|
+
- fix parsers grammar compilation to export to .cjs ([ef59727](https://github.com/miyukiproject/yukigo/commit/ef59727))
|
|
14
12
|
|
|
15
13
|
### 🧱 Updated Dependencies
|
|
16
14
|
|
|
15
|
+
- Updated yukigo-ast to 0.3.0
|
|
16
|
+
|
|
17
|
+
### ❤️ Thank You
|
|
18
|
+
|
|
19
|
+
- noiseArch
|
|
20
|
+
|
|
21
|
+
## 0.1.3 (2026-05-01)
|
|
22
|
+
|
|
23
|
+
### 🧱 Updated Dependencies
|
|
24
|
+
|
|
25
|
+
- Updated yukigo-ast to 0.2.1
|
|
26
|
+
|
|
27
|
+
## 0.1.2 (2026-04-11)
|
|
28
|
+
|
|
29
|
+
### 🧱 Updated Dependencies
|
|
30
|
+
|
|
31
|
+
- Updated yukigo-ast to 0.2.0
|
|
32
|
+
|
|
33
|
+
## 0.1.0 (2025-12-09)
|
|
34
|
+
|
|
35
|
+
### 🧱 Updated Dependencies
|
|
36
|
+
|
|
17
37
|
- Updated yukigo-ast to 0.1.0
|
package/dist/grammar.cjs
ADDED
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Generated automatically by nearley, version 2.20.1
|
|
3
|
+
// http://github.com/Hardmath123/nearley
|
|
4
|
+
(function () {
|
|
5
|
+
function id(x) { return x[0]; }
|
|
6
|
+
const { MiniLexer } = require("./lexer.js");
|
|
7
|
+
const { SimpleType, Assignment, Variable, ListPrimitive, ListType, ArithmeticBinaryOperation, SymbolPrimitive, NumberPrimitive, ComparisonOperation, BooleanPrimitive, StringPrimitive, ParameterizedType, Sequence, UnguardedBody, If, While, VariablePattern, Equation, Procedure, TypeSignature, CharPrimitive, NilPrimitive, Return } = require("yukigo-ast");
|
|
8
|
+
var grammar = {
|
|
9
|
+
Lexer: MiniLexer,
|
|
10
|
+
ParserRules: [
|
|
11
|
+
{ "name": "program", "symbols": ["_", "statements", "_", (MiniLexer.has("EOF") ? { type: "EOF" } : EOF)], "postprocess": (d) => d[1].flat(Infinity) },
|
|
12
|
+
{ "name": "statements", "symbols": ["statement"], "postprocess": (d) => [d[0]] },
|
|
13
|
+
{ "name": "statements", "symbols": ["statements", "_", "statement"], "postprocess": (d) => [...d[0], d[2]] },
|
|
14
|
+
{ "name": "statement$subexpression$1", "symbols": ["assignment"] },
|
|
15
|
+
{ "name": "statement$subexpression$1", "symbols": ["variable_statement"] },
|
|
16
|
+
{ "name": "statement$subexpression$1", "symbols": ["function_statement"] },
|
|
17
|
+
{ "name": "statement$subexpression$1", "symbols": ["return_statement"] },
|
|
18
|
+
{ "name": "statement$subexpression$1", "symbols": ["if_statement"] },
|
|
19
|
+
{ "name": "statement$subexpression$1", "symbols": ["while_statement"] },
|
|
20
|
+
{ "name": "statement", "symbols": ["statement$subexpression$1", "_", { "literal": ";" }], "postprocess": (d) => d[0][0] },
|
|
21
|
+
{ "name": "variable_statement$ebnf$1$subexpression$1", "symbols": ["_", { "literal": ":=" }, "_", "expression"] },
|
|
22
|
+
{ "name": "variable_statement$ebnf$1", "symbols": ["variable_statement$ebnf$1$subexpression$1"], "postprocess": id },
|
|
23
|
+
{ "name": "variable_statement$ebnf$1", "symbols": [], "postprocess": function (d) { return null; } },
|
|
24
|
+
{ "name": "variable_statement", "symbols": ["type", "__", "variable", "variable_statement$ebnf$1"], "postprocess": (d) => new Variable(d[2], d[3] ? d[3][3] : new NilPrimitive(null), d[0]) },
|
|
25
|
+
{ "name": "return_statement", "symbols": [{ "literal": "return" }, "_", "expression"], "postprocess": (d) => new Return(d[2]) },
|
|
26
|
+
{ "name": "while_statement", "symbols": [{ "literal": "while" }, "_", "condition", "_", "statement_list"], "postprocess": d => new While(d[2], d[4]) },
|
|
27
|
+
{ "name": "if_statement", "symbols": [{ "literal": "if" }, "_", "condition", "_", "statement_list", "_", { "literal": "else" }, "_", "statement_list"], "postprocess": d => new If(d[2], d[4], d[8]) },
|
|
28
|
+
{ "name": "condition", "symbols": [{ "literal": "(" }, "_", "expression", "_", { "literal": ")" }], "postprocess": (d) => d[2] },
|
|
29
|
+
{ "name": "statement_list", "symbols": [{ "literal": "{" }, "_", "body", "_", { "literal": "}" }], "postprocess": d => d[2] },
|
|
30
|
+
{ "name": "body", "symbols": ["statements"], "postprocess": (d) => new Sequence(d[0].flat(Infinity)) },
|
|
31
|
+
{ "name": "body", "symbols": [], "postprocess": () => new Sequence([]) },
|
|
32
|
+
{ "name": "assignment", "symbols": ["variable", "_", { "literal": ":=" }, "_", "expression"], "postprocess": (d) => new Assignment(d[0], d[4]) },
|
|
33
|
+
{ "name": "function_statement$subexpression$1$ebnf$1", "symbols": ["param_list"], "postprocess": id },
|
|
34
|
+
{ "name": "function_statement$subexpression$1$ebnf$1", "symbols": [], "postprocess": function (d) { return null; } },
|
|
35
|
+
{ "name": "function_statement$subexpression$1", "symbols": [{ "literal": "(" }, "_", "function_statement$subexpression$1$ebnf$1", "_", { "literal": ")" }, "_", "statement_list"] },
|
|
36
|
+
{ "name": "function_statement", "symbols": ["type", "__", "variable", "function_statement$subexpression$1"], "postprocess": (d) => {
|
|
37
|
+
const paramTypeList = [];
|
|
38
|
+
const patternList = [];
|
|
39
|
+
if (d[3][2]) {
|
|
40
|
+
for (const [paramType, paramPattern] of d[3][2]) {
|
|
41
|
+
paramTypeList.push(paramType);
|
|
42
|
+
patternList.push(paramPattern);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
const signatureType = new ParameterizedType(paramTypeList, d[0], []);
|
|
46
|
+
const signature = new TypeSignature(d[2], signatureType);
|
|
47
|
+
const procedure = new Procedure(d[2], [new Equation(patternList, new UnguardedBody(d[3][6]))]);
|
|
48
|
+
return [signature, procedure];
|
|
49
|
+
} },
|
|
50
|
+
{ "name": "param_list$ebnf$1", "symbols": [] },
|
|
51
|
+
{ "name": "param_list$ebnf$1$subexpression$1", "symbols": ["_", { "literal": "," }, "_", "param"] },
|
|
52
|
+
{ "name": "param_list$ebnf$1", "symbols": ["param_list$ebnf$1", "param_list$ebnf$1$subexpression$1"], "postprocess": function arrpush(d) { return d[0].concat([d[1]]); } },
|
|
53
|
+
{ "name": "param_list", "symbols": ["param", "param_list$ebnf$1"], "postprocess": d => [d[0], ...d[1].map(x => x[3])] },
|
|
54
|
+
{ "name": "param", "symbols": ["type", "__", "variable"], "postprocess": d => [d[0], new VariablePattern(d[2])] },
|
|
55
|
+
{ "name": "expression", "symbols": ["comparison"], "postprocess": (d) => d[0] },
|
|
56
|
+
{ "name": "comparison", "symbols": ["addition", "_", "comparison_operator", "_", "addition"], "postprocess": (d) => new ComparisonOperation(d[2], d[0], d[4]) },
|
|
57
|
+
{ "name": "comparison", "symbols": ["addition"], "postprocess": (d) => d[0] },
|
|
58
|
+
{ "name": "addition", "symbols": ["addition", "_", { "literal": "+" }, "_", "multiplication"], "postprocess": (d) => new ArithmeticBinaryOperation("Plus", d[0], d[4]) },
|
|
59
|
+
{ "name": "addition", "symbols": ["addition", "_", { "literal": "-" }, "_", "multiplication"], "postprocess": (d) => new ArithmeticBinaryOperation("Minus", d[0], d[4]) },
|
|
60
|
+
{ "name": "addition", "symbols": ["multiplication"], "postprocess": (d) => d[0] },
|
|
61
|
+
{ "name": "multiplication", "symbols": ["multiplication", "_", { "literal": "*" }, "_", "primary"], "postprocess": (d) => new ArithmeticBinaryOperation("Multiply", d[0], d[4]) },
|
|
62
|
+
{ "name": "multiplication", "symbols": ["multiplication", "_", { "literal": "/" }, "_", "primary"], "postprocess": (d) => new ArithmeticBinaryOperation("Divide", d[0], d[4]) },
|
|
63
|
+
{ "name": "multiplication", "symbols": ["primary"], "postprocess": (d) => d[0] },
|
|
64
|
+
{ "name": "primary", "symbols": [{ "literal": "(" }, "_", "expression", "_", { "literal": ")" }], "postprocess": (d) => d[2] },
|
|
65
|
+
{ "name": "primary", "symbols": ["primitive"], "postprocess": (d) => d[0] },
|
|
66
|
+
{ "name": "primitive", "symbols": [(MiniLexer.has("number") ? { type: "number" } : number)], "postprocess": (d) => new NumberPrimitive(Number(d[0].value)) },
|
|
67
|
+
{ "name": "primitive", "symbols": [(MiniLexer.has("char") ? { type: "char" } : char)], "postprocess": (d) => new CharPrimitive(d[0].value) },
|
|
68
|
+
{ "name": "primitive", "symbols": [(MiniLexer.has("string") ? { type: "string" } : string)], "postprocess": (d) => new StringPrimitive(d[0].value) },
|
|
69
|
+
{ "name": "primitive", "symbols": [(MiniLexer.has("bool") ? { type: "bool" } : bool)], "postprocess": (d) => new BooleanPrimitive(d[0].value) },
|
|
70
|
+
{ "name": "primitive", "symbols": ["variable"], "postprocess": (d) => d[0] },
|
|
71
|
+
{ "name": "primitive", "symbols": ["list_primitive"], "postprocess": d => d[0] },
|
|
72
|
+
{ "name": "type", "symbols": ["variable"], "postprocess": (d) => new SimpleType(d[0].value, []) },
|
|
73
|
+
{ "name": "type", "symbols": ["type", { "literal": "[" }, { "literal": "]" }], "postprocess": (d) => new ListType(d[0], []) },
|
|
74
|
+
{ "name": "list_primitive", "symbols": [{ "literal": "[" }, "_", "expression_list", "_", { "literal": "]" }], "postprocess": (d) => new ListPrimitive(d[2]) },
|
|
75
|
+
{ "name": "expression_list$ebnf$1", "symbols": [] },
|
|
76
|
+
{ "name": "expression_list$ebnf$1$subexpression$1", "symbols": [{ "literal": "," }, "_", "expression"] },
|
|
77
|
+
{ "name": "expression_list$ebnf$1", "symbols": ["expression_list$ebnf$1", "expression_list$ebnf$1$subexpression$1"], "postprocess": function arrpush(d) { return d[0].concat([d[1]]); } },
|
|
78
|
+
{ "name": "expression_list", "symbols": ["expression", "_", "expression_list$ebnf$1"], "postprocess": (d) => ([d[0], ...d[2].map(x => x[2])]) },
|
|
79
|
+
{ "name": "variable", "symbols": [(MiniLexer.has("variable") ? { type: "variable" } : variable)], "postprocess": (d) => new SymbolPrimitive(d[0].value) },
|
|
80
|
+
{ "name": "comparison_operator", "symbols": [(MiniLexer.has("equal") ? { type: "equal" } : equal)], "postprocess": d => "Equal" },
|
|
81
|
+
{ "name": "comparison_operator", "symbols": [(MiniLexer.has("notEqual") ? { type: "notEqual" } : notEqual)], "postprocess": d => "NotEqual" },
|
|
82
|
+
{ "name": "comparison_operator", "symbols": [(MiniLexer.has("lt") ? { type: "lt" } : lt)], "postprocess": d => "LessThan" },
|
|
83
|
+
{ "name": "comparison_operator", "symbols": [(MiniLexer.has("lte") ? { type: "lte" } : lte)], "postprocess": d => "LessOrEqualThan" },
|
|
84
|
+
{ "name": "comparison_operator", "symbols": [(MiniLexer.has("gt") ? { type: "gt" } : gt)], "postprocess": d => "GreaterThan" },
|
|
85
|
+
{ "name": "comparison_operator", "symbols": [(MiniLexer.has("gte") ? { type: "gte" } : gte)], "postprocess": d => "GreaterOrEqualThan" },
|
|
86
|
+
{ "name": "_$ebnf$1", "symbols": [] },
|
|
87
|
+
{ "name": "_$ebnf$1", "symbols": ["_$ebnf$1", (MiniLexer.has("WS") ? { type: "WS" } : WS)], "postprocess": function arrpush(d) { return d[0].concat([d[1]]); } },
|
|
88
|
+
{ "name": "_", "symbols": ["_$ebnf$1"], "postprocess": d => null },
|
|
89
|
+
{ "name": "__$ebnf$1", "symbols": [(MiniLexer.has("WS") ? { type: "WS" } : WS)] },
|
|
90
|
+
{ "name": "__$ebnf$1", "symbols": ["__$ebnf$1", (MiniLexer.has("WS") ? { type: "WS" } : WS)], "postprocess": function arrpush(d) { return d[0].concat([d[1]]); } },
|
|
91
|
+
{ "name": "__", "symbols": ["__$ebnf$1"], "postprocess": d => null }
|
|
92
|
+
],
|
|
93
|
+
ParserStart: "program"
|
|
94
|
+
};
|
|
95
|
+
if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {
|
|
96
|
+
module.exports = grammar;
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
window.grammar = grammar;
|
|
100
|
+
}
|
|
101
|
+
})();
|
|
102
|
+
//# sourceMappingURL=grammar.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grammar.cjs","sourceRoot":"","sources":["../src/grammar.cjs"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { MiniLexer } from "./lexer.js";
|
|
2
|
+
export { MiniLexer as Lexer };
|
|
3
|
+
export declare let ParserRules: ({
|
|
4
|
+
name: string;
|
|
5
|
+
symbols: any[];
|
|
6
|
+
postprocess: (d: any) => any;
|
|
7
|
+
} | {
|
|
8
|
+
name: string;
|
|
9
|
+
symbols: any[];
|
|
10
|
+
postprocess?: undefined;
|
|
11
|
+
})[];
|
|
12
|
+
export declare let ParserStart: string;
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import nearley from "nearley";
|
|
2
|
-
import grammar from "./grammar.
|
|
2
|
+
import grammar from "./grammar.cjs";
|
|
3
3
|
class UnexpectedToken extends Error {
|
|
4
4
|
constructor(token) {
|
|
5
5
|
super(`Parser: Unexpected '${token.type}' token '${token.value}' at line ${token.line} col ${token.col}.`);
|
|
@@ -19,9 +19,11 @@ export class YukigoMiniParser {
|
|
|
19
19
|
parser.feed(code);
|
|
20
20
|
parser.finish();
|
|
21
21
|
}
|
|
22
|
-
catch (
|
|
23
|
-
|
|
22
|
+
catch (e) {
|
|
23
|
+
const error = e; // Assert the shape
|
|
24
|
+
if (error.token) {
|
|
24
25
|
throw new UnexpectedToken(error.token);
|
|
26
|
+
}
|
|
25
27
|
throw error;
|
|
26
28
|
}
|
|
27
29
|
const results = parser.results;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,OAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,OAAO,MAAM,eAAe,CAAC;AASpC,MAAM,eAAgB,SAAQ,KAAK;IACjC,YAAY,KAAY;QACtB,KAAK,CACH,uBAAuB,KAAK,CAAC,IAAI,YAAY,KAAK,CAAC,KAAK,aAAa,KAAK,CAAC,IAAI,QAAQ,KAAK,CAAC,GAAG,GAAG,CACpG,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,gBAAgB;IACpB,MAAM,GAAa,EAAE,CAAC;IAEtB,KAAK,CAAC,IAAY;QACvB,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IACM,eAAe,CAAC,IAAY;QACjC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IACO,UAAU,CAAC,IAAY;QAC7B,MAAM,MAAM,GAAG,IAAI,OAAO,CAAC,MAAM,CAC/B,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,OAAc,CAAC,CAC7C,CAAC;QACF,IAAI,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClB,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,MAAM,KAAK,GAAG,CAAiB,CAAC,CAAC,mBAAmB;YACpD,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;gBAChB,MAAM,IAAI,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACzC,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC/B,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;YACpB,MAAM,KAAK,CACT,2CAA2C,OAAO,CAAC,MAAM,OAAO,CACjE,CAAC;QACJ,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;CACF"}
|
package/dist/lexer.js
CHANGED
package/dist/lexer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lexer.js","sourceRoot":"","sources":["../src/lexer.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,MAAM,QAAQ,GAAG;IACf,QAAQ;IACR,IAAI;IACJ,MAAM;CACP,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,GAAG,EAAE,WAAW;IAChB,QAAQ,EAAE,GAAG;IACb,EAAE,EAAE,QAAQ;IACZ,OAAO,EAAE,qBAAqB;IAC9B,MAAM,EACJ,4EAA4E;IAC9E,IAAI,EAAE,oDAAoD;IAC1D,MAAM,EAAE,oDAAoD;IAC5D,IAAI,EAAE;QACJ,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;KACzB;IACD,SAAS,EAAE,GAAG;IACd,MAAM,EAAE,IAAI;IACZ,QAAQ,EAAE,IAAI;IACd,KAAK,EAAE,IAAI;IACX,GAAG,EAAE,IAAI;IACT,EAAE,EAAE,GAAG;IACP,GAAG,EAAE,IAAI;IACT,EAAE,EAAE,GAAG;IACP,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,OAAO,EAAE,GAAG;IACZ,OAAO,EAAE,GAAG;IACZ,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;IACb,KAAK,EAAE,GAAG;IACV,QAAQ,EAAE,OAAO;IACjB,QAAQ,EAAE;QACR,KAAK,EAAE,sBAAsB;QAC7B,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC;YACjB,OAAO,EAAE,QAAQ;SAClB,CAAC;KACH;IACD,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE;CACzC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,SAAS,CAAC,eAAe,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE;IACrE,GAAG,EAAE,IAAI;CACV,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"lexer.js","sourceRoot":"","sources":["../src/lexer.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,aAAa;AACb,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,MAAM,QAAQ,GAAG;IACf,QAAQ;IACR,IAAI;IACJ,MAAM;CACP,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,GAAG,EAAE,WAAW;IAChB,QAAQ,EAAE,GAAG;IACb,EAAE,EAAE,QAAQ;IACZ,OAAO,EAAE,qBAAqB;IAC9B,MAAM,EACJ,4EAA4E;IAC9E,IAAI,EAAE,oDAAoD;IAC1D,MAAM,EAAE,oDAAoD;IAC5D,IAAI,EAAE;QACJ,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;KACzB;IACD,SAAS,EAAE,GAAG;IACd,MAAM,EAAE,IAAI;IACZ,QAAQ,EAAE,IAAI;IACd,KAAK,EAAE,IAAI;IACX,GAAG,EAAE,IAAI;IACT,EAAE,EAAE,GAAG;IACP,GAAG,EAAE,IAAI;IACT,EAAE,EAAE,GAAG;IACP,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,OAAO,EAAE,GAAG;IACZ,OAAO,EAAE,GAAG;IACZ,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;IACb,KAAK,EAAE,GAAG;IACV,QAAQ,EAAE,OAAO;IACjB,QAAQ,EAAE;QACR,KAAK,EAAE,sBAAsB;QAC7B,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC;YACjB,OAAO,EAAE,QAAQ;SAClB,CAAC;KACH;IACD,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE;CACzC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,SAAS,CAAC,eAAe,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE;IACrE,GAAG,EAAE,IAAI;CACV,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "yukigo-mini-parser",
|
|
3
|
-
"version": "0.1
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "",
|
|
5
5
|
"scripts": {
|
|
6
|
-
"build": "nearleyc src/grammar.ne -o src/grammar.
|
|
6
|
+
"build": "nearleyc src/grammar.ne -o src/grammar.cjs && tsc",
|
|
7
7
|
"test": "mocha --import=tsx"
|
|
8
8
|
},
|
|
9
9
|
"type": "module",
|
|
@@ -17,21 +17,15 @@
|
|
|
17
17
|
"author": "",
|
|
18
18
|
"license": "ISC",
|
|
19
19
|
"devDependencies": {
|
|
20
|
-
"@types/
|
|
21
|
-
"
|
|
22
|
-
"@types/node": "^24.7.0",
|
|
23
|
-
"chai": "^6.2.0",
|
|
24
|
-
"mocha": "^11.7.4",
|
|
25
|
-
"ts-node": "^10.9.2",
|
|
26
|
-
"typescript": "^5.9.2"
|
|
20
|
+
"@types/moo": "^0.5.10",
|
|
21
|
+
"ts-node": "^10.9.2"
|
|
27
22
|
},
|
|
28
23
|
"dependencies": {
|
|
29
|
-
"@types/moo": "^0.5.10",
|
|
30
24
|
"moo": "^0.5.2",
|
|
31
25
|
"moo-ignore": "^2.5.3",
|
|
32
26
|
"nearley": "^2.20.1"
|
|
33
27
|
},
|
|
34
28
|
"peerDependencies": {
|
|
35
|
-
"yukigo-ast": "^0.
|
|
29
|
+
"yukigo-ast": "^0.3.0"
|
|
36
30
|
}
|
|
37
31
|
}
|
|
@@ -1,79 +1,37 @@
|
|
|
1
1
|
// Generated automatically by nearley, version 2.20.1
|
|
2
2
|
// http://github.com/Hardmath123/nearley
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
UnguardedBody,
|
|
36
|
-
If,
|
|
37
|
-
While,
|
|
38
|
-
VariablePattern,
|
|
39
|
-
Equation,
|
|
40
|
-
Procedure,
|
|
41
|
-
TypeSignature,
|
|
42
|
-
CharPrimitive,
|
|
43
|
-
NilPrimitive,
|
|
44
|
-
Return
|
|
45
|
-
} from "yukigo-ast"
|
|
46
|
-
|
|
47
|
-
interface NearleyToken {
|
|
48
|
-
value: any;
|
|
49
|
-
[key: string]: any;
|
|
50
|
-
};
|
|
51
|
-
|
|
52
|
-
interface NearleyLexer {
|
|
53
|
-
reset: (chunk: string, info: any) => void;
|
|
54
|
-
next: () => NearleyToken | undefined;
|
|
55
|
-
save: () => any;
|
|
56
|
-
formatError: (token: never) => string;
|
|
57
|
-
has: (tokenType: string) => boolean;
|
|
58
|
-
};
|
|
59
|
-
|
|
60
|
-
interface NearleyRule {
|
|
61
|
-
name: string;
|
|
62
|
-
symbols: NearleySymbol[];
|
|
63
|
-
postprocess?: (d: any[], loc?: number, reject?: {}) => any;
|
|
64
|
-
};
|
|
65
|
-
|
|
66
|
-
type NearleySymbol = string | { literal: any } | { test: (token: any) => boolean };
|
|
67
|
-
|
|
68
|
-
interface Grammar {
|
|
69
|
-
Lexer: NearleyLexer | undefined;
|
|
70
|
-
ParserRules: NearleyRule[];
|
|
71
|
-
ParserStart: string;
|
|
72
|
-
};
|
|
73
|
-
|
|
74
|
-
const grammar: Grammar = {
|
|
75
|
-
Lexer: MiniLexer,
|
|
76
|
-
ParserRules: [
|
|
3
|
+
(function () {
|
|
4
|
+
function id(x) { return x[0]; }
|
|
5
|
+
|
|
6
|
+
const { MiniLexer } = require("./lexer.js")
|
|
7
|
+
const {
|
|
8
|
+
SimpleType,
|
|
9
|
+
Assignment,
|
|
10
|
+
Variable,
|
|
11
|
+
ListPrimitive,
|
|
12
|
+
ListType,
|
|
13
|
+
ArithmeticBinaryOperation,
|
|
14
|
+
SymbolPrimitive,
|
|
15
|
+
NumberPrimitive,
|
|
16
|
+
ComparisonOperation,
|
|
17
|
+
BooleanPrimitive,
|
|
18
|
+
StringPrimitive,
|
|
19
|
+
ParameterizedType,
|
|
20
|
+
Sequence,
|
|
21
|
+
UnguardedBody,
|
|
22
|
+
If,
|
|
23
|
+
While,
|
|
24
|
+
VariablePattern,
|
|
25
|
+
Equation,
|
|
26
|
+
Procedure,
|
|
27
|
+
TypeSignature,
|
|
28
|
+
CharPrimitive,
|
|
29
|
+
NilPrimitive,
|
|
30
|
+
Return
|
|
31
|
+
} = require("yukigo-ast")
|
|
32
|
+
var grammar = {
|
|
33
|
+
Lexer: MiniLexer,
|
|
34
|
+
ParserRules: [
|
|
77
35
|
{"name": "program", "symbols": ["_", "statements", "_", (MiniLexer.has("EOF") ? {type: "EOF"} : EOF)], "postprocess": (d) => d[1].flat(Infinity)},
|
|
78
36
|
{"name": "statements", "symbols": ["statement"], "postprocess": (d) => [d[0]]},
|
|
79
37
|
{"name": "statements", "symbols": ["statements", "_", "statement"], "postprocess": (d) => [...d[0], d[2]]},
|
|
@@ -86,7 +44,7 @@ const grammar: Grammar = {
|
|
|
86
44
|
{"name": "statement", "symbols": ["statement$subexpression$1", "_", {"literal":";"}], "postprocess": (d) => d[0][0]},
|
|
87
45
|
{"name": "variable_statement$ebnf$1$subexpression$1", "symbols": ["_", {"literal":":="}, "_", "expression"]},
|
|
88
46
|
{"name": "variable_statement$ebnf$1", "symbols": ["variable_statement$ebnf$1$subexpression$1"], "postprocess": id},
|
|
89
|
-
{"name": "variable_statement$ebnf$1", "symbols": [], "postprocess": ()
|
|
47
|
+
{"name": "variable_statement$ebnf$1", "symbols": [], "postprocess": function(d) {return null;}},
|
|
90
48
|
{"name": "variable_statement", "symbols": ["type", "__", "variable", "variable_statement$ebnf$1"], "postprocess": (d) => new Variable(d[2], d[3] ? d[3][3] : new NilPrimitive(null), d[0])},
|
|
91
49
|
{"name": "return_statement", "symbols": [{"literal":"return"}, "_", "expression"], "postprocess": (d) => new Return(d[2])},
|
|
92
50
|
{"name": "while_statement", "symbols": [{"literal":"while"}, "_", "condition", "_", "statement_list"], "postprocess": d => new While(d[2], d[4])},
|
|
@@ -97,26 +55,26 @@ const grammar: Grammar = {
|
|
|
97
55
|
{"name": "body", "symbols": [], "postprocess": () => new Sequence([])},
|
|
98
56
|
{"name": "assignment", "symbols": ["variable", "_", {"literal":":="}, "_", "expression"], "postprocess": (d) => new Assignment(d[0], d[4])},
|
|
99
57
|
{"name": "function_statement$subexpression$1$ebnf$1", "symbols": ["param_list"], "postprocess": id},
|
|
100
|
-
{"name": "function_statement$subexpression$1$ebnf$1", "symbols": [], "postprocess": ()
|
|
58
|
+
{"name": "function_statement$subexpression$1$ebnf$1", "symbols": [], "postprocess": function(d) {return null;}},
|
|
101
59
|
{"name": "function_statement$subexpression$1", "symbols": [{"literal":"("}, "_", "function_statement$subexpression$1$ebnf$1", "_", {"literal":")"}, "_", "statement_list"]},
|
|
102
|
-
{"name": "function_statement", "symbols": ["type", "__", "variable", "function_statement$subexpression$1"], "postprocess": (d) => {
|
|
103
|
-
const paramTypeList = []
|
|
104
|
-
const patternList = []
|
|
105
|
-
if(d[3][2]) {
|
|
106
|
-
for(const [paramType, paramPattern] of d[3][2]) {
|
|
107
|
-
paramTypeList.push(paramType);
|
|
108
|
-
patternList.push(paramPattern);
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
const signatureType = new ParameterizedType(paramTypeList, d[0], [])
|
|
112
|
-
|
|
113
|
-
const signature = new TypeSignature(d[2], signatureType);
|
|
114
|
-
const procedure = new Procedure(d[2], [new Equation(patternList, new UnguardedBody(d[3][6]))])
|
|
115
|
-
return [signature, procedure]
|
|
60
|
+
{"name": "function_statement", "symbols": ["type", "__", "variable", "function_statement$subexpression$1"], "postprocess": (d) => {
|
|
61
|
+
const paramTypeList = []
|
|
62
|
+
const patternList = []
|
|
63
|
+
if(d[3][2]) {
|
|
64
|
+
for(const [paramType, paramPattern] of d[3][2]) {
|
|
65
|
+
paramTypeList.push(paramType);
|
|
66
|
+
patternList.push(paramPattern);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
const signatureType = new ParameterizedType(paramTypeList, d[0], [])
|
|
70
|
+
|
|
71
|
+
const signature = new TypeSignature(d[2], signatureType);
|
|
72
|
+
const procedure = new Procedure(d[2], [new Equation(patternList, new UnguardedBody(d[3][6]))])
|
|
73
|
+
return [signature, procedure]
|
|
116
74
|
}},
|
|
117
75
|
{"name": "param_list$ebnf$1", "symbols": []},
|
|
118
76
|
{"name": "param_list$ebnf$1$subexpression$1", "symbols": ["_", {"literal":","}, "_", "param"]},
|
|
119
|
-
{"name": "param_list$ebnf$1", "symbols": ["param_list$ebnf$1", "param_list$ebnf$1$subexpression$1"], "postprocess": (d)
|
|
77
|
+
{"name": "param_list$ebnf$1", "symbols": ["param_list$ebnf$1", "param_list$ebnf$1$subexpression$1"], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}},
|
|
120
78
|
{"name": "param_list", "symbols": ["param", "param_list$ebnf$1"], "postprocess": d => [d[0], ...d[1].map(x => x[3])]},
|
|
121
79
|
{"name": "param", "symbols": ["type", "__", "variable"], "postprocess": d => [d[0], new VariablePattern(d[2])]},
|
|
122
80
|
{"name": "expression", "symbols": ["comparison"], "postprocess": (d) => d[0]},
|
|
@@ -141,7 +99,7 @@ const grammar: Grammar = {
|
|
|
141
99
|
{"name": "list_primitive", "symbols": [{"literal":"["}, "_", "expression_list", "_", {"literal":"]"}], "postprocess": (d) => new ListPrimitive(d[2])},
|
|
142
100
|
{"name": "expression_list$ebnf$1", "symbols": []},
|
|
143
101
|
{"name": "expression_list$ebnf$1$subexpression$1", "symbols": [{"literal":","}, "_", "expression"]},
|
|
144
|
-
{"name": "expression_list$ebnf$1", "symbols": ["expression_list$ebnf$1", "expression_list$ebnf$1$subexpression$1"], "postprocess": (d)
|
|
102
|
+
{"name": "expression_list$ebnf$1", "symbols": ["expression_list$ebnf$1", "expression_list$ebnf$1$subexpression$1"], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}},
|
|
145
103
|
{"name": "expression_list", "symbols": ["expression", "_", "expression_list$ebnf$1"], "postprocess": (d) => ([d[0], ...d[2].map(x => x[2])])},
|
|
146
104
|
{"name": "variable", "symbols": [(MiniLexer.has("variable") ? {type: "variable"} : variable)], "postprocess": (d) => new SymbolPrimitive(d[0].value)},
|
|
147
105
|
{"name": "comparison_operator", "symbols": [(MiniLexer.has("equal") ? {type: "equal"} : equal)], "postprocess": d => "Equal"},
|
|
@@ -151,13 +109,17 @@ const grammar: Grammar = {
|
|
|
151
109
|
{"name": "comparison_operator", "symbols": [(MiniLexer.has("gt") ? {type: "gt"} : gt)], "postprocess": d => "GreaterThan"},
|
|
152
110
|
{"name": "comparison_operator", "symbols": [(MiniLexer.has("gte") ? {type: "gte"} : gte)], "postprocess": d => "GreaterOrEqualThan"},
|
|
153
111
|
{"name": "_$ebnf$1", "symbols": []},
|
|
154
|
-
{"name": "_$ebnf$1", "symbols": ["_$ebnf$1", (MiniLexer.has("WS") ? {type: "WS"} : WS)], "postprocess": (d)
|
|
112
|
+
{"name": "_$ebnf$1", "symbols": ["_$ebnf$1", (MiniLexer.has("WS") ? {type: "WS"} : WS)], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}},
|
|
155
113
|
{"name": "_", "symbols": ["_$ebnf$1"], "postprocess": d => null},
|
|
156
114
|
{"name": "__$ebnf$1", "symbols": [(MiniLexer.has("WS") ? {type: "WS"} : WS)]},
|
|
157
|
-
{"name": "__$ebnf$1", "symbols": ["__$ebnf$1", (MiniLexer.has("WS") ? {type: "WS"} : WS)], "postprocess": (d)
|
|
115
|
+
{"name": "__$ebnf$1", "symbols": ["__$ebnf$1", (MiniLexer.has("WS") ? {type: "WS"} : WS)], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}},
|
|
158
116
|
{"name": "__", "symbols": ["__$ebnf$1"], "postprocess": d => null}
|
|
159
|
-
|
|
160
|
-
ParserStart: "program"
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
|
|
117
|
+
]
|
|
118
|
+
, ParserStart: "program"
|
|
119
|
+
}
|
|
120
|
+
if (typeof module !== 'undefined'&& typeof module.exports !== 'undefined') {
|
|
121
|
+
module.exports = grammar;
|
|
122
|
+
} else {
|
|
123
|
+
window.grammar = grammar;
|
|
124
|
+
}
|
|
125
|
+
})();
|
package/src/grammar.d.ts
ADDED