##### LM ##### # 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 S: start[ stdin ] R: start = match S ~ 9 + 9 print_xml( R ) print( '\n' ) ##### IN ##### 9 + 9 ##### EXP ##### 9<_literal_0001>+9