]> git.saurik.com Git - bison.git/blobdiff - data/bison.m4
tests: portability fixes.
[bison.git] / data / bison.m4
index 6688c06ba0e88a0757ffd3e55c9fcc7f84628034..a5c1ee7376717fa50428eeb9e71bc6abf476867e 100644 (file)
@@ -233,9 +233,9 @@ m4_define([b4_define_flag_if],
 
 # _b4_define_flag_if($1, $2, FLAG)
 # --------------------------------
-# This macro works around the impossibility to define macros
-# inside macros, because issuing `[$1]' is not possible in M4 :(.
-# This sucks hard, GNU M4 should really provide M5 like $$1.
+# Work around the impossibility to define macros inside macros,
+# because issuing `[$1]' is not possible in M4.  GNU M4 should provide
+# $$1 a la M5/TeX.
 m4_define([_b4_define_flag_if],
 [m4_if([$1$2], $[1]$[2], [],
        [m4_fatal([$0: Invalid arguments: $@])])dnl
@@ -246,12 +246,16 @@ m4_define([b4_$3_if],
 # b4_FLAG_if(IF-TRUE, IF-FALSE)
 # -----------------------------
 # 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.
+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([token_table])        # Whether yytoken_table is demanded.
+b4_define_flag_if([yacc])               # Whether POSIX Yacc is emulated.
+
+# yytoken_table is needed to support verbose errors.
+b4_error_verbose_if([m4_define([b4_token_table_flag], [1])])
 
 
 ## ------------------------- ##