%{
%}
%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;
}
JXsgCiV9CgolcyBBQkNERUFECgovLyBub3QgYWNjZXB0ZWQgc3RhdGUgYWZ0ZXIgdmlzaXRpbmcgQSAlJQoKPElOSVRJQUw+YSBCRUdJTiBBOwoKPElOSVRJQUw+YiBCRUdJTiBJTklUSUFMOwoKPElOSVRJQUw+W15hYlxuXSBCRUdJTiBERUFEOwoKPElOSVRJQUw+XG4gQkVHSU4gSU5JVElBTDsKCntwcmludGYoIk5vdCBBY2NlcHRlZFxuIik7fQoKLy8gbm90IGFjY2VwdGVkIHN0YXRlIGFmdGVyIHZpc2l0aW5nIEEgYW5kIEIgc3RhdGUKCjxBPmEgQkVHSU4gQTsKCjxBPmIgQkVHSU4gQjsKCjxBPlteYWJcbl0gQkVHSU4gREVBRDsKCjxBPlxuIEJFR0lOIElOSVRJQUw7IHtwcmludGYoIk5vdCBBY2NlcHRlZFxuIik7fQoKLy8gLy8gbm90IGFjY2VwdGVkIHN0YXRlIGFmdGVyIHZpc2l0aW5nIEEgYW5kIEMgc3RhdGUKCjxCPmEgQkVHSU4gQTsKCjxCPmIgQkVHSU4gQzsKCjxCPlteYWJcbl0gQkVHSU4gREVBRDsKCjxCPlxuIEJFR0lOIElOSVRJQUw7IHtwcmludGYoIk5vdCBBY2NlcHRlZFxuIik7fQoKLy8gQWNjZXB0ZWQgY2FzZQoKPEM+YSBCRUdJTiBBOwoKPEM+YiBCRUdJTiBJTklUSUFMOwoKPEM+W15hYlxuXSBCRUdJTiBERUFEOwoKPEM+XG4gQkVHSU4gSU5JVElBTDsKCntwcmludGYoIkFjY2VwdGVkXG4iKTsgfQoKLy8gSW52YWxpZCBDYXNlCgo8REVBRD5bXlxuXSBCRUdJTiBERUFEOwoKPERFQUQ+XG4gQkVHSU4gSU5JVElBTDsKCntwcmludGYoIkludmFsaWRcbiIpO30KCiUlCgovLyB5eXdyYXAgbWV0aG9kIGludCB5eXdyYXAoKQoKeyByZXR1cm4gMTsgfQoKLy8gbWFpbiBtZXRob2QKCmludCBtYWluKCkKCnsgcHJpbnRmKCJFbnRlciBTdHJpbmdcbiIpOwoKLy8gY2FsbGVkIHl5bGV4IHl5bGV4KCk7CgpyZXR1cm4gMDsKCn0=