/* Muscle table manager for Bison.
- Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software
- Foundation, Inc.
+ Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free
+ Software Foundation, Inc.
This file is part of Bison, the GNU Compiler Compiler.
/* Version and input file. */
MUSCLE_INSERT_STRING ("version", VERSION);
- MUSCLE_INSERT_C_STRING ("file_name", grammar_file);
}
{
location loc;
MUSCLE_INSERT_STRING (name, value);
- loc.start.file = loc.end.file = "[Bison:muscle_percent_define_default]";
- loc.start.line = loc.end.line = 1;
- loc.start.column = loc.end.column = 0;
+ loc.start.file = loc.end.file = "<default value>";
+ loc.start.line = loc.end.line = -1;
+ loc.start.column = loc.end.column = -1;
muscle_insert (loc_name, "");
muscle_location_grow (loc_name, loc);
muscle_insert (syncline_name, "");
- muscle_syncline_grow (syncline_name, loc);
}
}
{
for (; *values; ++values)
{
- char const *variable = *values;
+ char const * const *variablep = values;
char const *name;
char *value;
- MUSCLE_USER_NAME_CONVERT (name, "percent_define(", variable, ")");
+ MUSCLE_USER_NAME_CONVERT (name, "percent_define(", *variablep, ")");
value = muscle_string_decode (name);
if (value)
{
- bool valid = false;
for (++values; *values; ++values)
{
if (0 == strcmp (value, *values))
- {
- valid = true;
- while (*values)
- ++values;
- break;
- }
+ break;
+ }
+ if (!*values)
+ {
+ location loc = muscle_percent_define_get_loc (*variablep);
+ complain_at(loc,
+ _("invalid value for %%define variable `%s': `%s'"),
+ *variablep, value);
+ for (values = variablep + 1; *values; ++values)
+ complain_at (loc, _("accepted value: `%s'"), *values);
+ }
+ else
+ {
+ while (*values)
+ ++values;
}
- if (!valid)
- complain_at(muscle_percent_define_get_loc (variable),
- _("invalid value for %%define variable `%s': `%s'"),
- variable, value);
free (value);
}
else
- fatal(_("undefined %%define variable `%s' passed to muscle_percent_define_check_values"),
- variable);
+ fatal(_("undefined %%define variable `%s' passed to"
+ " muscle_percent_define_check_values"),
+ *variablep);
}
}