%option noyywrap %option nounput %{ #include #include using namespace std; #include "syn_tree.hpp" #include #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 << "Neprepoznat karakter '" << *yytext << "'" << endl; exit(EXIT_FAILURE); } %%