ignore SPACE ::= \s+
ignore NEWLINE ::= \n
keyword LEFT ::= left-assoc
keyword RIGHT ::= right-assoc
keyword SELF ::= Self
AT ::= @
INT ::= (\d+)
ID ::= (\w+)
DEF ::= ::=
SEMICOLON ::= ;
COMMA ::= ,
COLON ::= :
DOT ::= \.
LPROXY ::= <
RPROXY ::= >
LBRACKET ::= \[
RBRACKET ::= \]
LBRACE ::= {
RBRACE ::= }
LPAR ::= \(
RPAR ::= \)
STRING ::= "(([^\\"]|\\.)*)"