%{
#include < stdio. h>
%}
%%
"auto"| "break"| "case"| "char"| "const"| "continue"| "default"| "do"| "double"| "else"| "enum"| "extern"| "float"| "for"| "goto"| "if"| "inline"| "int"| "long"| "register"| "restrict"| "return"| "short"| "signed"| "sizeof"| "static"| "struct"| "switch"| "typedef"| "union"| "unsigned"| "void"| "volatile"| "while" { printf( "Keyword: %s\n", yytext); }
[ a- zA- Z_] [ a- zA- Z0- 9 _] * { printf( "Identifier: %s\n", yytext); }
[ 0 - 9 ] + { printf
( "
Integer Literal
: %s\n", yytext); } [ 0 - 9 ] + "
. "
[ 0 - 9 ] + { printf
( "
Float Literal
: %s\n", yytext); } \"( \\. | [ ^\\"] ) * \" { printf( "String Literal: %s\n", yytext); }
\'.\' { printf( "Character Literal: %s\n", yytext); }
"== "| "! = "| "<= "| ">= "| "< "| "> " { printf( "Relational Operator: %s\n", yytext); }
"= "| "+ "| "- "| "* "| "/ "| "%" { printf("Arithmetic Operator: %s\n", yytext); }
"&& "| "|| "| "! " { printf( "Logical Operator: %s\n", yytext); }
"& "| "| "| "^"| "<< "| ">> " { printf( "Bitwise Operator: %s\n", yytext); }
"( " | ") " | "{ " | "} " | "[ " | "] " | "; " | ", " { printf( "Special Symbol: %s\n", yytext); }
"// ". * { printf( "Single- line Comment\n") ; }
"/*"([^*]|[\r\n]|"*"[^/])*"*/ " { printf( "Multi- line Comment\n") ; }
[ \t\n] + /* Ignore whitespace */
. { printf( "Unknown Token: %s\n", yytext); }
%%
int main( ) {
yylex( ) ;
return 0 ;
}
int yywrap( ) {
return 1 ;
}
JXsKI2luY2x1ZGUgPHN0ZGlvLmg+CiV9CgolJQoKImF1dG8ifCJicmVhayJ8ImNhc2UifCJjaGFyInwiY29uc3QifCJjb250aW51ZSJ8ImRlZmF1bHQifCJkbyJ8ImRvdWJsZSJ8ImVsc2UifCJlbnVtInwiZXh0ZXJuInwiZmxvYXQifCJmb3IifCJnb3RvInwiaWYifCJpbmxpbmUifCJpbnQifCJsb25nInwicmVnaXN0ZXIifCJyZXN0cmljdCJ8InJldHVybiJ8InNob3J0Inwic2lnbmVkInwic2l6ZW9mInwic3RhdGljInwic3RydWN0Inwic3dpdGNoInwidHlwZWRlZiJ8InVuaW9uInwidW5zaWduZWQifCJ2b2lkInwidm9sYXRpbGUifCJ3aGlsZSIgIHsgcHJpbnRmKCJLZXl3b3JkOiAlc1xuIiwgeXl0ZXh0KTsgfQoKW2EtekEtWl9dW2EtekEtWjAtOV9dKiAgeyBwcmludGYoIklkZW50aWZpZXI6ICVzXG4iLCB5eXRleHQpOyB9CgpbMC05XSsgICAgICAgICAgICAgICAgICB7IHByaW50ZigiSW50ZWdlciBMaXRlcmFsOiAlc1xuIiwgeXl0ZXh0KTsgfQpbMC05XSsiLiJbMC05XSsgICAgICAgICB7IHByaW50ZigiRmxvYXQgTGl0ZXJhbDogJXNcbiIsIHl5dGV4dCk7IH0KXCIoXFwufFteXFwiXSkqXCIgICAgICAgeyBwcmludGYoIlN0cmluZyBMaXRlcmFsOiAlc1xuIiwgeXl0ZXh0KTsgfQpcJy5cJyAgICAgICAgICAgICAgICAgICB7IHByaW50ZigiQ2hhcmFjdGVyIExpdGVyYWw6ICVzXG4iLCB5eXRleHQpOyB9CgoiPT0ifCIhPSJ8Ijw9InwiPj0ifCI8InwiPiIgeyBwcmludGYoIlJlbGF0aW9uYWwgT3BlcmF0b3I6ICVzXG4iLCB5eXRleHQpOyB9CiI9InwiKyJ8Ii0ifCIqInwiLyJ8IiUiICAgICB7IHByaW50ZigiQXJpdGhtZXRpYyBPcGVyYXRvcjogJXNcbiIsIHl5dGV4dCk7IH0KIiYmInwifHwifCIhIiAgICAgICAgICAgICAgeyBwcmludGYoIkxvZ2ljYWwgT3BlcmF0b3I6ICVzXG4iLCB5eXRleHQpOyB9CiImInwifCJ8Il4ifCI8PCJ8Ij4+IiAgICAgIHsgcHJpbnRmKCJCaXR3aXNlIE9wZXJhdG9yOiAlc1xuIiwgeXl0ZXh0KTsgfQoKIigiIHwgIikiIHwgInsiIHwgIn0iIHwgIlsiIHwgIl0iIHwgIjsiIHwgIiwiICB7IHByaW50ZigiU3BlY2lhbCBTeW1ib2w6ICVzXG4iLCB5eXRleHQpOyB9CgoiLy8iLiogICAgICAgICAgICAgICAgICAgeyBwcmludGYoIlNpbmdsZS1saW5lIENvbW1lbnRcbiIpOyB9CiIvKiIoW14qXXxbXHJcbl18IioiW14vXSkqIiovIiAgeyBwcmludGYoIk11bHRpLWxpbmUgQ29tbWVudFxuIik7IH0KClsgXHRcbl0rICAgICAgICAgICAgICAgICAvKiBJZ25vcmUgd2hpdGVzcGFjZSAqLwoKLiAgICAgICAgICAgICAgICAgICAgICAgIHsgcHJpbnRmKCJVbmtub3duIFRva2VuOiAlc1xuIiwgeXl0ZXh0KTsgfQoKJSUKCmludCBtYWluKCkgewogICAgeXlsZXgoKTsKICAgIHJldHVybiAwOwp9CgppbnQgeXl3cmFwKCkgewogICAgcmV0dXJuIDE7Cn0=