X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/b47b6ff7fd5b6d3928d44bfbb7b8836ee3348704..1c72905811fa75e0715eb5ec1066dfcae520d070:/data/bison.m4 diff --git a/data/bison.m4 b/data/bison.m4 index 67020033..384f875a 100644 --- a/data/bison.m4 +++ b/data/bison.m4 @@ -332,9 +332,7 @@ m4_define([b4_$3_if], # ----------------------------- # Expand IF-TRUE, if FLAG is true, IF-FALSE otherwise. b4_define_flag_if([defines]) # Whether headers are requested. -b4_define_flag_if([error_verbose]) # Whether error are verbose. b4_define_flag_if([glr]) # Whether a GLR parser is requested. -b4_define_flag_if([locations]) # Whether locations are tracked. b4_define_flag_if([nondeterministic]) # Whether conflicts should be handled. b4_define_flag_if([yacc]) # Whether POSIX Yacc is emulated. @@ -619,30 +617,11 @@ m4_define([b4_percent_define_ifdef], [$3])]) -# b4_percent_define_if_define(VARIABLE) -# ------------------------------------- -# Define b4_VARIABLE_if that executes its $1 or $2 depending whether VARIABLE -# was %defined. -m4_define([b4_percent_define_if_define_], -[m4_define([b4_$1_if], [b4_percent_define_ifdef([$1], [$2], [$3])])]) -m4_define([b4_percent_define_if_define], -[b4_percent_define_if_define_([$1], $[1], $[2])]) - ## --------- ## ## Options. ## ## --------- ## -# b4_assert_if([IF-ASSERTIONS-ARE-USED], [IF-NOT]) -# b4_lex_symbol_if([IF-YYLEX-RETURNS-A-COMPLETE-SYMBOL], [IF-NOT]) -# b4_variant_if([IF-VARIANT-ARE-USED], [IF-NOT]) -# ---------------------------------------------- -b4_percent_define_if_define([assert]) -b4_percent_define_if_define([lex_symbol]) -b4_percent_define_if_define([variant]) - - - # b4_percent_define_flag_if(VARIABLE, IF-TRUE, [IF-FALSE]) # -------------------------------------------------------- # Mimic muscle_percent_define_flag_if in ../src/muscle_tab.h exactly. That is, @@ -666,6 +645,7 @@ m4_define([b4_percent_define_flag_if], [[b4_percent_define_flag_if($1)]])])], [b4_fatal([[undefined %%define variable `%s' passed to b4_percent_define_flag_if]], [$1])])]) + # b4_percent_define_default(VARIABLE, DEFAULT) # -------------------------------------------- # Mimic muscle_percent_define_default in ../src/muscle_tab.h exactly. That is, @@ -680,10 +660,38 @@ m4_define([b4_percent_define_default], [m4_ifndef([b4_percent_define(]$1[)], [m4_define([b4_percent_define(]$1[)], [$2])dnl m4_define([b4_percent_define_loc(]$1[)], - [[[[[Bison:b4_percent_define_default]:1.0]], [[[Bison:b4_percent_define_default]:1.0]]]])dnl - m4_define([b4_percent_define_syncline(]$1[)], - [[]b4_syncline(1, [["[Bison:b4_percent_define_default]"]])[ -]])])]) + [[[[:-1.-1]], + [[:-1.-1]]]])dnl + m4_define([b4_percent_define_syncline(]$1[)], [[]])])]) + + +# b4_percent_define_if_define(VARIABLE) +# ------------------------------------- +# Define b4_VARIABLE_if that executes its $1 or $2 depending whether +# VARIABLE was %defined. The characters `.' and `-' in VARIABLE are mapped +# to `_'. +m4_define([b4_percent_define_if_define_], +[m4_define(m4_bpatsubst([b4_$1_if], [[-.]], [_]), + [b4_percent_define_flag_if([$1], [$2], [$3])])]) +m4_define([b4_percent_define_if_define], +[b4_percent_define_default([[$1]], [[false]]) +b4_percent_define_if_define_([$1], $[1], $[2])]) + + +# b4_parse_assert_if([IF-ASSERTIONS-ARE-USED], [IF-NOT]) +# b4_parse_trace_if([IF-DEBUG-TRACES-ARE-ENABLED], [IF-NOT]) +# b4_error_verbose_if([IF-ERRORS-ARE-VERBOSE], [IF-NOT]) +# b4_lex_symbol_if([IF-YYLEX-RETURNS-A-COMPLETE-SYMBOL], [IF-NOT]) +# b4_variant_if([IF-VARIANT-ARE-USED], [IF-NOT]) +# ---------------------------------------------- +b4_percent_define_if_define([error_verbose]) +b4_percent_define_if_define([lex_symbol]) +b4_percent_define_if_define([locations]) # Whether locations are tracked. +b4_percent_define_if_define([parse.assert]) +b4_percent_define_if_define([parse.trace]) +b4_percent_define_if_define([variant]) + + # b4_percent_define_check_values(VALUES) # --------------------------------------