%{
#include <stdio.h>
#include <stdlib.h>
#include "y.tab.h"
%}
/* Definitions */
DIGIT [0-9]
LETTER [a-zA-Z]
IDENTIFIER {LETTER}({LETTER}|{DIGIT})*
STRING \"([^\"]*)\"
KEYWORDS "if"|"else"|"while"|"return"|"int"|"float"|"char"|"double"
%%
{STRING} { printf("String: %s\n", yytext); }
{KEYWORDS} { printf("Keyword: %s\n", yytext); }
{NUMBER} { printf
("Constant
: %s\n", yytext); } {IDENTIFIER} { printf("Identifier: %s\n", yytext); }
"\'". "\'" { printf("Literal: %s\n", yytext); }
[ \t\n]+ ; /* Ignore whitespace */
. { printf("Unknown character: %s\n", yytext); }
%%
int main() {
yylex();
return 0;
}
int yywrap() {
return 1;
}
JXsKI2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgInkudGFiLmgiCiV9CgovKiBEZWZpbml0aW9ucyAqLwpESUdJVCAgICAgIFswLTldCkxFVFRFUiAgICAgW2EtekEtWl0KSURFTlRJRklFUiB7TEVUVEVSfSh7TEVUVEVSfXx7RElHSVR9KSoKTlVNQkVSICAgICB7RElHSVR9KwpTVFJJTkcgICAgIFwiKFteXCJdKilcIgpLRVlXT1JEUyAgICJpZiJ8ImVsc2UifCJ3aGlsZSJ8InJldHVybiJ8ImludCJ8ImZsb2F0InwiY2hhciJ8ImRvdWJsZSIKCiUlCgp7U1RSSU5HfSAgICB7IHByaW50ZigiU3RyaW5nOiAlc1xuIiwgeXl0ZXh0KTsgfQp7S0VZV09SRFN9ICAgeyBwcmludGYoIktleXdvcmQ6ICVzXG4iLCB5eXRleHQpOyB9CntOVU1CRVJ9ICAgICB7IHByaW50ZigiQ29uc3RhbnQ6ICVzXG4iLCB5eXRleHQpOyB9CntJREVOVElGSUVSfSB7IHByaW50ZigiSWRlbnRpZmllcjogJXNcbiIsIHl5dGV4dCk7IH0KIlwnIi4gIlwnIiB7IHByaW50ZigiTGl0ZXJhbDogJXNcbiIsIHl5dGV4dCk7IH0KClsgXHRcbl0rICAgIDsgIC8qIElnbm9yZSB3aGl0ZXNwYWNlICovCi4gICAgICAgICAgIHsgcHJpbnRmKCJVbmtub3duIGNoYXJhY3RlcjogJXNcbiIsIHl5dGV4dCk7IH0KCiUlCgppbnQgbWFpbigpIHsKICAgIHl5bGV4KCk7CiAgICByZXR1cm4gMDsKfQoKaW50IHl5d3JhcCgpIHsKICAgIHJldHVybiAxOwp9Cg==