@scinorandex/sparse 0.1.1 → 0.1.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/.github/workflows/ci.yml +41 -0
- package/AGENTS.md +31 -11
- package/README.md +283 -29
- package/dist/cli.js +113 -24
- package/dist/cli.js.map +1 -1
- package/dist/generator.d.ts +3 -1
- package/dist/generator.js +29 -5
- package/dist/generator.js.map +1 -1
- package/dist/index.d.ts +16 -4
- package/dist/index.js +34 -1
- package/dist/index.js.map +1 -1
- package/dist/meta/common.d.ts +17 -0
- package/dist/meta/common.js +66 -1
- package/dist/meta/common.js.map +1 -1
- package/dist/meta/selfhosted.d.ts +4 -5
- package/dist/meta/selfhosted.js +49 -36
- package/dist/meta/selfhosted.js.map +1 -1
- package/dist/parser.d.ts +56 -35
- package/dist/parser.js +146 -18
- package/dist/parser.js.map +1 -1
- package/dist/table/selfhosted.d.ts +10 -1
- package/dist/table/selfhosted.js +32 -12
- package/dist/table/selfhosted.js.map +1 -1
- package/dist/table/validate.d.ts +17 -0
- package/dist/table/validate.js +84 -0
- package/dist/table/validate.js.map +1 -0
- package/dist/utils/Stack.d.ts +4 -0
- package/dist/utils/Stack.js +16 -1
- package/dist/utils/Stack.js.map +1 -1
- package/dist/utils/errorWindowBuilder.js +11 -11
- package/dist/utils/errorWindowBuilder.js.map +1 -1
- package/dist/utils/loadFiles.d.ts +8 -0
- package/dist/utils/loadFiles.js +47 -0
- package/dist/utils/loadFiles.js.map +1 -0
- package/dist/utils/reducers.d.ts +9 -0
- package/dist/utils/reducers.js +56 -0
- package/dist/utils/reducers.js.map +1 -0
- package/example/LoLang/example.ts +16 -15
- package/example/kleene-test/example.ts +35 -17
- package/example/math/example.ts +12 -7
- package/example/selfhosted/example.ts +30 -24
- package/opencode.json +1 -1
- package/package.json +2 -2
- package/src/cli.ts +132 -23
- package/src/generator.ts +49 -8
- package/src/index.ts +55 -3
- package/src/meta/common.ts +116 -0
- package/src/meta/selfhosted.ts +42 -11
- package/src/parser.ts +259 -49
- package/src/table/selfhosted.ts +48 -12
- package/src/table/validate.ts +143 -0
- package/src/utils/Stack.ts +22 -2
- package/src/utils/errorWindowBuilder.ts +15 -13
- package/src/utils/loadFiles.ts +54 -0
- package/src/utils/reducers.ts +93 -0
- package/test/cli.test.ts +144 -0
- package/test/codegen.test.ts +75 -0
- package/test/grammar.test.ts +243 -0
- package/test/helpers.ts +59 -0
- package/test/lalr.test.ts +114 -0
- package/test/parser.test.ts +392 -0
- package/test/table.test.ts +144 -0
- package/tsconfig.json +1 -1
- package/example/LoLang/table2.txt +0 -497
- package/example/complicated/grammar.txt +0 -37
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
<S>: <PROGRAM>;
|
|
2
|
-
<PROGRAM>: (<FUNCTION_DEFINITION_LIST: functions>)? [EOF];
|
|
3
|
-
|
|
4
|
-
<FUNCTION_DEFINITION_LIST>: <FUNCTION_DEFINITION: function> (<FUNCTION_DEFINITION_LIST: rest>)?;
|
|
5
|
-
<FUNCTION_DEFINITION>: [FUNCTION] [IDENTIFIER] [LPAREN] (<PARAMETER_LIST: parameters>)? [RPAREN] [LBRACE] (<STATEMENT_LIST: statements>)? [RBRACE];
|
|
6
|
-
<PARAMETER_LIST>: [IDENTIFIER: parameter_name] ([COMMA] <PARAMETER_LIST: rest>)?;
|
|
7
|
-
|
|
8
|
-
<STATEMENT_LIST>: <STATEMENT: stmt> (<STATEMENT_LIST: rest>)?;
|
|
9
|
-
<BLOCK_STATEMENT>: [LBRACE] (<STATEMENT_LIST: stmt_list>) [RBRACE];
|
|
10
|
-
|
|
11
|
-
<STATEMENT>: <IF_STATEMENT | WHILE_LOOP | EXPRESSION_STATEMENT | BLOCK_STATEMENT | VARIABLE_DEFINITION: stmt>;
|
|
12
|
-
|
|
13
|
-
<VARIABLE_DEFINITION>: [VAR] [IDENTIFIER: identifier] [EQUALS] <EXPRESSION: expr> [SEMICOLON];
|
|
14
|
-
<IF_STATEMENT>: [IF] [LPAREN] (<EXPRESSION: condition>)? [RPAREN] <STATEMENT: stmt> ([ELSE] <STATEMENT: else_stmt>)?;
|
|
15
|
-
<WHILE_LOOP>: [WHILE] [IDENTIFIER: loop_name] [LPAREN] <EXPRESSION: condition> [RPAREN] <STATEMENT: stmt>;
|
|
16
|
-
<EXPRESSION_STATEMENT>: <EXPRESSION: expr> [SEMICOLON];
|
|
17
|
-
|
|
18
|
-
<EXPRESSION>: <ASSIGNMENT_EXPRESSION: expr>;
|
|
19
|
-
<ASSIGNMENT_EXPRESSION>: ([IDENTIFIER: identifier] [EQUALS])? <EQUALITY_EXPRESSION: expr>;
|
|
20
|
-
<EQUALITY_EXPRESSION>: <COMPARISON_EXPRESSION: left> ([DOUBLE_EQUALS | NOT_EQUALS: op] <COMPARISON_EXPRESSION: right>)?;
|
|
21
|
-
|
|
22
|
-
<COMPARISON_EXPRESSION>: <BITWISE_OR_EXPRESSION: left> ([LESS_THAN | GREATER_THAN | LESS_THAN_EQUALS | GREATER_THAN_EQUALS: op] <BITWISE_OR_EXPRESSION: right>)?;
|
|
23
|
-
<BITWISE_OR_EXPRESSION>: <BITWISE_AND_EXPRESSION: left> ([PIPE | TILDE_PIPE: op] <BITWISE_OR_EXPRESSION: right>)?;
|
|
24
|
-
<BITWISE_AND_EXPRESSION>: <BITWISE_XOR_EXPRESSION: left> ([AMPERSAND | TILDE_AMPERSAND: op] <BITWISE_AND_EXPRESSION: right>)?;
|
|
25
|
-
<BITWISE_XOR_EXPRESSION>: <TERM_EXPRESSION: left> ([CARAT | TILDE_CARAT: op] <BITWISE_XOR_EXPRESSION: right>)?;
|
|
26
|
-
|
|
27
|
-
<TERM_EXPRESSION>: <UNARY_EXPR: left> ([PLUS | MINUS: op] <TERM_EXPRESSION: right>)?;
|
|
28
|
-
<UNARY_EXPR>: ([LEFTSHIFT | RIGHTSHIFT | TILDE: op])? <ENDPOINT: expr>;
|
|
29
|
-
|
|
30
|
-
<GROUPING_EXPRESSION>: [LPAREN] <EXPRESSION: expr> [RPAREN];
|
|
31
|
-
<FUNCTION_CALL_EXPRESSION>: [IDENTIFIER: function_name] [LPAREN] (<ARGUMENT_LIST: arguments>)? [RPAREN];
|
|
32
|
-
<ARGUMENT_LIST>: <EXPRESSION: arg> ([COMMA] <ARGUMENT_LIST: rest>)?;
|
|
33
|
-
|
|
34
|
-
<ENDPOINT>: [IDENTIFIER: identifier];
|
|
35
|
-
<ENDPOINT>: [NUMBER: number];
|
|
36
|
-
<ENDPOINT>: <GROUPING_EXPRESSION: expr>;
|
|
37
|
-
<ENDPOINT>: <FUNCTION_CALL_EXPRESSION: expr>;
|