65 |
ALPHANUM [a-zA-Z_\x80-\xff0-9] |
ALPHANUM [a-zA-Z_\x80-\xff0-9] |
66 |
WORD {ALPHA}{ALPHANUM}* |
WORD {ALPHA}{ALPHANUM}* |
67 |
|
|
68 |
%x COMMENT LINE_COMMENT STRING LITERAL |
%x C_COMMENT CPP_COMMENT STRING LITERAL |
69 |
%s PREPROCESSOR_LINE |
%s PREPROCESSOR_LINE |
70 |
|
|
71 |
%option 8bit yylineno stack noyywrap noyy_top_state prefix="asm" |
%option 8bit yylineno stack noyywrap noyy_top_state prefix="asm" |
76 |
[ \f\t\v]+ |
[ \f\t\v]+ |
77 |
|
|
78 |
/* C style comment */ |
/* C style comment */ |
79 |
"/*" { yy_push_state(COMMENT); } |
"/*" { yy_push_state(C_COMMENT); } |
80 |
<COMMENT>{ |
<C_COMMENT>{ |
81 |
[^*\n]* |
[^*\n]* |
82 |
[^*\n]*\n |
[^*\n]*\n |
83 |
"*"+[^*/\n]* |
"*"+[^*/\n]* |
91 |
} |
} |
92 |
|
|
93 |
/* C++ style line comment */ |
/* C++ style line comment */ |
94 |
"//" { yy_push_state(LINE_COMMENT); } |
"//" { yy_push_state(CPP_COMMENT); } |
95 |
<LINE_COMMENT>{ |
<CPP_COMMENT>{ |
96 |
(\\.|[^\\\n])+ |
(\\.|[^\\\n])+ |
97 |
\\\n |
\\\n |
98 |
\n { yy_pop_state(); unput('\n'); } |
\n { yy_pop_state(); unput('\n'); } |
127 |
yy_push_state(PREPROCESSOR_LINE); |
yy_push_state(PREPROCESSOR_LINE); |
128 |
return ASM_DIRECTIVE; |
return ASM_DIRECTIVE; |
129 |
} else { |
} else { |
130 |
yy_push_state(LINE_COMMENT); |
yy_push_state(CPP_COMMENT); |
131 |
} |
} |
132 |
} |
} |
133 |
^[ \t]*\# { yy_push_state(PREPROCESSOR_LINE); return ASM_DIRECTIVE; } |
^[ \t]*\# { yy_push_state(PREPROCESSOR_LINE); return ASM_DIRECTIVE; } |