137 |
} |
} |
138 |
} |
} |
139 |
<CPP>^[ \t]*\#[ \t]*{WORD} { |
<CPP>^[ \t]*\#[ \t]*{WORD} { |
140 |
int i = 0; |
if ((last_directive = reserved_sharp(LEXTEXT, LINENO)) != 0) |
|
char *p; |
|
|
|
|
|
p = locatestring(LEXTEXT, " ", MATCH_LAST); |
|
|
|
|
|
if (!p) { |
|
|
p = LEXTEXT; |
|
|
i = LEXLENG; |
|
|
} else { |
|
|
static char buf[IDENTLEN]; |
|
|
|
|
|
p++; |
|
|
if (*p == '#') |
|
|
p++; |
|
|
buf[i++] = '#'; |
|
|
while (*p) { |
|
|
buf[i++] = *p++; |
|
|
if (i >= sizeof(buf)) |
|
|
die("Too long name '%s'.", LEXTEXT); |
|
|
} |
|
|
buf[i] = '\0'; |
|
|
p = buf; |
|
|
} |
|
|
if (i > 0 && (last_directive = reserved_sharp(p, i))) |
|
141 |
put_macro(LEXTEXT); |
put_macro(LEXTEXT); |
142 |
else { |
else { |
143 |
ECHO; |
ECHO; |
144 |
if (wflag) |
if (wflag) |
145 |
unknown_preprocessing_directive(p, LINENO); |
unknown_preprocessing_directive(LEXTEXT, LINENO); |
146 |
} |
} |
147 |
yy_push_state(PREPROCESSOR_LINE); |
yy_push_state(PREPROCESSOR_LINE); |
148 |
} |
} |