Import 2014-01-01 which allows to support bison's token-table and allows

to build ntpd into vendor
This commit is contained in:
bapt 2014-01-08 08:02:27 +00:00
parent 968d1daf89
commit c2f7afcd41
37 changed files with 456 additions and 357 deletions

45
CHANGES
View File

@ -1,3 +1,48 @@
2014-01-01 Thomas E. Dickey <tom@invisible-island.net>
* yacc.1: document %token-table, improve presentation of double-quotes
* VERSION, package/byacc.spec, package/debian/changelog: bump
* test/calc.tab.c, test/calc1.tab.c, test/calc2.tab.c, test/calc3.tab.c, test/code_calc.code.c, test/code_calc.tab.c, test/code_error.code.c, test/code_error.tab.c, test/error.tab.c, test/ftp.tab.c, test/grammar.tab.c, test/pure_calc.tab.c, test/pure_error.tab.c, test/quote_calc-s.tab.c, test/quote_calc.tab.c, test/quote_calc2-s.tab.c, test/quote_calc2.tab.c, test/quote_calc3-s.tab.c, test/quote_calc3.tab.c, test/quote_calc4-s.tab.c, test/quote_calc4.tab.c:
regen
* output.c, skeleton.c:
amend the last change so that yytname is #define'd as needed rather than
permanent - to avoid breaking cproto for instance.
2014-01-01 Christos.Zoulas
* output.c, defs.h, main.c, reader.c, skeleton.c:
changes to build ntpd using byacc:
- rename yyname[] to yytname[]
- add YYTRANSLATE() macro
- recognize bison's %token-table declaration
2014-01-01 Thomas E. Dickey <tom@invisible-island.net>
* configure: regen
* yacc.1: s/EE/XE/ to work around groff bug on Debian 6
* makefile.in: use CF_MAKE_DOCS
* aclocal.m4: add CF_MAKE_DOCS
* configure.in: use CF_MAKE_DOCS
2013-12-26 Thomas E. Dickey <tom@invisible-island.net>
* config.guess: 2013-11-29
2013-11-19 Thomas E. Dickey <tom@invisible-island.net>
* aclocal.m4: resync with my-autoconf (fixes for clang and mingw)
2013-10-25 Thomas E. Dickey <tom@invisible-island.net>
* config.sub: 2013-10-01
2013-09-25 Thomas E. Dickey <tom@invisible-island.net>
* reader.c: fix two loop-limits found by clang 3.3 --analyze

View File

@ -1 +1 @@
20130925
20140101

74
aclocal.m4 vendored
View File

@ -1,7 +1,7 @@
dnl $Id: aclocal.m4,v 1.31 2013/09/25 23:15:41 tom Exp $
dnl $Id: aclocal.m4,v 1.33 2014/01/01 14:08:07 tom Exp $
dnl Macros for byacc configure script (Thomas E. Dickey)
dnl ---------------------------------------------------------------------------
dnl Copyright 2004-2012,2013 Thomas E. Dickey
dnl Copyright 2004-2013,2014 Thomas E. Dickey
dnl
dnl Permission is hereby granted, free of charge, to any person obtaining a
dnl copy of this software and associated documentation files (the
@ -232,7 +232,7 @@ if test ".$system_name" != ".$cf_cv_system_name" ; then
fi
])dnl
dnl ---------------------------------------------------------------------------
dnl CF_CLANG_COMPILER version: 1 updated: 2012/06/16 14:55:39
dnl CF_CLANG_COMPILER version: 2 updated: 2013/11/19 19:23:35
dnl -----------------
dnl Check if the given compiler is really clang. clang's C driver defines
dnl __GNUC__ (fooling the configure script into setting $GCC to yes) but does
@ -243,7 +243,7 @@ dnl ensure that it is not mistaken for gcc/g++. It is normally invoked from
dnl the wrappers for gcc and g++ warnings.
dnl
dnl $1 = GCC (default) or GXX
dnl $2 = INTEL_COMPILER (default) or INTEL_CPLUSPLUS
dnl $2 = CLANG_COMPILER (default)
dnl $3 = CFLAGS (default) or CXXFLAGS
AC_DEFUN([CF_CLANG_COMPILER],[
ifelse([$2],,CLANG_COMPILER,[$2])=no
@ -449,7 +449,7 @@ if test "$GCC" = yes ; then
fi
])dnl
dnl ---------------------------------------------------------------------------
dnl CF_GCC_WARNINGS version: 29 updated: 2012/06/16 14:55:39
dnl CF_GCC_WARNINGS version: 31 updated: 2013/11/19 19:23:35
dnl ---------------
dnl Check if the compiler supports useful warning options. There's a few that
dnl we don't use, simply because they're too noisy:
@ -521,10 +521,14 @@ then
EXTRA_CFLAGS=
cf_warn_CONST=""
test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings"
cf_gcc_warnings="Wignored-qualifiers Wlogical-op Wvarargs"
test "x$CLANG_COMPILER" = xyes && cf_gcc_warnings=
for cf_opt in W Wall \
Wbad-function-cast \
Wcast-align \
Wcast-qual \
Wdeclaration-after-statement \
Wextra \
Winline \
Wmissing-declarations \
Wmissing-prototypes \
@ -532,7 +536,7 @@ then
Wpointer-arith \
Wshadow \
Wstrict-prototypes \
Wundef $cf_warn_CONST $1
Wundef $cf_gcc_warnings $cf_warn_CONST $1
do
CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
if AC_TRY_EVAL(ac_compile); then
@ -634,6 +638,60 @@ cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc"
fi
])dnl
dnl ---------------------------------------------------------------------------
dnl CF_MAKE_DOCS version: 2 updated: 2013/01/02 20:04:08
dnl ------------
dnl $1 = name(s) to generate rules for
dnl $2 = suffix of corresponding manpages used as input.
define([CF_MAKE_DOCS],[
test -z "$cf_make_docs" && cf_make_docs=0
cf_output=makefile
test -f "$cf_output" || cf_output=Makefile
if test "$cf_make_docs" = 0
then
cat >>$cf_output <<"CF_EOF"
################################################################################
.SUFFIXES : .html .$2 .man .ps .pdf .txt
.$2.html :
GROFF_NO_SGR=stupid [$](SHELL) -c "tbl [$]*.$2 | groff -P -o0 -I$*_ -Thtml -man" >[$]@
.$2.ps :
[$](SHELL) -c "tbl [$]*.$2 | groff -man" >[$]@
.$2.txt :
GROFF_NO_SGR=stupid [$](SHELL) -c "tbl [$]*.$2 | nroff -Tascii -man | col -bx" >[$]@
.ps.pdf :
ps2pdf [$]*.ps
CF_EOF
cf_make_docs=1
fi
for cf_name in $1
do
cat >>$cf_output <<CF_EOF
################################################################################
docs-$cf_name \\
docs :: $cf_name.html \\
$cf_name.pdf \\
$cf_name.ps \\
$cf_name.txt
clean \\
docs-clean ::
rm -f $cf_name.html $cf_name.pdf $cf_name.ps $cf_name.txt
$cf_name.html : $cf_name.$2
$cf_name.pdf : $cf_name.ps
$cf_name.ps : $cf_name.$2
$cf_name.txt : $cf_name.$2
CF_EOF
done
])dnl
dnl ---------------------------------------------------------------------------
dnl CF_MAKE_TAGS version: 6 updated: 2010/10/23 15:52:32
dnl ------------
dnl Generate tags/TAGS targets for makefiles. Do not generate TAGS if we have
@ -671,7 +729,7 @@ AC_SUBST(MAKE_UPPER_TAGS)
AC_SUBST(MAKE_LOWER_TAGS)
])dnl
dnl ---------------------------------------------------------------------------
dnl CF_MIXEDCASE_FILENAMES version: 5 updated: 2013/09/07 13:54:05
dnl CF_MIXEDCASE_FILENAMES version: 6 updated: 2013/10/08 17:47:05
dnl ----------------------
dnl Check if the file-system supports mixed-case filenames. If we're able to
dnl create a lowercase name and see it as uppercase, it doesn't support that.
@ -680,7 +738,7 @@ AC_DEFUN([CF_MIXEDCASE_FILENAMES],
AC_CACHE_CHECK(if filesystem supports mixed-case filenames,cf_cv_mixedcase,[
if test "$cross_compiling" = yes ; then
case $target_alias in #(vi
*-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-msys*|*-mingw32*|*-uwin*) #(vi
*-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-msys*|*-mingw*|*-uwin*) #(vi
cf_cv_mixedcase=no
;;
*)

30
config.guess vendored
View File

@ -2,7 +2,7 @@
# Attempt to guess a canonical system name.
# Copyright 1992-2013 Free Software Foundation, Inc.
timestamp='2013-06-10'
timestamp='2013-11-29'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@ -1260,16 +1260,26 @@ EOF
if test "$UNAME_PROCESSOR" = unknown ; then
UNAME_PROCESSOR=powerpc
fi
if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
(CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
grep IS_64BIT_ARCH >/dev/null
then
case $UNAME_PROCESSOR in
i386) UNAME_PROCESSOR=x86_64 ;;
powerpc) UNAME_PROCESSOR=powerpc64 ;;
esac
if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
(CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
grep IS_64BIT_ARCH >/dev/null
then
case $UNAME_PROCESSOR in
i386) UNAME_PROCESSOR=x86_64 ;;
powerpc) UNAME_PROCESSOR=powerpc64 ;;
esac
fi
fi
elif test "$UNAME_PROCESSOR" = i386 ; then
# Avoid executing cc on OS X 10.9, as it ships with a stub
# that puts up a graphical alert prompting to install
# developer tools. Any system running Mac OS X 10.7 or
# later (Darwin 11 and later) is required to have a 64-bit
# processor. This is not true of the ARM version of Darwin
# that Apple uses in portable devices.
UNAME_PROCESSOR=x86_64
fi
echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
exit ;;

