896+ Capstone Project is Available: Whatsapp: +91-7011258995, Email: sharecodepoint@gmail.com

Program to evaluate an arithmetic expression involving operating +, -, * and /. | Compiler Design Lab Programs | Yacc Programs


Yacc Part :

%token NUMBER ID NL
%left ‘+’ ‘-‘
%left ‘*’ ‘/’
%%
stmt : exp NL { printf(“Value = %d\n”,$1); exit(0);}
 ;
exp : exp ‘+’ exp { $$=$1+$3; }
 | exp ‘-‘ exp { $$=$1-$3; }
 | exp ‘*’ exp { $$=$1*$3; }
 | exp ‘/’ exp { if($3==0)
 {
printf(“Cannot divide by 0”);
exit(0);
 }
 else
 $$=$1/$3;
}
 | ‘(‘ exp ‘)’ { $$=$2; }
 | ID { $$=$1; }
 | NUMBER { $$=$1; }
 ;
%%
int yyerror(char *msg)
{
 printf(“Invalid Expression\n”);
 exit(0);
}
main ()
{
 printf(“Enter the expression\n”);
 yyparse();

Lex Part :

%{
 #include “y.tab.h”
 extern int yylval;
%}
%%
[0-9]+ { yylval=atoi(yytext); return NUMBER; }
\n { return NL ;}
. { return yytext[0]; }
%%

Sharecodepoint

Sharecodepoint is the junction where every essential thing is shared for college students in the well-defined packets of codes. We are focused on providing you the best material package like Question papers, MCQ'S, and one NIGHT STUDY MATERIAL. facebook twitter youtube instagram

Post a Comment

Previous Post Next Post

Contact Form