# Token names. lex literal '+', '*' token number /[0-9]+/ ignore ws / [ \t\n]+ / end def F [number '+'] | [number] | [F '*' number] def E [E '+' F] | [F] def start [E] parse SP: start[ stdin ] S: start = SP.tree R: start = match S ~ 9 + 9 print_xml( R )