4
config.sub vendored
View File

@ -2,7 +2,7 @@
# Configuration validation subroutine script.
# Copyright 1992-2013 Free Software Foundation, Inc.
timestamp='2013-09-05'
timestamp='2013-10-01'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@ -265,6 +265,7 @@ case $basic_machine in
| hexagon \
| i370 | i860 | i960 | ia64 \
| ip2k | iq2000 \
| k1om \
| le32 | le64 \
| lm32 \
| m32c | m32r | m32rle | m68000 | m68k | m88k \
@ -381,6 +382,7 @@ case $basic_machine in
| hexagon-* \
| i*86-* | i860-* | i960-* | ia64-* \
| ip2k-* | iq2000-* \
| k1om-* \
| le32-* | le64-* \
| lm32-* \
| m32c-* | m32r-* | m32rle-* \

166
configure vendored
View File

@ -1,5 +1,5 @@
#! /bin/sh
# From configure.in Revision: 1.14 .
# From configure.in Revision: 1.15 .
# Guess values for system-dependent variables and create Makefiles.
# Generated by Autoconf 2.52.20121002.
#
@ -2112,7 +2112,7 @@ else
if test "$cross_compiling" = yes ; then
case $target_alias in #(vi
*-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-msys*|*-mingw32*|*-uwin*) #(vi
*-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-msys*|*-mingw*|*-uwin*) #(vi
cf_cv_mixedcase=no
;;
*)
@ -4191,10 +4191,14 @@ echo "$as_me: checking for $CC warning options..." >&6;}
EXTRA_CFLAGS=
cf_warn_CONST=""
test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings"
cf_gcc_warnings="Wignored-qualifiers Wlogical-op Wvarargs"
test "x$CLANG_COMPILER" = xyes && cf_gcc_warnings=
for cf_opt in W Wall \
Wbad-function-cast \
Wcast-align \
Wcast-qual \
Wdeclaration-after-statement \
Wextra \
Winline \
Wmissing-declarations \
Wmissing-prototypes \
@ -4202,15 +4206,15 @@ echo "$as_me: checking for $CC warning options..." >&6;}
Wpointer-arith \
Wshadow \
Wstrict-prototypes \
Wundef $cf_warn_CONST Wwrite-strings
Wundef $cf_gcc_warnings $cf_warn_CONST Wwrite-strings
do
CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
if { (eval echo "$as_me:4208: \"$ac_compile\"") >&5
if { (eval echo "$as_me:4212: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
echo "$as_me:4211: \$? = $ac_status" >&5
echo "$as_me:4215: \$? = $ac_status" >&5
(exit $ac_status); }; then
test -n "$verbose" && echo "$as_me:4213: result: ... -$cf_opt" >&5
test -n "$verbose" && echo "$as_me:4217: result: ... -$cf_opt" >&5
echo "${ECHO_T}... -$cf_opt" >&6
case $cf_opt in #(vi
Wcast-qual) #(vi
@ -4221,7 +4225,7 @@ echo "${ECHO_T}... -$cf_opt" >&6
[34].*)
test -n "$verbose" && echo " feature is broken in gcc $GCC_VERSION" 1>&6
echo "${as_me:-configure}:4224: testing feature is broken in gcc $GCC_VERSION ..." 1>&5
echo "${as_me:-configure}:4228: testing feature is broken in gcc $GCC_VERSION ..." 1>&5
continue;;
esac
@ -4231,7 +4235,7 @@ echo "${as_me:-configure}:4224: testing feature is broken in gcc $GCC_VERSION ..
[12].*)
test -n "$verbose" && echo " feature is broken in gcc $GCC_VERSION" 1>&6
echo "${as_me:-configure}:4234: testing feature is broken in gcc $GCC_VERSION ..." 1>&5
echo "${as_me:-configure}:4238: testing feature is broken in gcc $GCC_VERSION ..." 1>&5
continue;;
esac
@ -4247,7 +4251,7 @@ rm -rf conftest*
fi
fi
echo "$as_me:4250: checking if you want to see long compiling messages" >&5
echo "$as_me:4254: checking if you want to see long compiling messages" >&5
echo $ECHO_N "checking if you want to see long compiling messages... $ECHO_C" >&6
# Check whether --enable-echo or --disable-echo was given.
@ -4281,10 +4285,10 @@ else
ECHO_CC=''
fi;
echo "$as_me:4284: result: $enableval" >&5
echo "$as_me:4288: result: $enableval" >&5
echo "${ECHO_T}$enableval" >&6
echo "$as_me:4287: checking if you want to use dmalloc for testing" >&5
echo "$as_me:4291: checking if you want to use dmalloc for testing" >&5
echo $ECHO_N "checking if you want to use dmalloc for testing... $ECHO_C" >&6
# Check whether --with-dmalloc or --without-dmalloc was given.
@ -4301,7 +4305,7 @@ EOF
else
with_dmalloc=
fi;
echo "$as_me:4304: result: ${with_dmalloc:-no}" >&5
echo "$as_me:4308: result: ${with_dmalloc:-no}" >&5
echo "${ECHO_T}${with_dmalloc:-no}" >&6
case .$with_cflags in #(vi
@ -4395,23 +4399,23 @@ fi
esac
if test "$with_dmalloc" = yes ; then
echo "$as_me:4398: checking for dmalloc.h" >&5
echo "$as_me:4402: checking for dmalloc.h" >&5
echo $ECHO_N "checking for dmalloc.h... $ECHO_C" >&6
if test "${ac_cv_header_dmalloc_h+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
#line 4404 "configure"
#line 4408 "configure"
#include "confdefs.h"
#include <dmalloc.h>
_ACEOF
if { (eval echo "$as_me:4408: \"$ac_cpp conftest.$ac_ext\"") >&5
if { (eval echo "$as_me:4412: \"$ac_cpp conftest.$ac_ext\"") >&5
(eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
ac_status=$?
egrep -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
echo "$as_me:4414: \$? = $ac_status" >&5
echo "$as_me:4418: \$? = $ac_status" >&5
(exit $ac_status); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
@ -4430,11 +4434,11 @@ else
fi
rm -f conftest.err conftest.$ac_ext
fi
echo "$as_me:4433: result: $ac_cv_header_dmalloc_h" >&5
echo "$as_me:4437: result: $ac_cv_header_dmalloc_h" >&5
echo "${ECHO_T}$ac_cv_header_dmalloc_h" >&6
if test $ac_cv_header_dmalloc_h = yes; then
echo "$as_me:4437: checking for dmalloc_debug in -ldmalloc" >&5
echo "$as_me:4441: checking for dmalloc_debug in -ldmalloc" >&5
echo $ECHO_N "checking for dmalloc_debug in -ldmalloc... $ECHO_C" >&6
if test "${ac_cv_lib_dmalloc_dmalloc_debug+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@ -4442,7 +4446,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-ldmalloc $LIBS"
cat >conftest.$ac_ext <<_ACEOF
#line 4445 "configure"
#line 4449 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@ -4461,16 +4465,16 @@ dmalloc_debug ();
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:4464: \"$ac_link\"") >&5
if { (eval echo "$as_me:4468: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
echo "$as_me:4467: \$? = $ac_status" >&5
echo "$as_me:4471: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:4470: \"$ac_try\"") >&5
{ (eval echo "$as_me:4474: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:4473: \$? = $ac_status" >&5
echo "$as_me:4477: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
ac_cv_lib_dmalloc_dmalloc_debug=yes
else
@ -4481,7 +4485,7 @@ fi
rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:4484: result: $ac_cv_lib_dmalloc_dmalloc_debug" >&5
echo "$as_me:4488: result: $ac_cv_lib_dmalloc_dmalloc_debug" >&5
echo "${ECHO_T}$ac_cv_lib_dmalloc_dmalloc_debug" >&6
if test $ac_cv_lib_dmalloc_dmalloc_debug = yes; then
cat >>confdefs.h <<EOF
@ -4496,7 +4500,7 @@ fi
fi
echo "$as_me:4499: checking if you want to use dbmalloc for testing" >&5
echo "$as_me:4503: checking if you want to use dbmalloc for testing" >&5
echo $ECHO_N "checking if you want to use dbmalloc for testing... $ECHO_C" >&6
# Check whether --with-dbmalloc or --without-dbmalloc was given.
@ -4513,7 +4517,7 @@ EOF
else
with_dbmalloc=
fi;
echo "$as_me:4516: result: ${with_dbmalloc:-no}" >&5
echo "$as_me:4520: result: ${with_dbmalloc:-no}" >&5
echo "${ECHO_T}${with_dbmalloc:-no}" >&6
case .$with_cflags in #(vi
@ -4607,23 +4611,23 @@ fi
esac
if test "$with_dbmalloc" = yes ; then
echo "$as_me:4610: checking for dbmalloc.h" >&5
echo "$as_me:4614: checking for dbmalloc.h" >&5
echo $ECHO_N "checking for dbmalloc.h... $ECHO_C" >&6
if test "${ac_cv_header_dbmalloc_h+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
#line 4616 "configure"
#line 4620 "configure"
#include "confdefs.h"
#include <dbmalloc.h>
_ACEOF
if { (eval echo "$as_me:4620: \"$ac_cpp conftest.$ac_ext\"") >&5
if { (eval echo "$as_me:4624: \"$ac_cpp conftest.$ac_ext\"") >&5
(eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
ac_status=$?
egrep -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
echo "$as_me:4626: \$? = $ac_status" >&5
echo "$as_me:4630: \$? = $ac_status" >&5
(exit $ac_status); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
@ -4642,11 +4646,11 @@ else
fi
rm -f conftest.err conftest.$ac_ext
fi
echo "$as_me:4645: result: $ac_cv_header_dbmalloc_h" >&5
echo "$as_me:4649: result: $ac_cv_header_dbmalloc_h" >&5
echo "${ECHO_T}$ac_cv_header_dbmalloc_h" >&6
if test $ac_cv_header_dbmalloc_h = yes; then
echo "$as_me:4649: checking for debug_malloc in -ldbmalloc" >&5
echo "$as_me:4653: checking for debug_malloc in -ldbmalloc" >&5
echo $ECHO_N "checking for debug_malloc in -ldbmalloc... $ECHO_C" >&6
if test "${ac_cv_lib_dbmalloc_debug_malloc+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@ -4654,7 +4658,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-ldbmalloc $LIBS"
cat >conftest.$ac_ext <<_ACEOF
#line 4657 "configure"
#line 4661 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@ -4673,16 +4677,16 @@ debug_malloc ();
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:4676: \"$ac_link\"") >&5
if { (eval echo "$as_me:4680: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
echo "$as_me:4679: \$? = $ac_status" >&5
echo "$as_me:4683: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:4682: \"$ac_try\"") >&5
{ (eval echo "$as_me:4686: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:4685: \$? = $ac_status" >&5
echo "$as_me:4689: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
ac_cv_lib_dbmalloc_debug_malloc=yes
else
@ -4693,7 +4697,7 @@ fi
rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:4696: result: $ac_cv_lib_dbmalloc_debug_malloc" >&5
echo "$as_me:4700: result: $ac_cv_lib_dbmalloc_debug_malloc" >&5
echo "${ECHO_T}$ac_cv_lib_dbmalloc_debug_malloc" >&6
if test $ac_cv_lib_dbmalloc_debug_malloc = yes; then
cat >>confdefs.h <<EOF
@ -4708,7 +4712,7 @@ fi
fi
echo "$as_me:4711: checking if you want to use valgrind for testing" >&5
echo "$as_me:4715: checking if you want to use valgrind for testing" >&5
echo $ECHO_N "checking if you want to use valgrind for testing... $ECHO_C" >&6
# Check whether --with-valgrind or --without-valgrind was given.
@ -4725,7 +4729,7 @@ EOF
else
with_valgrind=
fi;
echo "$as_me:4728: result: ${with_valgrind:-no}" >&5
echo "$as_me:4732: result: ${with_valgrind:-no}" >&5
echo "${ECHO_T}${with_valgrind:-no}" >&6
case .$with_cflags in #(vi
@ -4818,7 +4822,7 @@ fi
;;
esac
echo "$as_me:4821: checking if you want to perform memory-leak testing" >&5
echo "$as_me:4825: checking if you want to perform memory-leak testing" >&5
echo $ECHO_N "checking if you want to perform memory-leak testing... $ECHO_C" >&6
# Check whether --enable-leaks or --disable-leaks was given.
@ -4828,7 +4832,7 @@ if test "${enable_leaks+set}" = set; then
else
: ${with_no_leaks:=no}
fi;
echo "$as_me:4831: result: $with_no_leaks" >&5
echo "$as_me:4835: result: $with_no_leaks" >&5
echo "${ECHO_T}$with_no_leaks" >&6
if test "$with_no_leaks" = yes ; then
@ -4924,7 +4928,7 @@ DEFS=-DHAVE_CONFIG_H
: ${CONFIG_STATUS=./config.status}
ac_clean_files_save=$ac_clean_files
ac_clean_files="$ac_clean_files $CONFIG_STATUS"
{ echo "$as_me:4927: creating $CONFIG_STATUS" >&5
{ echo "$as_me:4931: creating $CONFIG_STATUS" >&5
echo "$as_me: creating $CONFIG_STATUS" >&6;}
cat >$CONFIG_STATUS <<_ACEOF
#! $SHELL
@ -5097,7 +5101,7 @@ cat >>$CONFIG_STATUS <<\EOF
echo "$ac_cs_version"; exit 0 ;;
--he | --h)
# Conflict between --help and --header
{ { echo "$as_me:5100: error: ambiguous option: $1
{ { echo "$as_me:5104: error: ambiguous option: $1
Try \`$0 --help' for more information." >&5
echo "$as_me: error: ambiguous option: $1
Try \`$0 --help' for more information." >&2;}
@ -5116,7 +5120,7 @@ Try \`$0 --help' for more information." >&2;}
ac_need_defaults=false;;
# This is an error.
-*) { { echo "$as_me:5119: error: unrecognized option: $1
-*) { { echo "$as_me:5123: error: unrecognized option: $1
Try \`$0 --help' for more information." >&5
echo "$as_me: error: unrecognized option: $1
Try \`$0 --help' for more information." >&2;}
@ -5153,7 +5157,7 @@ do
# Handling of arguments.
"makefile" ) CONFIG_FILES="$CONFIG_FILES makefile" ;;
"config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h:config_h.in" ;;
*) { { echo "$as_me:5156: error: invalid argument: $ac_config_target" >&5
*) { { echo "$as_me:5160: error: invalid argument: $ac_config_target" >&5
echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
{ (exit 1); exit 1; }; };;
esac
@ -5386,7 +5390,7 @@ done; }
esac
if test x"$ac_file" != x-; then
{ echo "$as_me:5389: creating $ac_file" >&5
{ echo "$as_me:5393: creating $ac_file" >&5
echo "$as_me: creating $ac_file" >&6;}
rm -f "$ac_file"
fi
@ -5404,7 +5408,7 @@ echo "$as_me: creating $ac_file" >&6;}
-) echo $tmp/stdin ;;
[\\/$]*)
# Absolute (can't be DOS-style, as IFS=:)
test -f "$f" || { { echo "$as_me:5407: error: cannot find input file: $f" >&5
test -f "$f" || { { echo "$as_me:5411: error: cannot find input file: $f" >&5
echo "$as_me: error: cannot find input file: $f" >&2;}
{ (exit 1); exit 1; }; }
echo $f;;
@ -5417,7 +5421,7 @@ echo "$as_me: error: cannot find input file: $f" >&2;}
echo $srcdir/$f
else
# /dev/null tree
{ { echo "$as_me:5420: error: cannot find input file: $f" >&5
{ { echo "$as_me:5424: error: cannot find input file: $f" >&5
echo "$as_me: error: cannot find input file: $f" >&2;}
{ (exit 1); exit 1; }; }
fi;;
@ -5433,7 +5437,7 @@ cat >>$CONFIG_STATUS <<\EOF
if test -n "$ac_seen"; then
ac_used=`grep '@datarootdir@' $ac_item`
if test -z "$ac_used"; then
{ echo "$as_me:5436: WARNING: datarootdir was used implicitly but not set:
{ echo "$as_me:5440: WARNING: datarootdir was used implicitly but not set:
$ac_seen" >&5
echo "$as_me: WARNING: datarootdir was used implicitly but not set:
$ac_seen" >&2;}
@ -5442,7 +5446,7 @@ $ac_seen" >&2;}
fi
ac_seen=`grep '${datarootdir}' $ac_item`
if test -n "$ac_seen"; then
{ echo "$as_me:5445: WARNING: datarootdir was used explicitly but not set:
{ echo "$as_me:5449: WARNING: datarootdir was used explicitly but not set:
$ac_seen" >&5
echo "$as_me: WARNING: datarootdir was used explicitly but not set:
$ac_seen" >&2;}
@ -5479,7 +5483,7 @@ s,@INSTALL@,$ac_INSTALL,;t t
ac_init=`egrep '[ ]*'$ac_name'[ ]*=' $ac_file`
if test -z "$ac_init"; then
ac_seen=`echo "$ac_seen" |sed -e 's,^,'$ac_file':,'`
{ echo "$as_me:5482: WARNING: Variable $ac_name is used but was not set:
{ echo "$as_me:5486: WARNING: Variable $ac_name is used but was not set:
$ac_seen" >&5
echo "$as_me: WARNING: Variable $ac_name is used but was not set:
$ac_seen" >&2;}
@ -5490,7 +5494,7 @@ $ac_seen" >&2;}
egrep -n '@[A-Z_][A-Z_0-9]+@' $ac_file >>$tmp/out
if test -s $tmp/out; then
ac_seen=`sed -e 's,^,'$ac_file':,' < $tmp/out`
{ echo "$as_me:5493: WARNING: Some variables may not be substituted:
{ echo "$as_me:5497: WARNING: Some variables may not be substituted:
$ac_seen" >&5
echo "$as_me: WARNING: Some variables may not be substituted:
$ac_seen" >&2;}
@ -5539,7 +5543,7 @@ for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue
* ) ac_file_in=$ac_file.in ;;
esac
test x"$ac_file" != x- && { echo "$as_me:5542: creating $ac_file" >&5
test x"$ac_file" != x- && { echo "$as_me:5546: creating $ac_file" >&5
echo "$as_me: creating $ac_file" >&6;}
# First look for the input files in the build tree, otherwise in the
@ -5550,7 +5554,7 @@ echo "$as_me: creating $ac_file" >&6;}
-) echo $tmp/stdin ;;
[\\/$]*)
# Absolute (can't be DOS-style, as IFS=:)
test -f "$f" || { { echo "$as_me:5553: error: cannot find input file: $f" >&5
test -f "$f" || { { echo "$as_me:5557: error: cannot find input file: $f" >&5
echo "$as_me: error: cannot find input file: $f" >&2;}
{ (exit 1); exit 1; }; }
echo $f;;
@ -5563,7 +5567,7 @@ echo "$as_me: error: cannot find input file: $f" >&2;}
echo $srcdir/$f
else
# /dev/null tree
{ { echo "$as_me:5566: error: cannot find input file: $f" >&5
{ { echo "$as_me:5570: error: cannot find input file: $f" >&5
echo "$as_me: error: cannot find input file: $f" >&2;}
{ (exit 1); exit 1; }; }
fi;;
@ -5681,7 +5685,7 @@ cat >>$CONFIG_STATUS <<\EOF
rm -f $tmp/in
if test x"$ac_file" != x-; then
if cmp -s $ac_file $tmp/config.h 2>/dev/null; then
{ echo "$as_me:5684: $ac_file is unchanged" >&5
{ echo "$as_me:5688: $ac_file is unchanged" >&5
echo "$as_me: $ac_file is unchanged" >&6;}
else
ac_dir=`$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
@ -5748,3 +5752,51 @@ if test "$no_create" != yes; then
$ac_cs_success || { (exit 1); exit 1; }
fi
test -z "$cf_make_docs" && cf_make_docs=0
cf_output=makefile
test -f "$cf_output" || cf_output=Makefile
if test "$cf_make_docs" = 0
then
cat >>$cf_output <<"CF_EOF"
################################################################################
.SUFFIXES : .html .1 .man .ps .pdf .txt
.1.html :
GROFF_NO_SGR=stupid $(SHELL) -c "tbl $*.1 | groff -P -o0 -Iyacc,1_ -Thtml -man" >$@
.1.ps :
$(SHELL) -c "tbl $*.1 | groff -man" >$@
.1.txt :
GROFF_NO_SGR=stupid $(SHELL) -c "tbl $*.1 | nroff -Tascii -man | col -bx" >$@
.ps.pdf :
ps2pdf $*.ps
CF_EOF
cf_make_docs=1
fi
for cf_name in yacc
do
cat >>$cf_output <<CF_EOF
################################################################################
docs-$cf_name \\
docs :: $cf_name.html \\
$cf_name.pdf \\
$cf_name.ps \\
$cf_name.txt
clean \\
docs-clean ::
rm -f $cf_name.html $cf_name.pdf $cf_name.ps $cf_name.txt
$cf_name.html : $cf_name.1
$cf_name.pdf : $cf_name.ps
$cf_name.ps : $cf_name.1
$cf_name.txt : $cf_name.1
CF_EOF
done

View File

@ -1,7 +1,7 @@
dnl Process this file with 'autoconf' to produce a 'configure' script
dnl $Id: configure.in,v 1.14 2012/10/03 23:41:36 tom Exp $
dnl $Id: configure.in,v 1.15 2014/01/01 14:07:34 tom Exp $
AC_PREREQ(2.52.20011201)
AC_REVISION($Revision: 1.14 $)
AC_REVISION($Revision: 1.15 $)
AC_INIT(main.c)
AC_CONFIG_HEADER(config.h:config_h.in)
@ -24,3 +24,4 @@ CF_DISABLE_LEAKS
### output makefile
AC_OUTPUT(makefile)
CF_MAKE_DOCS(yacc,1)

4
defs.h
View File

@ -1,4 +1,4 @@
/* $Id: defs.h,v 1.37 2012/05/26 15:23:00 tom Exp $ */
/* $Id: defs.h,v 1.38 2014/01/01 14:23:27 Christos.Zoulas Exp $ */
#ifdef HAVE_CONFIG_H
#include <config.h>
@ -104,6 +104,7 @@
#define PARSE_PARAM 13
#define LEX_PARAM 14
#define POSIX_YACC 15
#define TOKEN_TABLE 16
/* symbol classes */
@ -248,6 +249,7 @@ extern int lineno;
extern int outline;
extern int exit_code;
extern int pure_parser;
extern int token_table;
extern const char *const banner[];
extern const char *const xdecls[];

3
main.c
View File

@ -1,4 +1,4 @@
/* $Id: main.c,v 1.40 2012/09/29 13:11:00 Adrian.Bunk Exp $ */
/* $Id: main.c,v 1.41 2014/01/01 14:23:27 Christos.Zoulas Exp $ */
#include <signal.h>
#include <unistd.h> /* for _exit() */
@ -87,6 +87,7 @@ short *symbol_prec;
char *symbol_assoc;
int pure_parser;
int token_table;
int exit_code;
Value_t *ritem;

View File

@ -1,4 +1,4 @@
# $Id: makefile.in,v 1.18 2012/09/29 13:10:15 Adrian.Bunk Exp $
# $Id: makefile.in,v 1.19 2014/01/01 14:09:43 tom Exp $
#
# UNIX template-makefile for Berkeley Yacc
@ -100,7 +100,7 @@ uninstall:
- rm -f $(mandir)/$(actual_man)
################################################################################
.SUFFIXES : $o .i .html .$(manext) .cat .ps .pdf .txt
.SUFFIXES : $o .i
.c$o:
@RULE_CC@
@ -110,21 +110,6 @@ uninstall:
@RULE_CC@
@ECHO_CC@$(CPP) -C $(CPPFLAGS) $*.c >$@
.$(manext).cat :
- nroff -man $(srcdir)/$(THIS).$(manext) >$@
.$(manext).html :
GROFF_NO_SGR=stupid $(SHELL) -c "tbl $*.$(manext) | groff -Thtml -man" >$@
.$(manext).ps :
$(SHELL) -c "tbl $*.$(manext) | groff -man" >$@
.$(manext).txt :
GROFF_NO_SGR=stupid $(SHELL) -c "tbl $*.$(manext) | nroff -Tascii -man | col -bx" >$@
.ps.pdf :
ps2pdf $*.ps
################################################################################
$(THIS)$x : $(OBJS)
@ -133,26 +118,16 @@ $(THIS)$x : $(OBJS)
mostlyclean :
- rm -f core .nfs* *$o *.bak *.BAK *.out
clean : mostlyclean
clean :: mostlyclean
- rm -f $(THIS)$x
distclean : clean
distclean :: clean
- rm -f config.log config.cache config.status config.h makefile
- rm -f *.html *.cat *.pdf *.ps *.txt
- cd test && rm -f test-*
realclean: distclean
realclean :: distclean
- rm -f tags TAGS
################################################################################
docs :: $(THIS).html \
$(THIS).pdf \
$(THIS).ps \
$(THIS).txt
$(THIS).html : $(THIS).$(manext)
$(THIS).pdf : $(THIS).ps
$(THIS).ps : $(THIS).$(manext)
$(THIS).txt : $(THIS).$(manext)
################################################################################
check: $(THIS)$x
$(SHELL) $(testdir)/run_test.sh $(testdir)

View File

@ -1,4 +1,4 @@
/* $Id: output.c,v 1.45 2013/03/05 00:29:17 tom Exp $ */
/* $Id: output.c,v 1.47 2014/01/01 17:22:38 tom Exp $ */
#include "defs.h"
@ -921,23 +921,42 @@ output_debug(void)
++outline;
fprintf(code_file, "#define YYMAXTOKEN %d\n", max);
fprintf(code_file, "#define YYTRANSLATE(a) ((a) > YYMAXTOKEN ? "
"(YYMAXTOKEN + 1) : (a))\n");
symnam = TMALLOC(const char *, max + 1);
symnam = TMALLOC(const char *, max + 2);
NO_SPACE(symnam);
/* Note that it is not necessary to initialize the element */
/* symnam[max]. */
for (i = 0; i < max; ++i)
for (i = 0; i <= max; ++i)
symnam[i] = 0;
for (i = ntokens - 1; i >= 2; --i)
symnam[symbol_value[i]] = symbol_name[i];
symnam[0] = "end-of-file";
symnam[max + 1] = "illegal-symbol";
output_line("#if YYDEBUG");
/*
* bison's yytname[] array is roughly the same as byacc's yyname[] array.
* The difference is that byacc does not predefine "$end", "$error" or
* "$undefined".
*
* If the grammar declares "%token-table", define symbol "yytname" so
* an application such as ntpd can build.
*/
if (token_table)
{
output_line("#undef yytname");
output_line("#define yytname yyname");
}
else
{
output_line("#if YYDEBUG");
}
start_str_table("name");
j = 80;
for (i = 0; i <= max; ++i)
for (i = 0; i <= max + 1; ++i)
{
if ((s = symnam[i]) != 0)
{
@ -1058,6 +1077,8 @@ output_debug(void)
end_table();
FREE(symnam);
if (token_table)
output_line("#if YYDEBUG");
start_str_table("rule");
for (i = 2; i < nrules; ++i)
{

View File

@ -1,8 +1,8 @@
Summary: byacc - public domain Berkeley LALR Yacc parser generator
%define AppProgram byacc
%define AppVersion 20130925
%define AppVersion 20140101
%define UseProgram yacc
# $XTermId: byacc.spec,v 1.17 2013/09/25 22:41:54 tom Exp $
# $XTermId: byacc.spec,v 1.18 2014/01/01 17:26:25 tom Exp $
Name: %{AppProgram}
Version: %{AppVersion}
Release: 1

View File

@ -1,3 +1,9 @@
byacc (20140101) unstable; urgency=low
* yytname[] changes
-- Thomas E. Dickey <dickey@invisible-island.net> Wed, 01 Jan 2014 10:02:12 -0500
byacc (20130925) unstable; urgency=low
* increase default stack-size

View File

@ -1,4 +1,4 @@
/* $Id: reader.c,v 1.37 2013/09/25 23:46:18 tom Exp $ */
/* $Id: reader.c,v 1.38 2014/01/01 14:23:27 Christos.Zoulas Exp $ */
#include "defs.h"
@ -317,6 +317,8 @@ keyword(void)
return (PARSE_PARAM);
if (matchec("lex-param"))
return (LEX_PARAM);
if (matchec("token-table"))
return (TOKEN_TABLE);
if (matchec("yacc"))
return (POSIX_YACC);
}
@ -1301,6 +1303,10 @@ read_declarations(void)
copy_param(k);
break;
case TOKEN_TABLE:
token_table = 1;
break;
case POSIX_YACC:
/* noop for bison compatibility. byacc is already designed to be posix
* yacc compatible. */

View File

@ -1,4 +1,4 @@
/* $Id: skeleton.c,v 1.33 2013/09/25 22:44:22 tom Exp $ */
/* $Id: skeleton.c,v 1.35 2014/01/01 16:52:33 tom Exp $ */
#include "defs.h"
@ -231,9 +231,7 @@ const char *const body_2[] =
"#if YYDEBUG",
" if (yydebug)",
" {",
" yys = 0;",
" if (yychar <= YYMAXTOKEN) yys = yyname[yychar];",
" if (!yys) yys = \"illegal-symbol\";",
" yys = yyname[YYTRANSLATE(yychar)];",
" printf(\"%sdebug: state %d, reading %d (%s)\\n\",",
" YYPREFIX, yystate, yychar, yys);",
" }",
@ -320,9 +318,7 @@ const char *const body_3[] =
"#if YYDEBUG",
" if (yydebug)",
" {",
" yys = 0;",
" if (yychar <= YYMAXTOKEN) yys = yyname[yychar];",
" if (!yys) yys = \"illegal-symbol\";",
" yys = yyname[YYTRANSLATE(yychar)];",
" printf(\"%sdebug: state %d, error recovery discards token %d\
(%s)\\n\",",
" YYPREFIX, yystate, yychar, yys);",
@ -371,9 +367,7 @@ const char *const trailer[] =
"#if YYDEBUG",
" if (yydebug)",
" {",
" yys = 0;",
" if (yychar <= YYMAXTOKEN) yys = yyname[yychar];",
" if (!yys) yys = \"illegal-symbol\";",
" yys = yyname[YYTRANSLATE(yychar)];",
" printf(\"%sdebug: state %d, reading %d (%s)\\n\",",
" YYPREFIX, YYFINAL, yychar, yys);",
" }",

View File

@ -232,6 +232,7 @@ static const short calc_check[] = { 40,
#define YYDEBUG 0
#endif
#define YYMAXTOKEN 259
#define YYTRANSLATE(a) ((a) > YYMAXTOKEN ? (YYMAXTOKEN + 1) : (a))
#if YYDEBUG
static const char *yyname[] = {
@ -242,7 +243,7 @@ static const char *yyname[] = {
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,"DIGIT","LETTER","UMINUS",
0,0,0,0,0,0,"DIGIT","LETTER","UMINUS","illegal-symbol",
};
static const char *yyrule[] = {
"$accept : list",
@ -441,9 +442,7 @@ YYPARSE_DECL()
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
yys = yyname[YYTRANSLATE(yychar)];
printf("%sdebug: state %d, reading %d (%s)\n",
YYPREFIX, yystate, yychar, yys);
}
@ -525,9 +524,7 @@ YYPARSE_DECL()
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
yys = yyname[YYTRANSLATE(yychar)];
printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
YYPREFIX, yystate, yychar, yys);
}
@ -609,7 +606,7 @@ case 18:
#line 63 "calc.y"
{ yyval = base * yystack.l_mark[-1] + yystack.l_mark[0]; }
break;
#line 613 "calc.tab.c"
#line 609 "calc.tab.c"
}
yystack.s_mark -= yym;
yystate = *yystack.s_mark;
@ -631,9 +628,7 @@ break;
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
yys = yyname[YYTRANSLATE(yychar)];
printf("%sdebug: state %d, reading %d (%s)\n",
YYPREFIX, YYFINAL, yychar, yys);
}

View File

@ -272,6 +272,7 @@ static const short calc1_check[] = { 40,
#define YYDEBUG 0
#endif
#define YYMAXTOKEN 260
#define YYTRANSLATE(a) ((a) > YYMAXTOKEN ? (YYMAXTOKEN + 1) : (a))
#if YYDEBUG
static const char *yyname[] = {
@ -282,7 +283,7 @@ static const char *yyname[] = {
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,"DREG","VREG","CONST","UMINUS",
0,0,"DREG","VREG","CONST","UMINUS","illegal-symbol",
};
static const char *yyrule[] = {
"$accept : line",
@ -580,9 +581,7 @@ YYPARSE_DECL()
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
yys = yyname[YYTRANSLATE(yychar)];
printf("%sdebug: state %d, reading %d (%s)\n",
YYPREFIX, yystate, yychar, yys);
}
@ -664,9 +663,7 @@ YYPARSE_DECL()
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
yys = yyname[YYTRANSLATE(yychar)];
printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
YYPREFIX, yystate, yychar, yys);
}
@ -851,7 +848,7 @@ case 28:
yyval.vval = yystack.l_mark[-1].vval;
}
break;
#line 855 "calc1.tab.c"
#line 851 "calc1.tab.c"
}
yystack.s_mark -= yym;
yystate = *yystack.s_mark;
@ -873,9 +870,7 @@ break;
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
yys = yyname[YYTRANSLATE(yychar)];
printf("%sdebug: state %d, reading %d (%s)\n",
YYPREFIX, YYFINAL, yychar, yys);
}

View File

@ -234,6 +234,7 @@ static const short calc2_check[] = { 40,
#define YYDEBUG 0
#endif
#define YYMAXTOKEN 259
#define YYTRANSLATE(a) ((a) > YYMAXTOKEN ? (YYMAXTOKEN + 1) : (a))
#if YYDEBUG
static const char *yyname[] = {
@ -244,7 +245,7 @@ static const char *yyname[] = {
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,"DIGIT","LETTER","UMINUS",
0,0,0,0,0,0,"DIGIT","LETTER","UMINUS","illegal-symbol",
};
static const char *yyrule[] = {
"$accept : list",
@ -450,9 +451,7 @@ YYPARSE_DECL()
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
yys = yyname[YYTRANSLATE(yychar)];
printf("%sdebug: state %d, reading %d (%s)\n",
YYPREFIX, yystate, yychar, yys);
}
@ -534,9 +533,7 @@ YYPARSE_DECL()
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
yys = yyname[YYTRANSLATE(yychar)];
printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
YYPREFIX, yystate, yychar, yys);
}
@ -618,7 +615,7 @@ case 18:
#line 70 "calc2.y"
{ yyval = (*base) * yystack.l_mark[-1] + yystack.l_mark[0]; }
break;
#line 622 "calc2.tab.c"
#line 618 "calc2.tab.c"
}
yystack.s_mark -= yym;
yystate = *yystack.s_mark;
@ -640,9 +637,7 @@ break;
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
yys = yyname[YYTRANSLATE(yychar)];
printf("%sdebug: state %d, reading %d (%s)\n",
YYPREFIX, YYFINAL, yychar, yys);
}

View File

@ -239,6 +239,7 @@ static const short calc3_check[] = { 40,
#define YYDEBUG 0
#endif
#define YYMAXTOKEN 259
#define YYTRANSLATE(a) ((a) > YYMAXTOKEN ? (YYMAXTOKEN + 1) : (a))
#if YYDEBUG
static const char *yyname[] = {
@ -249,7 +250,7 @@ static const char *yyname[] = {
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,"DIGIT","LETTER","UMINUS",
0,0,0,0,0,0,"DIGIT","LETTER","UMINUS","illegal-symbol",
};
static const char *yyrule[] = {
"$accept : list",
@ -455,9 +456,7 @@ YYPARSE_DECL()
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
yys = yyname[YYTRANSLATE(yychar)];
printf("%sdebug: state %d, reading %d (%s)\n",
YYPREFIX, yystate, yychar, yys);
}
@ -539,9 +538,7 @@ YYPARSE_DECL()
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
yys = yyname[YYTRANSLATE(yychar)];
printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
YYPREFIX, yystate, yychar, yys);
}
@ -623,7 +620,7 @@ case 18:
#line 73 "calc3.y"
{ yyval = (*base) * yystack.l_mark[-1] + yystack.l_mark[0]; }
break;
#line 627 "calc3.tab.c"
#line 623 "calc3.tab.c"
}
yystack.s_mark -= yym;
yystate = *yystack.s_mark;
@ -645,9 +642,7 @@ break;
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
yys = yyname[YYTRANSLATE(yychar)];
printf("%sdebug: state %d, reading %d (%s)\n",
YYPREFIX, YYFINAL, yychar, yys);
}

View File

@ -73,6 +73,7 @@ extern int YYPARSE_DECL();
#define YYDEBUG 0
#endif
#define YYMAXTOKEN 259
#define YYTRANSLATE(a) ((a) > YYMAXTOKEN ? (YYMAXTOKEN + 1) : (a))
#ifndef yyparse
#define yyparse calc_parse
@ -348,9 +349,7 @@ YYPARSE_DECL()
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
yys = yyname[YYTRANSLATE(yychar)];
printf("%sdebug: state %d, reading %d (%s)\n",
YYPREFIX, yystate, yychar, yys);
}
@ -432,9 +431,7 @@ YYPARSE_DECL()
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
yys = yyname[YYTRANSLATE(yychar)];
printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
YYPREFIX, yystate, yychar, yys);
}
@ -516,7 +513,7 @@ case 18:
#line 65 "code_calc.y"
{ yyval = base * yystack.l_mark[-1] + yystack.l_mark[0]; }
break;
#line 520 "code_calc.code.c"
#line 516 "code_calc.code.c"
}
yystack.s_mark -= yym;
yystate = *yystack.s_mark;
@ -538,9 +535,7 @@ break;
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
yys = yyname[YYTRANSLATE(yychar)];
printf("%sdebug: state %d, reading %d (%s)\n",
YYPREFIX, YYFINAL, yychar, yys);
}

View File

@ -172,7 +172,7 @@ const char *yyname[] = {
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,"DIGIT","LETTER","UMINUS",
0,0,0,0,0,0,"DIGIT","LETTER","UMINUS","illegal-symbol",
};
const char *yyrule[] = {
"$accept : list",

View File

@ -65,6 +65,7 @@ extern int YYPARSE_DECL();
#define YYDEBUG 0
#endif
#define YYMAXTOKEN 0
#define YYTRANSLATE(a) ((a) > YYMAXTOKEN ? (YYMAXTOKEN + 1) : (a))
#ifndef yyparse
#define yyparse error_parse
@ -320,9 +321,7 @@ YYPARSE_DECL()
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
yys = yyname[YYTRANSLATE(yychar)];
printf("%sdebug: state %d, reading %d (%s)\n",
YYPREFIX, yystate, yychar, yys);
}
@ -404,9 +403,7 @@ YYPARSE_DECL()
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
yys = yyname[YYTRANSLATE(yychar)];
printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
YYPREFIX, yystate, yychar, yys);
}
@ -449,9 +446,7 @@ YYPARSE_DECL()
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
yys = yyname[YYTRANSLATE(yychar)];
printf("%sdebug: state %d, reading %d (%s)\n",
YYPREFIX, YYFINAL, yychar, yys);
}

