break;
default:
- lex_error (lexer, NULL);
+ {
+ struct string s = DS_EMPTY_INITIALIZER;
+ for (size_t i = 0; i < n; i++)
+ {
+ if (i > 0)
+ ds_put_cstr (&s, ", ");
+ ds_put_cstr (&s, options[i]);
+ }
+ lex_error (lexer, _("expecting one of the following: %s"),
+ ds_cstr (&s));
+ ds_destroy (&s);
+ }
+ break;
}
}
static bool
lex_source_contains_macro_call (struct lex_source *src, int n0, int n1)
{
- for (size_t i = n0; i <= n1; i++)
+ for (int i = n0; i <= n1; i++)
if (lex_source_next__ (src, i)->macro_rep)
return true;
return false;