21 lines
376 B
BNF
21 lines
376 B
BNF
ROOT ::= EXPR*
|
|
|
|
INSTR ::=
|
|
| EXPR semicolon
|
|
|
|
EXPR ::=
|
|
| OR
|
|
| ASSERT EXPR
|
|
|
|
OR ::= AND (or AND)*
|
|
AND ::= EQNE (and EQNE)*
|
|
EQNE ::= CMP ((eq|ne) CMP)?
|
|
CMP ::= TERM ((lt|le|gt|ge) TERM)?
|
|
TERM ::= FACTOR ((add|sub) FACTOR)*
|
|
FACTOR ::= POW ((mul|div|mod) POW)*
|
|
POW ::= NOT (pow NOT)?
|
|
|
|
NOT ::= not* LITERAL
|
|
LITERAL ::= BUILTIN | opar EXPR cpar
|
|
BUILTIN ::= bool | int | float | string
|