View File

@ -108,7 +108,7 @@ const short error_check[] = { 256,
#if YYDEBUG
const char *yyname[] = {
"end-of-file",
"end-of-file","illegal-symbol",
};
const char *yyrule[] = {
"$accept : S",

View File

@ -165,10 +165,11 @@ static const short error_check[] = { 256,
#define YYDEBUG 0
#endif
#define YYMAXTOKEN 0
#define YYTRANSLATE(a) ((a) > YYMAXTOKEN ? (YYMAXTOKEN + 1) : (a))
#if YYDEBUG
static const char *yyname[] = {
"end-of-file",
"end-of-file","illegal-symbol",
};
static const char *yyrule[] = {
"$accept : S",
@ -330,9 +331,7 @@ YYPARSE_DECL()
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
yys = yyname[YYTRANSLATE(yychar)];
printf("%sdebug: state %d, reading %d (%s)\n",
YYPREFIX, yystate, yychar, yys);
}
@ -414,9 +413,7 @@ YYPARSE_DECL()
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
yys = yyname[YYTRANSLATE(yychar)];
printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
YYPREFIX, yystate, yychar, yys);
}
@ -459,9 +456,7 @@ YYPARSE_DECL()
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
yys = yyname[YYTRANSLATE(yychar)];
printf("%sdebug: state %d, reading %d (%s)\n",
YYPREFIX, YYFINAL, yychar, yys);
}

View File

@ -448,6 +448,7 @@ static const short ftp_check[] = { 89,
#define YYDEBUG 0
#endif
#define YYMAXTOKEN 319
#define YYTRANSLATE(a) ((a) > YYMAXTOKEN ? (YYMAXTOKEN + 1) : (a))
#if YYDEBUG
static const char *yyname[] = {
@ -462,7 +463,7 @@ static const char *yyname[] = {
"QUIT","PORT","PASV","TYPE","STRU","MODE","RETR","STOR","APPE","MLFL","MAIL",
"MSND","MSOM","MSAM","MRSQ","MRCP","ALLO","REST","RNFR","RNTO","ABOR","DELE",
"CWD","LIST","NLST","SITE","STAT","HELP","NOOP","MKD","RMD","PWD","CDUP","STOU",
"SMNT","SYST","SIZE","MDTM","UMASK","IDLE","CHMOD","LEXERR",
"SMNT","SYST","SIZE","MDTM","UMASK","IDLE","CHMOD","LEXERR","illegal-symbol",
};
static const char *yyrule[] = {
"$accept : cmd_list",
@ -1197,9 +1198,7 @@ YYPARSE_DECL()
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
yys = yyname[YYTRANSLATE(yychar)];
printf("%sdebug: state %d, reading %d (%s)\n",
YYPREFIX, yystate, yychar, yys);
}
@ -1281,9 +1280,7 @@ YYPARSE_DECL()
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
yys = yyname[YYTRANSLATE(yychar)];
printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
YYPREFIX, yystate, yychar, yys);
}
@ -1946,7 +1943,7 @@ case 73:
}
}
break;
#line 1950 "ftp.tab.c"
#line 1946 "ftp.tab.c"
}
yystack.s_mark -= yym;
yystate = *yystack.s_mark;
@ -1968,9 +1965,7 @@ break;
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
yys = yyname[YYTRANSLATE(yychar)];
printf("%sdebug: state %d, reading %d (%s)\n",
YYPREFIX, YYFINAL, yychar, yys);
}

