%{
#include<stdio.h>
%}
%s A B C INV
%%
<INITIAL>a BEGIN A;
<INITIAL>b BEGIN B;
<INITIAL>[^a|^b|^\n] BEGIN INV;
<INITIAL>\n {BEGIN INITIAL; printf("Accepted\n");};
<A>a BEGIN INITIAL;
<A>b BEGIN C;
<A>[^a|^b|^\n] BEGIN INV;
<A>\n {BEGIN INITIAL; printf("Rejected\n");};
<B>b BEGIN INITIAL;
<B>a BEGIN C;
<B>[^a|^b|^\n] BEGIN INV;
<B>\n {BEGIN INITIAL; printf("Rejected\n");};
<C>b BEGIN A;
<C>a BEGIN B;
<C>[^a|^b|^\n] BEGIN INV;
<C>\n {BEGIN INITIAL; printf("Rejected\n");};
<INV>[^\n] BEGIN INV;
<INV>\n {BEGIN INITIAL; printf("Invalid\n");};
%%
int yywrap()
{
return 1;
}
int main()
{
yylex();
}
//design a dfa using lex code that accepts all the strings having even
number of a and even
number of b
//design a dfa using lex code that accepts all the strings having even
number of a followed by even
number of b
//design a dfa using lex code that accepts all the strings having even
number of a or even
number of b
JXsKI2luY2x1ZGU8c3RkaW8uaD4KJX0KCiVzIEEgQiBDIElOVgoKJSUKPElOSVRJQUw+YSBCRUdJTiBBOwo8SU5JVElBTD5iIEJFR0lOIEI7CjxJTklUSUFMPlteYXxeYnxeXG5dIEJFR0lOIElOVjsKPElOSVRJQUw+XG4ge0JFR0lOIElOSVRJQUw7IHByaW50ZigiQWNjZXB0ZWRcbiIpO307Cgo8QT5hIEJFR0lOIElOSVRJQUw7CjxBPmIgQkVHSU4gQzsKPEE+W15hfF5ifF5cbl0gQkVHSU4gSU5WOwo8QT5cbiB7QkVHSU4gSU5JVElBTDsgcHJpbnRmKCJSZWplY3RlZFxuIik7fTsKCjxCPmIgQkVHSU4gSU5JVElBTDsKPEI+YSBCRUdJTiBDOwo8Qj5bXmF8XmJ8XlxuXSBCRUdJTiBJTlY7CjxCPlxuIHtCRUdJTiBJTklUSUFMOyBwcmludGYoIlJlamVjdGVkXG4iKTt9OwoKPEM+YiBCRUdJTiBBOwo8Qz5hIEJFR0lOIEI7CjxDPlteYXxeYnxeXG5dIEJFR0lOIElOVjsKPEM+XG4ge0JFR0lOIElOSVRJQUw7IHByaW50ZigiUmVqZWN0ZWRcbiIpO307Cgo8SU5WPlteXG5dIEJFR0lOIElOVjsKPElOVj5cbiB7QkVHSU4gSU5JVElBTDsgcHJpbnRmKCJJbnZhbGlkXG4iKTt9OwolJQoKaW50IHl5d3JhcCgpCnsKCXJldHVybiAxOwp9CgppbnQgbWFpbigpCnsKCXl5bGV4KCk7Cn0KCi8vZGVzaWduIGEgZGZhIHVzaW5nIGxleCBjb2RlIHRoYXQgYWNjZXB0cyBhbGwgdGhlIHN0cmluZ3MgaGF2aW5nIGV2ZW4gbnVtYmVyIG9mIGEgYW5kIGV2ZW4gbnVtYmVyIG9mIGIKLy9kZXNpZ24gYSBkZmEgdXNpbmcgbGV4IGNvZGUgdGhhdCBhY2NlcHRzIGFsbCB0aGUgc3RyaW5ncyBoYXZpbmcgZXZlbiBudW1iZXIgb2YgYSBmb2xsb3dlZCBieSBldmVuIG51bWJlciBvZiBiCi8vZGVzaWduIGEgZGZhIHVzaW5nIGxleCBjb2RlIHRoYXQgYWNjZXB0cyBhbGwgdGhlIHN0cmluZ3MgaGF2aW5nIGV2ZW4gbnVtYmVyIG9mIGEgb3IgZXZlbiBudW1iZXIgb2YgYg==