X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/62cb570a8dc4895110c087dbfa5810cd0bc316a8..ea9e670d728ac659e139434de31ea9306ecdd117:/data/bison.m4 diff --git a/data/bison.m4 b/data/bison.m4 index c3ae1289..6f06266d 100644 --- a/data/bison.m4 +++ b/data/bison.m4 @@ -61,6 +61,30 @@ This special exception was added by the Free Software Foundation in version 2.2 of Bison.])]) +## -------- ## +## Output. ## +## -------- ## + +# b4_output_begin(FILE) +# --------------------- +# Enable output, i.e., send to diversion 0, expand after "#", and +# generate the tag to output into FILE. Must be followed by EOL. +m4_define([b4_output_begin], +[m4_changecom() +m4_divert_push(0)dnl +@output(m4_unquote([$1])@)@dnl +]) + + +# b4_output_end() +# --------------- +# Output nothing, restore # as comment character (no expansions after #). +m4_define([b4_output_end], +[m4_divert_pop(0) +m4_changecom([#]) +]) + + ## ---------------- ## ## Error handling. ## ## ---------------- ## @@ -796,15 +820,22 @@ m4_percent_define_default([[api.token.prefix]], [[]]) # b4_parse_assert_if([IF-ASSERTIONS-ARE-USED], [IF-NOT]) # b4_parse_trace_if([IF-DEBUG-TRACES-ARE-ENABLED], [IF-NOT]) -# b4_lex_symbol_if([IF-YYLEX-RETURNS-A-COMPLETE-SYMBOL], [IF-NOT]) +# b4_token_ctor_if([IF-YYLEX-RETURNS-A-TOKEN], [IF-NOT]) # b4_variant_if([IF-VARIANT-ARE-USED], [IF-NOT]) # ---------------------------------------------- -b4_percent_define_if_define([lex_symbol]) +b4_percent_define_if_define([token_ctor], [api.token.constructor]) 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_bison_locations_if([IF-TRUE]) +# -------------------------------- +# Expand IF-TRUE if using locations, and using the default location +# type. +m4_define([b4_bison_locations_if], +[b4_locations_if([b4_percent_define_ifdef([[api.location.type]], [], [$1])])]) + # b4_error_verbose_if([IF-ERRORS-ARE-VERBOSE], [IF-NOT]) # ------------------------------------------------------