View File

@ -740,6 +740,7 @@ static const short grammar_check[] = { 38,
#define YYDEBUG 0
#endif
#define YYMAXTOKEN 291
#define YYTRANSLATE(a) ((a) > YYMAXTOKEN ? (YYMAXTOKEN + 1) : (a))
#if YYDEBUG
static const char *yyname[] = {
@ -756,6 +757,7 @@ static const char *yyname[] = {
"T_UNSIGNED","T_ENUM","T_STRUCT","T_UNION","T_Bool","T_Complex","T_Imaginary",
"T_TYPE_QUALIFIER","T_BRACKETS","T_LBRACE","T_MATCHRBRACE","T_ELLIPSIS",
"T_INITIALIZER","T_STRING_LITERAL","T_ASM","T_ASMARG","T_VA_DCL",
"illegal-symbol",
};
static const char *yyrule[] = {
"$accept : program",
@ -1081,7 +1083,7 @@ free_parser(void)
#endif
}
#endif
#line 1085 "grammar.tab.c"
#line 1086 "grammar.tab.c"
#if YYDEBUG
#include <stdio.h> /* needed for printf */
@ -1179,9 +1181,7 @@ YYPARSE_DECL()
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
yys = yyname[YYTRANSLATE(yychar)];
printf("%sdebug: state %d, reading %d (%s)\n",
YYPREFIX, yystate, yychar, yys);
}
@ -1263,9 +1263,7 @@ YYPARSE_DECL()
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
yys = yyname[YYTRANSLATE(yychar)];
printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
YYPREFIX, yystate, yychar, yys);
}
@ -1961,7 +1959,7 @@ case 114:
yyval.declarator->func_def = FUNC_ANSI;
}
break;
#line 1965 "grammar.tab.c"
#line 1962 "grammar.tab.c"
}
yystack.s_mark -= yym;
yystate = *yystack.s_mark;
@ -1983,9 +1981,7 @@ break;
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
yys = yyname[YYTRANSLATE(yychar)];
printf("%sdebug: state %d, reading %d (%s)\n",
YYPREFIX, YYFINAL, yychar, yys);
}

