%{
#include <stdio.h>
%}
digit ([0-9])
letter ([a-zA-Z])
id {letter}({letter}|{digit})*
num ([0-9]+)
keywords
(if
|else
|while
|and
|or
|print
|elif
|char
|float)punctuation (["(" | ")" | "{" , "}" | ";" | ","])
operators ([+*/-=^])
%%
{id} {printf("<ID, %s>\n", yytext);}
{keywords} {printf("<Keywords, %s>\n", yytext);}
{punctuation} {printf("<Punctuators, %s>\n", yytext);}
{operators} {printf("Operators, %s>\n", yytext);}
%%
int main()
{
yylex();
return 0;
}
int yywrap()
{
return 1;
}
JXsKI2luY2x1ZGUgPHN0ZGlvLmg+CiV9CmRpZ2l0IChbMC05XSkKbGV0dGVyIChbYS16QS1aXSkKaWQge2xldHRlcn0oe2xldHRlcn18e2RpZ2l0fSkqCm51bSAoWzAtOV0rKQprZXl3b3JkcyAoaWZ8ZWxzZXx3aGlsZXxhbmR8b3J8cHJpbnR8ZWxpZnxjaGFyfGZsb2F0KQpwdW5jdHVhdGlvbiAoWyIoIiB8ICIpIiB8ICJ7IiAsICJ9IiB8ICI7IiB8ICIsIl0pCm9wZXJhdG9ycyAoWysqLy09Xl0pCgolJQp7aWR9IHtwcmludGYoIjxJRCwgJXM+XG4iLCB5eXRleHQpO30Ke2tleXdvcmRzfSB7cHJpbnRmKCI8S2V5d29yZHMsICVzPlxuIiwgeXl0ZXh0KTt9CntwdW5jdHVhdGlvbn0ge3ByaW50ZigiPFB1bmN0dWF0b3JzLCAlcz5cbiIsIHl5dGV4dCk7fQp7b3BlcmF0b3JzfSB7cHJpbnRmKCJPcGVyYXRvcnMsICVzPlxuIiwgeXl0ZXh0KTt9CiUlCmludCBtYWluKCkKewp5eWxleCgpOwpyZXR1cm4gMDsKfQppbnQgeXl3cmFwKCkKewpyZXR1cm4gMTsKfQ==