LEX Program
%{
#include <stdio.h>
#include "y.tab.h"
%}
op "+"|"-"|"*"|"/"
%%
[a-z] { yylval=*yytext; return id; }
{op} { return (int) yytext[0]; }
\n { return(0); }
. { return err; }
%%
#include <stdio.h>
#include "y.tab.h"
%}
op "+"|"-"|"*"|"/"
%%
[a-z] { yylval=*yytext; return id; }
{op} { return (int) yytext[0]; }
\n { return(0); }
. { return err; }
%%
YACC Program
%{
#include <stdio.h>
#include <ctype.h>
#define YYSTYPE char
int f=0;
%}
%token id err
%left '-' '+'
%left '*' '/'
%%
input: /* empty string */
| input exp {}
| error {f=1;}
;
exp: exp '+' exp { printf("+"); }
| exp '-' exp { printf("-"); }
| exp '*' exp { printf("*"); }
| exp '/' exp { printf("/");}
| id { printf("%c",yylval); }
;
%%
int main()
{
printf("\nEnter an arithmetic expression:\n\n");
yyparse();
printf("\n");
if(f==1)
printf("Invalid Expression\n");
return 0;
}
int yywrap()
{
return 1;
}
int yyerror(char *mes) {
return 0;
}
#include <stdio.h>
#include <ctype.h>
#define YYSTYPE char
int f=0;
%}
%token id err
%left '-' '+'
%left '*' '/'
%%
input: /* empty string */
| input exp {}
| error {f=1;}
;
exp: exp '+' exp { printf("+"); }
| exp '-' exp { printf("-"); }
| exp '*' exp { printf("*"); }
| exp '/' exp { printf("/");}
| id { printf("%c",yylval); }
;
%%
int main()
{
printf("\nEnter an arithmetic expression:\n\n");
yyparse();
printf("\n");
if(f==1)
printf("Invalid Expression\n");
return 0;
}
int yywrap()
{
return 1;
}
int yyerror(char *mes) {
return 0;
}
No comments:
Post a Comment