mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-23 11:13:03 +00:00
* src/muscle_tab.c (muscle_percent_define_invalid_value): Replace
with... (muscle_percent_define_check_values): ... this more helpful function. Again, it's not used yet, but it will be. * src/muscle_tab.h: Likewise.
This commit is contained in:
@@ -1,3 +1,11 @@
|
|||||||
|
2007-05-29 Joel E. Denny <jdenny@ces.clemson.edu>
|
||||||
|
|
||||||
|
* src/muscle_tab.c (muscle_percent_define_invalid_value): Replace
|
||||||
|
with...
|
||||||
|
(muscle_percent_define_check_values): ... this more helpful function.
|
||||||
|
Again, it's not used yet, but it will be.
|
||||||
|
* src/muscle_tab.h: Likewise.
|
||||||
|
|
||||||
2007-05-28 Joel E. Denny <jdenny@ces.clemson.edu>
|
2007-05-28 Joel E. Denny <jdenny@ces.clemson.edu>
|
||||||
|
|
||||||
* src/lalr.c (state_lookahead_tokens_count): For code readability,
|
* src/lalr.c (state_lookahead_tokens_count): For code readability,
|
||||||
|
|||||||
@@ -507,14 +507,43 @@ muscle_percent_define_default (char const *variable, char const *value)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
muscle_percent_define_invalid_value (char const *variable)
|
muscle_percent_define_check_values (char const * const *values)
|
||||||
{
|
{
|
||||||
char const *loc_name;
|
for (; *values; ++values)
|
||||||
MUSCLE_USER_NAME_CONVERT (loc_name, "percent_define_loc(", variable, ")");
|
{
|
||||||
complain_at(muscle_location_decode (loc_name),
|
char const *variable = *values;
|
||||||
_("invalid value for %%define variable `%s'"), variable);
|
char const *name;
|
||||||
}
|
char const *loc_name;
|
||||||
|
char *value;
|
||||||
|
|
||||||
|
MUSCLE_USER_NAME_CONVERT (name, "percent_define(", variable, ")");
|
||||||
|
MUSCLE_USER_NAME_CONVERT (loc_name, "percent_define_loc(", variable, ")");
|
||||||
|
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!valid)
|
||||||
|
complain_at(muscle_location_decode (loc_name),
|
||||||
|
_("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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
muscle_percent_code_grow (char const *qualifier, location qualifier_loc,
|
muscle_percent_code_grow (char const *qualifier, location qualifier_loc,
|
||||||
|
|||||||
@@ -158,9 +158,16 @@ bool muscle_percent_define_flag_if (char const *variable);
|
|||||||
suspect that the value has yet influenced the output. */
|
suspect that the value has yet influenced the output. */
|
||||||
void muscle_percent_define_default (char const *variable, char const *value);
|
void muscle_percent_define_default (char const *variable, char const *value);
|
||||||
|
|
||||||
/* Complain that the value set for the %define variable VARIABLE is
|
/* VALUES points to a sequence of strings that is partitioned into
|
||||||
invalid. */
|
subsequences by NULL's, one terminating each subsequence. The last
|
||||||
void muscle_percent_define_invalid_value (char const *variable);
|
subsequence is followed by a second NULL. For each subsequence, the first
|
||||||
|
string is the name of a %define variable, and all remaining strings in that
|
||||||
|
subsequence are the valid values for that variable. Complain if such a
|
||||||
|
variable is undefined (a Bison error since the default value should have
|
||||||
|
been set already) or defined to any other value (possibly a user error).
|
||||||
|
Don't record this as a Bison usage of the variable as there's no reason to
|
||||||
|
suspect that the value has yet influenced the output. */
|
||||||
|
void muscle_percent_define_check_values (char const * const *values);
|
||||||
|
|
||||||
/* Grow the muscle for the %code qualifier QUALIFIER appearing at QUALIFIER_LOC
|
/* Grow the muscle for the %code qualifier QUALIFIER appearing at QUALIFIER_LOC
|
||||||
in the grammar file with code CODE appearing at CODE_LOC. Record this as a
|
in the grammar file with code CODE appearing at CODE_LOC. Record this as a
|
||||||
|
|||||||
Reference in New Issue
Block a user