Assignment Statement

Using lex-yacc check assignment statement in a C program YACC FILE Source Code: %{ #include void yyerror(char *); int yylex(); %} %token INC DEC ID NUM %% ass : ID opt ';' {printf("parsing successful");} ; opt : '=' e | INC | DEC ; e : e '+' t | t ; t : t '*' f | f ; f : '(' e ')' | nid ; nid : ID | NUM ; %% void yyerror(char *s) { printf("\nparsing err "); } int main() { yyparse(); return 0; } Lex FILE Source Code: %{ #include "y.tab.h" void yyerror(char *); %} %% "++" {return INC;} "--" {return DEC;} [=,{}();] {return *yytext;} [ \t\n]+ ; [a-zA-Z_][a-zA-Z0-9_]* {return ID;} [0-9]+ {return NUM;} . {printf("\n\nlex err");} %% int yywrap() { return 1; }

Share:

0 comments