%{ %}
%s ABCDEAD
// not accepted state after visiting A %%
<INITIAL>a BEGIN A;
<INITIAL>b BEGIN INITIAL;
<INITIAL>[^ab\n] BEGIN DEAD;
<INITIAL>\n BEGIN INITIAL;
{printf("Not Accepted\n");}
// not accepted state after visiting A and B state
<A>a BEGIN A;
<A>b BEGIN B;
<A>[^ab\n] BEGIN DEAD;
<A>\n BEGIN INITIAL; {printf("Not Accepted\n");}
// // not accepted state after visiting A and C state
<B>a BEGIN A;
<B>b BEGIN C;
<B>[^ab\n] BEGIN DEAD;
<B>\n BEGIN INITIAL; {printf("Not Accepted\n");}
// Accepted case
<C>a BEGIN A;
<C>b BEGIN INITIAL;
<C>[^ab\n] BEGIN DEAD;
<C>\n BEGIN INITIAL;
{printf("Accepted\n"); }
// Invalid Case
<DEAD>[^\n] BEGIN DEAD;
<DEAD>\n BEGIN INITIAL;
{printf("Invalid\n");}
%%
// yywrap method int yywrap()
{ return 1; }
// main method
int main()
{ printf("Enter String\n");
// called yylex yylex();
return 0;
}
JXsgJX0KCiVzIEFCQ0RFQUQKCi8vIG5vdCBhY2NlcHRlZCBzdGF0ZSBhZnRlciB2aXNpdGluZyBBICUlCgo8SU5JVElBTD5hIEJFR0lOIEE7Cgo8SU5JVElBTD5iIEJFR0lOIElOSVRJQUw7Cgo8SU5JVElBTD5bXmFiXG5dIEJFR0lOIERFQUQ7Cgo8SU5JVElBTD5cbiBCRUdJTiBJTklUSUFMOwoKe3ByaW50ZigiTm90IEFjY2VwdGVkXG4iKTt9CgovLyBub3QgYWNjZXB0ZWQgc3RhdGUgYWZ0ZXIgdmlzaXRpbmcgQSBhbmQgQiBzdGF0ZQoKPEE+YSBCRUdJTiBBOwoKPEE+YiBCRUdJTiBCOwoKPEE+W15hYlxuXSBCRUdJTiBERUFEOwoKPEE+XG4gQkVHSU4gSU5JVElBTDsge3ByaW50ZigiTm90IEFjY2VwdGVkXG4iKTt9CgovLyAvLyBub3QgYWNjZXB0ZWQgc3RhdGUgYWZ0ZXIgdmlzaXRpbmcgQSBhbmQgQyBzdGF0ZQoKPEI+YSBCRUdJTiBBOwoKPEI+YiBCRUdJTiBDOwoKPEI+W15hYlxuXSBCRUdJTiBERUFEOwoKPEI+XG4gQkVHSU4gSU5JVElBTDsge3ByaW50ZigiTm90IEFjY2VwdGVkXG4iKTt9CgovLyBBY2NlcHRlZCBjYXNlCgo8Qz5hIEJFR0lOIEE7Cgo8Qz5iIEJFR0lOIElOSVRJQUw7Cgo8Qz5bXmFiXG5dIEJFR0lOIERFQUQ7Cgo8Qz5cbiBCRUdJTiBJTklUSUFMOwoKe3ByaW50ZigiQWNjZXB0ZWRcbiIpOyB9CgovLyBJbnZhbGlkIENhc2UKCjxERUFEPlteXG5dIEJFR0lOIERFQUQ7Cgo8REVBRD5cbiBCRUdJTiBJTklUSUFMOwoKe3ByaW50ZigiSW52YWxpZFxuIik7fQoKJSUKCi8vIHl5d3JhcCBtZXRob2QgaW50IHl5d3JhcCgpCgp7IHJldHVybiAxOyB9CgovLyBtYWluIG1ldGhvZAoKaW50IG1haW4oKQoKeyBwcmludGYoIkVudGVyIFN0cmluZ1xuIik7CgovLyBjYWxsZWQgeXlsZXggeXlsZXgoKTsKCnJldHVybiAwOwoKfQ==