%option noyywrap
%option nounput
%{
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
unsigned int cnt = 0;
%}
INT [0-9]+
FLOAT ([0-9]*\
.[0-9]+)|([0-9]+\
.[0-9]*) SSTR \'[^\'\n]+\'
DSTR \"[^\"\n]+\"
VAR [A-Za-z_][A-Za-z0-9_]*
%%
{FLOAT} { printf("%s FLOAT\n", yytext); }
{INT} { printf("%s INTEGER\n", yytext); }
{SSTR} { printf("%s STRING\n", yytext); }
{DSTR} { printf("%s STRING\n", yytext); }
{VAR} { printf("%s VARIABLE\n", yytext); }
/* whitespace */
[ \t]+ { /* ignore */ }
/* catch-all: consume one char to avoid infinite loops */
.|\n { /* ignore invalid char/line */ }
%%
int main(void) {
yylex();
return 0;
}
/*
//3.in 2.in
// SP [ \t]*
// ^{SP}{FLOAT}{SP}\n?
*/
JW9wdGlvbiBub3l5d3JhcAolb3B0aW9uIG5vdW5wdXQKCiV7CiNpbmNsdWRlIDxzdGRpby5oPgojaW5jbHVkZSA8c3RkbGliLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KdW5zaWduZWQgaW50IGNudCA9IDA7CiV9CgoKSU5UICAgICAgWzAtOV0rCkZMT0FUICAgIChbMC05XSpcLlswLTldKyl8KFswLTldK1wuWzAtOV0qKQpTU1RSICAgICBcJ1teXCdcbl0rXCcKRFNUUiAgICAgXCJbXlwiXG5dK1wiClZBUiAgICAgIFtBLVphLXpfXVtBLVphLXowLTlfXSoKCiUlCgp7RkxPQVR9ICB7IHByaW50ZigiJXMgRkxPQVRcbiIsIHl5dGV4dCk7IH0Ke0lOVH0gICAgeyBwcmludGYoIiVzIElOVEVHRVJcbiIsIHl5dGV4dCk7IH0Ke1NTVFJ9ICAgeyBwcmludGYoIiVzIFNUUklOR1xuIiwgeXl0ZXh0KTsgfQp7RFNUUn0gICB7IHByaW50ZigiJXMgU1RSSU5HXG4iLCB5eXRleHQpOyB9CntWQVJ9ICAgIHsgcHJpbnRmKCIlcyBWQVJJQUJMRVxuIiwgeXl0ZXh0KTsgfQoKLyogd2hpdGVzcGFjZSAqLwpbIFx0XSsgICB7IC8qIGlnbm9yZSAqLyB9CgovKiBjYXRjaC1hbGw6IGNvbnN1bWUgb25lIGNoYXIgdG8gYXZvaWQgaW5maW5pdGUgbG9vcHMgKi8KLnxcbiAgICAgeyAvKiBpZ25vcmUgaW52YWxpZCBjaGFyL2xpbmUgKi8gfQoKJSUKCmludCBtYWluKHZvaWQpIHsKICAgIHl5bGV4KCk7CiAgICByZXR1cm4gMDsKfQoKLyogCi8vMy5pbiAyLmluCi8vICBTUCAgICAgIFsgXHRdKgovLyAgXntTUH17RkxPQVR9e1NQfVxuPwoqLwo=