%{ #include #include "calc-int-loc.tab.h" extern YYLTYPE yylloc; #define YY_USER_INIT { \ yylloc.first_line = 1; yylloc.first_column = 0; \ yylloc.last_line = 1; yylloc.last_column = 0; \ } #define YY_USER_ACTION { \ yylloc.first_column = yylloc.last_column+1; \ yylloc.last_column += yyleng; \ } %} %option noyywrap DIGIT [0-9] %% {DIGIT}+ { yylval = atoi(yytext); return NUMBER; } "=" | "(" | ")" | "+" | "-" | "*" | "/" { return *yytext; } [ \t] { /* ignoriere Whitespace */ } \n { /* ignoriere Whitespace, setze Position in nächste Zeile */ yylloc.first_line++; yylloc.first_column = 0; yylloc.last_line++; yylloc.last_column = 0; } . { return ILLEGAL_CHAR; }