Write a grammar to accept the string that starts with 0,1 and the length of the string should be odd.
Lex file:
%{
#include "y.tab.h"
extern int yylval;
%}
%%
[0] yylval=atoi(yytext); return zero;
[1] yylval=atoi(yytext); return one;
[\t];
[\n] return 0;
%%
Yacc file:
%{
#include<stdio.h>
%}
%token zero one
%%
S : E {printf("String accepted");}
:
E : E T T
| T
;
T : zero
| one
;
%%
main()
{
yyparse();
}
yyerror(char **arg)
{
printf("Invalid string");
}
%{
#include "y.tab.h"
extern int yylval;
%}
%%
[0] yylval=atoi(yytext); return zero;
[1] yylval=atoi(yytext); return one;
[\t];
[\n] return 0;
%%
Yacc file:
%{
#include<stdio.h>
%}
%token zero one
%%
S : E {printf("String accepted");}
:
E : E T T
| T
;
T : zero
| one
;
%%
main()
{
yyparse();
}
yyerror(char **arg)
{
printf("Invalid string");
}
Comments
Post a Comment