%%{
machine common_expressions; kw_class = 'class'; kw_module = 'module'; kw_def = 'def'; kw_begin = 'begin'; kw_case = 'case'; kw_if = 'if'; kw_unless = 'unless'; kw_do = 'do'; kw_then = 'then'; kw_for = 'for'; kw_while = 'while'; kw_until = 'until'; kw_end = 'end'; vchar = alnum | '_'; const = upper . vchar* . ('::' . alpha . vchar*)*; var = (lower | '_') . vchar*; meth = (alpha | '_') . vchar*; symbol = ':' . (var | const); assoc = '=>'; assgn = '='; comma = ','; label = (var | const) . ':'; lparen = '('; rparen = ')'; lbrace = '{'; rbrace = '}'; smcolon = ';'; newline = '\n'; bslash = '\\' . newline; ospaces = space* -- newline; mspaces = space+ -- newline;
}%%