X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/07e65a77aa7b9ae259f6fcf16e8f322f4814ee39..7ba01e111c878291d8677db124eb4d7aef7c9541:/data/bison.m4 diff --git a/data/bison.m4 b/data/bison.m4 index 904bcf2b..ca27159c 100644 --- a/data/bison.m4 +++ b/data/bison.m4 @@ -814,8 +814,8 @@ m4_define([b4_percent_define_flag_if], [b4_fatal([[$0: undefined %%define variable '%s']], [$1])])]) -# b4_percent_define_default(VARIABLE, DEFAULT) -# -------------------------------------------- +# b4_percent_define_default(VARIABLE, DEFAULT, [KIND = keyword]) +# -------------------------------------------------------------- # Mimic muscle_percent_define_default in ../src/muscle-tab.h exactly. That is, # if the %define variable VARIABLE is undefined, set its value to DEFAULT. # Don't record this as a Bison usage of VARIABLE as there's no reason to @@ -827,6 +827,8 @@ m4_define([b4_percent_define_flag_if], m4_define([b4_percent_define_default], [b4_percent_define_ifdef_([$1], [], [m4_define([b4_percent_define(]$1[)], [$2])dnl + m4_define([b4_percent_define_kind(]$1[)], + [m4_default([$3], [keyword])])dnl m4_define([b4_percent_define_loc(]$1[)], [[[[:-1.-1]], [[:-1.-1]]]])dnl @@ -851,12 +853,12 @@ b4_percent_define_if_define_([$1], [$2], $[1], $[2])]) # --------------------------------------------------------------------- m4_define([b4_percent_define_check_kind], [b4_percent_define_ifdef_([$1], - [m4_if(b4_percent_define_get_kind([[$1]]), [$2], [], + [m4_if(b4_percent_define_get_kind([$1]), [$2], [], [b4_error([m4_default([$3], [complain])], b4_percent_define_get_loc([$1]), [m4_case([$2], [code], [[%%define variable '%s' requires '{...}' values]], - [keyword], [[%%define variable '%s' requires '...' values]], + [keyword], [[%%define variable '%s' requires keyword values]], [string], [[%%define variable '%s' requires '"..."' values]])], [$1])])])dnl ]) @@ -884,7 +886,8 @@ m4_define([b4_percent_define_check_values], m4_define([_b4_percent_define_check_values], [b4_percent_define_ifdef_([$1], - [m4_pushdef([b4_good_value], [0])dnl + [b4_percent_define_check_kind(]$1[, [keyword], [deprecated])dnl + m4_pushdef([b4_good_value], [0])dnl m4_if($#, 1, [], [m4_foreach([b4_value], m4_dquote(m4_shift($@)), [m4_if(m4_indir([b4_percent_define(]$1[)]), b4_value, @@ -1023,7 +1026,14 @@ m4_define_default([b4_location_initial_line], [1]) ## Sanity checks. ## ## --------------- ## +# api.location.prefix={...} (Java and C++). +b4_percent_define_check_kind([api.location.type], [code], [deprecated]) + +# api.position.prefix={...} (Java). +b4_percent_define_check_kind([api.position.type], [code], [deprecated]) + # api.prefix >< %name-prefix. +b4_percent_define_check_kind([api.prefix], [code], [deprecated]) b4_percent_define_ifdef([api.prefix], [m4_ifdef([b4_prefix], [b4_complain_at(b4_percent_define_get_loc([api.prefix]),