ignore SPACE ::= \s
ignore EOL ::= \n
ignore COMMENT ::= \(\*.*\*\)
INT ::= ([+\-]?\d+)
STRING ::= "(([^"\\]|\\[^\\]|\\\\)*)"
FLOAT ::= ([+\-]?\d+\.\d+)
keyword BOOL ::= (true|false)
keyword LEFT ::= left-assoc
keyword RIGHT ::= right-assoc
ID ::= (\w+)
LPROXY ::= <
RPROXY ::= >
LBRACKET ::= \[
RBRACKET ::= \]
LBRACE ::= {
RBRACE ::= }
LPAR ::= \(
RPAR ::= \)
ASSIGNMENT ::= ::=
COLON ::= :
SEMICOLON ::= ;
COMMA ::= ,
AT ::= @
DOT ::= \.
LINE ::= \|