MEENAKSHI SUNDARARAJAN ENGINEERING COLLEGE
#363, Arcot Road, Kodambakkam, Chennai – 600024, Tamil Nadu, India
Department: Computer science & engineering Reg No: 311522104002
PROGRAM:
LEX FILE(art.l)
%{
#include "y.tab.h"
%}
%%
[a-zA-Z_][a-zA-Z_0-9]* return id;
[0-9]+(\.[0-9]*)? return num;
[+/*] return op;
. return yytext[0];
\n return 0;
%%
int yywrap() {
return 1;
}
YACC FILE(arth.y)
%{
#include <stdio.h>
int valid = 1;
%}
%token num id op // Define tokens here
%%
// Grammar rules for parsing expressions
start : id '=' s ';'
;
s : id x
| num x
| '-' num x
| '(' s ')' x
;
x : op s
| '-' s
|
;
%%
// Error handling function
int yyerror() {
valid = 0;
printf("\nInvalid expression!\n");
Page no:
MEENAKSHI SUNDARARAJAN ENGINEERING COLLEGE
#363, Arcot Road, Kodambakkam, Chennai – 600024, Tamil Nadu, India
Department: Computer science & engineering Reg No: 311522104002
return 0;
}
// Main function
int main() {
printf("\nEnter the expression:\n");
yyparse();
if (valid) {
printf("\nValid expression!\n");
}
return 0;
}
OUTPUT:
Page no: