yukigo-mini-parser 0.1.3 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.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,43 @@
1
- ## 0.1.3 (2026-05-01)
1
+ ## 0.2.2 (2026-08-04)
2
2
 
3
3
  ### 🧱 Updated Dependencies
4
4
 
5
- - Updated yukigo-ast to 0.2.1
5
+ - Updated yukigo-ast to 0.3.2
6
6
 
7
- ## 0.1.2 (2026-04-11)
7
+ ## 0.2.1 (2026-08-01)
8
8
 
9
9
  ### 🧱 Updated Dependencies
10
10
 
11
- - Updated yukigo-ast to 0.2.0
11
+ - Updated yukigo-ast to 0.3.1
12
12
 
13
- ## 0.1.0 (2025-12-09)
13
+ ## 0.2.0 (2026-08-01)
14
+
15
+ ### 🩹 Fixes
16
+
17
+ - fix parsers grammar compilation to export to .cjs ([ef59727](https://github.com/miyukiproject/yukigo/commit/ef59727))
14
18
 
15
19
  ### 🧱 Updated Dependencies
16
20
 
21
+ - Updated yukigo-ast to 0.3.0
22
+
23
+ ### ❤️ Thank You
24
+
25
+ - noiseArch
26
+
27
+ ## 0.1.3 (2026-05-01)
28
+
29
+ ### 🧱 Updated Dependencies
30
+
31
+ - Updated yukigo-ast to 0.2.1
32
+
33
+ ## 0.1.2 (2026-04-11)
34
+
35
+ ### 🧱 Updated Dependencies
36
+
37
+ - Updated yukigo-ast to 0.2.0
38
+
39
+ ## 0.1.0 (2025-12-09)
40
+
41
+ ### 🧱 Updated Dependencies
42
+
17
43
  - Updated yukigo-ast to 0.1.0
@@ -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":";AAAA,qDAAqD;AACrD,wCAAwC;AACxC,CAAC;IACD,SAAS,EAAE,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE/B,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;IAC3C,MAAM,EACF,UAAU,EACV,UAAU,EACV,QAAQ,EACR,aAAa,EACb,QAAQ,EACR,yBAAyB,EACzB,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,QAAQ,EACR,aAAa,EACb,EAAE,EACF,KAAK,EACL,eAAe,EACf,QAAQ,EACR,SAAS,EACT,aAAa,EACb,aAAa,EACb,YAAY,EACZ,MAAM,EACT,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;IACzB,IAAI,OAAO,GAAG;QACV,KAAK,EAAE,SAAS;QAChB,WAAW,EAAE;YACb,EAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,KAAK,EAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAC;YACjJ,EAAC,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,WAAW,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;YAC9E,EAAC,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE,WAAW,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;YAC1G,EAAC,MAAM,EAAE,2BAA2B,EAAE,SAAS,EAAE,CAAC,YAAY,CAAC,EAAC;YAChE,EAAC,MAAM,EAAE,2BAA2B,EAAE,SAAS,EAAE,CAAC,oBAAoB,CAAC,EAAC;YACxE,EAAC,MAAM,EAAE,2BAA2B,EAAE,SAAS,EAAE,CAAC,oBAAoB,CAAC,EAAC;YACxE,EAAC,MAAM,EAAE,2BAA2B,EAAE,SAAS,EAAE,CAAC,kBAAkB,CAAC,EAAC;YACtE,EAAC,MAAM,EAAE,2BAA2B,EAAE,SAAS,EAAE,CAAC,cAAc,CAAC,EAAC;YAClE,EAAC,MAAM,EAAE,2BAA2B,EAAE,SAAS,EAAE,CAAC,iBAAiB,CAAC,EAAC;YACrE,EAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;YACpH,EAAC,MAAM,EAAE,2CAA2C,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,EAAC,SAAS,EAAC,IAAI,EAAC,EAAE,GAAG,EAAE,YAAY,CAAC,EAAC;YAC5G,EAAC,MAAM,EAAE,2BAA2B,EAAE,SAAS,EAAE,CAAC,2CAA2C,CAAC,EAAE,aAAa,EAAE,EAAE,EAAC;YAClH,EAAC,MAAM,EAAE,2BAA2B,EAAE,SAAS,EAAE,EAAE,EAAE,aAAa,EAAE,UAAS,CAAC,IAAG,OAAO,IAAI,CAAC,CAAA,CAAC,EAAC;YAC/F,EAAC,MAAM,EAAE,oBAAoB,EAAE,SAAS,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,2BAA2B,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;YAC3L,EAAC,MAAM,EAAE,kBAAkB,EAAE,SAAS,EAAE,CAAC,EAAC,SAAS,EAAC,QAAQ,EAAC,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;YAC1H,EAAC,MAAM,EAAE,iBAAiB,EAAE,SAAS,EAAE,CAAC,EAAC,SAAS,EAAC,OAAO,EAAC,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,gBAAgB,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;YACjJ,EAAC,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC,EAAC,SAAS,EAAC,IAAI,EAAC,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,gBAAgB,EAAE,GAAG,EAAE,EAAC,SAAS,EAAC,MAAM,EAAC,EAAE,GAAG,EAAE,gBAAgB,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;YAC9L,EAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;YACxH,EAAC,MAAM,EAAE,gBAAgB,EAAE,SAAS,EAAE,CAAC,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;YACrH,EAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,YAAY,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAC;YACpG,EAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,QAAQ,CAAC,EAAE,CAAC,EAAC;YACtE,EAAC,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE,EAAC,SAAS,EAAC,IAAI,EAAC,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;YAC3I,EAAC,MAAM,EAAE,2CAA2C,EAAE,SAAS,EAAE,CAAC,YAAY,CAAC,EAAE,aAAa,EAAE,EAAE,EAAC;YACnG,EAAC,MAAM,EAAE,2CAA2C,EAAE,SAAS,EAAE,EAAE,EAAE,aAAa,EAAE,UAAS,CAAC,IAAG,OAAO,IAAI,CAAC,CAAA,CAAC,EAAC;YAC/G,EAAC,MAAM,EAAE,oCAAoC,EAAE,SAAS,EAAE,CAAC,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,2CAA2C,EAAE,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,gBAAgB,CAAC,EAAC;YAC3K,EAAC,MAAM,EAAE,oBAAoB,EAAE,SAAS,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,oCAAoC,CAAC,EAAE,aAAa,EAAG,CAAC,CAAC,EAAE,EAAE;oBAC1H,MAAM,aAAa,GAAG,EAAE,CAAA;oBACxB,MAAM,WAAW,GAAG,EAAE,CAAA;oBACtB,IAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;wBACT,KAAI,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;4BAC7C,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;4BAC9B,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;wBACnC,CAAC;oBACL,CAAC;oBACD,MAAM,aAAa,GAAG,IAAI,iBAAiB,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;oBAEpE,MAAM,SAAS,GAAG,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;oBACzD,MAAM,SAAS,GAAI,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAC,WAAW,EAAE,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;oBAC/F,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;gBACjC,CAAC,EAAC;YACN,EAAC,MAAM,EAAE,mBAAmB,EAAE,SAAS,EAAE,EAAE,EAAC;YAC5C,EAAC,MAAM,EAAE,mCAAmC,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAAC;YAC9F,EAAC,MAAM,EAAE,mBAAmB,EAAE,SAAS,EAAE,CAAC,mBAAmB,EAAE,mCAAmC,CAAC,EAAE,aAAa,EAAE,SAAS,OAAO,CAAC,CAAC,IAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,EAAC;YACtK,EAAC,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,OAAO,EAAE,mBAAmB,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;YACrH,EAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;YAC/G,EAAC,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,YAAY,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;YAC7E,EAAC,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE,qBAAqB,EAAE,GAAG,EAAE,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;YAC7J,EAAC,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;YAC3E,EAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,gBAAgB,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,yBAAyB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;YACnK,EAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,gBAAgB,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,yBAAyB,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;YACpK,EAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,gBAAgB,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;YAC/E,EAAC,MAAM,EAAE,gBAAgB,EAAE,SAAS,EAAE,CAAC,gBAAgB,EAAE,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,yBAAyB,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;YAC5K,EAAC,MAAM,EAAE,gBAAgB,EAAE,SAAS,EAAE,CAAC,gBAAgB,EAAE,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,yBAAyB,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;YAC1K,EAAC,MAAM,EAAE,gBAAgB,EAAE,SAAS,EAAE,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;YAC9E,EAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;YACtH,EAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,WAAW,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;YACzE,EAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,QAAQ,EAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAC;YACxJ,EAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAC;YACxI,EAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,QAAQ,EAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAC;YAChJ,EAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAC;YAC3I,EAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;YAC1E,EAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,gBAAgB,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;YAC9E,EAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,EAAC;YAC/F,EAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,MAAM,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAC;YACrH,EAAC,MAAM,EAAE,gBAAgB,EAAE,SAAS,EAAE,CAAC,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,iBAAiB,EAAE,GAAG,EAAE,EAAC,SAAS,EAAC,GAAG,EAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;YACrJ,EAAC,MAAM,EAAE,wBAAwB,EAAE,SAAS,EAAE,EAAE,EAAC;YACjD,EAAC,MAAM,EAAE,wCAAwC,EAAE,SAAS,EAAE,CAAC,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,GAAG,EAAE,YAAY,CAAC,EAAC;YACnG,EAAC,MAAM,EAAE,wBAAwB,EAAE,SAAS,EAAE,CAAC,wBAAwB,EAAE,wCAAwC,CAAC,EAAE,aAAa,EAAE,SAAS,OAAO,CAAC,CAAC,IAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,EAAC;YACrL,EAAC,MAAM,EAAE,iBAAiB,EAAE,SAAS,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE,wBAAwB,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;YAC7I,EAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,UAAU,EAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAC;YACrJ,EAAC,MAAM,EAAE,qBAAqB,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,OAAO,EAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,OAAO,EAAC;YAC7H,EAAC,MAAM,EAAE,qBAAqB,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,UAAU,EAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,UAAU,EAAC;YACzI,EAAC,MAAM,EAAE,qBAAqB,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,UAAU,EAAC;YACvH,EAAC,MAAM,EAAE,qBAAqB,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,KAAK,EAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,iBAAiB,EAAC;YACjI,EAAC,MAAM,EAAE,qBAAqB,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,aAAa,EAAC;YAC1H,EAAC,MAAM,EAAE,qBAAqB,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,KAAK,EAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,oBAAoB,EAAC;YACpI,EAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,EAAC;YACnC,EAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,UAAU,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,aAAa,EAAE,SAAS,OAAO,CAAC,CAAC,IAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,EAAC;YAC1J,EAAC,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,EAAC;YAChE,EAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC;YAC7E,EAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,aAAa,EAAE,SAAS,OAAO,CAAC,CAAC,IAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,EAAC;YAC5J,EAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,WAAW,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,EAAC;SACrE;QACG,WAAW,EAAE,SAAS;KACzB,CAAA;IACD,IAAI,OAAO,MAAM,KAAK,WAAW,IAAG,OAAO,MAAM,CAAC,OAAO,KAAK,WAAW,EAAE,CAAC;QACzE,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;IAC5B,CAAC;SAAM,CAAC;QACL,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;IAC5B,CAAC;AACD,CAAC,CAAC,EAAE,CAAC"}
@@ -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.js";
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 (error) {
23
- if ("token" in error)
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,cAAc,CAAC;AAGnC,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,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;QACzE,IAAI,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClB,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,OAAO,IAAI,KAAK;gBAAE,MAAM,IAAI,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC7D,MAAM,KAAK,CAAA;QACb,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"}
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
@@ -1,4 +1,5 @@
1
1
  import moo from "moo";
2
+ // @ts-ignore
2
3
  import { makeLexer } from "moo-ignore";
3
4
  const keywords = [
4
5
  "return",
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",
3
+ "version": "0.2.2",
4
4
  "description": "",
5
5
  "scripts": {
6
- "build": "nearleyc src/grammar.ne -o src/grammar.ts && tsc",
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/chai": "^5.2.2",
21
- "@types/mocha": "^10.0.10",
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.2.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
- // Bypasses TS6133. Allow declared but unused functions.
4
- // @ts-ignore
5
- function id(d: any[]): any { return d[0]; }
6
- declare var EOF: any;
7
- declare var number: any;
8
- declare var char: any;
9
- declare var string: any;
10
- declare var bool: any;
11
- declare var variable: any;
12
- declare var equal: any;
13
- declare var notEqual: any;
14
- declare var lt: any;
15
- declare var lte: any;
16
- declare var gt: any;
17
- declare var gte: any;
18
- declare var WS: any;
19
-
20
- import { MiniLexer } from "./lexer.js"
21
- import {
22
- SimpleType,
23
- Assignment,
24
- Variable,
25
- ListPrimitive,
26
- ListType,
27
- ArithmeticBinaryOperation,
28
- SymbolPrimitive,
29
- NumberPrimitive,
30
- ComparisonOperation,
31
- BooleanPrimitive,
32
- StringPrimitive,
33
- ParameterizedType,
34
- Sequence,
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": () => null},
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": () => null},
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) => d[0].concat([d[1]])},
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) => d[0].concat([d[1]])},
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) => d[0].concat([d[1]])},
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) => d[0].concat([d[1]])},
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
- export default grammar;
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
+ })();
@@ -0,0 +1,3 @@
1
+ import { CompiledRules } from "nearley";
2
+ declare const grammar: CompiledRules;
3
+ export = grammar;