%{ #include "string.h" #include "y.tab.h" %} %% "program" return(Program); "poczatek" return(Poczatek); "koniec" return(Koniec); "tablica" return(Tablica); "jesli" return(Jesli); "to" return(To); "przeciwnie" return(Przeciwnie); "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); "prawda" return(Prawda); "lsz" return(Falsz); "i" return(I); "lub" return(Lub); "nie" return(Nie); [a-zA-Z][a-zA-Z0-9]* {yyLval.t=strdup(yytext); return(Id);} 0|[1-9][0-9]*.(0|[0-9]*[1-9])(e|E)("+"|"-")?(0|[1-9][0-9]*) {yylval.t=strdup(yytext); return(Rzeczywista); 0|[1-9][0-9]* {yylval.t=strdup(yytext); return(Calkowita);} [ nt] ; ":=" return(Przypisz); "><" return(Rozne); "<=" return(MniejszeRowne); ">=" return(WiekszeRowne); [=+-*:;.()][] return(yytext[0]); . {printf("Blad leksykalny %c", yytext[0]); yyterminate();}