Tokens and rules
'token' is a regex that has backtracking disabled by default
'rule' is a token that understands whitespace separators
token ident { [ <alpha> | '_' ] \w+ } rule if_statement { 'if' <EXPR> <block> [ 'elsif' <EXPR> <block> ]* [ 'else' <EXPR> <block> ]? }