start = e:expressao {return ""+String(e)+""} expressao = p:parcela "+" e:expressao {return p+" + "+ e} / parcela parcela = f:fator "/" t:parcela {return " "+f+" "+t+"";} / fator fator = literal / "(" e:expressao ")" {return " "+e+" ";} literal = number / identifier number = digit+ {return " "+text()+" "} identifier = (letter / capital) (letter / capital / digit)* {return " "+text()+" "} digit = [0-9] capital = [A-Z] letter = [a-z] _ "whitespace" = [ \t\n\r]*