%option noyywrap
%{
#include<stdio.h>
%}
ws [ \t]+
string \"[^\n"]+\"
digits [0-9]
letter [a-zA-Z]
alphanum [a-zA-Z0-9]
operator [+|-|*|/|%|=]
%%
{ws} /* skip blanks and tabs */
(int
|char
|float|double
|if
|for
) printf
("\n keyword
: %s ", yytext); {digits
}*\
.{digits
}+ printf
("\n
float number: %s ", yytext); (-|\+)*{digits
}+ printf
("\n int
number: %s ", yytext); {letter}(_|{alphanum})* printf("\n identifer: %s ", yytext);
{string} printf("\n string: %s ",yytext);
{operator} printf("\n operator: %s ",yytext);
'.' printf("\n character: %s ", yytext);
. {
printf("\n Special symbols: %s ", yytext);
}
%%
int main()
{
printf("\n Enter input program:");
yylex();
return 0;
}
JW9wdGlvbiBub3l5d3JhcAolewojaW5jbHVkZTxzdGRpby5oPgolfQp3cyBbIFx0XSsKc3RyaW5nIFwiW15cbiJdK1wiCmRpZ2l0cyBbMC05XQpsZXR0ZXIgW2EtekEtWl0KYWxwaGFudW0gW2EtekEtWjAtOV0Kb3BlcmF0b3IgWyt8LXwqfC98JXw9XQolJQp7d3N9IC8qIHNraXAgYmxhbmtzIGFuZCB0YWJzICovCihpbnR8Y2hhcnxmbG9hdHxkb3VibGV8aWZ8Zm9yKSBwcmludGYoIlxuIGtleXdvcmQ6ICVzICIsIHl5dGV4dCk7CntkaWdpdHN9Klwue2RpZ2l0c30rIHByaW50ZigiXG4gZmxvYXQgbnVtYmVyOiAlcyAiLCB5eXRleHQpOwooLXxcKykqe2RpZ2l0c30rIHByaW50ZigiXG4gaW50IG51bWJlcjogJXMgIiwgeXl0ZXh0KTsKe2xldHRlcn0oX3x7YWxwaGFudW19KSogcHJpbnRmKCJcbiBpZGVudGlmZXI6ICVzICIsIHl5dGV4dCk7CntzdHJpbmd9IHByaW50ZigiXG4gc3RyaW5nOiAlcyAiLHl5dGV4dCk7CntvcGVyYXRvcn0gcHJpbnRmKCJcbiBvcGVyYXRvcjogJXMgIix5eXRleHQpOwonLicgcHJpbnRmKCJcbiBjaGFyYWN0ZXI6ICVzICIsIHl5dGV4dCk7Ci4gewoKcHJpbnRmKCJcbiBTcGVjaWFsIHN5bWJvbHM6ICVzICIsIHl5dGV4dCk7Cn0KCiUlCmludCBtYWluKCkKewpwcmludGYoIlxuIEVudGVyIGlucHV0IHByb2dyYW06Iik7Cnl5bGV4KCk7CnJldHVybiAwOwp9