# If the %union is not named, its name is YYSTYPE.
m4_define_default([b4_union_name], [YYSTYPE])
+# The initial column and line.
+m4_define_default([b4_location_initial_column], [1])
+m4_define_default([b4_location_initial_line], [1])
+
+
## ------------------------ ##
## Pure/impure interfaces. ##
## ------------------------ ##
# -----------------------------
# 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]) # Wheter error are verbose.
+b4_define_flag_if([error_verbose]) # Whether error are verbose.
b4_define_flag_if([locations]) # Whether locations are tracked.
b4_define_flag_if([pure]) # Whether the interface is pure.
b4_define_flag_if([yacc]) # Whether POSIX Yacc is emulated.
# b4_basename(NAME)
# -----------------
+# Similar to POSIX basename; the differences don't matter here.
# Beware that NAME is not evaluated.
m4_define([b4_basename],
-[m4_case([$1],
- [/], [/],
- [m4_bpatsubst([$1], [^.*/\([^/]+\)/?$], [\1])])])
-
+[m4_bpatsubst([$1], [^.*/\([^/]+\)/*$], [\1])])
+
# b4_syncline(LINE, FILE)
# -----------------------
m4_define([b4_syncline],
-[b4_flag_if([synclines],
+[b4_flag_if([synclines],
[/* Line __line__ of b4_basename(m4_quote(__file__)). */
[#]line $1 $2])])