grammar SweetTea
rule body (class / expression / space)* <BodyNode> end rule class ('class->' / 'c->') gap? specialName (expression)* ('<-class' / '<-c') <ClassNode> end rule function ('function->' / 'func->' / 'f->') gap? specialName (argument)* (expression)* ('<-function' / '<-func' / '<-f') <FunctionNode> end rule argument specialName / gap end rule expression variable / literal / function / space end rule variable ('variable->' / 'var->' / 'v->') gap? specialName gap? ('=' gap? literal)? <VariableNode> end rule literal string end rule string '"' ('\"' / !'"' .)* '"' <StringLiteral> end rule gap [ \t]+ end rule space [\s]+ end rule specialName [a-zA-Z0-9_]+ end
end