View File

@ -242,6 +242,7 @@ static const short calc_check[] = { 40,
#define YYDEBUG 0
#endif
#define YYMAXTOKEN 259
#define YYTRANSLATE(a) ((a) > YYMAXTOKEN ? (YYMAXTOKEN + 1) : (a))
#if YYDEBUG
static const char *yyname[] = {
@ -252,7 +253,7 @@ static const char *yyname[] = {
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,"DIGIT","LETTER","UMINUS",
0,0,0,0,0,0,"DIGIT","LETTER","UMINUS","illegal-symbol",
};
static const char *yyrule[] = {
"$accept : list",
@ -455,9 +456,7 @@ YYPARSE_DECL()
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
yys = yyname[YYTRANSLATE(yychar)];
printf("%sdebug: state %d, reading %d (%s)\n",
YYPREFIX, yystate, yychar, yys);
}
@ -539,9 +538,7 @@ YYPARSE_DECL()
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
yys = yyname[YYTRANSLATE(yychar)];
printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
YYPREFIX, yystate, yychar, yys);
}
@ -623,7 +620,7 @@ case 18:
#line 69 "pure_calc.y"
{ yyval = base * yystack.l_mark[-1] + yystack.l_mark[0]; }
break;
#line 627 "pure_calc.tab.c"
#line 623 "pure_calc.tab.c"
}
yystack.s_mark -= yym;
yystate = *yystack.s_mark;
@ -645,9 +642,7 @@ break;
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
yys = yyname[YYTRANSLATE(yychar)];
printf("%sdebug: state %d, reading %d (%s)\n",
YYPREFIX, YYFINAL, yychar, yys);
}

View File

@ -177,10 +177,11 @@ static const short error_check[] = { 256,
#define YYDEBUG 0
#endif
#define YYMAXTOKEN 0
#define YYTRANSLATE(a) ((a) > YYMAXTOKEN ? (YYMAXTOKEN + 1) : (a))
#if YYDEBUG
static const char *yyname[] = {
"end-of-file",
"end-of-file","illegal-symbol",
};
static const char *yyrule[] = {
"$accept : S",
@ -346,9 +347,7 @@ YYPARSE_DECL()
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
yys = yyname[YYTRANSLATE(yychar)];
printf("%sdebug: state %d, reading %d (%s)\n",
YYPREFIX, yystate, yychar, yys);
}
@ -430,9 +429,7 @@ YYPARSE_DECL()
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
yys = yyname[YYTRANSLATE(yychar)];
printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
YYPREFIX, yystate, yychar, yys);
}
@ -475,9 +472,7 @@ YYPARSE_DECL()
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
yys = yyname[YYTRANSLATE(yychar)];
printf("%sdebug: state %d, reading %d (%s)\n",
YYPREFIX, YYFINAL, yychar, yys);
}

View File

@ -246,6 +246,7 @@ static const short quote_calc_check[] = { 10,
#define YYDEBUG 0
#endif
#define YYMAXTOKEN 271
#define YYTRANSLATE(a) ((a) > YYMAXTOKEN ? (YYMAXTOKEN + 1) : (a))
#if YYDEBUG
static const char *yyname[] = {
@ -258,6 +259,7 @@ static const char *yyname[] = {
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,"OP_ADD","\"ADD\"","OP_SUB","\"SUB\"","OP_MUL","\"MUL\"","OP_DIV",
"\"DIV\"","OP_MOD","\"MOD\"","OP_AND","\"AND\"","DIGIT","LETTER","UMINUS",
"illegal-symbol",
};
static const char *yyrule[] = {
"$accept : list",
@ -357,7 +359,7 @@ yylex(void) {
}
return( c );
}
#line 361 "quote_calc-s.tab.c"
#line 362 "quote_calc-s.tab.c"
#if YYDEBUG
#include <stdio.h> /* needed for printf */
@ -455,9 +457,7 @@ YYPARSE_DECL()
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
yys = yyname[YYTRANSLATE(yychar)];
printf("%sdebug: state %d, reading %d (%s)\n",
YYPREFIX, yystate, yychar, yys);
}
@ -539,9 +539,7 @@ YYPARSE_DECL()
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
yys = yyname[YYTRANSLATE(yychar)];
printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
YYPREFIX, yystate, yychar, yys);
}
@ -623,7 +621,7 @@ case 18:
#line 70 "quote_calc.y"
{ yyval = base * yystack.l_mark[-1] + yystack.l_mark[0]; }
break;
#line 627 "quote_calc-s.tab.c"
#line 624 "quote_calc-s.tab.c"
}
yystack.s_mark -= yym;
yystate = *yystack.s_mark;
@ -645,9 +643,7 @@ break;
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
yys = yyname[YYTRANSLATE(yychar)];
printf("%sdebug: state %d, reading %d (%s)\n",
YYPREFIX, YYFINAL, yychar, yys);
}

