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> ]?
}