%option noyywrap %option nounput %{ #include #include #include #include "syn_tree.hpp" using namespace std; #include "parser.tab.hpp" %} %% "begin" return begin_token; "end" return end_token; "print" return print_token; "while" return while_token; "do" return do_token; "if" return if_token; "then" return then_token; "else" return else_token; [a-zA-Z_]+ { yylval.s = new string(yytext); return id_token; } [0-9]+ { yylval.i = atoi(yytext); return num_token; } [-+*/:=;.()<>] return *yytext; [ \t\n] { } . { cerr << "Leksicka greska: neprepoznat karakter " << *yytext << endl; exit(EXIT_FAILURE); } %%