View File

@ -252,6 +252,7 @@ static const short quote_calc_check[] = { 10,
#define YYDEBUG 0
#endif
#define YYMAXTOKEN 271
#define YYTRANSLATE(a) ((a) > YYMAXTOKEN ? (YYMAXTOKEN + 1) : (a))
#if YYDEBUG
static const char *yyname[] = {
@ -264,6 +265,7 @@ static const char *yyname[] = {
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,"OP_ADD","\"ADD\"","OP_SUB","\"SUB\"","OP_MUL","\"MUL\"","OP_DIV",
"\"DIV\"","OP_MOD","\"MOD\"","OP_AND","\"AND\"","DIGIT","LETTER","UMINUS",
"illegal-symbol",
};
static const char *yyrule[] = {
"$accept : list",
@ -363,7 +365,7 @@ yylex(void) {
}
return( c );
}
#line 367 "quote_calc.tab.c"
#line 368 "quote_calc.tab.c"
#if YYDEBUG
#include <stdio.h> /* needed for printf */
@ -461,9 +463,7 @@ YYPARSE_DECL()
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
yys = yyname[YYTRANSLATE(yychar)];
printf("%sdebug: state %d, reading %d (%s)\n",
YYPREFIX, yystate, yychar, yys);
}
@ -545,9 +545,7 @@ YYPARSE_DECL()
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
yys = yyname[YYTRANSLATE(yychar)];
printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
YYPREFIX, yystate, yychar, yys);
}
@ -629,7 +627,7 @@ case 18:
#line 70 "quote_calc.y"
{ yyval = base * yystack.l_mark[-1] + yystack.l_mark[0]; }
break;
#line 633 "quote_calc.tab.c"
#line 630 "quote_calc.tab.c"
}
yystack.s_mark -= yym;
yystate = *yystack.s_mark;
@ -651,9 +649,7 @@ break;
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
yys = yyname[YYTRANSLATE(yychar)];
printf("%sdebug: state %d, reading %d (%s)\n",
YYPREFIX, YYFINAL, yychar, yys);
}

View File

@ -246,6 +246,7 @@ static const short quote_calc2_check[] = { 10,
#define YYDEBUG 0
#endif
#define YYMAXTOKEN 271
#define YYTRANSLATE(a) ((a) > YYMAXTOKEN ? (YYMAXTOKEN + 1) : (a))
#if YYDEBUG
static const char *yyname[] = {
@ -258,6 +259,7 @@ static const char *yyname[] = {
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,"OP_ADD","\"ADD\"","OP_SUB","\"SUB\"","OP_MUL","\"MUL\"","OP_DIV",
"\"DIV\"","OP_MOD","\"MOD\"","OP_AND","\"AND\"","DIGIT","LETTER","UMINUS",
"illegal-symbol",
};
static const char *yyrule[] = {
"$accept : list",
@ -357,7 +359,7 @@ yylex(void) {
}
return( c );
}
#line 361 "quote_calc2-s.tab.c"
#line 362 "quote_calc2-s.tab.c"
#if YYDEBUG
#include <stdio.h> /* needed for printf */
@ -455,9 +457,7 @@ YYPARSE_DECL()
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
yys = yyname[YYTRANSLATE(yychar)];
printf("%sdebug: state %d, reading %d (%s)\n",
YYPREFIX, yystate, yychar, yys);
}
@ -539,9 +539,7 @@ YYPARSE_DECL()
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
yys = yyname[YYTRANSLATE(yychar)];
printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
YYPREFIX, yystate, yychar, yys);
}
@ -623,7 +621,7 @@ case 18:
#line 70 "quote_calc2.y"
{ yyval = base * yystack.l_mark[-1] + yystack.l_mark[0]; }
break;
#line 627 "quote_calc2-s.tab.c"
#line 624 "quote_calc2-s.tab.c"
}
yystack.s_mark -= yym;
yystate = *yystack.s_mark;
@ -645,9 +643,7 @@ break;
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
yys = yyname[YYTRANSLATE(yychar)];
printf("%sdebug: state %d, reading %d (%s)\n",
YYPREFIX, YYFINAL, yychar, yys);
}

View File

@ -252,6 +252,7 @@ static const short quote_calc2_check[] = { 10,
#define YYDEBUG 0
#endif
#define YYMAXTOKEN 271
#define YYTRANSLATE(a) ((a) > YYMAXTOKEN ? (YYMAXTOKEN + 1) : (a))
#if YYDEBUG
static const char *yyname[] = {
@ -264,6 +265,7 @@ static const char *yyname[] = {
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,"OP_ADD","\"ADD\"","OP_SUB","\"SUB\"","OP_MUL","\"MUL\"","OP_DIV",
"\"DIV\"","OP_MOD","\"MOD\"","OP_AND","\"AND\"","DIGIT","LETTER","UMINUS",
"illegal-symbol",
};
static const char *yyrule[] = {
"$accept : list",
@ -363,7 +365,7 @@ yylex(void) {
}
return( c );
}
#line 367 "quote_calc2.tab.c"
#line 368 "quote_calc2.tab.c"
#if YYDEBUG
#include <stdio.h> /* needed for printf */
@ -461,9 +463,7 @@ YYPARSE_DECL()
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
yys = yyname[YYTRANSLATE(yychar)];
printf("%sdebug: state %d, reading %d (%s)\n",
YYPREFIX, yystate, yychar, yys);
}
@ -545,9 +545,7 @@ YYPARSE_DECL()
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
yys = yyname[YYTRANSLATE(yychar)];
printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
YYPREFIX, yystate, yychar, yys);
}
@ -629,7 +627,7 @@ case 18:
#line 70 "quote_calc2.y"
{ yyval = base * yystack.l_mark[-1] + yystack.l_mark[0]; }
break;
#line 633 "quote_calc2.tab.c"
#line 630 "quote_calc2.tab.c"
}
yystack.s_mark -= yym;
yystate = *yystack.s_mark;
@ -651,9 +649,7 @@ break;
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
yys = yyname[YYTRANSLATE(yychar)];
printf("%sdebug: state %d, reading %d (%s)\n",
YYPREFIX, YYFINAL, yychar, yys);
}

View File

@ -246,6 +246,7 @@ static const short quote_calc3_check[] = { 10,
#define YYDEBUG 0
#endif
#define YYMAXTOKEN 271
#define YYTRANSLATE(a) ((a) > YYMAXTOKEN ? (YYMAXTOKEN + 1) : (a))
#if YYDEBUG
static const char *yyname[] = {
@ -258,7 +259,7 @@ static const char *yyname[] = {
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,"OP_ADD","\"ADD-operator\"","OP_SUB","\"SUB-operator\"","OP_MUL",
"\"MUL-operator\"","OP_DIV","\"DIV-operator\"","OP_MOD","\"MOD-operator\"",
"OP_AND","\"AND-operator\"","DIGIT","LETTER","UMINUS",
"OP_AND","\"AND-operator\"","DIGIT","LETTER","UMINUS","illegal-symbol",
};
static const char *yyrule[] = {
"$accept : list",
@ -456,9 +457,7 @@ YYPARSE_DECL()
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
yys = yyname[YYTRANSLATE(yychar)];
printf("%sdebug: state %d, reading %d (%s)\n",
YYPREFIX, yystate, yychar, yys);
}
@ -540,9 +539,7 @@ YYPARSE_DECL()
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
yys = yyname[YYTRANSLATE(yychar)];
printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
YYPREFIX, yystate, yychar, yys);
}
@ -624,7 +621,7 @@ case 18:
#line 70 "quote_calc3.y"
{ yyval = base * yystack.l_mark[-1] + yystack.l_mark[0]; }
break;
#line 628 "quote_calc3-s.tab.c"
#line 624 "quote_calc3-s.tab.c"
}
yystack.s_mark -= yym;
yystate = *yystack.s_mark;
@ -646,9 +643,7 @@ break;
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
yys = yyname[YYTRANSLATE(yychar)];
printf("%sdebug: state %d, reading %d (%s)\n",
YYPREFIX, YYFINAL, yychar, yys);
}

View File

@ -246,6 +246,7 @@ static const short quote_calc3_check[] = { 10,
#define YYDEBUG 0
#endif
#define YYMAXTOKEN 271
#define YYTRANSLATE(a) ((a) > YYMAXTOKEN ? (YYMAXTOKEN + 1) : (a))
#if YYDEBUG
static const char *yyname[] = {
@ -258,7 +259,7 @@ static const char *yyname[] = {
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,"OP_ADD","\"ADD-operator\"","OP_SUB","\"SUB-operator\"","OP_MUL",
"\"MUL-operator\"","OP_DIV","\"DIV-operator\"","OP_MOD","\"MOD-operator\"",
"OP_AND","\"AND-operator\"","DIGIT","LETTER","UMINUS",
"OP_AND","\"AND-operator\"","DIGIT","LETTER","UMINUS","illegal-symbol",
};
static const char *yyrule[] = {
"$accept : list",
@ -456,9 +457,7 @@ YYPARSE_DECL()
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
yys = yyname[YYTRANSLATE(yychar)];
printf("%sdebug: state %d, reading %d (%s)\n",
YYPREFIX, yystate, yychar, yys);
}
@ -540,9 +539,7 @@ YYPARSE_DECL()
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
yys = yyname[YYTRANSLATE(yychar)];
printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
YYPREFIX, yystate, yychar, yys);
}
@ -624,7 +621,7 @@ case 18:
#line 70 "quote_calc3.y"
{ yyval = base * yystack.l_mark[-1] + yystack.l_mark[0]; }
break;
#line 628 "quote_calc3.tab.c"
#line 624 "quote_calc3.tab.c"
}
yystack.s_mark -= yym;
yystate = *yystack.s_mark;
@ -646,9 +643,7 @@ break;
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
yys = yyname[YYTRANSLATE(yychar)];
printf("%sdebug: state %d, reading %d (%s)\n",
YYPREFIX, YYFINAL, yychar, yys);
}

