%{
/* Definition section */
#include<stdio.h>
#include <stdlib.h>
void yyerror(const char *str)
{
printf("\nSequence Rejected\n");
}
%}
%token ZERO ONE
/* Rule Section */
%%
r : s {printf("\nSequence Accepted\n\n");}
;
s : n
| ZERO a
| ONE b
;
a : n a
| ZERO
;
b : n b
| ONE
;
n : ZERO
| ONE
;
%%
#include"lex.yy.c"
//driver code
int main()
{
printf("\nEnter Sequence of Zeros and Ones : ");
yyparse();
printf("\n");
return 0;
}
JXsKLyogRGVmaW5pdGlvbiBzZWN0aW9uICovCiNpbmNsdWRlPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4Kdm9pZCB5eWVycm9yKGNvbnN0IGNoYXIgKnN0cikKewpwcmludGYoIlxuU2VxdWVuY2UgUmVqZWN0ZWRcbiIpOwkJCn0KCiV9CgoldG9rZW4gWkVSTyBPTkUKCi8qIFJ1bGUgU2VjdGlvbiAqLwolJQoKciA6IHMge3ByaW50ZigiXG5TZXF1ZW5jZSBBY2NlcHRlZFxuXG4iKTt9CjsKCnMgOiBuCnwgWkVSTyBhCnwgT05FIGIKOwoKYSA6IG4gYQp8IFpFUk8KOwoKYiA6IG4gYgp8IE9ORQo7CgpuIDogWkVSTwp8IE9ORQo7CgolJQoKI2luY2x1ZGUibGV4Lnl5LmMiCi8vZHJpdmVyIGNvZGUKaW50IG1haW4oKQp7CglwcmludGYoIlxuRW50ZXIgU2VxdWVuY2Ugb2YgWmVyb3MgYW5kIE9uZXMgOiAiKTsKCXl5cGFyc2UoKTsKCXByaW50ZigiXG4iKTsKCXJldHVybiAwOwp9Cg==