%{
#include"string.h"
#define Program 1
#define Poczatek 2
#define Koniec 3
#define Tablica 4
#define Jesli 5
#define To 6
#define Przeciwne 7
#define Ilsej 8
#define Dopoki 9
#define Wykonuj 10
#define Ikopod 11
#define Czytaj 12
#define Drukuj 13
#define Calkowite 14
#define Rzeczywiste 15
#define Boolowskie 16
#define Nie 17
#define Lub 18
#define I 19
#define Prawda 20
#define Falsz 21
#define ID 22
#define NUM_R 23
#define NUM_C 24
#define Przypisz 25
#define MR 26
#define WR 27
#define R 28
%}
litera [a-zA-Z]
cyfra [0-9]
%%
program return(Program);
poczatek return(Poczatek);
koniec return(Koniec);
tablica return(Tablica);
jesli return(Jesli);
to return(To);
przeciwne return(Przeciwne);
ilsej return(Ilsej);
dopoki return(Dopoki);
wykonuj return(Wykonuj);
ikopod return(Ikopod);
czytaj return(Czytaj);
drukuj return(Drukuj);
calkowite return(Calkowite);
rzeczywiste return(Rzeczywiste);
boolowskie return(Boolowskie);
nie return(Nie);
lub return(Lub);
i return(I);
prawda return(Prawda);
falsz return(Falsz);
{litera}({litera}|{cyfra})*{printf("%s ",yytext); return(ID);}
(0|[1-9]{cyfra}*)\.({cyfra}*[1-9]|0)([eE][-+]?(0|[1-9]{cyfra}*))?{printf("%s ",yytext); return(NUM_R);}
(0|[1-9]{cyfra}*)([eE][-+]?(0|[1-9]{cyfra}*))?{printf("%s ",yytext); return(NUM_C);}
":=" return(Przypisz);
"<=" return(MR);
">=" return(WR);
"<>" return(R);
[-+*/:=<>;()\[\].] printf("%c",yytext[0]);
.{printf("Blad leksykalny %c\n",yytext[0]); yyterminate();}
[ ]+ ;
[\n\t];
%%
void main(){int tak;
while(1){tok=yylex();
printf("%d\n",tok);}}
{"html5":"htmlmixed","css":"css","javascript":"javascript","php":"php","python":"python","ruby":"ruby","lua":"text\/x-lua","bash":"text\/x-sh","go":"go","c":"text\/x-csrc","cpp":"text\/x-c++src","diff":"diff","latex":"stex","sql":"sql","xml":"xml","apl":"apl","asterisk":"asterisk","c_loadrunner":"text\/x-csrc","c_mac":"text\/x-csrc","coffeescript":"text\/x-coffeescript","csharp":"text\/x-csharp","d":"d","ecmascript":"javascript","erlang":"erlang","groovy":"text\/x-groovy","haskell":"text\/x-haskell","haxe":"text\/x-haxe","html4strict":"htmlmixed","java":"text\/x-java","java5":"text\/x-java","jquery":"javascript","mirc":"mirc","mysql":"sql","ocaml":"text\/x-ocaml","pascal":"text\/x-pascal","perl":"perl","perl6":"perl","plsql":"sql","properties":"text\/x-properties","q":"text\/x-q","scala":"scala","scheme":"text\/x-scheme","tcl":"text\/x-tcl","vb":"text\/x-vb","verilog":"text\/x-verilog","yaml":"text\/x-yaml","z80":"text\/x-z80"}