rlm@1: %{ rlm@1: #include "expr.cpp.h" rlm@1: rlm@1: #ifndef __GNUC__ rlm@1: #include rlm@1: #define isatty _isatty rlm@1: #endif rlm@1: rlm@1: char *exprString; rlm@1: int exprCol; rlm@1: rlm@1: #define YY_INPUT(buf,result,max_size) \ rlm@1: { \ rlm@1: int c = *exprString++; \ rlm@1: exprCol++;\ rlm@1: result = (c == 0) ? YY_NULL : (buf[0] = c, 1); \ rlm@1: } rlm@1: %} rlm@1: rlm@1: %option nomain rlm@1: %option noyywrap rlm@1: rlm@1: SIZEOF "sizeof" rlm@1: ID [a-zA-Z_][a-zA-Z0-9_]* rlm@1: NUM [0-9]+ rlm@1: DOT "." rlm@1: ARROW "->" rlm@1: STAR "*" rlm@1: ADDR "&" rlm@1: rlm@1: %% rlm@1: rlm@1: {SIZEOF} { rlm@1: return TOKEN_SIZEOF; rlm@1: } rlm@1: rlm@1: {ID} { rlm@1: return TOKEN_IDENTIFIER; rlm@1: } rlm@1: rlm@1: {NUM} { rlm@1: return TOKEN_NUMBER; rlm@1: } rlm@1: rlm@1: {DOT} { rlm@1: return TOKEN_DOT; rlm@1: } rlm@1: rlm@1: {ARROW} { rlm@1: return TOKEN_ARROW; rlm@1: } rlm@1: rlm@1: {ADDR} { rlm@1: return TOKEN_ADDR; rlm@1: } rlm@1: rlm@1: {STAR} { rlm@1: return TOKEN_STAR; rlm@1: } rlm@1: rlm@1: [ \t\n]+ rlm@1: rlm@1: . return *yytext; rlm@1: rlm@1: %% rlm@1: rlm@1: void exprCleanBuffer() rlm@1: { rlm@1: yy_delete_buffer(yy_current_buffer); rlm@1: yy_init = 1; rlm@1: }