lexer calcLexer %{ tokens { id := [a-zA-Z]+; num := [0-9][0-9]*; MAS := "+"; MENOS := "-"; POR := "*"; DIV := "/"; PAR_IZ := "("; PAR_DE := ")"; nulos := [ \r\n\t]; } pass nulos; %} grammar calc { analysis LALR1; use calcLexer; nonterminal E, T, F; E := E MAS T | E MENOS T | T; T := T POR F | T DIV F | F; F := PAR_IZ E PAR_DE; F := id | num; }