%option noyywrap %option nounput %{ #include #include using namespace std; #include "izrazi.hpp" #include "naredbe.hpp" #include #include #include "parser.tab.hpp" %} %% "pocetak" return pocetak_token; "kraj" return kraj_token; "ispisi" return ispisi_token; "mod" return mod_token; [0-9]+ { yylval.vrednost = atoi(yytext); return num_token; } "0x"[0-9a-fA-F]+ { sscanf(yytext, "%x", &yylval.vrednost); return num_token; } [a-zA-Z]+ { int i; for (i = 0; i < strlen(yytext); i++) yytext[i] = tolower(yytext[i]); yylval.s = new string(yytext); return id_token; } ["][^"]*["] { yylval.s = new string(yytext); yylval.s->erase(0, 1); yylval.s->erase(yylval.s->size()-1, 1); return string_token; /* " */ } [().;+*/:=-] return *yytext; [ \n\t] { } . { cerr << "Neprepoznat karakter " << *yytext << endl; exit(EXIT_FAILURE); } %%