-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgrammar.txt
More file actions
executable file
·40 lines (39 loc) · 1.23 KB
/
grammar.txt
File metadata and controls
executable file
·40 lines (39 loc) · 1.23 KB
1
2
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
36
37
38
39
40
-------------
|NONTERMINAL|
-------------
|FUNC_RET +|
|INDEXER +|
|VAR_DECL +|
|FUNC_DECL +|
|FUNC_CALL +|
|IF +|
|WHILE +|
|VAR_ASSIGN+|
|EXPRESSION+|
-------------
|TERMINALS |
-------------
|VAR |
|GETADDR |
|UNKNOWN |
|CONST_DECL |
|STRING |
|ASSIGN |
|LPAREN |
|RPAREN |
|LBRACE |
|RBRACE |
|OPERATOR |
|INDEXER |
-------------
+ S -> [VAR_DECL], [FUNCTION_DECL]
+ VAR_DECL -> "var", UNKNOWN, (ASSIGN | CONST_DECL), CONST_DECL | STRING
+ FUNC_DECL -> "func", UNKNOWN, LPAREN, [UNKNOWN], RPAREN, LBRACE, [VAR_DECL], [IF | WHILE | VAR_ASSIGN | FUNC_CALL | FUNC_RET], RBRACE
+ IF -> LPAREN, EXPRESSION RPAREN, LBRACE, [IF | WHILE | VAR_ASSIGN | FUNC_CALL | FUNC_RET], RBRACE, "else", LBRACE, [IF | WHILE | VAR_ASSIGN | FUNC_CALL | FUNC_RET], RBRACE
+ WHILE -> LPAREN, EXPRESSION RPAREN, LBRACE, [IF | WHILE | VAR_ASSIGN | FUNC_CALL | FUNC_RET], RBRACE
+ FUNC_CALL -> [[EXPRESSION], <COMA>] | RPAREN
+ INDEXER -> EXPRESSION, RBRCK
+ FUNC_RET -> [EXPRESSION], COLON
+ GETADDR -> VAR
+ VAR_ASSIGN -> EXPRESSION
+ EXPRESSION -> [UNKNOWN | FUNC_CALL | INDEXER | CONST_DECL | GETADDR, <OPERATOR>], COLON | COMA | RPAREN | RBRCK