{WS}+ { update_lineinfo(); /* whitespace */ }
{NEWLINE} { cur_lineinfo.lineno++; update_lineinfo(); }
-;.*$ { update_lineinfo(); /* comment */ }
^{WS}*"%"{WS}*arch { update_lineinfo(); return ASM_ARCH; }
^{WS}*"%"{WS}*start { update_lineinfo(); return ASM_START; }
lr/[0-3] { update_lineinfo(); return LR; }
, { update_lineinfo(); return COMMA; }
+; { update_lineinfo(); return SEMICOLON; }
\[ { update_lineinfo(); return BRACK_OPEN; }
\] { update_lineinfo(); return BRACK_CLOSE; }
\( { update_lineinfo(); return PAREN_OPEN; }
%%
struct lineinfo cur_lineinfo;
+//FIXME The linenumber sometimes is wrong.
static void interpret_cppinfo(const char *str)
{
memset(tmp, 0, sizeof(tmp));
memcpy(tmp, str, min(sizeof(tmp) - 1,
(int)(found - str)));
- cur_lineinfo.lineno = strtoul(tmp, NULL, 10);
+ cur_lineinfo.lineno = strtoul(tmp, NULL, 10) - 1;
str = found;
str++;