yukigo-mini-parser 0.1.0 → 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/.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/dist/grammar.js CHANGED
@@ -4,7 +4,7 @@
4
4
  // @ts-ignore
5
5
  function id(d) { return d[0]; }
6
6
  import { MiniLexer } from "./lexer.js";
7
- import { SimpleType, Assignment, Variable, ListPrimitive, ListType, ArithmeticBinaryOperation, SymbolPrimitive, NumberPrimitive, ComparisonOperation, BooleanPrimitive, StringPrimitive, ParameterizedType, Sequence, UnguardedBody, If, While, VariablePattern, Equation, Procedure, TypeSignature, CharPrimitive, NilPrimitive, Return } from "@yukigo/ast";
7
+ import { SimpleType, Assignment, Variable, ListPrimitive, ListType, ArithmeticBinaryOperation, SymbolPrimitive, NumberPrimitive, ComparisonOperation, BooleanPrimitive, StringPrimitive, ParameterizedType, Sequence, UnguardedBody, If, While, VariablePattern, Equation, Procedure, TypeSignature, CharPrimitive, NilPrimitive, Return } from "yukigo-ast";
8
8
  ;
9
9
  ;
10
10
  ;
@@ -12,16 +12,16 @@ import { SimpleType, Assignment, Variable, ListPrimitive, ListType, ArithmeticBi
12
12
  const grammar = {
13
13
  Lexer: MiniLexer,
14
14
  ParserRules: [
15
- { "name": "program$ebnf$1", "symbols": ["statement"] },
16
- { "name": "program$ebnf$1", "symbols": ["program$ebnf$1", "statement"], "postprocess": (d) => d[0].concat([d[1]]) },
17
- { "name": "program", "symbols": ["program$ebnf$1", "_", (MiniLexer.has("EOF") ? { type: "EOF" } : EOF)], "postprocess": (d) => d[0].flat(Infinity) },
15
+ { "name": "program", "symbols": ["_", "statements", "_", (MiniLexer.has("EOF") ? { type: "EOF" } : EOF)], "postprocess": (d) => d[1].flat(Infinity) },
16
+ { "name": "statements", "symbols": ["statement"], "postprocess": (d) => [d[0]] },
17
+ { "name": "statements", "symbols": ["statements", "_", "statement"], "postprocess": (d) => [...d[0], d[2]] },
18
18
  { "name": "statement$subexpression$1", "symbols": ["assignment"] },
19
19
  { "name": "statement$subexpression$1", "symbols": ["variable_statement"] },
20
20
  { "name": "statement$subexpression$1", "symbols": ["function_statement"] },
21
21
  { "name": "statement$subexpression$1", "symbols": ["return_statement"] },
22
22
  { "name": "statement$subexpression$1", "symbols": ["if_statement"] },
23
23
  { "name": "statement$subexpression$1", "symbols": ["while_statement"] },
24
- { "name": "statement", "symbols": ["statement$subexpression$1", "_", { "literal": ";" }, "_"], "postprocess": (d) => d[0][0] },
24
+ { "name": "statement", "symbols": ["statement$subexpression$1", "_", { "literal": ";" }], "postprocess": (d) => d[0][0] },
25
25
  { "name": "variable_statement$ebnf$1$subexpression$1", "symbols": ["_", { "literal": ":=" }, "_", "expression"] },
26
26
  { "name": "variable_statement$ebnf$1", "symbols": ["variable_statement$ebnf$1$subexpression$1"], "postprocess": id },
27
27
  { "name": "variable_statement$ebnf$1", "symbols": [], "postprocess": () => null },
@@ -30,13 +30,13 @@ const grammar = {
30
30
  { "name": "while_statement", "symbols": [{ "literal": "while" }, "_", "condition", "_", "statement_list"], "postprocess": d => new While(d[2], d[4]) },
31
31
  { "name": "if_statement", "symbols": [{ "literal": "if" }, "_", "condition", "_", "statement_list", "_", { "literal": "else" }, "_", "statement_list"], "postprocess": d => new If(d[2], d[4], d[8]) },
32
32
  { "name": "condition", "symbols": [{ "literal": "(" }, "_", "expression", "_", { "literal": ")" }], "postprocess": (d) => d[2] },
33
- { "name": "statement_list$ebnf$1", "symbols": [] },
34
- { "name": "statement_list$ebnf$1", "symbols": ["statement_list$ebnf$1", "statement"], "postprocess": (d) => d[0].concat([d[1]]) },
35
- { "name": "statement_list", "symbols": [{ "literal": "{" }, "_", "statement_list$ebnf$1", "_", { "literal": "}" }], "postprocess": d => new Sequence(d[2]) },
33
+ { "name": "statement_list", "symbols": [{ "literal": "{" }, "_", "body", "_", { "literal": "}" }], "postprocess": d => d[2] },
34
+ { "name": "body", "symbols": ["statements"], "postprocess": (d) => new Sequence(d[0].flat(Infinity)) },
35
+ { "name": "body", "symbols": [], "postprocess": () => new Sequence([]) },
36
36
  { "name": "assignment", "symbols": ["variable", "_", { "literal": ":=" }, "_", "expression"], "postprocess": (d) => new Assignment(d[0], d[4]) },
37
37
  { "name": "function_statement$subexpression$1$ebnf$1", "symbols": ["param_list"], "postprocess": id },
38
38
  { "name": "function_statement$subexpression$1$ebnf$1", "symbols": [], "postprocess": () => null },
39
- { "name": "function_statement$subexpression$1", "symbols": [{ "literal": "(" }, "_", "function_statement$subexpression$1$ebnf$1", "_", { "literal": ")" }, "_", { "literal": "{" }, "_", "body", "_", { "literal": "}" }] },
39
+ { "name": "function_statement$subexpression$1", "symbols": [{ "literal": "(" }, "_", "function_statement$subexpression$1$ebnf$1", "_", { "literal": ")" }, "_", "statement_list"] },
40
40
  { "name": "function_statement", "symbols": ["type", "__", "variable", "function_statement$subexpression$1"], "postprocess": (d) => {
41
41
  const paramTypeList = [];
42
42
  const patternList = [];
@@ -48,7 +48,7 @@ const grammar = {
48
48
  }
49
49
  const signatureType = new ParameterizedType(paramTypeList, d[0], []);
50
50
  const signature = new TypeSignature(d[2], signatureType);
51
- const procedure = new Procedure(d[2], [new Equation(patternList, d[3][8])]);
51
+ const procedure = new Procedure(d[2], [new Equation(patternList, new UnguardedBody(d[3][6]))]);
52
52
  return [signature, procedure];
53
53
  } },
54
54
  { "name": "param_list$ebnf$1", "symbols": [] },
@@ -56,9 +56,6 @@ const grammar = {
56
56
  { "name": "param_list$ebnf$1", "symbols": ["param_list$ebnf$1", "param_list$ebnf$1$subexpression$1"], "postprocess": (d) => d[0].concat([d[1]]) },
57
57
  { "name": "param_list", "symbols": ["param", "param_list$ebnf$1"], "postprocess": d => [d[0], ...d[1].map(x => x[3])] },
58
58
  { "name": "param", "symbols": ["type", "__", "variable"], "postprocess": d => [d[0], new VariablePattern(d[2])] },
59
- { "name": "body$ebnf$1", "symbols": [] },
60
- { "name": "body$ebnf$1", "symbols": ["body$ebnf$1", "statement"], "postprocess": (d) => d[0].concat([d[1]]) },
61
- { "name": "body", "symbols": ["body$ebnf$1"], "postprocess": (d) => new UnguardedBody(new Sequence(d[0])) },
62
59
  { "name": "expression", "symbols": ["comparison"], "postprocess": (d) => d[0] },
63
60
  { "name": "comparison", "symbols": ["addition", "_", "comparison_operator", "_", "addition"], "postprocess": (d) => new ComparisonOperation(d[2], d[0], d[4]) },
64
61
  { "name": "comparison", "symbols": ["addition"], "postprocess": (d) => d[0] },
@@ -68,7 +65,6 @@ const grammar = {
68
65
  { "name": "multiplication", "symbols": ["multiplication", "_", { "literal": "*" }, "_", "primary"], "postprocess": (d) => new ArithmeticBinaryOperation("Multiply", d[0], d[4]) },
69
66
  { "name": "multiplication", "symbols": ["multiplication", "_", { "literal": "/" }, "_", "primary"], "postprocess": (d) => new ArithmeticBinaryOperation("Divide", d[0], d[4]) },
70
67
  { "name": "multiplication", "symbols": ["primary"], "postprocess": (d) => d[0] },
71
- { "name": "primary", "symbols": ["variable"], "postprocess": (d) => d[0] },
72
68
  { "name": "primary", "symbols": [{ "literal": "(" }, "_", "expression", "_", { "literal": ")" }], "postprocess": (d) => d[2] },
73
69
  { "name": "primary", "symbols": ["primitive"], "postprocess": (d) => d[0] },
74
70
  { "name": "primitive", "symbols": [(MiniLexer.has("number") ? { type: "number" } : number)], "postprocess": (d) => new NumberPrimitive(Number(d[0].value)) },
@@ -81,7 +77,7 @@ const grammar = {
81
77
  { "name": "type", "symbols": ["type", { "literal": "[" }, { "literal": "]" }], "postprocess": (d) => new ListType(d[0], []) },
82
78
  { "name": "list_primitive", "symbols": [{ "literal": "[" }, "_", "expression_list", "_", { "literal": "]" }], "postprocess": (d) => new ListPrimitive(d[2]) },
83
79
  { "name": "expression_list$ebnf$1", "symbols": [] },
84
- { "name": "expression_list$ebnf$1$subexpression$1", "symbols": [{ "literal": "," }, "_", "expression", "_"] },
80
+ { "name": "expression_list$ebnf$1$subexpression$1", "symbols": [{ "literal": "," }, "_", "expression"] },
85
81
  { "name": "expression_list$ebnf$1", "symbols": ["expression_list$ebnf$1", "expression_list$ebnf$1$subexpression$1"], "postprocess": (d) => d[0].concat([d[1]]) },
86
82
  { "name": "expression_list", "symbols": ["expression", "_", "expression_list$ebnf$1"], "postprocess": (d) => ([d[0], ...d[2].map(x => x[2])]) },
87
83
  { "name": "variable", "symbols": [(MiniLexer.has("variable") ? { type: "variable" } : variable)], "postprocess": (d) => new SymbolPrimitive(d[0].value) },
@@ -1 +1 @@
1
- {"version":3,"file":"grammar.js","sourceRoot":"","sources":["../src/grammar.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"grammar.js","sourceRoot":"","sources":["../src/grammar.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,7 @@
1
- import { YukigoParser } from "@yukigo/ast";
1
+ import { AST, Expression, YukigoParser } from "yukigo-ast";
2
2
  export declare class YukigoMiniParser implements YukigoParser {
3
3
  errors: string[];
4
- parse(code: string): any;
4
+ parse(code: string): AST;
5
+ parseExpression(code: string): Expression;
6
+ private feedParser;
5
7
  }
package/dist/index.js CHANGED
@@ -1,17 +1,28 @@
1
1
  import nearley from "nearley";
2
2
  import grammar from "./grammar.js";
3
+ class UnexpectedToken extends Error {
4
+ constructor(token) {
5
+ super(`Parser: Unexpected '${token.type}' token '${token.value}' at line ${token.line} col ${token.col}.`);
6
+ }
7
+ }
3
8
  export class YukigoMiniParser {
4
9
  errors = [];
5
10
  parse(code) {
11
+ return this.feedParser(code);
12
+ }
13
+ parseExpression(code) {
14
+ return this.feedParser(code);
15
+ }
16
+ feedParser(code) {
6
17
  const parser = new nearley.Parser(nearley.Grammar.fromCompiled(grammar));
7
18
  try {
8
19
  parser.feed(code);
9
20
  parser.finish();
10
21
  }
11
22
  catch (error) {
12
- const token = error.token;
13
- const message = `Unexpected '${token.type}' token '${token.value}' at line ${token.line} col ${token.col}.`;
14
- this.errors.push(message);
23
+ if ("token" in error)
24
+ throw new UnexpectedToken(error.token);
25
+ throw error;
15
26
  }
16
27
  const results = parser.results;
17
28
  if (results.length > 1)
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;AAEnC,MAAM,OAAO,gBAAgB;IACpB,MAAM,GAAa,EAAE,CAAC;IAEtB,KAAK,CAAC,IAAY;QACvB,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,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;YAC1B,MAAM,OAAO,GAAG,eAAe,KAAK,CAAC,IAAI,YAAY,KAAK,CAAC,KAAK,aAAa,KAAK,CAAC,IAAI,QAAQ,KAAK,CAAC,GAAG,GAAG,CAAC;YAC5G,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC3B,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAA;QAC9B,IAAG,OAAO,CAAC,MAAM,GAAG,CAAC;YACnB,MAAM,KAAK,CAAC,2CAA2C,OAAO,CAAC,MAAM,OAAO,CAAC,CAAA;QAE/E,OAAO,OAAO,CAAC,CAAC,CAAC,CAAA;IACnB,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,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"}
package/dist/parse.js CHANGED
@@ -1,16 +1,16 @@
1
1
  import { YukigoMiniParser } from "./index.js";
2
2
  const parser = new YukigoMiniParser();
3
- const code = `int n
4
- int result
5
-
6
- n := 5
7
- result := 1
8
-
9
- while n > 0 do
10
- result := result * n
11
- n := n - 1
12
- endwhile
13
-
3
+ const code = `int n
4
+ int result
5
+
6
+ n := 5
7
+ result := 1
8
+
9
+ while n > 0 do
10
+ result := result * n
11
+ n := n - 1
12
+ endwhile
13
+
14
14
  print result # This should print 120`;
15
15
  console.log(parser.parse(code));
16
16
  //# sourceMappingURL=parse.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "yukigo-mini-parser",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "",
5
5
  "scripts": {
6
6
  "build": "nearleyc src/grammar.ne -o src/grammar.ts && tsc",
package/src/grammar.ne CHANGED
@@ -1,127 +1,132 @@
1
- @{%
2
- import { MiniLexer } from "./lexer.js"
3
- import {
4
- SimpleType,
5
- Assignment,
6
- Variable,
7
- ListPrimitive,
8
- ListType,
9
- ArithmeticBinaryOperation,
10
- SymbolPrimitive,
11
- NumberPrimitive,
12
- ComparisonOperation,
13
- BooleanPrimitive,
14
- StringPrimitive,
15
- ParameterizedType,
16
- Sequence,
17
- UnguardedBody,
18
- If,
19
- While,
20
- VariablePattern,
21
- Equation,
22
- Procedure,
23
- TypeSignature,
24
- CharPrimitive,
25
- NilPrimitive,
26
- Return
27
- } from "yukigo-ast"
28
- %}
29
-
30
- @preprocessor typescript
31
- @lexer MiniLexer
32
-
33
- program -> statement:+ _ %EOF {% (d) => d[0].flat(Infinity) %}
34
-
35
- # Statements
36
-
37
- statement -> (assignment | variable_statement | function_statement | return_statement | if_statement | while_statement) _ ";" _ {% (d) => d[0][0] %}
38
-
39
- variable_statement -> type __ variable (_ ":=" _ expression):? {% (d) => new Variable(d[2], d[3] ? d[3][3] : new NilPrimitive(null), d[0]) %}
40
-
41
- return_statement -> "return" _ expression {% (d) => new Return(d[2]) %}
42
-
43
- while_statement -> "while" _ condition _ statement_list {% d => new While(d[2], d[4]) %}
44
-
45
- if_statement -> "if" _ condition _ statement_list _ "else" _ statement_list {% d => new If(d[2], d[4], d[8]) %}
46
-
47
- condition -> "(" _ expression _ ")" {% (d) => d[2] %}
48
-
49
- statement_list -> "{" _ statement:* _ "}" {% d => new Sequence(d[2]) %}
50
-
51
- assignment -> variable _ ":=" _ expression {% (d) => new Assignment(d[0], d[4]) %}
52
-
53
- ## Function rules
54
-
55
- function_statement -> type __ variable ("(" _ param_list:? _ ")" _ "{" _ body _ "}") {% (d) => {
56
- const paramTypeList = []
57
- const patternList = []
58
- if(d[3][2]) {
59
- for(const [paramType, paramPattern] of d[3][2]) {
60
- paramTypeList.push(paramType);
61
- patternList.push(paramPattern);
62
- }
63
- }
64
- const signatureType = new ParameterizedType(paramTypeList, d[0], [])
65
-
66
- const signature = new TypeSignature(d[2], signatureType);
67
- const procedure = new Procedure(d[2], [new Equation(patternList, d[3][8])])
68
- return [signature, procedure]
69
- }%}
70
-
71
- param_list -> param (_ "," _ param):* {% d => [d[0], ...d[1].map(x => x[3])] %}
72
-
73
- param -> type __ variable {% d => [d[0], new VariablePattern(d[2])] %}
74
-
75
- body -> statement:* {% (d) => new UnguardedBody(new Sequence(d[0])) %}
76
-
77
- # Expressions
78
-
79
- expression -> comparison {% (d) => d[0] %}
80
-
81
- comparison ->
82
- addition _ comparison_operator _ addition {% (d) => new ComparisonOperation(d[2], d[0], d[4]) %}
83
- | addition {% (d) => d[0] %}
84
-
85
- addition ->
86
- addition _ "+" _ multiplication {% (d) => new ArithmeticBinaryOperation("Plus", d[0], d[4]) %}
87
- | addition _ "-" _ multiplication {% (d) => new ArithmeticBinaryOperation("Minus", d[0], d[4]) %}
88
- | multiplication {% (d) => d[0] %}
89
-
90
- multiplication ->
91
- multiplication _ "*" _ primary {% (d) => new ArithmeticBinaryOperation("Multiply", d[0], d[4]) %}
92
- | multiplication _ "/" _ primary {% (d) => new ArithmeticBinaryOperation("Divide", d[0], d[4]) %}
93
- | primary {% (d) => d[0] %}
94
-
95
- primary ->
96
- variable {% (d) => d[0] %}
97
- | "(" _ expression _ ")" {% (d) => d[2] %}
98
- | primitive {% (d) => d[0] %}
99
-
100
- primitive ->
101
- %number {% (d) => new NumberPrimitive(Number(d[0].value)) %}
102
- | %char {% (d) => new CharPrimitive(d[0].value) %}
103
- | %string {% (d) => new StringPrimitive(d[0].value) %}
104
- | %bool {% (d) => new BooleanPrimitive(d[0].value) %}
105
- | variable {% (d) => d[0] %}
106
- | list_primitive {% d => d[0] %}
107
-
108
- type ->
109
- variable {% (d) => new SimpleType(d[0].value, []) %}
110
- | type "[" "]" {% (d) => new ListType(d[0], []) %}
111
-
112
- list_primitive -> "[" _ expression_list _ "]" {% (d) => new ListPrimitive(d[2]) %}
113
-
114
- expression_list -> expression _ ("," _ expression _):* {% (d) => ([d[0], ...d[2].map(x => x[2])]) %}
115
-
116
- variable -> %variable {% (d) => new SymbolPrimitive(d[0].value) %}
117
-
118
- comparison_operator ->
119
- %equal {% d => "Equal" %}
120
- | %notEqual {% d => "NotEqual" %}
121
- | %lt {% d => "LessThan" %}
122
- | %lte {% d => "LessOrEqualThan" %}
123
- | %gt {% d => "GreaterThan" %}
124
- | %gte {% d => "GreaterOrEqualThan" %}
125
-
126
- _ -> %WS:* {% d => null %}
1
+ @{%
2
+ import { MiniLexer } from "./lexer.js"
3
+ import {
4
+ SimpleType,
5
+ Assignment,
6
+ Variable,
7
+ ListPrimitive,
8
+ ListType,
9
+ ArithmeticBinaryOperation,
10
+ SymbolPrimitive,
11
+ NumberPrimitive,
12
+ ComparisonOperation,
13
+ BooleanPrimitive,
14
+ StringPrimitive,
15
+ ParameterizedType,
16
+ Sequence,
17
+ UnguardedBody,
18
+ If,
19
+ While,
20
+ VariablePattern,
21
+ Equation,
22
+ Procedure,
23
+ TypeSignature,
24
+ CharPrimitive,
25
+ NilPrimitive,
26
+ Return
27
+ } from "yukigo-ast"
28
+ %}
29
+
30
+ @preprocessor typescript
31
+ @lexer MiniLexer
32
+
33
+ program -> _ statements _ %EOF {% (d) => d[1].flat(Infinity) %}
34
+
35
+ statements ->
36
+ statement {% (d) => [d[0]] %}
37
+ | statements _ statement {% (d) => [...d[0], d[2]] %}
38
+
39
+ # Statements
40
+
41
+ statement -> (assignment | variable_statement | function_statement | return_statement | if_statement | while_statement) _ ";" {% (d) => d[0][0] %}
42
+
43
+ variable_statement -> type __ variable (_ ":=" _ expression):? {% (d) => new Variable(d[2], d[3] ? d[3][3] : new NilPrimitive(null), d[0]) %}
44
+
45
+ return_statement -> "return" _ expression {% (d) => new Return(d[2]) %}
46
+
47
+ while_statement -> "while" _ condition _ statement_list {% d => new While(d[2], d[4]) %}
48
+
49
+ if_statement -> "if" _ condition _ statement_list _ "else" _ statement_list {% d => new If(d[2], d[4], d[8]) %}
50
+
51
+ condition -> "(" _ expression _ ")" {% (d) => d[2] %}
52
+
53
+ statement_list -> "{" _ body _ "}" {% d => d[2] %}
54
+ body ->
55
+ statements {% (d) => new Sequence(d[0].flat(Infinity)) %}
56
+ | null {% () => new Sequence([]) %}
57
+
58
+ assignment -> variable _ ":=" _ expression {% (d) => new Assignment(d[0], d[4]) %}
59
+
60
+ ## Function rules
61
+
62
+ function_statement -> type __ variable ("(" _ param_list:? _ ")" _ statement_list) {% (d) => {
63
+ const paramTypeList = []
64
+ const patternList = []
65
+ if(d[3][2]) {
66
+ for(const [paramType, paramPattern] of d[3][2]) {
67
+ paramTypeList.push(paramType);
68
+ patternList.push(paramPattern);
69
+ }
70
+ }
71
+ const signatureType = new ParameterizedType(paramTypeList, d[0], [])
72
+
73
+ const signature = new TypeSignature(d[2], signatureType);
74
+ const procedure = new Procedure(d[2], [new Equation(patternList, new UnguardedBody(d[3][6]))])
75
+ return [signature, procedure]
76
+ }%}
77
+
78
+ param_list -> param (_ "," _ param):* {% d => [d[0], ...d[1].map(x => x[3])] %}
79
+
80
+ param -> type __ variable {% d => [d[0], new VariablePattern(d[2])] %}
81
+
82
+
83
+ # Expressions
84
+
85
+ expression -> comparison {% (d) => d[0] %}
86
+
87
+ comparison ->
88
+ addition _ comparison_operator _ addition {% (d) => new ComparisonOperation(d[2], d[0], d[4]) %}
89
+ | addition {% (d) => d[0] %}
90
+
91
+ addition ->
92
+ addition _ "+" _ multiplication {% (d) => new ArithmeticBinaryOperation("Plus", d[0], d[4]) %}
93
+ | addition _ "-" _ multiplication {% (d) => new ArithmeticBinaryOperation("Minus", d[0], d[4]) %}
94
+ | multiplication {% (d) => d[0] %}
95
+
96
+ multiplication ->
97
+ multiplication _ "*" _ primary {% (d) => new ArithmeticBinaryOperation("Multiply", d[0], d[4]) %}
98
+ | multiplication _ "/" _ primary {% (d) => new ArithmeticBinaryOperation("Divide", d[0], d[4]) %}
99
+ | primary {% (d) => d[0] %}
100
+
101
+ primary ->
102
+ "(" _ expression _ ")" {% (d) => d[2] %}
103
+ | primitive {% (d) => d[0] %}
104
+
105
+ primitive ->
106
+ %number {% (d) => new NumberPrimitive(Number(d[0].value)) %}
107
+ | %char {% (d) => new CharPrimitive(d[0].value) %}
108
+ | %string {% (d) => new StringPrimitive(d[0].value) %}
109
+ | %bool {% (d) => new BooleanPrimitive(d[0].value) %}
110
+ | variable {% (d) => d[0] %}
111
+ | list_primitive {% d => d[0] %}
112
+
113
+ type ->
114
+ variable {% (d) => new SimpleType(d[0].value, []) %}
115
+ | type "[" "]" {% (d) => new ListType(d[0], []) %}
116
+
117
+ list_primitive -> "[" _ expression_list _ "]" {% (d) => new ListPrimitive(d[2]) %}
118
+
119
+ expression_list -> expression _ ("," _ expression):* {% (d) => ([d[0], ...d[2].map(x => x[2])]) %}
120
+
121
+ variable -> %variable {% (d) => new SymbolPrimitive(d[0].value) %}
122
+
123
+ comparison_operator ->
124
+ %equal {% d => "Equal" %}
125
+ | %notEqual {% d => "NotEqual" %}
126
+ | %lt {% d => "LessThan" %}
127
+ | %lte {% d => "LessOrEqualThan" %}
128
+ | %gt {% d => "GreaterThan" %}
129
+ | %gte {% d => "GreaterOrEqualThan" %}
130
+
131
+ _ -> %WS:* {% d => null %}
127
132
  __ -> %WS:+ {% d => null %}
package/src/grammar.ts CHANGED
@@ -74,16 +74,16 @@ interface Grammar {
74
74
  const grammar: Grammar = {
75
75
  Lexer: MiniLexer,
76
76
  ParserRules: [
77
- {"name": "program$ebnf$1", "symbols": ["statement"]},
78
- {"name": "program$ebnf$1", "symbols": ["program$ebnf$1", "statement"], "postprocess": (d) => d[0].concat([d[1]])},
79
- {"name": "program", "symbols": ["program$ebnf$1", "_", (MiniLexer.has("EOF") ? {type: "EOF"} : EOF)], "postprocess": (d) => d[0].flat(Infinity)},
77
+ {"name": "program", "symbols": ["_", "statements", "_", (MiniLexer.has("EOF") ? {type: "EOF"} : EOF)], "postprocess": (d) => d[1].flat(Infinity)},
78
+ {"name": "statements", "symbols": ["statement"], "postprocess": (d) => [d[0]]},
79
+ {"name": "statements", "symbols": ["statements", "_", "statement"], "postprocess": (d) => [...d[0], d[2]]},
80
80
  {"name": "statement$subexpression$1", "symbols": ["assignment"]},
81
81
  {"name": "statement$subexpression$1", "symbols": ["variable_statement"]},
82
82
  {"name": "statement$subexpression$1", "symbols": ["function_statement"]},
83
83
  {"name": "statement$subexpression$1", "symbols": ["return_statement"]},
84
84
  {"name": "statement$subexpression$1", "symbols": ["if_statement"]},
85
85
  {"name": "statement$subexpression$1", "symbols": ["while_statement"]},
86
- {"name": "statement", "symbols": ["statement$subexpression$1", "_", {"literal":";"}, "_"], "postprocess": (d) => d[0][0]},
86
+ {"name": "statement", "symbols": ["statement$subexpression$1", "_", {"literal":";"}], "postprocess": (d) => d[0][0]},
87
87
  {"name": "variable_statement$ebnf$1$subexpression$1", "symbols": ["_", {"literal":":="}, "_", "expression"]},
88
88
  {"name": "variable_statement$ebnf$1", "symbols": ["variable_statement$ebnf$1$subexpression$1"], "postprocess": id},
89
89
  {"name": "variable_statement$ebnf$1", "symbols": [], "postprocess": () => null},
@@ -92,13 +92,13 @@ const grammar: Grammar = {
92
92
  {"name": "while_statement", "symbols": [{"literal":"while"}, "_", "condition", "_", "statement_list"], "postprocess": d => new While(d[2], d[4])},
93
93
  {"name": "if_statement", "symbols": [{"literal":"if"}, "_", "condition", "_", "statement_list", "_", {"literal":"else"}, "_", "statement_list"], "postprocess": d => new If(d[2], d[4], d[8])},
94
94
  {"name": "condition", "symbols": [{"literal":"("}, "_", "expression", "_", {"literal":")"}], "postprocess": (d) => d[2]},
95
- {"name": "statement_list$ebnf$1", "symbols": []},
96
- {"name": "statement_list$ebnf$1", "symbols": ["statement_list$ebnf$1", "statement"], "postprocess": (d) => d[0].concat([d[1]])},
97
- {"name": "statement_list", "symbols": [{"literal":"{"}, "_", "statement_list$ebnf$1", "_", {"literal":"}"}], "postprocess": d => new Sequence(d[2])},
95
+ {"name": "statement_list", "symbols": [{"literal":"{"}, "_", "body", "_", {"literal":"}"}], "postprocess": d => d[2]},
96
+ {"name": "body", "symbols": ["statements"], "postprocess": (d) => new Sequence(d[0].flat(Infinity))},
97
+ {"name": "body", "symbols": [], "postprocess": () => new Sequence([])},
98
98
  {"name": "assignment", "symbols": ["variable", "_", {"literal":":="}, "_", "expression"], "postprocess": (d) => new Assignment(d[0], d[4])},
99
99
  {"name": "function_statement$subexpression$1$ebnf$1", "symbols": ["param_list"], "postprocess": id},
100
100
  {"name": "function_statement$subexpression$1$ebnf$1", "symbols": [], "postprocess": () => null},
101
- {"name": "function_statement$subexpression$1", "symbols": [{"literal":"("}, "_", "function_statement$subexpression$1$ebnf$1", "_", {"literal":")"}, "_", {"literal":"{"}, "_", "body", "_", {"literal":"}"}]},
101
+ {"name": "function_statement$subexpression$1", "symbols": [{"literal":"("}, "_", "function_statement$subexpression$1$ebnf$1", "_", {"literal":")"}, "_", "statement_list"]},
102
102
  {"name": "function_statement", "symbols": ["type", "__", "variable", "function_statement$subexpression$1"], "postprocess": (d) => {
103
103
  const paramTypeList = []
104
104
  const patternList = []
@@ -111,7 +111,7 @@ const grammar: Grammar = {
111
111
  const signatureType = new ParameterizedType(paramTypeList, d[0], [])
112
112
 
113
113
  const signature = new TypeSignature(d[2], signatureType);
114
- const procedure = new Procedure(d[2], [new Equation(patternList, d[3][8])])
114
+ const procedure = new Procedure(d[2], [new Equation(patternList, new UnguardedBody(d[3][6]))])
115
115
  return [signature, procedure]
116
116
  }},
117
117
  {"name": "param_list$ebnf$1", "symbols": []},
@@ -119,9 +119,6 @@ const grammar: Grammar = {
119
119
  {"name": "param_list$ebnf$1", "symbols": ["param_list$ebnf$1", "param_list$ebnf$1$subexpression$1"], "postprocess": (d) => d[0].concat([d[1]])},
120
120
  {"name": "param_list", "symbols": ["param", "param_list$ebnf$1"], "postprocess": d => [d[0], ...d[1].map(x => x[3])]},
121
121
  {"name": "param", "symbols": ["type", "__", "variable"], "postprocess": d => [d[0], new VariablePattern(d[2])]},
122
- {"name": "body$ebnf$1", "symbols": []},
123
- {"name": "body$ebnf$1", "symbols": ["body$ebnf$1", "statement"], "postprocess": (d) => d[0].concat([d[1]])},
124
- {"name": "body", "symbols": ["body$ebnf$1"], "postprocess": (d) => new UnguardedBody(new Sequence(d[0]))},
125
122
  {"name": "expression", "symbols": ["comparison"], "postprocess": (d) => d[0]},
126
123
  {"name": "comparison", "symbols": ["addition", "_", "comparison_operator", "_", "addition"], "postprocess": (d) => new ComparisonOperation(d[2], d[0], d[4])},
127
124
  {"name": "comparison", "symbols": ["addition"], "postprocess": (d) => d[0]},
@@ -131,7 +128,6 @@ const grammar: Grammar = {
131
128
  {"name": "multiplication", "symbols": ["multiplication", "_", {"literal":"*"}, "_", "primary"], "postprocess": (d) => new ArithmeticBinaryOperation("Multiply", d[0], d[4])},
132
129
  {"name": "multiplication", "symbols": ["multiplication", "_", {"literal":"/"}, "_", "primary"], "postprocess": (d) => new ArithmeticBinaryOperation("Divide", d[0], d[4])},
133
130
  {"name": "multiplication", "symbols": ["primary"], "postprocess": (d) => d[0]},
134
- {"name": "primary", "symbols": ["variable"], "postprocess": (d) => d[0]},
135
131
  {"name": "primary", "symbols": [{"literal":"("}, "_", "expression", "_", {"literal":")"}], "postprocess": (d) => d[2]},
136
132
  {"name": "primary", "symbols": ["primitive"], "postprocess": (d) => d[0]},
137
133
  {"name": "primitive", "symbols": [(MiniLexer.has("number") ? {type: "number"} : number)], "postprocess": (d) => new NumberPrimitive(Number(d[0].value))},
@@ -144,7 +140,7 @@ const grammar: Grammar = {
144
140
  {"name": "type", "symbols": ["type", {"literal":"["}, {"literal":"]"}], "postprocess": (d) => new ListType(d[0], [])},
145
141
  {"name": "list_primitive", "symbols": [{"literal":"["}, "_", "expression_list", "_", {"literal":"]"}], "postprocess": (d) => new ListPrimitive(d[2])},
146
142
  {"name": "expression_list$ebnf$1", "symbols": []},
147
- {"name": "expression_list$ebnf$1$subexpression$1", "symbols": [{"literal":","}, "_", "expression", "_"]},
143
+ {"name": "expression_list$ebnf$1$subexpression$1", "symbols": [{"literal":","}, "_", "expression"]},
148
144
  {"name": "expression_list$ebnf$1", "symbols": ["expression_list$ebnf$1", "expression_list$ebnf$1$subexpression$1"], "postprocess": (d) => d[0].concat([d[1]])},
149
145
  {"name": "expression_list", "symbols": ["expression", "_", "expression_list$ebnf$1"], "postprocess": (d) => ([d[0], ...d[2].map(x => x[2])])},
150
146
  {"name": "variable", "symbols": [(MiniLexer.has("variable") ? {type: "variable"} : variable)], "postprocess": (d) => new SymbolPrimitive(d[0].value)},