%{
#include < stdio. h>
int yywrap( ) ; // function declaration
%}
%%
( bool
| int
| float ) { printf
( "Keyword\n"
) ; } [ 0 - 9 ] + ( \. [ 0 - 9 ] + ) ? { printf( "Constant\n") ; }
[ .,; '""]+ { printf("Punctuation Char\n"); }
[!@#$%^&*()]+ { printf("Special Char\n"); }
[a-zA-Z_][a-zA-Z0-9_]* { printf("Identifier\n"); }
[ \t\n]+ { /* ignore spaces, tabs, and newlines */ }
. { /* ignore any other characters */ }
%%
int yywrap() {
return 1;
}
int main() {
printf("Enter your code (Ctrl+D to stop):\n");
yylex(); // start lexical analysis
return 0;
}
JXsKI2luY2x1ZGUgPHN0ZGlvLmg+CmludCB5eXdyYXAoKTsgICAvLyBmdW5jdGlvbiBkZWNsYXJhdGlvbgolfQoKJSUKKGJvb2x8aW50fGZsb2F0KSAgICAgICAgICAgICAgICAgICB7IHByaW50ZigiS2V5d29yZFxuIik7IH0KWzAtOV0rKFwuWzAtOV0rKT8gICAgICAgICAgICAgICAgICB7IHByaW50ZigiQ29uc3RhbnRcbiIpOyB9ClsuLDsnIiJdKyAgICAgICAgICAgICAgICAgICAgICAgICAgeyBwcmludGYoIlB1bmN0dWF0aW9uIENoYXJcbiIpOyB9ClshQCMkJV4mKigpXSsgICAgICAgICAgICAgICAgICAgICAgeyBwcmludGYoIlNwZWNpYWwgQ2hhclxuIik7IH0KW2EtekEtWl9dW2EtekEtWjAtOV9dKiAgICAgICAgICAgICB7IHByaW50ZigiSWRlbnRpZmllclxuIik7IH0KWyBcdFxuXSsgICAgICAgICAgICAgICAgICAgICAgICAgICB7IC8qIGlnbm9yZSBzcGFjZXMsIHRhYnMsIGFuZCBuZXdsaW5lcyAqLyB9Ci4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAvKiBpZ25vcmUgYW55IG90aGVyIGNoYXJhY3RlcnMgKi8gfQolJQoKaW50IHl5d3JhcCgpIHsKICAgIHJldHVybiAxOwp9CgppbnQgbWFpbigpIHsKICAgIHByaW50ZigiRW50ZXIgeW91ciBjb2RlIChDdHJsK0QgdG8gc3RvcCk6XG4iKTsKICAgIHl5bGV4KCk7ICAgLy8gc3RhcnQgbGV4aWNhbCBhbmFseXNpcwogICAgcmV0dXJuIDA7Cn0K