|
|
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;
}