6 #define YY_USER_ACTION \
7 yylloc.first_line = yylloc.last_line; \
8 yylloc.first_column = yylloc.last_column; \
9 for(int i = 0; yytext[i] != '\0'; i++) { \
10 if(yytext[i] == '\n') { \
12 yylloc.last_column = 0; \
15 yylloc.last_column++; \
29 \/\* BEGIN(IN_COMMENT);
36 true { yylval.expr = expr_bool(true); return BOOL; }
37 false { yylval.expr = expr_bool(false); return BOOL; }
72 yylval.expr = expr_string(yytext); return STRING; }
73 '([^\\']|\\['0\\abtnvfr]|\\x[0-9a-fA-F][0-9a-fA-F])' {
74 yylval.expr = expr_char(yytext); return CHAR; }
76 yylval.expr = expr_int(atoi(yytext)); return INTEGER; }
77 [_a-zA-Z][_a-zA-Z0-9]* {
78 yylval.ident = safe_strdup(yytext); return IDENT; }