You are on page 1of 3

MEENAKSHI SUNDARARAJAN ENGINEERING COLLEGE

#363, Arcot Road, Kodambakkam, Chennai – 600024, Tamil Nadu, India

Department: Computer Science & Engineering Register No.: 311521104027

PROGRAM:-
Arithmetic.l
%{

#include "y.tab.h"
extern int yylval;
int yyerror(const char *);
%}
%%

[ \t] {;}
[0-9]+ {sscanf(yytext,"%d",&yylval);return
NUMBER;} [-+*/\n()] {return *yytext;}
. {yyerror("unrecognized character");return(0);}
%%

int yywrap(void){
return 1;
}
Arith.y
%{

#include<stdio.h>
#define YYSTYPE int
int yylex();
int yyerror(const char *s);
%}
%token NUMBER

%left '+' '-'


%left '*' '/'
%%
list:

Page No.:
MEENAKSHI SUNDARARAJAN ENGINEERING COLLEGE

#363, Arcot Road, Kodambakkam, Chennai – 600024, Tamil Nadu, India

Department: Computer Science & Engineering Register No.: 311521104027

| list '\n'
| list expr '\n' {printf("Ans:\t%d\n",$2); return(0);}
;

expr: NUMBER {$$=$1;}


| expr '+' expr {$$=$1+$3;}
| expr '-' expr {$$=$1-$3;}
| expr '*' expr {$$=$1*$3;}
| expr '/' expr {$$=$1/$3;}

| '(' expr ')' {$$=$2;}


;
%%
int main(void){
printf("Enter the expression:");
yyparse();
return 0;
}
int yyerror(const char *s)
{

fprintf(stderr,"*%s*\n",s);
return 0;
}

Page No.:
MEENAKSHI SUNDARARAJAN ENGINEERING COLLEGE

#363, Arcot Road, Kodambakkam, Chennai – 600024, Tamil Nadu, India

Department: Computer Science & Engineering Register No.: 311521104027

OUTPUT:-

RESULT:-

Page No.:

You might also like