View File

@ -246,6 +246,7 @@ static const short quote_calc4_check[] = { 10,
#define YYDEBUG 0
#endif
#define YYMAXTOKEN 271
#define YYTRANSLATE(a) ((a) > YYMAXTOKEN ? (YYMAXTOKEN + 1) : (a))
#if YYDEBUG
static const char *yyname[] = {
@ -258,7 +259,7 @@ static const char *yyname[] = {
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,"OP_ADD","\"ADD-operator\"","OP_SUB","\"SUB-operator\"","OP_MUL",
"\"MUL-operator\"","OP_DIV","\"DIV-operator\"","OP_MOD","\"MOD-operator\"",
"OP_AND","\"AND-operator\"","DIGIT","LETTER","UMINUS",
"OP_AND","\"AND-operator\"","DIGIT","LETTER","UMINUS","illegal-symbol",
};
static const char *yyrule[] = {
"$accept : list",
@ -456,9 +457,7 @@ YYPARSE_DECL()
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
yys = yyname[YYTRANSLATE(yychar)];
printf("%sdebug: state %d, reading %d (%s)\n",
YYPREFIX, yystate, yychar, yys);
}
@ -540,9 +539,7 @@ YYPARSE_DECL()
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
yys = yyname[YYTRANSLATE(yychar)];
printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
YYPREFIX, yystate, yychar, yys);
}
@ -624,7 +621,7 @@ case 18:
#line 70 "quote_calc4.y"
{ yyval = base * yystack.l_mark[-1] + yystack.l_mark[0]; }
break;
#line 628 "quote_calc4-s.tab.c"
#line 624 "quote_calc4-s.tab.c"
}
yystack.s_mark -= yym;
yystate = *yystack.s_mark;
@ -646,9 +643,7 @@ break;
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
yys = yyname[YYTRANSLATE(yychar)];
printf("%sdebug: state %d, reading %d (%s)\n",
YYPREFIX, YYFINAL, yychar, yys);
}

View File

@ -246,6 +246,7 @@ static const short quote_calc4_check[] = { 10,
#define YYDEBUG 0
#endif
#define YYMAXTOKEN 271
#define YYTRANSLATE(a) ((a) > YYMAXTOKEN ? (YYMAXTOKEN + 1) : (a))
#if YYDEBUG
static const char *yyname[] = {
@ -258,7 +259,7 @@ static const char *yyname[] = {
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,"OP_ADD","\"ADD-operator\"","OP_SUB","\"SUB-operator\"","OP_MUL",
"\"MUL-operator\"","OP_DIV","\"DIV-operator\"","OP_MOD","\"MOD-operator\"",
"OP_AND","\"AND-operator\"","DIGIT","LETTER","UMINUS",
"OP_AND","\"AND-operator\"","DIGIT","LETTER","UMINUS","illegal-symbol",
};
static const char *yyrule[] = {
"$accept : list",
@ -456,9 +457,7 @@ YYPARSE_DECL()
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
yys = yyname[YYTRANSLATE(yychar)];
printf("%sdebug: state %d, reading %d (%s)\n",
YYPREFIX, yystate, yychar, yys);
}
@ -540,9 +539,7 @@ YYPARSE_DECL()
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
yys = yyname[YYTRANSLATE(yychar)];
printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
YYPREFIX, yystate, yychar, yys);
}
@ -624,7 +621,7 @@ case 18:
#line 70 "quote_calc4.y"
{ yyval = base * yystack.l_mark[-1] + yystack.l_mark[0]; }
break;
#line 628 "quote_calc4.tab.c"
#line 624 "quote_calc4.tab.c"
}
yystack.s_mark -= yym;
yystate = *yystack.s_mark;
@ -646,9 +643,7 @@ break;
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
yys = yyname[YYTRANSLATE(yychar)];
printf("%sdebug: state %d, reading %d (%s)\n",
YYPREFIX, YYFINAL, yychar, yys);
}

60
yacc.1
View File

@ -1,4 +1,4 @@
.\" $Id: yacc.1,v 1.18 2012/01/15 18:12:28 tom Exp $
.\" $Id: yacc.1,v 1.20 2014/01/01 17:40:13 tom Exp $
.\"
.\" .TH YACC 1 "July\ 15,\ 1990"
.\" .UC 6
@ -8,15 +8,22 @@
.sp
.in +4
..
.de EE
.de XE
.in -4
.fi
..
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds AQ \(aq
.el .ds AQ '
.ie \n(.g .ds `` \(lq
.el .ds `` ``
.ie \n(.g .ds '' \(rq
.el .ds '' ''
.\" Bulleted paragraph
.de bP
.IP \(bu 4
..
.TH YACC 1 "September 7, 2011" "Berkeley Yacc" "User Commands"
.TH YACC 1 "January 1, 2014" "Berkeley Yacc" "User Commands"
.SH NAME
Yacc \- an LALR(1) parser generator
.SH SYNOPSIS
@ -105,30 +112,31 @@ The default prefix is the string
.BR yy.
.TP
.B \-P
create a reentrant parser, e.g., "%pure-parser".
create a reentrant parser, e.g., \*(``%pure-parser\*(''.
.TP
.B \-r
The
.B \-r
option causes
.B yacc
to produce separate files for code and tables. The code file
is named
to produce separate files for code and tables.
The code file is named
.IR y.code.c,
and the tables file is named
.IR y.tab.c.
The prefix "\fIy.\fP" can be overridden using the \fB\-b\fP option.
The prefix \*(``\fIy.\fP\*('' can be overridden using the \fB\-b\fP option.
.TP
.B \-s
suppress "\fB#define\fP" statements generated for string literals in
a "\fB%token\fP" statement, to more closely match original \fByacc\fP behavior.
suppress \*(``\fB#define\fP\*('' statements generated for string literals in
a \*(``\fB%token\fP\*('' statement,
to more closely match original \fByacc\fP behavior.
.IP
Normally when \fByacc\fP sees a line such as
.ES
%token OP_ADD "ADD"
.EE
.XE
.IP
it notices that the quoted "ADD" is a valid C identifier,
it notices that the quoted \*(``ADD\*('' is a valid C identifier,
and generates a #define not only for OP_ADD,
but for ADD as well,
e.g.,
@ -136,12 +144,13 @@ e.g.,
#define OP_ADD 257
.br
#define ADD 258
.EE
.XE
.IP
The original \fByacc\fP does not generate the second "\fB#define\fP".
The \fB\-s\fP option suppresses this "\fB#define\fP".
The original \fByacc\fP does not generate the second \*(``\fB#define\fP\*(''.
The \fB\-s\fP option suppresses this \*(``\fB#define\fP\*(''.
.IP
POSIX (IEEE 1003.1 2004) documents only names and numbers for "\fB%token\fP",
POSIX (IEEE 1003.1 2004) documents only names and numbers
for \*(``\fB%token\fP\*('',
though original \fByacc\fP and bison also accept string literals.
.TP
.B \-t
@ -166,8 +175,8 @@ print the version number to the standard output.
which bison supports for ostensible POSIX compatibility.
.SH EXTENSIONS
.B yacc
provides some extensions for compatibility with bison and other implementations
of yacc:
provides some extensions for
compatibility with bison and other implementations of yacc:
.TP
\fB %expect\fP \fInumber\fP
tell \fByacc\fP the expected number of shift/reduce conflicts.
@ -190,6 +199,13 @@ Use this directive to add parameter declarations for your customized parser.
Most variables (other than \fByydebug\fP and \fByynerrs\fP) are
allocated on the stack within \fByyparse\fP, making the parser reasonably
reentrant.
.TP
\fB %token-table\fP
Make the parser's names for tokens available in the \fByytname\fP array.
However,
.B yacc
does not predefine \*(``$end\*('', \*(``$error\*(''
or \*(``$undefined\*('' in this array.
.SH PORTABILITY
According to Robert Corbett,
.ES
@ -198,12 +214,12 @@ as compatible as possible with AT&T Yacc. Berkeley Yacc can accept any input
specification that conforms to the AT&T Yacc documentation. Specifications
that take advantage of undocumented features of AT&T Yacc will probably be
rejected.
.EE
.XE
.PP
The rationale in
.ES
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/yacc.html
.EE
.XE
.PP
documents some features of AT&T yacc which are no longer required for POSIX
compliance.
@ -220,19 +236,19 @@ of an action (as in the original grammar file \fBftp.y\fP):
= {
statcmd();
}
.EE
.XE
.bP
\fBYacc\fP and bison emit code in different order, and in particular bison
makes forward reference to common functions such as yylex, yyparse and
yyerror without providing prototypes.
.bP
Bison's support for "%expect" is broken in more than one release.
Bison's support for \*(``%expect\*('' is broken in more than one release.
For best results using bison, delete that directive.
.bP
Bison has no equivalent for some of \fByacc\fP's commmand-line options,
relying on directives embedded in the grammar file.
.bP
Bison's "\fB\-y\fP" option does not affect bison's lack of support for
Bison's \*(``\fB\-y\fP\*('' option does not affect bison's lack of support for
features of AT&T yacc which were deemed obsolescent.
.
.SH DIAGNOSTICS