Grammars Are
E=E+T E=T T=T*F T=F F=NUM
// ( .y File ) %{ #include<stdlib.h> #include<stdio.h> void yyerror(char *s); %} %token NUM %% E : E '+' T {printf("+");} | T ; T : T '*' F {printf("*");} | F ; F : NUM {printf("%d",yylval);}; %% int main() { yyparse(); } void yyerror(char *s) { fprintf(stdout,"\n%s",s); } // (.l File ) %{ #include<stdio.h> #include<stdlib.h> #include"y.tab.h" extern int yylval; %} %% [0-9]+ {yylval=atoi(yytext);return NUM;} [ \t] {;} \n return 0; . return yytext[0]; %% /* To Compile :- 1) yacc -d filename.y 2) lex filename.l 3) gcc lex.yy.c y.tab.c -ll 4) ./a.out Enter Expression like: 1+2*3 */