import java.io.*; %% %class expr %unicode %line %column %eofval{ return 0; %eofval} %{ static final int PLUS=1; static final int MINUS=2; static final int TIMES=3; static final int DIVIDE=4; static final int LP=5; static final int RP=6; static final int EQUAL=7; static final int INT=8; static final int EOLN=100; static int lineno=1; static int num=0; %} %type int %% \+ {return(PLUS);} \- {return(MINUS);} \* {return(TIMES);} \/ {return(DIVIDE);} \( {return(LP);} \) {return(RP);} \= {return(EQUAL);} [0-9]* {num=Integer.parseInt(yytext()); return(INT);} [\n] {lineno++;} . {;}