2023-09-10 23:05:29 +00:00
|
|
|
MODULE ::= EXPR*
|
2023-09-11 06:00:50 +00:00
|
|
|
EXPR ::=
|
|
|
|
bool
|
2023-09-11 13:59:37 +00:00
|
|
|
| int
|
2023-09-11 06:00:50 +00:00
|
|
|
| ident
|
|
|
|
| VARDECL
|
2023-09-11 20:18:11 +00:00
|
|
|
| FUNDECL
|
2023-09-11 10:14:01 +00:00
|
|
|
| FUNCALL
|
2023-09-11 18:59:54 +00:00
|
|
|
| LAMBDA
|
2023-09-12 03:53:16 +00:00
|
|
|
| BLOCK
|
2023-09-13 05:46:33 +00:00
|
|
|
| ARRAY
|
2023-09-11 06:00:50 +00:00
|
|
|
VARDECL ::= opar decl ident EXPR cpar
|
2023-09-11 20:18:11 +00:00
|
|
|
FUNDECL ::= opar decl opar ident* cpar BODY cpar
|
2023-09-11 18:59:54 +00:00
|
|
|
FUNCALL ::= opar EXPR EXPR* cpar
|
|
|
|
LAMBDA ::= opar lambda opar PARAMS cpar BODY cpar
|
|
|
|
PARAMS ::= ident*
|
|
|
|
BODY ::= EXPR*
|
2023-09-12 03:53:16 +00:00
|
|
|
BLOCK ::= opar colon EXPR* cpar
|
2023-09-13 05:46:33 +00:00
|
|
|
ARRAY ::= osquare EXPR* csquare
|