lex_by_file( FileName ) :-
get_input_from_file( FileName, TokenList ),
lex( TokenList, OutputList ),
%write_output( OutputList ), !.
maplist(writeln,OutputList),!.
%{
#include <stdio.h>
%}
%%
if|else|while|int|switch|for|char { printf("%s : keyword\n", yytext); }
[0-9]+ { printf("%s : number\n", yytext); }
[a-zA-Z_][a-zA-Z0-9_]* { printf("%s : identifier\n", yytext); }
[ \t\n]+ { /* Ignore whitespace */ }
. { printf("%s : invalid\n", yytext); }
%%
int main() {
yylex();
return 0;
}
int yywrap() {
return 1;
}
bGV4X2J5X2ZpbGUoIEZpbGVOYW1lICkgOi0KCWdldF9pbnB1dF9mcm9tX2ZpbGUoIEZpbGVOYW1lLCBUb2tlbkxpc3QgKSwKCWxleCggVG9rZW5MaXN0LCBPdXRwdXRMaXN0ICksCgkld3JpdGVfb3V0cHV0KCBPdXRwdXRMaXN0ICksICEuCgltYXBsaXN0KHdyaXRlbG4sT3V0cHV0TGlzdCksIS4KCiV7CiNpbmNsdWRlIDxzdGRpby5oPgolfQoKJSUKaWZ8ZWxzZXx3aGlsZXxpbnR8c3dpdGNofGZvcnxjaGFyIHsgcHJpbnRmKCIlcyA6IGtleXdvcmRcbiIsIHl5dGV4dCk7IH0KWzAtOV0rICAgICAgICAgICAgICAgICAgICAgICAgICB7IHByaW50ZigiJXMgOiBudW1iZXJcbiIsIHl5dGV4dCk7IH0KW2EtekEtWl9dW2EtekEtWjAtOV9dKiAgICAgICAgICB7IHByaW50ZigiJXMgOiBpZGVudGlmaWVyXG4iLCB5eXRleHQpOyB9ClsgXHRcbl0rICAgICAgICAgICAgICAgICAgICAgICAgeyAvKiBJZ25vcmUgd2hpdGVzcGFjZSAqLyB9Ci4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBwcmludGYoIiVzIDogaW52YWxpZFxuIiwgeXl0ZXh0KTsgfQolJQoKaW50IG1haW4oKSB7CiAgICB5eWxleCgpOwogICAgcmV0dXJuIDA7Cn0KCmludCB5eXdyYXAoKSB7CiAgICByZXR1cm4gMTsKfQoK