[AS_VAR_APPEND([BISON_COMPAT], ["${BISON_COMPAT:+ }-Wno-deprecated"])])
AC_SUBST([BISON_COMPAT])
+AS_IF([test x"$dx_cv_bison_define_cmdline" != x"yes"],
+ [dx_cv_bison_api_token_raw=no])
+AC_CACHE_CHECK([whether $BISON supports api.token.raw],
+ [dx_cv_bison_api_token_raw], [dx_cv_bison_api_token_raw=no
+cat >conftest.y <<'EOF'
+%token T_TEST
+%{
+int yylex(void) { return 0; }
+void yyerror(const char *msg) { }
+%}
+%%
+input:
+EOF
+AS_IF([$BISON --define api.token.raw conftest.y >&AS_MESSAGE_LOG_FD 2>&1],
+[AC_COMPUTE_INT([testval], [T_TEST], [#include "conftest.tab.c"
+])
+AS_IF([test "$testval" -lt 256], [dx_cv_bison_api_token_raw=yes])])])
+AS_IF([test x"$dx_cv_bison_api_token_raw" = x"yes"],
+ [AS_VAR_APPEND([BISON_COMPAT], [" --define api.token.raw"])])
+
AH_TOP([#include <conf_pre.h>])
AH_BOTTOM([#include <conf_post.h>])
if (specs[i] == "IDENT")
s = "0";
else
- s = "T_" substr(specs[i] " ", 1, maxwidth) " - 256";
+ s = "T_" substr(specs[i] " ", 1, maxwidth) " & 0xff";
offset_table = offset_table s suffix;
}
print "\tassert(x < sizeof idx);";
print "\tif (!(x = idx[x]))";
print "\t\treturn \"\";";
- print "\treturn cdecl__token_name(x + 256);";
+ print "\tif (T_" specs[0] " >= 256)";
+ print "\t\tx += 256;";
+ print "\treturn cdecl__token_name(x);";
print "}";
}