don't error on non-EOL EOF at the end of a macro line

This commit is contained in:
Wolfgang (Blub) Bumiller 2012-11-16 22:41:29 +01:00
parent 0ad2b8b2c7
commit d237ff1736

View file

@ -262,7 +262,8 @@ static bool ftepp_define_body(ftepp_t *ftepp, ppmacro *macro)
vec_push(macro->output, ptok);
ftepp_next(ftepp);
}
if (ftepp->token != TOKEN_EOL) {
/* recursive expansion can cause EOFs here */
if (ftepp->token != TOKEN_EOL && ftepp->token != TOKEN_EOF) {
ftepp_error(ftepp, "unexpected junk after macro or unexpected end of file");
return false;
}
@ -444,7 +445,9 @@ static bool ftepp_macro_expand(ftepp_t *ftepp, ppmacro *macro, macroparam *param
}
vec_push(ftepp->output, 0);
/* Now run the preprocessor recursively on this string buffer */
/*
printf("__________\n%s\n=========\n", ftepp->output);
*/
inlex = lex_open_string(ftepp->output, vec_size(ftepp->output)-1, ftepp->lex->name);
if (!inlex) {
ftepp_error(ftepp, "internal error: failed to instantiate lexer");