From 724526fc1b138c897777256ec764413fc9120734 Mon Sep 17 00:00:00 2001 From: Alex Smith Date: Sun, 14 Sep 2008 09:12:25 -0400 Subject: [PATCH] Change to new Automake-based build system --- BUGS.txt => BUGS | 0 COPYING.txt => COPYING | 0 MANIFEST.txt => MANIFEST | 0 Makefile.am | 103 + Makefile.in | 1693 ++++++++-- NEWS.txt => NEWS | 65 +- README | 260 ++ README.txt | 336 -- buildaux/depcomp | 589 ++++ buildaux/install-sh | 519 +++ buildaux/missing | 367 ++ buildaux/ylwrap | 223 ++ cleanick.bat | 17 - cleanick.sh | 22 - config.ac | 133 - config.sh | 6804 -------------------------------------- configure.ac | 92 + districk.bat | 11 - districk.sh | 13 - doc/ick.txi | 399 +-- etc/cftoec.sh | 9 +- etc/ctrlmfix.bat | 22 - etc/ctrlmfix.sh | 22 - makeick.bat | 89 - makeick.sh | 89 - prebuilt/lexer.c | 3126 +++++++++++++++++ prebuilt/oil-oil.c | 2761 ++++++++++++++++ prebuilt/parser.c | 3012 +++++++++++++++++ prebuilt/parser.h | 288 ++ src/configh.in | 140 +- 30 files changed, 13031 insertions(+), 8173 deletions(-) rename BUGS.txt => BUGS (100%) rename COPYING.txt => COPYING (100%) rename MANIFEST.txt => MANIFEST (100%) create mode 100644 Makefile.am rename NEWS.txt => NEWS (95%) create mode 100644 README delete mode 100644 README.txt create mode 100644 buildaux/depcomp create mode 100644 buildaux/install-sh create mode 100644 buildaux/missing create mode 100644 buildaux/ylwrap delete mode 100755 cleanick.bat delete mode 100755 cleanick.sh delete mode 100644 config.ac delete mode 100644 config.sh create mode 100644 configure.ac delete mode 100755 districk.bat delete mode 100755 districk.sh delete mode 100755 etc/ctrlmfix.bat delete mode 100755 etc/ctrlmfix.sh delete mode 100755 makeick.bat delete mode 100755 makeick.sh create mode 100644 prebuilt/lexer.c create mode 100644 prebuilt/oil-oil.c create mode 100644 prebuilt/parser.c create mode 100644 prebuilt/parser.h diff --git a/BUGS.txt b/BUGS similarity index 100% rename from BUGS.txt rename to BUGS diff --git a/COPYING.txt b/COPYING similarity index 100% rename from COPYING.txt rename to COPYING diff --git a/MANIFEST.txt b/MANIFEST similarity index 100% rename from MANIFEST.txt rename to MANIFEST diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 0000000..06909d8 --- /dev/null +++ b/Makefile.am @@ -0,0 +1,103 @@ +ICK_SPECIFIC_SUBDIR = ick-@PACKAGE_VERSION@ +ickincludedir = $(includedir)/$(ICK_SPECIFIC_SUBDIR) +ickdatadir = $(datadir)/$(ICK_SPECIFIC_SUBDIR) + +AM_CFLAGS = -DICKINCLUDEDIR=\"$(ickincludedir)\" \ + -DICKDATADIR=\"$(ickdatadir)\" \ + -DICKBINDIR=\"$(bindir)\" -DICKLIBDIR=\"$(libdir)\" \ + -DYYDEBUG -DICK_HAVE_STDINT_H=@HAVE_STDINT_H@ +AM_CPPFLAGS = -I$(srcdir)/src + +bin_PROGRAMS = ick convickt +ick_SOURCES = src/feh2.c src/dekludge.c src/ick_lose.c \ + src/fiddle.c src/perpet.c src/uncommon.c +nodist_ick_SOURCES = parser.y lexer.l +parser.y : src/parser.y + $(LN_S) `test -f 'src/parser.y' || echo '$(srcdir)/'`src/parser.y parser.y +lexer.l : src/lexer.l + $(LN_S) `test -f 'src/lexer.l' || echo '$(srcdir)/'`src/lexer.l lexer.l +ick_LDADD = libidiot.a +AM_YFLAGS = -d +BUILT_SOURCES = parser.h +noinst_LIBRARIES = libidiot.a +libidiot_a_SOURCES = src/idiotism.oil +libidiot.a: src/idiotism.oil oil$(EXEEXT) src/oil.h src/sizes.h src/ick.h \ + parser.h src/fiddle.h src/ick_lose.h src/feh.h + ./oil$(EXEEXT) < `test -f 'src/idiotism.oil' || echo '$(srcdir)/'`src/idiotism.oil + for oo in oilout*.c; do echo $$oo; $(COMPILE) -c $$oo; done + $(AR) $(ARFLAGS) libidiot.a oilout*.o + $(RANLIB) libidiot.a +convickt_SOURCES = src/convickt.c src/clc-cset.c src/uncommon.c + +noinst_PROGRAMS = oil bin2c +oil_SOURCES = src/oil.y +oil_YFLAGS = +bin2c_SOURCES = src/bin2c.c + +lib_LIBRARIES = libick.a libickmt.a libickec.a libyuk.a +libick_a_SOURCES = src/cesspool.c src/numerals.c src/ick_lose.c src/fiddle.c \ + src/arrgghh.c src/clc-cset.c src/uncommon.c +libick_a_LIBADD = atari.o baudot.o ebcdic.o latin1.o +libickmt_a_SOURCES = src/cesspool.c src/numerals.c src/ick_lose.c src/fiddle.c \ + src/arrgghh.c src/clc-cset.c src/uncommon.c src/unravel.c +libickmt_a_LIBADD = atari.o baudot.o ebcdic.o latin1.o +libickec_a_SOURCES = src/cesspool.c src/numerals.c src/ick_lose.c src/fiddle.c \ + src/arrgghh.c src/clc-cset.c src/uncommon.c src/ick_ec.c +libickec_a_LIBADD = atari.o baudot.o ebcdic.o latin1.o +libyuk_a_SOURCES = src/yuk.c +atari.o: bin2c$(EXEEXT) src/atari.bin + ./bin2c$(EXEEXT) ick_clc_cset_atari < `test -f 'src/atari.bin' || echo '$(srcdir)/'`src/atari.bin > atari.c + $(COMPILE) -c atari.c +baudot.o: bin2c$(EXEEXT) src/baudot.bin + ./bin2c$(EXEEXT) ick_clc_cset_baudot < `test -f 'src/baudot.bin' || echo '$(srcdir)/'`src/baudot.bin > baudot.c + $(COMPILE) -c baudot.c +ebcdic.o: bin2c$(EXEEXT) src/ebcdic.bin + ./bin2c$(EXEEXT) ick_clc_cset_ebcdic < `test -f 'src/ebcdic.bin' || echo '$(srcdir)/'`src/ebcdic.bin > ebcdic.c + $(COMPILE) -c ebcdic.c +latin1.o: bin2c$(EXEEXT) src/latin1.bin + ./bin2c$(EXEEXT) ick_clc_cset_latin1 < `test -f 'src/latin1.bin' || echo '$(srcdir)/'`src/latin1.bin > latin1.c + $(COMPILE) -c latin1.c + +ickinclude_HEADERS = src/ick_ec.h src/fiddle.h src/abcess.h src/ick_lose.h \ + src/yuk.h +dist_ickdata_DATA = src/atari.bin src/baudot.bin src/ebcdic.bin src/latin1.bin \ + src/ick-wrap.c src/pickwrap.c COPYING +# These necessary pit files are in nodist_ here because they're in EXTRA_DIST +# later along with the rest of the pit. +nodist_ickdata_DATA = pit/lib/syslib.i pit/lib/syslib.3i pit/lib/syslib.4i \ + pit/lib/syslib.5i pit/lib/syslib.6i pit/lib/syslib.7i \ + coopt.sh pit/explib/syslibc.c pit/explib/compunex.c \ + pit/explib/ecto_b98.c +dist_man1_MANS = doc/ick.1 doc/convickt.1 +info_TEXINFOS = doc/ick.txi + +EXTRA_DIST = pit etc BUGS src/abcess.h src/feh.h src/fiddle.h src/ick_ec.h \ + src/ick.h src/ick_lose.h src/oil.h src/pick1.h src/pick2.h \ + src/sizes.h src/uncommon.h src/yuk.h src/parser.y src/lexer.l \ + doc/Makefile doc/fdl-1-2.txi doc/fix83.pl doc/fixtoc.pl \ + doc/ickstyle.css doc/ick.txt doc/intercal.mm doc/READ.ME \ + doc/THEORY.txt doc/tidy.cfg parser.c parser.h \ + lexer.c doc/ick.txi doc/ick.txt NEWS README + +# It's ugly to distribute the prebuilt files in the root of the +# distribution. configure will move these files back again into the +# root of the /build tree/, which makes a lot more sense than putting +# them in the root of the source tree. +dist-hook: + $(MKDIR_P) $(distdir)/prebuilt + mv $(distdir)/parser.c $(distdir)/prebuilt + mv $(distdir)/parser.h $(distdir)/prebuilt + mv $(distdir)/lexer.c $(distdir)/prebuilt + mv $(distdir)/oil-oil.c $(distdir)/prebuilt + (cd $(distdir); ls -1R > MANIFEST) + +# N.B. the parser.y and lexer.l are the links made to simplify the +# build, not the originals +CLEANFILES = oilout*.c parser.y lexer.l \ + atari.c baudot.c ebcdic.c latin1.c ick.dvi +# Distclean deletes the Makefile and thus requires reconfiguring, +# and therefore this is a safe moment to delete the build tree +# versions of the prebuilt files. (The source tree versions will +# be safe in the prebuilt dir, which Automake doesn't even know +# about.) +DISTCLEANFILES = parser.c parser.h lexer.c oil-oil.c \ No newline at end of file diff --git a/Makefile.in b/Makefile.in index b1e8fe4..140faee 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1,303 +1,1410 @@ -# -# Productions for the INTERCAL distribution -# -VERSION=@PACKAGE_VERSION@ +# Makefile.in generated by automake 1.10.1 from Makefile.am. +# @configure_input@ -# Common prefix for machine-independent installed files. -prefix = @prefix@ -# Common prefix for machine-dependent installed files. -exec_prefix = @exec_prefix@ +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. -# Debian doesn't like versioned subdirs; give them a way to unversion -# the subdir. +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. -ick_specific_subdir = ick-@PACKAGE_VERSION@ +@SET_MAKE@ -# Modern versions of autoconf use an overridable datarootdir, and this -# doesn't do any harm with older versions. -datarootdir = @datarootdir@ -# Directory in which to install binaries. -bindir = @bindir@ -# Directory in which to install libraries. -libdir = @libdir@ -# Directory to install data files. -datadir = @datadir@/$(ick_specific_subdir) -# Directory to install the include files in. -incdir = @includedir@/$(ick_specific_subdir) -# Directory to install Info files in. -infodir = @infodir@ -# Directory to install manpages in. -mandir = @mandir@ -# Directory file for Info installation. -infodirfile = @INFODIRFILE@ -# This can be overridden from the command line -DESTDIR= + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +bin_PROGRAMS = ick$(EXEEXT) convickt$(EXEEXT) +noinst_PROGRAMS = oil$(EXEEXT) bin2c$(EXEEXT) +subdir = . +DIST_COMMON = README $(am__configure_deps) $(dist_ickdata_DATA) \ + $(dist_man1_MANS) $(ickinclude_HEADERS) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in $(top_srcdir)/configure \ + $(top_srcdir)/src/configh.in $(top_srcdir)/src/cooptsh.in \ + COPYING NEWS buildaux/depcomp buildaux/install-sh \ + buildaux/missing buildaux/ylwrap oil-oil.c +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ + configure.lineno config.status.lineno +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = config.h +CONFIG_CLEAN_FILES = coopt.sh +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; +am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \ + "$(DESTDIR)$(infodir)" "$(DESTDIR)$(man1dir)" \ + "$(DESTDIR)$(ickdatadir)" "$(DESTDIR)$(ickdatadir)" \ + "$(DESTDIR)$(ickincludedir)" +libLIBRARIES_INSTALL = $(INSTALL_DATA) +LIBRARIES = $(lib_LIBRARIES) $(noinst_LIBRARIES) +AR = ar +ARFLAGS = cru +libick_a_AR = $(AR) $(ARFLAGS) +libick_a_DEPENDENCIES = atari.o baudot.o ebcdic.o latin1.o +am_libick_a_OBJECTS = cesspool.$(OBJEXT) numerals.$(OBJEXT) \ + ick_lose.$(OBJEXT) fiddle.$(OBJEXT) arrgghh.$(OBJEXT) \ + clc-cset.$(OBJEXT) uncommon.$(OBJEXT) +libick_a_OBJECTS = $(am_libick_a_OBJECTS) +libickec_a_AR = $(AR) $(ARFLAGS) +libickec_a_DEPENDENCIES = atari.o baudot.o ebcdic.o latin1.o +am_libickec_a_OBJECTS = cesspool.$(OBJEXT) numerals.$(OBJEXT) \ + ick_lose.$(OBJEXT) fiddle.$(OBJEXT) arrgghh.$(OBJEXT) \ + clc-cset.$(OBJEXT) uncommon.$(OBJEXT) ick_ec.$(OBJEXT) +libickec_a_OBJECTS = $(am_libickec_a_OBJECTS) +libickmt_a_AR = $(AR) $(ARFLAGS) +libickmt_a_DEPENDENCIES = atari.o baudot.o ebcdic.o latin1.o +am_libickmt_a_OBJECTS = cesspool.$(OBJEXT) numerals.$(OBJEXT) \ + ick_lose.$(OBJEXT) fiddle.$(OBJEXT) arrgghh.$(OBJEXT) \ + clc-cset.$(OBJEXT) uncommon.$(OBJEXT) unravel.$(OBJEXT) +libickmt_a_OBJECTS = $(am_libickmt_a_OBJECTS) +libidiot_a_AR = $(AR) $(ARFLAGS) +libidiot_a_LIBADD = +am_libidiot_a_OBJECTS = +libidiot_a_OBJECTS = $(am_libidiot_a_OBJECTS) +libyuk_a_AR = $(AR) $(ARFLAGS) +libyuk_a_LIBADD = +am_libyuk_a_OBJECTS = yuk.$(OBJEXT) +libyuk_a_OBJECTS = $(am_libyuk_a_OBJECTS) +binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) +PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS) +am_bin2c_OBJECTS = bin2c.$(OBJEXT) +bin2c_OBJECTS = $(am_bin2c_OBJECTS) +bin2c_LDADD = $(LDADD) +am_convickt_OBJECTS = convickt.$(OBJEXT) clc-cset.$(OBJEXT) \ + uncommon.$(OBJEXT) +convickt_OBJECTS = $(am_convickt_OBJECTS) +convickt_LDADD = $(LDADD) +am_ick_OBJECTS = feh2.$(OBJEXT) dekludge.$(OBJEXT) ick_lose.$(OBJEXT) \ + fiddle.$(OBJEXT) perpet.$(OBJEXT) uncommon.$(OBJEXT) +nodist_ick_OBJECTS = parser.$(OBJEXT) lexer.$(OBJEXT) +ick_OBJECTS = $(am_ick_OBJECTS) $(nodist_ick_OBJECTS) +ick_DEPENDENCIES = libidiot.a +am_oil_OBJECTS = oil-oil.$(OBJEXT) +oil_OBJECTS = $(am_oil_OBJECTS) +oil_LDADD = $(LDADD) +DEFAULT_INCLUDES = -I.@am__isrc@ +depcomp = $(SHELL) $(top_srcdir)/buildaux/depcomp +am__depfiles_maybe = depfiles +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +LEXCOMPILE = $(LEX) $(LFLAGS) $(AM_LFLAGS) +YLWRAP = $(top_srcdir)/buildaux/ylwrap +YACCCOMPILE = $(YACC) $(YFLAGS) $(AM_YFLAGS) +SOURCES = $(libick_a_SOURCES) $(libickec_a_SOURCES) \ + $(libickmt_a_SOURCES) $(libidiot_a_SOURCES) \ + $(libyuk_a_SOURCES) $(bin2c_SOURCES) $(convickt_SOURCES) \ + $(ick_SOURCES) $(nodist_ick_SOURCES) $(oil_SOURCES) +DIST_SOURCES = $(libick_a_SOURCES) $(libickec_a_SOURCES) \ + $(libickmt_a_SOURCES) $(libidiot_a_SOURCES) \ + $(libyuk_a_SOURCES) $(bin2c_SOURCES) $(convickt_SOURCES) \ + $(ick_SOURCES) $(oil_SOURCES) +am__dirstamp = $(am__leading_dot)dirstamp +INFO_DEPS = $(srcdir)/doc/ick.info +TEXINFO_TEX = $(top_srcdir)/buildaux/texinfo.tex +am__TEXINFO_TEX_DIR = $(top_srcdir)/buildaux +DVIS = doc/ick.dvi +PDFS = doc/ick.pdf +PSS = doc/ick.ps +HTMLS = doc/ick.html +TEXINFOS = doc/ick.txi +TEXI2DVI = texi2dvi +TEXI2PDF = $(TEXI2DVI) --pdf --batch +MAKEINFOHTML = $(MAKEINFO) --html +AM_MAKEINFOHTMLFLAGS = $(AM_MAKEINFOFLAGS) +DVIPS = dvips +man1dir = $(mandir)/man1 +NROFF = nroff +MANS = $(dist_man1_MANS) +dist_ickdataDATA_INSTALL = $(INSTALL_DATA) +nodist_ickdataDATA_INSTALL = $(INSTALL_DATA) +DATA = $(dist_ickdata_DATA) $(nodist_ickdata_DATA) +ickincludeHEADERS_INSTALL = $(INSTALL_HEADER) +HEADERS = $(ickinclude_HEADERS) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) +am__remove_distdir = \ + { test ! -d $(distdir) \ + || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ + && rm -fr $(distdir); }; } +DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2 \ + $(distdir).tar.lzma +GZIP_ENV = --best +distuninstallcheck_listfiles = find . -type f -print +distcleancheck_listfiles = find . -type f -print +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ CC = @CC@ -CFLAGS = -O2 -W -Wall @CFLAGS@ -DICKINCLUDEDIR=\"$(incdir)\" -DICKDATADIR=\"$(datadir)\" -DICKBINDIR=\"$(bindir)\" -DICKLIBDIR=\"$(libdir)\" -DYYDEBUG -DICK_HAVE_STDINT_H=@HAVE_STDINT_H@ -I./src -I./temp +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +GREP = @GREP@ +HAVE_STDINT_H = @HAVE_STDINT_H@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ -LEXFLAGS= +LEXLIB = @LEXLIB@ +LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +RANLIB = @RANLIB@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ YACC = @YACC@ -YACCFLAGS = - -LOADLIBS = @LIBS@ @LEXLIB@ - -CSOURCES = src/parser.y src/lexer.l src/feh2.c src/dekludge.c src/ick_lose.c src/fiddle.c src/perpet.c src/unravel.c src/uncommon.c src/convickt.c src/clc-cset.c src/bin2c.c -ISOURCES = src/cesspool.c src/arrgghh.c src/ick-wrap.c src/pickwrap.c src/numerals.c -YSOURCES = src/yuk.c -HEADERS = src/ick.h src/ick_lose.h src/sizes.h src/abcess.h src/fiddle.h src/feh.h src/yuk.h src/uncommon.h src/ick_ec.h -BUILD = Makefile.in config.in config.sh src/configh.in ickspec.in ickspec src/cooptsh.in -MISC = etc/intercal.el src/ctrlmfix.sh src/ctrlmfix.bat src/*.bin -DOCS = BUGS.txt COPYING.txt NEWS.txt README.txt -SOURCES = $(CSOURCES) $(ISOURCES) $(YSOURCES) $(HEADERS) $(BUILD) $(MISC) $(DOCS) pit doc - -all: bin/ick@EXEEXT@ bin/convickt@EXEEXT@ lib/libick.a lib/libickmt.a lib/libyuk.a lib/libickec.a ial - -ial: include/ick_ec.h include/fiddle.h include/abcess.h include/ick_lose.h include/yuk.h include/syslib.i include/syslib.3i include/syslib.4i include/syslib.5i include/syslib.6i include/syslib.7i lib/ick-wrap.c lib/pickwrap.c lib/coopt.sh lib/COPYING.txt lib/syslibc.c lib/compunex.c lib/ecto_b98.c include/atari.bin include/baudot.bin include/ebcdic.bin include/latin1.bin - -include/ick_ec.h: src/ick_ec.h - -cp src/ick_ec.h include/ick_ec.h -include/fiddle.h: src/fiddle.h - -cp src/fiddle.h include/fiddle.h -include/abcess.h:src/abcess.h - -cp src/abcess.h include/abcess.h -include/ick_lose.h:src/ick_lose.h - -cp src/ick_lose.h include/ick_lose.h -include/yuk.h:src/yuk.h - -cp src/yuk.h include/yuk.h - -include/syslib.i: pit/lib/syslib.i - -cp pit/lib/syslib.i include/syslib.i -include/syslib.3i: pit/lib/syslib.3i - -cp pit/lib/syslib.3i include/syslib.3i -include/syslib.4i: pit/lib/syslib.4i - -cp pit/lib/syslib.4i include/syslib.4i -include/syslib.5i: pit/lib/syslib.5i - -cp pit/lib/syslib.5i include/syslib.5i -include/syslib.6i: pit/lib/syslib.6i - -cp pit/lib/syslib.6i include/syslib.6i -include/syslib.7i: pit/lib/syslib.7i - -cp pit/lib/syslib.7i include/syslib.7i - -lib/ick-wrap.c:src/ick-wrap.c - -cp src/ick-wrap.c lib/ick-wrap.c - -lib/pickwrap.c:src/pickwrap.c - -cp src/pickwrap.c lib/pickwrap.c - -lib/coopt.sh:temp/coopt.sh - -cp temp/coopt.sh lib/coopt.sh - -lib/COPYING.txt:COPYING.txt - -cp COPYING.txt lib/COPYING.txt - -lib/syslibc.c:pit/explib/syslibc.c - -cp pit/explib/syslibc.c lib/syslibc.c -lib/compunex.c:pit/explib/compunex.c - -cp pit/explib/compunex.c lib/compunex.c -lib/ecto_b98.c:pit/explib/ecto_b98.c - -cp pit/explib/ecto_b98.c lib/ecto_b98.c - -include/atari.bin:src/atari.bin - -cp src/atari.bin include/atari.bin -include/baudot.bin:src/baudot.bin - -cp src/baudot.bin include/baudot.bin -include/ebcdic.bin:src/ebcdic.bin - -cp src/ebcdic.bin include/ebcdic.bin -include/latin1.bin:src/latin1.bin - -cp src/latin1.bin include/latin1.bin - -bin/ick@EXEEXT@: temp/parser.@OBJEXT@ temp/lexer.@OBJEXT@ temp/feh2.@OBJEXT@ temp/dekludge.@OBJEXT@ temp/oilout-m.@OBJEXT@ temp/ick_lose.@OBJEXT@ temp/fiddle.@OBJEXT@ temp/perpet.@OBJEXT@ temp/uncommon.@OBJEXT@ - $(CC) temp/perpet.@OBJEXT@ temp/parser.@OBJEXT@ temp/lexer.@OBJEXT@ temp/feh2.@OBJEXT@ temp/dekludge.@OBJEXT@ temp/oilout*.@OBJEXT@ temp/ick_lose.@OBJEXT@ temp/fiddle.@OBJEXT@ temp/uncommon.@OBJEXT@ $(LDFLAGS) -o bin/ick@EXEEXT@ - -bin/convickt@EXEEXT@: temp/convickt.@OBJEXT@ temp/clc-cset.@OBJEXT@ temp/uncommon.@OBJEXT@ - $(CC) temp/convickt.@OBJEXT@ temp/clc-cset.@OBJEXT@ temp/uncommon.@OBJEXT@ $(LDFLAGS) -o bin/convickt@EXEEXT@ - -temp/oil.c: src/oil.y temp/config.h - $(YACC) $(YACCFLAGS) src/oil.y - -rm -f temp/oil.c - mv y.tab.c temp/oil.c - -temp/parser.h temp/parser.c: src/parser.y src/ick.h src/sizes.h src/feh.h src/ick_lose.h temp/config.h - $(YACC) -d $(YACCFLAGS) src/parser.y - -rm -f temp/parser.c - mv y.tab.c temp/parser.c - -rm -f temp/parser.h - mv y.tab.h temp/parser.h - -temp/lexer.c: src/lexer.l src/ick.h src/ick_lose.h temp/config.h - $(LEX) $(LEXFLAGS) src/lexer.l - -rm -f temp/lexer.c - mv @LEX_OUTPUT_ROOT@.c temp/lexer.c - -bin/lextest: temp/parser.h src/lexer.c src/ick.h temp/ick_lose.@OBJEXT@ - $(CC) -DMAIN src/lexer.c src/ick_lose.@OBJEXT@ @LEXLIB@ -o bin/lextest - -temp/oil@EXEEXT@: temp/oil.c temp/config.h - $(CC) $(CFLAGS) -o temp/oil@EXEEXT@ temp/oil.c -temp/bin2c@EXEEXT@: src/bin2c.c - $(CC) $(CFLAGS) -o temp/bin2c@EXEEXT@ src/bin2c.c -temp/parser.@OBJEXT@: temp/parser.c src/ick.h src/feh.h src/ick_lose.h src/sizes.h temp/config.h - $(CC) $(CFLAGS) -c -o temp/parser.@OBJEXT@ temp/parser.c -temp/lexer.@OBJEXT@: temp/lexer.c temp/parser.h src/ick.h src/ick_lose.h temp/config.h - $(CC) $(CFLAGS) -c -o temp/lexer.@OBJEXT@ temp/lexer.c -temp/feh2.@OBJEXT@: src/feh2.c src/feh.h temp/parser.h src/ick.h src/fiddle.h src/ick_lose.h src/sizes.h temp/config.h - $(CC) $(CFLAGS) -c -o temp/feh2.@OBJEXT@ src/feh2.c -temp/oilout-m.c: src/idiotism.oil temp/oil@EXEEXT@ - bash -c 'cd temp && rm -f oilout*.c && ./oil@EXEEXT@ < ../src/idiotism.oil && cd ..' -temp/oilout-m.@OBJEXT@: temp/oilout-m.c src/feh.h temp/parser.h src/ick.h src/fiddle.h src/ick_lose.h src/sizes.h temp/config.h - -rm -f temp/oilout*.@OBJEXT@ - bash -c 'for f in temp/oilout*.c ; do echo Compiling $$f... ; $(CC) $(CFLAGS) -c $$f; done' - -mv oilout*.@OBJEXT@ temp -temp/dekludge.@OBJEXT@: src/dekludge.c src/feh.h temp/parser.h src/ick.h src/fiddle.h src/ick_lose.h src/sizes.h temp/config.h - $(CC) $(CFLAGS) -c -o temp/dekludge.@OBJEXT@ src/dekludge.c -temp/perpet.@OBJEXT@: src/perpet.c temp/parser.h src/ick.h src/ick_lose.h src/sizes.h src/uncommon.h temp/config.h - $(CC) $(CFLAGS) -c -o temp/perpet.@OBJEXT@ src/perpet.c -temp/cesspool.@OBJEXT@: src/cesspool.c src/abcess.h src/ick_lose.h src/sizes.h - $(CC) $(CFLAGS) -c -o temp/cesspool.@OBJEXT@ src/cesspool.c -temp/numerals.@OBJEXT@: src/numerals.c src/abcess.h src/ick_lose.h src/sizes.h - $(CC) $(CFLAGS) -c -o temp/numerals.@OBJEXT@ src/numerals.c -temp/unravel.@OBJEXT@: src/unravel.c src/abcess.h src/ick_lose.h src/sizes.h temp/config.h - $(CC) $(CFLAGS) -c -o temp/unravel.@OBJEXT@ src/unravel.c -temp/ick_lose.@OBJEXT@: src/ick_lose.c src/ick_lose.h temp/config.h - $(CC) $(CFLAGS) -c -o temp/ick_lose.@OBJEXT@ src/ick_lose.c -temp/fiddle.@OBJEXT@: src/fiddle.c src/fiddle.h src/sizes.h - $(CC) $(CFLAGS) -c -o temp/fiddle.@OBJEXT@ src/fiddle.c -temp/arrgghh.@OBJEXT@: src/arrgghh.c - $(CC) $(CFLAGS) -c -o temp/arrgghh.@OBJEXT@ src/arrgghh.c -temp/uncommon.@OBJEXT@: src/uncommon.c src/uncommon.h - $(CC) $(CFLAGS) -c -o temp/uncommon.@OBJEXT@ src/uncommon.c -temp/ick_ec.@OBJEXT@: src/ick_ec.c src/ick_ec.h src/abcess.h - $(CC) $(CFLAGS) -c -o temp/ick_ec.@OBJEXT@ src/ick_ec.c -temp/yuk.@OBJEXT@: src/yuk.c src/yuk.h src/ick_lose.h src/sizes.h src/abcess.h src/uncommon.h temp/config.h - $(CC) $(CFLAGS) -c -o temp/yuk.@OBJEXT@ src/yuk.c -temp/clc-cset.@OBJEXT@: src/clc-cset.c src/uncommon.h - $(CC) $(CFLAGS) -c -o temp/clc-cset.@OBJEXT@ src/clc-cset.c -temp/convickt.@OBJEXT@: src/convickt.c - $(CC) $(CFLAGS) -c -o temp/convickt.@OBJEXT@ src/convickt.c - -temp/cset-a.c: temp/bin2c@EXEEXT@ src/atari.bin - temp/bin2c@EXEEXT@ ick_clc_cset_atari < src/atari.bin > temp/cset-a.c -temp/cset-b.c: temp/bin2c@EXEEXT@ src/baudot.bin - temp/bin2c@EXEEXT@ ick_clc_cset_baudot < src/baudot.bin > temp/cset-b.c -temp/cset-e.c: temp/bin2c@EXEEXT@ src/ebcdic.bin - temp/bin2c@EXEEXT@ ick_clc_cset_ebcdic < src/ebcdic.bin > temp/cset-e.c -temp/cset-l.c: temp/bin2c@EXEEXT@ src/latin1.bin - temp/bin2c@EXEEXT@ ick_clc_cset_latin1 < src/latin1.bin > temp/cset-l.c -temp/cset-a.@OBJEXT@: temp/cset-a.c - $(CC) $(CFLAGS) -c -o temp/cset-a.@OBJEXT@ temp/cset-a.c -temp/cset-b.@OBJEXT@: temp/cset-b.c - $(CC) $(CFLAGS) -c -o temp/cset-b.@OBJEXT@ temp/cset-b.c -temp/cset-e.@OBJEXT@: temp/cset-e.c - $(CC) $(CFLAGS) -c -o temp/cset-e.@OBJEXT@ temp/cset-e.c -temp/cset-l.@OBJEXT@: temp/cset-l.c - $(CC) $(CFLAGS) -c -o temp/cset-l.@OBJEXT@ temp/cset-l.c - -lib/libick.a: temp/cesspool.@OBJEXT@ temp/numerals.@OBJEXT@ temp/ick_lose.@OBJEXT@ temp/fiddle.@OBJEXT@ temp/arrgghh.@OBJEXT@ temp/clc-cset.@OBJEXT@ temp/cset-a.@OBJEXT@ temp/cset-b.@OBJEXT@ temp/cset-e.@OBJEXT@ temp/cset-l.@OBJEXT@ temp/uncommon.@OBJEXT@ - ar cr lib/libick.a temp/cesspool.@OBJEXT@ temp/numerals.@OBJEXT@ temp/ick_lose.@OBJEXT@ temp/fiddle.@OBJEXT@ temp/arrgghh.@OBJEXT@ temp/clc-cset.@OBJEXT@ temp/cset-a.@OBJEXT@ temp/cset-b.@OBJEXT@ temp/cset-e.@OBJEXT@ temp/cset-l.@OBJEXT@ temp/uncommon.@OBJEXT@ - @RANLIB@ lib/libick.a - -lib/libickmt.a: temp/cesspool.@OBJEXT@ temp/numerals.@OBJEXT@ temp/unravel.@OBJEXT@ temp/ick_lose.@OBJEXT@ temp/fiddle.@OBJEXT@ temp/arrgghh.@OBJEXT@ temp/clc-cset.@OBJEXT@ temp/cset-a.@OBJEXT@ temp/cset-b.@OBJEXT@ temp/cset-e.@OBJEXT@ temp/cset-l.@OBJEXT@ temp/uncommon.@OBJEXT@ - ar cr lib/libickmt.a temp/cesspool.@OBJEXT@ temp/numerals.@OBJEXT@ temp/unravel.@OBJEXT@ temp/ick_lose.@OBJEXT@ temp/fiddle.@OBJEXT@ temp/arrgghh.@OBJEXT@ temp/clc-cset.@OBJEXT@ temp/cset-a.@OBJEXT@ temp/cset-b.@OBJEXT@ temp/cset-e.@OBJEXT@ temp/cset-l.@OBJEXT@ temp/uncommon.@OBJEXT@ - @RANLIB@ lib/libickmt.a - -lib/libickec.a: temp/cesspool.@OBJEXT@ temp/numerals.@OBJEXT@ temp/ick_ec.@OBJEXT@ temp/ick_lose.@OBJEXT@ temp/fiddle.@OBJEXT@ temp/arrgghh.@OBJEXT@ temp/clc-cset.@OBJEXT@ temp/cset-a.@OBJEXT@ temp/cset-b.@OBJEXT@ temp/cset-e.@OBJEXT@ temp/cset-l.@OBJEXT@ temp/uncommon.@OBJEXT@ - ar cr lib/libickec.a temp/cesspool.@OBJEXT@ temp/numerals.@OBJEXT@ temp/ick_ec.@OBJEXT@ temp/ick_lose.@OBJEXT@ temp/fiddle.@OBJEXT@ temp/arrgghh.@OBJEXT@ temp/clc-cset.@OBJEXT@ temp/cset-a.@OBJEXT@ temp/cset-b.@OBJEXT@ temp/cset-e.@OBJEXT@ temp/cset-l.@OBJEXT@ temp/uncommon.@OBJEXT@ - @RANLIB@ lib/libickec.a - -lib/libyuk.a: temp/yuk.@OBJEXT@ - ar cr lib/libyuk.a temp/yuk.@OBJEXT@ - @RANLIB@ lib/libyuk.a - -install-common: all - -mkdir -p $(DESTDIR)$(bindir) - cp bin/ick@EXEEXT@ bin/convickt@EXEEXT@ $(DESTDIR)$(bindir) - -mkdir -p $(DESTDIR)$(libdir) - cp lib/libick.a $(DESTDIR)$(libdir) - cp lib/libickmt.a $(DESTDIR)$(libdir) - cp lib/libickec.a $(DESTDIR)$(libdir) - cp lib/libyuk.a $(DESTDIR)$(libdir) - sh -c 'cp lib/libick_ecto_b98.a $(DESTDIR)$(libdir) || true' - -mkdir -p $(DESTDIR)$(incdir) - cp src/ick_lose.h src/abcess.h src/fiddle.h src/yuk.h $(DESTDIR)$(incdir) - cp src/ick_ec.h $(DESTDIR)$(incdir) - -mkdir -p $(DESTDIR)$(datadir) - cp include/*.bin $(DESTDIR)$(datadir) - cp src/ick-wrap.c src/pickwrap.c $(DESTDIR)$(datadir) - cp include/syslib.i include/syslib.?i $(DESTDIR)$(datadir) - cp lib/*.c $(DESTDIR)$(datadir) - cp temp/coopt.sh $(DESTDIR)$(datadir) - cp COPYING.txt $(DESTDIR)$(datadir) - -mkdir -p $(DESTDIR)$(mandir)/man1 - cp doc/ick.1 doc/convickt.1 $(DESTDIR)$(mandir)/man1 - -mkdir -p $(DESTDIR)$(infodir) - rm -f $(DESTDIR)$(infodir)/ick.info - cp doc/ick.in* $(DESTDIR)$(infodir) - mv $(DESTDIR)$(infodir)/ick.inf $(DESTDIR)$(infodir)/ick.info -# Note that it's necessary to copy the info file to .inf on an 8.3 system -# and .info otherwise; this is done by copying it to .inf, and then renaming -# to .info; on an 8.3 system, this leaves the extension as .inf because mv -# will signal an (unimportant) error. Also, the info directory has to -# be created first if it doesn't exist because /usr/local/share/info -# (the default) doesn't exist by default in Debian. - -# install, and gzip the docs after installing. -# The pattern i*[fo] matches ick.info only when uncompressed, even on -# an 8.3 system. ick.i*gz matches compressed Info files, but some DOS -# command interpreters buggily also match it to uncompressed Info files -# even though gz appears nowhere in the filename, so care must be taken -# only to use that pattern with sh. -install: install-common - sh -c "rm -f $(DESTDIR)$(infodir)/ick.i*gz" - -gzip -9 -f $(DESTDIR)$(infodir)/ick.in* - -gzip -9 -f $(DESTDIR)$(mandir)/man1/ick.1 - -gzip -9 -f $(DESTDIR)$(mandir)/man1/convickt.1 - -sh -c "[ `whoami` = root ] && @MANDB@ -q" - sh -c "(test -f $(DESTDIR)$(infodir)/ick.info.gz && @INSTALLINFO@ --quiet --dir-file=`@REALPATH@ $(infodirfile)` $(DESTDIR)$(infodir)/ick.info.gz) || true" - sh -c "(test -f $(DESTDIR)$(infodir)/ick.igz && @INSTALLINFO@ --quiet --dir-file=`@REALPATH@ $(infodirfile)` $(DESTDIR)$(infodir)/ick.igz) || true" - -# install without gzipping the docs -install-nozip: install-common - -sh -c "[ `whoami` = root ] && @MANDB@ -q" - sh -c "(test -f $(DESTDIR)$(infodir)/ick.info && @INSTALLINFO@ --quiet --dir-file=`@REALPATH@ $(infodirfile)` $(DESTDIR)$(infodir)/ick.info) || true" - sh -c "(test -f $(DESTDIR)$(infodir)/ick.inf && @INSTALLINFO@ --quiet --dir-file=`@REALPATH@ $(infodirfile)` $(DESTDIR)$(infodir)/ick.inf) || true" - - -uninstall: - sh -c "@INSTALLINFO@ --quiet --remove --dir-file=`@REALPATH@ $(infodirfile)` ick" - rm -f $(DESTDIR)$(bindir)/ick@EXEEXT@ $(DESTDIR)$(libdir)/libick.a - rm -f $(DESTDIR)$(bindir)/convickt@EXEEXT@ - rm -f $(DESTDIR)$(libdir)/libickmt.a $(DESTDIR)$(libdir)/libyuk.a - rm -f $(DESTDIR)$(libdir)/libickec.a $(DESTDIR)$(libdir)/libick_ecto_*.a - rm -f ${DESTDIR}${infodir}/ick.i* - rm -f $(DESTDIR)$(mandir)/man1/ick.1* - rm -f $(DESTDIR)$(mandir)/man1/convickt.1* - rm -fr $(DESTDIR)$(incdir) $(DESTDIR)$(datadir) - -sh -c "[ `whoami` = root ] && @MANDB@ -q" - -TAGS: $(SOURCES) - etags $(SOURCES) - -dist: ick-@PACKAGE_VERSION@.tgz - -ick-@PACKAGE_VERSION@.tgz: $(SOURCES) - @find $(SOURCES) -type f -print | grep -v RCS | sed s:^:ick-@PACKAGE_VERSION@/: >MANIFEST.txt - @(cd ..; ln -s intercal ick-@PACKAGE_VERSION@) - (cd ..; tar -czvf intercal/ick-@PACKAGE_VERSION@.tgz `cat intercal/MANIFEST.txt`) - @(cd ..; rm ick-@PACKAGE_VERSION@) - -clean: - -cp temp/config.h temp/coopt.sh . - -rm -f temp/* bin/* lib/* include/* - mv config.h coopt.sh temp - -distr: - -rm -f temp/*.@OBJEXT@ temp/oil@EXEEXT@ - -rm -f temp/oilout*.c temp/bin2c@EXEEXT@ temp/cset-?.c - -rm -f bin/* lib/* include/* - -distclean: distr - -rm -f config.status config.cache config.log Makefile - -rm -f temp/config.h temp/coopt.sh +YFLAGS = @YFLAGS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build_alias = @build_alias@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host_alias = @host_alias@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +ICK_SPECIFIC_SUBDIR = ick-@PACKAGE_VERSION@ +ickincludedir = $(includedir)/$(ICK_SPECIFIC_SUBDIR) +ickdatadir = $(datadir)/$(ICK_SPECIFIC_SUBDIR) +AM_CFLAGS = -DICKINCLUDEDIR=\"$(ickincludedir)\" \ + -DICKDATADIR=\"$(ickdatadir)\" \ + -DICKBINDIR=\"$(bindir)\" -DICKLIBDIR=\"$(libdir)\" \ + -DYYDEBUG -DICK_HAVE_STDINT_H=@HAVE_STDINT_H@ + +AM_CPPFLAGS = -I$(srcdir)/src +ick_SOURCES = src/feh2.c src/dekludge.c src/ick_lose.c \ + src/fiddle.c src/perpet.c src/uncommon.c + +nodist_ick_SOURCES = parser.y lexer.l +ick_LDADD = libidiot.a +AM_YFLAGS = -d +BUILT_SOURCES = parser.h +noinst_LIBRARIES = libidiot.a +libidiot_a_SOURCES = src/idiotism.oil +convickt_SOURCES = src/convickt.c src/clc-cset.c src/uncommon.c +oil_SOURCES = src/oil.y +oil_YFLAGS = +bin2c_SOURCES = src/bin2c.c +lib_LIBRARIES = libick.a libickmt.a libickec.a libyuk.a +libick_a_SOURCES = src/cesspool.c src/numerals.c src/ick_lose.c src/fiddle.c \ + src/arrgghh.c src/clc-cset.c src/uncommon.c + +libick_a_LIBADD = atari.o baudot.o ebcdic.o latin1.o +libickmt_a_SOURCES = src/cesspool.c src/numerals.c src/ick_lose.c src/fiddle.c \ + src/arrgghh.c src/clc-cset.c src/uncommon.c src/unravel.c + +libickmt_a_LIBADD = atari.o baudot.o ebcdic.o latin1.o +libickec_a_SOURCES = src/cesspool.c src/numerals.c src/ick_lose.c src/fiddle.c \ + src/arrgghh.c src/clc-cset.c src/uncommon.c src/ick_ec.c + +libickec_a_LIBADD = atari.o baudot.o ebcdic.o latin1.o +libyuk_a_SOURCES = src/yuk.c +ickinclude_HEADERS = src/ick_ec.h src/fiddle.h src/abcess.h src/ick_lose.h \ + src/yuk.h + +dist_ickdata_DATA = src/atari.bin src/baudot.bin src/ebcdic.bin src/latin1.bin \ + src/ick-wrap.c src/pickwrap.c COPYING + +# These necessary pit files are in nodist_ here because they're in EXTRA_DIST +# later along with the rest of the pit. +nodist_ickdata_DATA = pit/lib/syslib.i pit/lib/syslib.3i pit/lib/syslib.4i \ + pit/lib/syslib.5i pit/lib/syslib.6i pit/lib/syslib.7i \ + coopt.sh pit/explib/syslibc.c pit/explib/compunex.c \ + pit/explib/ecto_b98.c + +dist_man1_MANS = doc/ick.1 doc/convickt.1 +info_TEXINFOS = doc/ick.txi +EXTRA_DIST = pit etc BUGS src/abcess.h src/feh.h src/fiddle.h src/ick_ec.h \ + src/ick.h src/ick_lose.h src/oil.h src/pick1.h src/pick2.h \ + src/sizes.h src/uncommon.h src/yuk.h src/parser.y src/lexer.l \ + doc/Makefile doc/fdl-1-2.txi doc/fix83.pl doc/fixtoc.pl \ + doc/ickstyle.css doc/ick.txt doc/intercal.mm doc/READ.ME \ + doc/THEORY.txt doc/tidy.cfg parser.c parser.h \ + lexer.c doc/ick.txi doc/ick.txt NEWS README + + +# N.B. the parser.y and lexer.l are the links made to simplify the +# build, not the originals +CLEANFILES = oilout*.c parser.y lexer.l \ + atari.c baudot.c ebcdic.c latin1.c ick.dvi + +# Distclean deletes the Makefile and thus requires reconfiguring, +# and therefore this is a safe moment to delete the build tree +# versions of the prebuilt files. (The source tree versions will +# be safe in the prebuilt dir, which Automake doesn't even know +# about.) +DISTCLEANFILES = parser.c parser.h lexer.c oil-oil.c +all: $(BUILT_SOURCES) config.h + $(MAKE) $(AM_MAKEFLAGS) all-am + +.SUFFIXES: +.SUFFIXES: .c .dvi .l .o .obj .ps .y +am--refresh: + @: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \ + cd $(srcdir) && $(AUTOMAKE) --foreign \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --foreign Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + echo ' $(SHELL) ./config.status'; \ + $(SHELL) ./config.status;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(srcdir) && $(AUTOCONF) +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) + +config.h: stamp-h1 + @if test ! -f $@; then \ + rm -f stamp-h1; \ + $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \ + else :; fi + +stamp-h1: $(top_srcdir)/src/configh.in $(top_builddir)/config.status + @rm -f stamp-h1 + cd $(top_builddir) && $(SHELL) ./config.status config.h +$(top_srcdir)/src/configh.in: $(am__configure_deps) + cd $(top_srcdir) && $(AUTOHEADER) + rm -f stamp-h1 + touch $@ + +distclean-hdr: + -rm -f config.h stamp-h1 +coopt.sh: $(top_builddir)/config.status $(top_srcdir)/src/cooptsh.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +install-libLIBRARIES: $(lib_LIBRARIES) + @$(NORMAL_INSTALL) + test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" + @list='$(lib_LIBRARIES)'; for p in $$list; do \ + if test -f $$p; then \ + f=$(am__strip_dir) \ + echo " $(libLIBRARIES_INSTALL) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \ + $(libLIBRARIES_INSTALL) "$$p" "$(DESTDIR)$(libdir)/$$f"; \ + else :; fi; \ + done + @$(POST_INSTALL) + @list='$(lib_LIBRARIES)'; for p in $$list; do \ + if test -f $$p; then \ + p=$(am__strip_dir) \ + echo " $(RANLIB) '$(DESTDIR)$(libdir)/$$p'"; \ + $(RANLIB) "$(DESTDIR)$(libdir)/$$p"; \ + else :; fi; \ + done + +uninstall-libLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(lib_LIBRARIES)'; for p in $$list; do \ + p=$(am__strip_dir) \ + echo " rm -f '$(DESTDIR)$(libdir)/$$p'"; \ + rm -f "$(DESTDIR)$(libdir)/$$p"; \ + done + +clean-libLIBRARIES: + -test -z "$(lib_LIBRARIES)" || rm -f $(lib_LIBRARIES) + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) +libick.a: $(libick_a_OBJECTS) $(libick_a_DEPENDENCIES) + -rm -f libick.a + $(libick_a_AR) libick.a $(libick_a_OBJECTS) $(libick_a_LIBADD) + $(RANLIB) libick.a +libickec.a: $(libickec_a_OBJECTS) $(libickec_a_DEPENDENCIES) + -rm -f libickec.a + $(libickec_a_AR) libickec.a $(libickec_a_OBJECTS) $(libickec_a_LIBADD) + $(RANLIB) libickec.a +libickmt.a: $(libickmt_a_OBJECTS) $(libickmt_a_DEPENDENCIES) + -rm -f libickmt.a + $(libickmt_a_AR) libickmt.a $(libickmt_a_OBJECTS) $(libickmt_a_LIBADD) + $(RANLIB) libickmt.a +libyuk.a: $(libyuk_a_OBJECTS) $(libyuk_a_DEPENDENCIES) + -rm -f libyuk.a + $(libyuk_a_AR) libyuk.a $(libyuk_a_OBJECTS) $(libyuk_a_LIBADD) + $(RANLIB) libyuk.a +install-binPROGRAMS: $(bin_PROGRAMS) + @$(NORMAL_INSTALL) + test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" + @list='$(bin_PROGRAMS)'; for p in $$list; do \ + p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ + if test -f $$p \ + ; then \ + f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ + echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \ + $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \ + else :; fi; \ + done + +uninstall-binPROGRAMS: + @$(NORMAL_UNINSTALL) + @list='$(bin_PROGRAMS)'; for p in $$list; do \ + f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ + echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \ + rm -f "$(DESTDIR)$(bindir)/$$f"; \ + done + +clean-binPROGRAMS: + -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) + +clean-noinstPROGRAMS: + -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS) +bin2c$(EXEEXT): $(bin2c_OBJECTS) $(bin2c_DEPENDENCIES) + @rm -f bin2c$(EXEEXT) + $(LINK) $(bin2c_OBJECTS) $(bin2c_LDADD) $(LIBS) +convickt$(EXEEXT): $(convickt_OBJECTS) $(convickt_DEPENDENCIES) + @rm -f convickt$(EXEEXT) + $(LINK) $(convickt_OBJECTS) $(convickt_LDADD) $(LIBS) +parser.h: parser.c + @if test ! -f $@; then \ + rm -f parser.c; \ + $(MAKE) $(AM_MAKEFLAGS) parser.c; \ + else :; fi +ick$(EXEEXT): $(ick_OBJECTS) $(ick_DEPENDENCIES) + @rm -f ick$(EXEEXT) + $(LINK) $(ick_OBJECTS) $(ick_LDADD) $(LIBS) +oil$(EXEEXT): $(oil_OBJECTS) $(oil_DEPENDENCIES) + @rm -f oil$(EXEEXT) + $(LINK) $(oil_OBJECTS) $(oil_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/arrgghh.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bin2c.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cesspool.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clc-cset.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/convickt.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dekludge.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/feh2.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fiddle.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ick_ec.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ick_lose.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lexer.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/numerals.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/oil-oil.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/parser.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/perpet.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/uncommon.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unravel.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/yuk.Po@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c $< + +.c.obj: +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` + +cesspool.o: src/cesspool.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cesspool.o -MD -MP -MF $(DEPDIR)/cesspool.Tpo -c -o cesspool.o `test -f 'src/cesspool.c' || echo '$(srcdir)/'`src/cesspool.c +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/cesspool.Tpo $(DEPDIR)/cesspool.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/cesspool.c' object='cesspool.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cesspool.o `test -f 'src/cesspool.c' || echo '$(srcdir)/'`src/cesspool.c + +cesspool.obj: src/cesspool.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cesspool.obj -MD -MP -MF $(DEPDIR)/cesspool.Tpo -c -o cesspool.obj `if test -f 'src/cesspool.c'; then $(CYGPATH_W) 'src/cesspool.c'; else $(CYGPATH_W) '$(srcdir)/src/cesspool.c'; fi` +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/cesspool.Tpo $(DEPDIR)/cesspool.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/cesspool.c' object='cesspool.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cesspool.obj `if test -f 'src/cesspool.c'; then $(CYGPATH_W) 'src/cesspool.c'; else $(CYGPATH_W) '$(srcdir)/src/cesspool.c'; fi` + +numerals.o: src/numerals.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT numerals.o -MD -MP -MF $(DEPDIR)/numerals.Tpo -c -o numerals.o `test -f 'src/numerals.c' || echo '$(srcdir)/'`src/numerals.c +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/numerals.Tpo $(DEPDIR)/numerals.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/numerals.c' object='numerals.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o numerals.o `test -f 'src/numerals.c' || echo '$(srcdir)/'`src/numerals.c + +numerals.obj: src/numerals.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT numerals.obj -MD -MP -MF $(DEPDIR)/numerals.Tpo -c -o numerals.obj `if test -f 'src/numerals.c'; then $(CYGPATH_W) 'src/numerals.c'; else $(CYGPATH_W) '$(srcdir)/src/numerals.c'; fi` +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/numerals.Tpo $(DEPDIR)/numerals.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/numerals.c' object='numerals.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o numerals.obj `if test -f 'src/numerals.c'; then $(CYGPATH_W) 'src/numerals.c'; else $(CYGPATH_W) '$(srcdir)/src/numerals.c'; fi` + +ick_lose.o: src/ick_lose.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ick_lose.o -MD -MP -MF $(DEPDIR)/ick_lose.Tpo -c -o ick_lose.o `test -f 'src/ick_lose.c' || echo '$(srcdir)/'`src/ick_lose.c +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/ick_lose.Tpo $(DEPDIR)/ick_lose.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/ick_lose.c' object='ick_lose.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ick_lose.o `test -f 'src/ick_lose.c' || echo '$(srcdir)/'`src/ick_lose.c + +ick_lose.obj: src/ick_lose.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ick_lose.obj -MD -MP -MF $(DEPDIR)/ick_lose.Tpo -c -o ick_lose.obj `if test -f 'src/ick_lose.c'; then $(CYGPATH_W) 'src/ick_lose.c'; else $(CYGPATH_W) '$(srcdir)/src/ick_lose.c'; fi` +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/ick_lose.Tpo $(DEPDIR)/ick_lose.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/ick_lose.c' object='ick_lose.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ick_lose.obj `if test -f 'src/ick_lose.c'; then $(CYGPATH_W) 'src/ick_lose.c'; else $(CYGPATH_W) '$(srcdir)/src/ick_lose.c'; fi` + +fiddle.o: src/fiddle.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT fiddle.o -MD -MP -MF $(DEPDIR)/fiddle.Tpo -c -o fiddle.o `test -f 'src/fiddle.c' || echo '$(srcdir)/'`src/fiddle.c +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/fiddle.Tpo $(DEPDIR)/fiddle.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/fiddle.c' object='fiddle.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o fiddle.o `test -f 'src/fiddle.c' || echo '$(srcdir)/'`src/fiddle.c + +fiddle.obj: src/fiddle.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT fiddle.obj -MD -MP -MF $(DEPDIR)/fiddle.Tpo -c -o fiddle.obj `if test -f 'src/fiddle.c'; then $(CYGPATH_W) 'src/fiddle.c'; else $(CYGPATH_W) '$(srcdir)/src/fiddle.c'; fi` +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/fiddle.Tpo $(DEPDIR)/fiddle.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/fiddle.c' object='fiddle.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o fiddle.obj `if test -f 'src/fiddle.c'; then $(CYGPATH_W) 'src/fiddle.c'; else $(CYGPATH_W) '$(srcdir)/src/fiddle.c'; fi` + +arrgghh.o: src/arrgghh.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT arrgghh.o -MD -MP -MF $(DEPDIR)/arrgghh.Tpo -c -o arrgghh.o `test -f 'src/arrgghh.c' || echo '$(srcdir)/'`src/arrgghh.c +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/arrgghh.Tpo $(DEPDIR)/arrgghh.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/arrgghh.c' object='arrgghh.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o arrgghh.o `test -f 'src/arrgghh.c' || echo '$(srcdir)/'`src/arrgghh.c + +arrgghh.obj: src/arrgghh.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT arrgghh.obj -MD -MP -MF $(DEPDIR)/arrgghh.Tpo -c -o arrgghh.obj `if test -f 'src/arrgghh.c'; then $(CYGPATH_W) 'src/arrgghh.c'; else $(CYGPATH_W) '$(srcdir)/src/arrgghh.c'; fi` +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/arrgghh.Tpo $(DEPDIR)/arrgghh.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/arrgghh.c' object='arrgghh.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o arrgghh.obj `if test -f 'src/arrgghh.c'; then $(CYGPATH_W) 'src/arrgghh.c'; else $(CYGPATH_W) '$(srcdir)/src/arrgghh.c'; fi` + +clc-cset.o: src/clc-cset.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT clc-cset.o -MD -MP -MF $(DEPDIR)/clc-cset.Tpo -c -o clc-cset.o `test -f 'src/clc-cset.c' || echo '$(srcdir)/'`src/clc-cset.c +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/clc-cset.Tpo $(DEPDIR)/clc-cset.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/clc-cset.c' object='clc-cset.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o clc-cset.o `test -f 'src/clc-cset.c' || echo '$(srcdir)/'`src/clc-cset.c + +clc-cset.obj: src/clc-cset.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT clc-cset.obj -MD -MP -MF $(DEPDIR)/clc-cset.Tpo -c -o clc-cset.obj `if test -f 'src/clc-cset.c'; then $(CYGPATH_W) 'src/clc-cset.c'; else $(CYGPATH_W) '$(srcdir)/src/clc-cset.c'; fi` +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/clc-cset.Tpo $(DEPDIR)/clc-cset.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/clc-cset.c' object='clc-cset.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o clc-cset.obj `if test -f 'src/clc-cset.c'; then $(CYGPATH_W) 'src/clc-cset.c'; else $(CYGPATH_W) '$(srcdir)/src/clc-cset.c'; fi` + +uncommon.o: src/uncommon.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT uncommon.o -MD -MP -MF $(DEPDIR)/uncommon.Tpo -c -o uncommon.o `test -f 'src/uncommon.c' || echo '$(srcdir)/'`src/uncommon.c +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/uncommon.Tpo $(DEPDIR)/uncommon.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/uncommon.c' object='uncommon.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o uncommon.o `test -f 'src/uncommon.c' || echo '$(srcdir)/'`src/uncommon.c + +uncommon.obj: src/uncommon.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT uncommon.obj -MD -MP -MF $(DEPDIR)/uncommon.Tpo -c -o uncommon.obj `if test -f 'src/uncommon.c'; then $(CYGPATH_W) 'src/uncommon.c'; else $(CYGPATH_W) '$(srcdir)/src/uncommon.c'; fi` +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/uncommon.Tpo $(DEPDIR)/uncommon.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/uncommon.c' object='uncommon.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o uncommon.obj `if test -f 'src/uncommon.c'; then $(CYGPATH_W) 'src/uncommon.c'; else $(CYGPATH_W) '$(srcdir)/src/uncommon.c'; fi` + +ick_ec.o: src/ick_ec.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ick_ec.o -MD -MP -MF $(DEPDIR)/ick_ec.Tpo -c -o ick_ec.o `test -f 'src/ick_ec.c' || echo '$(srcdir)/'`src/ick_ec.c +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/ick_ec.Tpo $(DEPDIR)/ick_ec.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/ick_ec.c' object='ick_ec.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ick_ec.o `test -f 'src/ick_ec.c' || echo '$(srcdir)/'`src/ick_ec.c + +ick_ec.obj: src/ick_ec.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ick_ec.obj -MD -MP -MF $(DEPDIR)/ick_ec.Tpo -c -o ick_ec.obj `if test -f 'src/ick_ec.c'; then $(CYGPATH_W) 'src/ick_ec.c'; else $(CYGPATH_W) '$(srcdir)/src/ick_ec.c'; fi` +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/ick_ec.Tpo $(DEPDIR)/ick_ec.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/ick_ec.c' object='ick_ec.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ick_ec.obj `if test -f 'src/ick_ec.c'; then $(CYGPATH_W) 'src/ick_ec.c'; else $(CYGPATH_W) '$(srcdir)/src/ick_ec.c'; fi` + +unravel.o: src/unravel.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT unravel.o -MD -MP -MF $(DEPDIR)/unravel.Tpo -c -o unravel.o `test -f 'src/unravel.c' || echo '$(srcdir)/'`src/unravel.c +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/unravel.Tpo $(DEPDIR)/unravel.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/unravel.c' object='unravel.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o unravel.o `test -f 'src/unravel.c' || echo '$(srcdir)/'`src/unravel.c + +unravel.obj: src/unravel.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT unravel.obj -MD -MP -MF $(DEPDIR)/unravel.Tpo -c -o unravel.obj `if test -f 'src/unravel.c'; then $(CYGPATH_W) 'src/unravel.c'; else $(CYGPATH_W) '$(srcdir)/src/unravel.c'; fi` +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/unravel.Tpo $(DEPDIR)/unravel.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/unravel.c' object='unravel.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o unravel.obj `if test -f 'src/unravel.c'; then $(CYGPATH_W) 'src/unravel.c'; else $(CYGPATH_W) '$(srcdir)/src/unravel.c'; fi` + +yuk.o: src/yuk.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT yuk.o -MD -MP -MF $(DEPDIR)/yuk.Tpo -c -o yuk.o `test -f 'src/yuk.c' || echo '$(srcdir)/'`src/yuk.c +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/yuk.Tpo $(DEPDIR)/yuk.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/yuk.c' object='yuk.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o yuk.o `test -f 'src/yuk.c' || echo '$(srcdir)/'`src/yuk.c + +yuk.obj: src/yuk.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT yuk.obj -MD -MP -MF $(DEPDIR)/yuk.Tpo -c -o yuk.obj `if test -f 'src/yuk.c'; then $(CYGPATH_W) 'src/yuk.c'; else $(CYGPATH_W) '$(srcdir)/src/yuk.c'; fi` +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/yuk.Tpo $(DEPDIR)/yuk.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/yuk.c' object='yuk.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o yuk.obj `if test -f 'src/yuk.c'; then $(CYGPATH_W) 'src/yuk.c'; else $(CYGPATH_W) '$(srcdir)/src/yuk.c'; fi` + +bin2c.o: src/bin2c.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bin2c.o -MD -MP -MF $(DEPDIR)/bin2c.Tpo -c -o bin2c.o `test -f 'src/bin2c.c' || echo '$(srcdir)/'`src/bin2c.c +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/bin2c.Tpo $(DEPDIR)/bin2c.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/bin2c.c' object='bin2c.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bin2c.o `test -f 'src/bin2c.c' || echo '$(srcdir)/'`src/bin2c.c + +bin2c.obj: src/bin2c.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bin2c.obj -MD -MP -MF $(DEPDIR)/bin2c.Tpo -c -o bin2c.obj `if test -f 'src/bin2c.c'; then $(CYGPATH_W) 'src/bin2c.c'; else $(CYGPATH_W) '$(srcdir)/src/bin2c.c'; fi` +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/bin2c.Tpo $(DEPDIR)/bin2c.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/bin2c.c' object='bin2c.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bin2c.obj `if test -f 'src/bin2c.c'; then $(CYGPATH_W) 'src/bin2c.c'; else $(CYGPATH_W) '$(srcdir)/src/bin2c.c'; fi` + +convickt.o: src/convickt.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT convickt.o -MD -MP -MF $(DEPDIR)/convickt.Tpo -c -o convickt.o `test -f 'src/convickt.c' || echo '$(srcdir)/'`src/convickt.c +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/convickt.Tpo $(DEPDIR)/convickt.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/convickt.c' object='convickt.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o convickt.o `test -f 'src/convickt.c' || echo '$(srcdir)/'`src/convickt.c + +convickt.obj: src/convickt.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT convickt.obj -MD -MP -MF $(DEPDIR)/convickt.Tpo -c -o convickt.obj `if test -f 'src/convickt.c'; then $(CYGPATH_W) 'src/convickt.c'; else $(CYGPATH_W) '$(srcdir)/src/convickt.c'; fi` +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/convickt.Tpo $(DEPDIR)/convickt.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/convickt.c' object='convickt.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o convickt.obj `if test -f 'src/convickt.c'; then $(CYGPATH_W) 'src/convickt.c'; else $(CYGPATH_W) '$(srcdir)/src/convickt.c'; fi` + +feh2.o: src/feh2.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT feh2.o -MD -MP -MF $(DEPDIR)/feh2.Tpo -c -o feh2.o `test -f 'src/feh2.c' || echo '$(srcdir)/'`src/feh2.c +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/feh2.Tpo $(DEPDIR)/feh2.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/feh2.c' object='feh2.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o feh2.o `test -f 'src/feh2.c' || echo '$(srcdir)/'`src/feh2.c + +feh2.obj: src/feh2.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT feh2.obj -MD -MP -MF $(DEPDIR)/feh2.Tpo -c -o feh2.obj `if test -f 'src/feh2.c'; then $(CYGPATH_W) 'src/feh2.c'; else $(CYGPATH_W) '$(srcdir)/src/feh2.c'; fi` +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/feh2.Tpo $(DEPDIR)/feh2.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/feh2.c' object='feh2.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o feh2.obj `if test -f 'src/feh2.c'; then $(CYGPATH_W) 'src/feh2.c'; else $(CYGPATH_W) '$(srcdir)/src/feh2.c'; fi` + +dekludge.o: src/dekludge.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dekludge.o -MD -MP -MF $(DEPDIR)/dekludge.Tpo -c -o dekludge.o `test -f 'src/dekludge.c' || echo '$(srcdir)/'`src/dekludge.c +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/dekludge.Tpo $(DEPDIR)/dekludge.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/dekludge.c' object='dekludge.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dekludge.o `test -f 'src/dekludge.c' || echo '$(srcdir)/'`src/dekludge.c + +dekludge.obj: src/dekludge.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dekludge.obj -MD -MP -MF $(DEPDIR)/dekludge.Tpo -c -o dekludge.obj `if test -f 'src/dekludge.c'; then $(CYGPATH_W) 'src/dekludge.c'; else $(CYGPATH_W) '$(srcdir)/src/dekludge.c'; fi` +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/dekludge.Tpo $(DEPDIR)/dekludge.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/dekludge.c' object='dekludge.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dekludge.obj `if test -f 'src/dekludge.c'; then $(CYGPATH_W) 'src/dekludge.c'; else $(CYGPATH_W) '$(srcdir)/src/dekludge.c'; fi` + +perpet.o: src/perpet.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT perpet.o -MD -MP -MF $(DEPDIR)/perpet.Tpo -c -o perpet.o `test -f 'src/perpet.c' || echo '$(srcdir)/'`src/perpet.c +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/perpet.Tpo $(DEPDIR)/perpet.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/perpet.c' object='perpet.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o perpet.o `test -f 'src/perpet.c' || echo '$(srcdir)/'`src/perpet.c + +perpet.obj: src/perpet.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT perpet.obj -MD -MP -MF $(DEPDIR)/perpet.Tpo -c -o perpet.obj `if test -f 'src/perpet.c'; then $(CYGPATH_W) 'src/perpet.c'; else $(CYGPATH_W) '$(srcdir)/src/perpet.c'; fi` +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/perpet.Tpo $(DEPDIR)/perpet.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/perpet.c' object='perpet.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o perpet.obj `if test -f 'src/perpet.c'; then $(CYGPATH_W) 'src/perpet.c'; else $(CYGPATH_W) '$(srcdir)/src/perpet.c'; fi` + +.l.c: + $(am__skiplex) $(SHELL) $(YLWRAP) $< $(LEX_OUTPUT_ROOT).c $@ -- $(LEXCOMPILE) + +lexer.c: lexer.l + $(SHELL) $(YLWRAP) `test -f 'lexer.l' || echo '$(srcdir)/'`lexer.l $(LEX_OUTPUT_ROOT).c lexer.c -- $(LEX) $(LFLAGS) $(AM_LFLAGS) + +.y.c: + $(am__skipyacc) $(SHELL) $(YLWRAP) $< y.tab.c $@ y.tab.h $*.h y.output $*.output -- $(YACCCOMPILE) + +parser.c: parser.y + $(SHELL) $(YLWRAP) `test -f 'parser.y' || echo '$(srcdir)/'`parser.y y.tab.c parser.c y.tab.h parser.h y.output parser.output -- $(YACC) $(YFLAGS) $(AM_YFLAGS) + +oil-oil.c: src/oil.y + $(am__skipyacc) \ + $(SHELL) $(YLWRAP) `test -f 'src/oil.y' || echo '$(srcdir)/'`src/oil.y y.tab.c oil-oil.c y.tab.h oil-oil.h y.output oil-oil.output -- $(YACC) $(YFLAGS) $(oil_YFLAGS) +doc/$(am__dirstamp): + @$(MKDIR_P) doc + @: > doc/$(am__dirstamp) + +$(srcdir)/doc/ick.info: doc/ick.txi + restore=: && backupdir="$(am__leading_dot)am$$$$" && \ + am__cwd=`pwd` && cd $(srcdir) && \ + rm -rf $$backupdir && mkdir $$backupdir && \ + if ($(MAKEINFO) --version) >/dev/null 2>&1; then \ + for f in $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]; do \ + if test -f $$f; then mv $$f $$backupdir; restore=mv; else :; fi; \ + done; \ + else :; fi && \ + cd "$$am__cwd"; \ + if $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I doc -I $(srcdir)/doc \ + -o $@ $(srcdir)/doc/ick.txi; \ + then \ + rc=0; \ + cd $(srcdir); \ + else \ + rc=$$?; \ + cd $(srcdir) && \ + $$restore $$backupdir/* `echo "./$@" | sed 's|[^/]*$$||'`; \ + fi; \ + rm -rf $$backupdir; exit $$rc + +doc/ick.dvi: doc/ick.txi doc/$(am__dirstamp) + TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ + MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I doc -I $(srcdir)/doc' \ + $(TEXI2DVI) -o $@ `test -f 'doc/ick.txi' || echo '$(srcdir)/'`doc/ick.txi + +doc/ick.pdf: doc/ick.txi doc/$(am__dirstamp) + TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ + MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I doc -I $(srcdir)/doc' \ + $(TEXI2PDF) -o $@ `test -f 'doc/ick.txi' || echo '$(srcdir)/'`doc/ick.txi + +doc/ick.html: doc/ick.txi doc/$(am__dirstamp) + rm -rf $(@:.html=.htp) + if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I doc -I $(srcdir)/doc \ + -o $(@:.html=.htp) `test -f 'doc/ick.txi' || echo '$(srcdir)/'`doc/ick.txi; \ + then \ + rm -rf $@; \ + if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \ + mv $(@:.html=) $@; else mv $(@:.html=.htp) $@; fi; \ + else \ + if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \ + rm -rf $(@:.html=); else rm -Rf $(@:.html=.htp) $@; fi; \ + exit 1; \ + fi +.dvi.ps: + TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ + $(DVIPS) -o $@ $< + +uninstall-dvi-am: + @$(NORMAL_UNINSTALL) + @list='$(DVIS)'; for p in $$list; do \ + f=$(am__strip_dir) \ + echo " rm -f '$(DESTDIR)$(dvidir)/$$f'"; \ + rm -f "$(DESTDIR)$(dvidir)/$$f"; \ + done + +uninstall-html-am: + @$(NORMAL_UNINSTALL) + @list='$(HTMLS)'; for p in $$list; do \ + f=$(am__strip_dir) \ + echo " rm -rf '$(DESTDIR)$(htmldir)/$$f'"; \ + rm -rf "$(DESTDIR)$(htmldir)/$$f"; \ + done + +uninstall-info-am: + @$(PRE_UNINSTALL) + @if test -d '$(DESTDIR)$(infodir)' && \ + (install-info --version && \ + install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \ + list='$(INFO_DEPS)'; \ + for file in $$list; do \ + relfile=`echo "$$file" | sed 's|^.*/||'`; \ + echo " install-info --info-dir='$(DESTDIR)$(infodir)' --remove '$(DESTDIR)$(infodir)/$$relfile'"; \ + install-info --info-dir="$(DESTDIR)$(infodir)" --remove "$(DESTDIR)$(infodir)/$$relfile"; \ + done; \ + else :; fi + @$(NORMAL_UNINSTALL) + @list='$(INFO_DEPS)'; \ + for file in $$list; do \ + relfile=`echo "$$file" | sed 's|^.*/||'`; \ + relfile_i=`echo "$$relfile" | sed 's|\.info$$||;s|$$|.i|'`; \ + (if test -d "$(DESTDIR)$(infodir)" && cd "$(DESTDIR)$(infodir)"; then \ + echo " cd '$(DESTDIR)$(infodir)' && rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]"; \ + rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]; \ + else :; fi); \ + done + +uninstall-pdf-am: + @$(NORMAL_UNINSTALL) + @list='$(PDFS)'; for p in $$list; do \ + f=$(am__strip_dir) \ + echo " rm -f '$(DESTDIR)$(pdfdir)/$$f'"; \ + rm -f "$(DESTDIR)$(pdfdir)/$$f"; \ + done + +uninstall-ps-am: + @$(NORMAL_UNINSTALL) + @list='$(PSS)'; for p in $$list; do \ + f=$(am__strip_dir) \ + echo " rm -f '$(DESTDIR)$(psdir)/$$f'"; \ + rm -f "$(DESTDIR)$(psdir)/$$f"; \ + done + +dist-info: $(INFO_DEPS) + @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ + list='$(INFO_DEPS)'; \ + for base in $$list; do \ + case $$base in \ + $(srcdir)/*) base=`echo "$$base" | sed "s|^$$srcdirstrip/||"`;; \ + esac; \ + if test -f $$base; then d=.; else d=$(srcdir); fi; \ + base_i=`echo "$$base" | sed 's|\.info$$||;s|$$|.i|'`; \ + for file in $$d/$$base $$d/$$base-[0-9] $$d/$$base-[0-9][0-9] $$d/$$base_i[0-9] $$d/$$base_i[0-9][0-9]; do \ + if test -f $$file; then \ + relfile=`expr "$$file" : "$$d/\(.*\)"`; \ + test -f $(distdir)/$$relfile || \ + cp -p $$file $(distdir)/$$relfile; \ + else :; fi; \ + done; \ + done + +mostlyclean-aminfo: + -rm -rf ick.aux ick.cp ick.cps ick.er ick.fn ick.ky ick.kys ick.log ick.op \ + ick.pg ick.pgs ick.tmp ick.toc ick.tp ick.tps ick.vr ick.vrs \ + doc/ick.dvi doc/ick.pdf doc/ick.ps doc/ick.html + +maintainer-clean-aminfo: + @list='$(INFO_DEPS)'; for i in $$list; do \ + i_i=`echo "$$i" | sed 's|\.info$$||;s|$$|.i|'`; \ + echo " rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]"; \ + rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]; \ + done +install-man1: $(man1_MANS) $(man_MANS) + @$(NORMAL_INSTALL) + test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)" + @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \ + l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ + for i in $$l2; do \ + case "$$i" in \ + *.1*) list="$$list $$i" ;; \ + esac; \ + done; \ + for i in $$list; do \ + if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \ + else file=$$i; fi; \ + ext=`echo $$i | sed -e 's/^.*\\.//'`; \ + case "$$ext" in \ + 1*) ;; \ + *) ext='1' ;; \ + esac; \ + inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ + inst=`echo $$inst | sed -e 's/^.*\///'`; \ + inst=`echo $$inst | sed '$(transform)'`.$$ext; \ + echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ + $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst"; \ + done +uninstall-man1: + @$(NORMAL_UNINSTALL) + @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \ + l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ + for i in $$l2; do \ + case "$$i" in \ + *.1*) list="$$list $$i" ;; \ + esac; \ + done; \ + for i in $$list; do \ + ext=`echo $$i | sed -e 's/^.*\\.//'`; \ + case "$$ext" in \ + 1*) ;; \ + *) ext='1' ;; \ + esac; \ + inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ + inst=`echo $$inst | sed -e 's/^.*\///'`; \ + inst=`echo $$inst | sed '$(transform)'`.$$ext; \ + echo " rm -f '$(DESTDIR)$(man1dir)/$$inst'"; \ + rm -f "$(DESTDIR)$(man1dir)/$$inst"; \ + done +install-dist_ickdataDATA: $(dist_ickdata_DATA) + @$(NORMAL_INSTALL) + test -z "$(ickdatadir)" || $(MKDIR_P) "$(DESTDIR)$(ickdatadir)" + @list='$(dist_ickdata_DATA)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f=$(am__strip_dir) \ + echo " $(dist_ickdataDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(ickdatadir)/$$f'"; \ + $(dist_ickdataDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(ickdatadir)/$$f"; \ + done + +uninstall-dist_ickdataDATA: + @$(NORMAL_UNINSTALL) + @list='$(dist_ickdata_DATA)'; for p in $$list; do \ + f=$(am__strip_dir) \ + echo " rm -f '$(DESTDIR)$(ickdatadir)/$$f'"; \ + rm -f "$(DESTDIR)$(ickdatadir)/$$f"; \ + done +install-nodist_ickdataDATA: $(nodist_ickdata_DATA) + @$(NORMAL_INSTALL) + test -z "$(ickdatadir)" || $(MKDIR_P) "$(DESTDIR)$(ickdatadir)" + @list='$(nodist_ickdata_DATA)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f=$(am__strip_dir) \ + echo " $(nodist_ickdataDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(ickdatadir)/$$f'"; \ + $(nodist_ickdataDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(ickdatadir)/$$f"; \ + done + +uninstall-nodist_ickdataDATA: + @$(NORMAL_UNINSTALL) + @list='$(nodist_ickdata_DATA)'; for p in $$list; do \ + f=$(am__strip_dir) \ + echo " rm -f '$(DESTDIR)$(ickdatadir)/$$f'"; \ + rm -f "$(DESTDIR)$(ickdatadir)/$$f"; \ + done +install-ickincludeHEADERS: $(ickinclude_HEADERS) + @$(NORMAL_INSTALL) + test -z "$(ickincludedir)" || $(MKDIR_P) "$(DESTDIR)$(ickincludedir)" + @list='$(ickinclude_HEADERS)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f=$(am__strip_dir) \ + echo " $(ickincludeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(ickincludedir)/$$f'"; \ + $(ickincludeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(ickincludedir)/$$f"; \ + done + +uninstall-ickincludeHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(ickinclude_HEADERS)'; for p in $$list; do \ + f=$(am__strip_dir) \ + echo " rm -f '$(DESTDIR)$(ickincludedir)/$$f'"; \ + rm -f "$(DESTDIR)$(ickincludedir)/$$f"; \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @case `sed 15q $(srcdir)/NEWS` in \ + *"$(VERSION)"*) : ;; \ + *) \ + echo "NEWS not updated; not releasing" 1>&2; \ + exit 1;; \ + esac + $(am__remove_distdir) + test -d $(distdir) || mkdir $(distdir) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$(top_distdir)" distdir="$(distdir)" \ + dist-info dist-hook + -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ + ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ + || chmod -R a+r $(distdir) +dist-gzip: distdir + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + $(am__remove_distdir) +dist-bzip2: distdir + tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 + $(am__remove_distdir) +dist-lzma: distdir + tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma + $(am__remove_distdir) + +dist-tarZ: distdir + tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z + $(am__remove_distdir) + +dist-shar: distdir + shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz + $(am__remove_distdir) + +dist-zip: distdir + -rm -f $(distdir).zip + zip -rq $(distdir).zip $(distdir) + $(am__remove_distdir) + +dist dist-all: distdir + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 + tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma + $(am__remove_distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + case '$(DIST_ARCHIVES)' in \ + *.tar.gz*) \ + GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ + *.tar.bz2*) \ + bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ + *.tar.lzma*) \ + unlzma -c $(distdir).tar.lzma | $(am__untar) ;;\ + *.tar.Z*) \ + uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ + *.shar.gz*) \ + GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ + *.zip*) \ + unzip $(distdir).zip ;;\ + esac + chmod -R a-w $(distdir); chmod a+w $(distdir) + mkdir $(distdir)/_build + mkdir $(distdir)/_inst + chmod a-w $(distdir) + dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ + && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ + && cd $(distdir)/_build \ + && ../configure --srcdir=.. --prefix="$$dc_install_base" \ + $(DISTCHECK_CONFIGURE_FLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ + distuninstallcheck \ + && chmod -R a-w "$$dc_install_base" \ + && ({ \ + (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ + distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ + } || { rm -rf "$$dc_destdir"; exit 1; }) \ + && rm -rf "$$dc_destdir" \ + && $(MAKE) $(AM_MAKEFLAGS) dist \ + && rm -rf $(DIST_ARCHIVES) \ + && $(MAKE) $(AM_MAKEFLAGS) distcleancheck + $(am__remove_distdir) + @(echo "$(distdir) archives ready for distribution: "; \ + list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ + sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' +distuninstallcheck: + @cd $(distuninstallcheck_dir) \ + && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ + || { echo "ERROR: files left after uninstall:" ; \ + if test -n "$(DESTDIR)"; then \ + echo " (check DESTDIR support)"; \ + fi ; \ + $(distuninstallcheck_listfiles) ; \ + exit 1; } >&2 +distcleancheck: distclean + @if test '$(srcdir)' = . ; then \ + echo "ERROR: distcleancheck can only run from a VPATH build" ; \ + exit 1 ; \ + fi + @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ + || { echo "ERROR: files left in build directory after distclean:" ; \ + $(distcleancheck_listfiles) ; \ + exit 1; } >&2 +check-am: all-am +check: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) check-am +all-am: Makefile $(INFO_DEPS) $(LIBRARIES) $(PROGRAMS) $(MANS) $(DATA) \ + $(HEADERS) config.h +installdirs: + for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(infodir)" "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(ickdatadir)" "$(DESTDIR)$(ickdatadir)" "$(DESTDIR)$(ickincludedir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -rm -f doc/$(am__dirstamp) + -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -rm -f lexer.c + -rm -f oil-oil.c + -rm -f parser.c + -rm -f parser.h + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +clean: clean-am + +clean-am: clean-binPROGRAMS clean-generic clean-libLIBRARIES \ + clean-noinstLIBRARIES clean-noinstPROGRAMS mostlyclean-am + +distclean: distclean-am + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-hdr distclean-tags + +dvi: dvi-am + +dvi-am: $(DVIS) + +html: html-am + +html-am: $(HTMLS) + +info: info-am + +info-am: $(INFO_DEPS) + +install-data-am: install-dist_ickdataDATA install-ickincludeHEADERS \ + install-info-am install-man install-nodist_ickdataDATA + +install-dvi: install-dvi-am + +install-dvi-am: $(DVIS) + @$(NORMAL_INSTALL) + test -z "$(dvidir)" || $(MKDIR_P) "$(DESTDIR)$(dvidir)" + @list='$(DVIS)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f=$(am__strip_dir) \ + echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(dvidir)/$$f'"; \ + $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(dvidir)/$$f"; \ + done +install-exec-am: install-binPROGRAMS install-libLIBRARIES + +install-html: install-html-am + +install-html-am: $(HTMLS) + @$(NORMAL_INSTALL) + test -z "$(htmldir)" || $(MKDIR_P) "$(DESTDIR)$(htmldir)" + @list='$(HTMLS)'; for p in $$list; do \ + if test -f "$$p" || test -d "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f=$(am__strip_dir) \ + if test -d "$$d$$p"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(htmldir)/$$f'"; \ + $(MKDIR_P) "$(DESTDIR)$(htmldir)/$$f" || exit 1; \ + echo " $(INSTALL_DATA) '$$d$$p'/* '$(DESTDIR)$(htmldir)/$$f'"; \ + $(INSTALL_DATA) "$$d$$p"/* "$(DESTDIR)$(htmldir)/$$f"; \ + else \ + echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(htmldir)/$$f'"; \ + $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(htmldir)/$$f"; \ + fi; \ + done +install-info: install-info-am + +install-info-am: $(INFO_DEPS) + @$(NORMAL_INSTALL) + test -z "$(infodir)" || $(MKDIR_P) "$(DESTDIR)$(infodir)" + @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ + list='$(INFO_DEPS)'; \ + for file in $$list; do \ + case $$file in \ + $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ + esac; \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + file_i=`echo "$$file" | sed 's|\.info$$||;s|$$|.i|'`; \ + for ifile in $$d/$$file $$d/$$file-[0-9] $$d/$$file-[0-9][0-9] \ + $$d/$$file_i[0-9] $$d/$$file_i[0-9][0-9] ; do \ + if test -f $$ifile; then \ + relfile=`echo "$$ifile" | sed 's|^.*/||'`; \ + echo " $(INSTALL_DATA) '$$ifile' '$(DESTDIR)$(infodir)/$$relfile'"; \ + $(INSTALL_DATA) "$$ifile" "$(DESTDIR)$(infodir)/$$relfile"; \ + else : ; fi; \ + done; \ + done + @$(POST_INSTALL) + @if (install-info --version && \ + install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \ + list='$(INFO_DEPS)'; \ + for file in $$list; do \ + relfile=`echo "$$file" | sed 's|^.*/||'`; \ + echo " install-info --info-dir='$(DESTDIR)$(infodir)' '$(DESTDIR)$(infodir)/$$relfile'";\ + install-info --info-dir="$(DESTDIR)$(infodir)" "$(DESTDIR)$(infodir)/$$relfile" || :;\ + done; \ + else : ; fi +install-man: install-man1 + +install-pdf: install-pdf-am + +install-pdf-am: $(PDFS) + @$(NORMAL_INSTALL) + test -z "$(pdfdir)" || $(MKDIR_P) "$(DESTDIR)$(pdfdir)" + @list='$(PDFS)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f=$(am__strip_dir) \ + echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(pdfdir)/$$f'"; \ + $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(pdfdir)/$$f"; \ + done +install-ps: install-ps-am + +install-ps-am: $(PSS) + @$(NORMAL_INSTALL) + test -z "$(psdir)" || $(MKDIR_P) "$(DESTDIR)$(psdir)" + @list='$(PSS)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f=$(am__strip_dir) \ + echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(psdir)/$$f'"; \ + $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(psdir)/$$f"; \ + done +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -rf $(top_srcdir)/autom4te.cache + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-aminfo \ + maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-aminfo mostlyclean-compile \ + mostlyclean-generic + +pdf: pdf-am + +pdf-am: $(PDFS) + +ps: ps-am + +ps-am: $(PSS) + +uninstall-am: uninstall-binPROGRAMS uninstall-dist_ickdataDATA \ + uninstall-dvi-am uninstall-html-am uninstall-ickincludeHEADERS \ + uninstall-info-am uninstall-libLIBRARIES uninstall-man \ + uninstall-nodist_ickdataDATA uninstall-pdf-am uninstall-ps-am + +uninstall-man: uninstall-man1 + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS all all-am am--refresh check check-am clean \ + clean-binPROGRAMS clean-generic clean-libLIBRARIES \ + clean-noinstLIBRARIES clean-noinstPROGRAMS ctags dist dist-all \ + dist-bzip2 dist-gzip dist-hook dist-info dist-lzma dist-shar \ + dist-tarZ dist-zip distcheck distclean distclean-compile \ + distclean-generic distclean-hdr distclean-tags distcleancheck \ + distdir distuninstallcheck dvi dvi-am html html-am info \ + info-am install install-am install-binPROGRAMS install-data \ + install-data-am install-dist_ickdataDATA install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-ickincludeHEADERS install-info \ + install-info-am install-libLIBRARIES install-man install-man1 \ + install-nodist_ickdataDATA install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-aminfo maintainer-clean-generic mostlyclean \ + mostlyclean-aminfo mostlyclean-compile mostlyclean-generic pdf \ + pdf-am ps ps-am tags uninstall uninstall-am \ + uninstall-binPROGRAMS uninstall-dist_ickdataDATA \ + uninstall-dvi-am uninstall-html-am uninstall-ickincludeHEADERS \ + uninstall-info-am uninstall-libLIBRARIES uninstall-man \ + uninstall-man1 uninstall-nodist_ickdataDATA uninstall-pdf-am \ + uninstall-ps-am + +parser.y : src/parser.y + $(LN_S) `test -f 'src/parser.y' || echo '$(srcdir)/'`src/parser.y parser.y +lexer.l : src/lexer.l + $(LN_S) `test -f 'src/lexer.l' || echo '$(srcdir)/'`src/lexer.l lexer.l +libidiot.a: src/idiotism.oil oil$(EXEEXT) src/oil.h src/sizes.h src/ick.h \ + parser.h src/fiddle.h src/ick_lose.h src/feh.h + ./oil$(EXEEXT) < `test -f 'src/idiotism.oil' || echo '$(srcdir)/'`src/idiotism.oil + for oo in oilout*.c; do echo $$oo; $(COMPILE) -c $$oo; done + $(AR) $(ARFLAGS) libidiot.a oilout*.o + $(RANLIB) libidiot.a +atari.o: bin2c$(EXEEXT) src/atari.bin + ./bin2c$(EXEEXT) ick_clc_cset_atari < `test -f 'src/atari.bin' || echo '$(srcdir)/'`src/atari.bin > atari.c + $(COMPILE) -c atari.c +baudot.o: bin2c$(EXEEXT) src/baudot.bin + ./bin2c$(EXEEXT) ick_clc_cset_baudot < `test -f 'src/baudot.bin' || echo '$(srcdir)/'`src/baudot.bin > baudot.c + $(COMPILE) -c baudot.c +ebcdic.o: bin2c$(EXEEXT) src/ebcdic.bin + ./bin2c$(EXEEXT) ick_clc_cset_ebcdic < `test -f 'src/ebcdic.bin' || echo '$(srcdir)/'`src/ebcdic.bin > ebcdic.c + $(COMPILE) -c ebcdic.c +latin1.o: bin2c$(EXEEXT) src/latin1.bin + ./bin2c$(EXEEXT) ick_clc_cset_latin1 < `test -f 'src/latin1.bin' || echo '$(srcdir)/'`src/latin1.bin > latin1.c + $(COMPILE) -c latin1.c + +# It's ugly to distribute the prebuilt files in the root of the +# distribution. configure will move these files back again into the +# root of the /build tree/, which makes a lot more sense than putting +# them in the root of the source tree. +dist-hook: + $(MKDIR_P) $(distdir)/prebuilt + mv $(distdir)/parser.c $(distdir)/prebuilt + mv $(distdir)/parser.h $(distdir)/prebuilt + mv $(distdir)/lexer.c $(distdir)/prebuilt + mv $(distdir)/oil-oil.c $(distdir)/prebuilt + (cd $(distdir); ls -1R > MANIFEST) +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/NEWS.txt b/NEWS similarity index 95% rename from NEWS.txt rename to NEWS index 26172da..fcec7dc 100644 --- a/NEWS.txt +++ b/NEWS @@ -7,32 +7,20 @@ Bugs found by the people on irc.freenode.org/esoteric (thanks for testing!) 1. Fixed the configure script to work with the default Debian shell dash. (reported by ) -2. Installation to a --prefix that doesn't contain /bin and /lib - subdirectories beforehand now works; the prefix needn't even exist itself - (if it doesn't, it will be created). Also, installation will now not - attempt to install Info documentation to the main Info documentation tree - if it isn't under the --prefix (you will get a warning about this during - configuration if this happens, including instructions on how to override - this and go back to the old buggy behaviour if you found it convenient), - and mandb (which updates information for the man -k and apropos commands) - is only run if you are root. This allows non-default builds for people who - like to install things (even though they work without installation) but - don't want to install them as root. (reported by ) - -3. Fixed a typo in the perpet.c version of the help information. +2. Fixed a typo in the perpet.c version of the help information. (reported by ) -4. Fixed the CREATE statement to work on 64-bit architectures. +3. Fixed the CREATE statement to work on 64-bit architectures. (reported by ) -5. Actually fixed unlambda.i; the fix was meant to be in 0.28, and is +4. Actually fixed unlambda.i; the fix was meant to be in 0.28, and is described in its changelog, but for some reason never made it to the distributed tarball. (reported by ) -6. The -F option again works. (I accidentally broke it in the preceding +5. The -F option again works. (I accidentally broke it in the preceding version, making it basically a no-op by mistake.) (reported by ) -7. The availability of variable argument list mechanisms is now determined +6. The availability of variable argument list mechanisms is now determined automatically by the configure script, rather than relying on the old method of checking which usually gets the wrong answer with modern compilers, leading to build failures on many modern systems (previously @@ -41,27 +29,25 @@ Bugs found by the people on irc.freenode.org/esoteric (thanks for testing!) DOS, FreeBSD and Mac OS X, and possibly affects other platforms. (reported independently by both and ) -8. The build now succeeds (with warnings) when lex or yacc are missing, +7. The build now succeeds (with warnings) when lex or yacc are missing, rather than failing with mysterious error messages that seem to have nothing to do with the problems. (The success is made possible by using the prebuilt versions; see change 11 of version 0.26, this is finishing - what that started.) Also improved the autoconfiguration some more. - (reported by ) + what that started.) (reported by ) Changes by Joris Huizer -9. The [xoritself] optimiser idiom has been generalised to handle some +8. The [xoritself] optimiser idiom has been generalised to handle some situations where the redundant XOR operands are on different grouping levels; this helps to optimise some heavily inlined greater-than tests. -10. Fixed unary operators applied to constants (AIS: it seems that my patch to +9. Fixed unary operators applied to constants (AIS: it seems that my patch to solve this issue earlier was itself buggy). -11. The -g option now causes optimisation of the output compiled C to be +10. The -g option now causes optimisation of the output compiled C to be turned off, and adds comments to the output file the same way -c does. - -12. Added more optimiser idioms: [cxorand16], [cxorand32], [cfoldintoorinand], +11. Added more optimiser idioms: [cxorand16], [cxorand32], [cfoldintoorinand], [or16and], [xor16and], [lshift32half], [rshiftoutofneg], [andoutofneg]; also generalised the idiom-matching code to compare 16-bit and 32-bit constants as equal if they have the same value, and fixed some typos in @@ -69,7 +55,7 @@ Changes by Joris Huizer Bugs reported by the Debian autobuilders and Joey Hess -13. The build of the optimiser idioms is now split over many files, to reduce +12. The build of the optimiser idioms is now split over many files, to reduce the memory usage of gcc when it tries to compile the giant output C file. This was a problem on ia64. (The ulimit method of preventing thrashing has been removed, as this method works better; likewise, the optimiser @@ -77,20 +63,33 @@ Bugs reported by the Debian autobuilders and Joey Hess Changes by Alex Smith -14. convickt can now produce its output as INTERCAL initialisation of a tail +13. The build system has been completely redone, again; it now uses automake + as well as a much newer version of autoconf. This means that there is now + one build system that works the same way on all systems, and that all + sorts of clever tricks like out-of-tree builds, a self-rebuilding build + system, and building the distribution directly from the Makefile, are + possible. As a side effect, the directory structure looks somewhat + different to how it looked in previous versions; src, doc, etc and pit are + still there, but now there's prebuilt instead of temp, an extra directory + buildaux, and bin, lib and include have disappeared. + +14. The distribution now comes in compressed pax format. (Before anyone + complains that they have no idea what that is, or that I'm using something + strange and nonstandard, I'd like to point out that tar is no longer part + of POSIX, but that pax is. (See man 5 tar on a recent Linux system for + details of the whole mess.) Luckily, pax is forward-compatible with tar + so tar readers should be able to read it just fine, if you can't get your + hands on a pax reader.) + +15. convickt can now produce its output as INTERCAL initialisation of a tail array. (This doesn't auto-offset between the different characters; it is therefore mostly useful for producing Baudot arrays for CLC-INTERCAL-style IO.) -15. The function clock_gettime is now supported by the yuk profiler as an +16. The function clock_gettime is now supported by the yuk profiler as an alternative method of getting a high-resolution clock for profiling (it is available on at least Linux). -16. Upgraded the autoconfiguration to a substantially newer version of - autoconf. Hopefully the same script works on all operating systems now, - because I've removed the one that configures for DOS (which was previously - separate). - 17. Added support for computed CREATE (the computation is done at create-time, rather than when the unknown statement is encountered); partly because this was rather easy, but mostly because it can be used to simulate a diff --git a/README b/README new file mode 100644 index 0000000..8ccd493 --- /dev/null +++ b/README @@ -0,0 +1,260 @@ + Release Notes for C-INTERCAL + + DISCREDITS + +This package is an implementation of the language INTERCAL designed by Don +Woods and James Lyon, who have since spent more than twenty years trying to +live it down. + +This implementation was created by Eric S. Raymond +during a fit of lunacy from which he has since mostly recovered. It has been +considerably hacked upon and improved by Steve Swales, Michael Ernst, Louis +Howell, Brian Raiter, Alex Smith, Joris Huizer and others. For detailed +credits see NEWS. + + FILES + +The compiler itself is in the src directory. You can choose where to +install it with the --prefix argument to configure, or by setting DESTDIR +in the Makefile. The doc directory contains (surprise!) documentation, and +pit contains various examples of INTERCAL source code, writhing in agony. + +The files included are: + +README -- this file +BUGS -- current bug and to-do list +NEWS -- info on features and fixes new in this release +COPYING -- copyright and licence information +MANIFEST -- a list of all files in the distribution + +doc/READ.ME -- historical notes on the docs +doc/ick.txi -- the Revamped Manual sources, a newer manual +doc/fdl-1-2.txi -- the GNU FDL version 1.2 in Texinfo format +doc/ick.txt -- the Revamped Manual in plain text format +doc/ick.info -- the Revamped Manual in Info format +doc/ickstyle.css -- styling rules for the Revamped Manual in HTML +doc/tidy.cfg -- HTML tidying rules for the Revamped Manual +doc/fix83.pl -- script to fixup the HTML output for 8.3 systems +doc/intercal.mm -- the old manual in groffable form +doc/Makefile -- makefile to build old and new manuals +doc/THEORY.txt -- some notes on the internals of the INTERCAL compiler +doc/chipspec.txt -- plans for an INTERCAL-based microprocessor +doc/ick.1 -- man page for ick +doc/convickt.1 -- man page for convickt + +src/abcess.h -- interface to functions linked with programs +src/arrgghh.c -- option argument parsing for generated programs +src/bin2c.c -- creates C code representations of binary files +src/cesspool.c -- the INTERCAL runtime support code +src/clc-cset.c -- compatibility code for CLC-INTERCAL character sets +src/csetstub.c -- small file to allow convickt to link +src/configh.in -- config.h template generated by autoheader +src/configdj.h -- config.h substitute for DJGPP without config.sh +src/convickt.c -- command line character set converter +src/coopt.sh -- script to help out the -F optimizer (POSIX only) +src/dekludge.c -- INTERCAL optimizer wrapper and utility functions +src/feh.h -- interface to INTERCAL-to-C code generator +src/feh2.c -- INTERCAL-to-C code generator +src/fiddle.[ch] -- the INTERCAL operators +src/ick-wrap.c -- the driver for generated C-from-INTERCAL code +src/ick.h -- compilation types and defines +src/ick_ec.[ch] -- external call support for INTERCAL +src/ick_lose.[ch] -- INTERCAL compile- and run-time error handling +src/idiotism.oil -- list of INTERCAL idioms to optimize +src/lexer.l -- the lexical analyzer specification (in LEX) +src/numerals.c -- numerals table for INTERCAL input +src/oil.y -- compiler to translate idiotism.oil into C +src/oil.h -- name mangling for OIL files +src/parser.y -- the grammar specification (in YACC) +src/perpet.c -- main routine for compiler +src/pick1.h -- template for compiler-dependent PIC C headers +src/pick2.h -- runtime support for compiled PIC-INTERCAL +src/pickwrap.c -- the driver for generated PIC C-from-INTERCAL code +src/sizes.h -- variables defining the numeric base +src/uncommon.[ch] -- code common to the compiler and debugger +src/unravel.c -- multithreading functions +src/yuk.[ch] -- INTERCAL debugger and profiler +src/*.bin -- character set definitions for clc-cset and convickt + +prebuilt/parser.[ch] -- Prebuilt parser (for systems without bison) +prebuilt/lexer.c -- Prebuilt lexer (for systems without flex) +prebuilt/oil-oil.c -- Prebuilt OIL compiler (again, for bisonless systems) + +etc/intercal.el -- elisp for editing INTERCAL code under GNU Emacs +etc/cftoec.sh -- script to convert cfunge to a library (see below) +etc/IFFI* -- input to that script +etc/cfunge.patch -- more input to that script +etc/temp -- temporary directory used by that script + +configure -- GNU Autoconf script that generates a Makefile +configure.ac -- autoconf source for configure +Makefile.in -- template Makefile for compiling C-INTERCAL +Makefile.am -- automake source for Makefile.in + +buildaux/* -- helper scripts for the build provided by automake +aclocal.m4 -- helper file needed to build the build system itself + +pit/* -- sample INTERCAL code; see pit/CATALOG +pit/explib/* -- source code for expansion libraries +pit/lib/syslib.*i -- source code for the system libraries + + HOW TO GET STARTED + +First, note that there is a much fuller manual than this file available. For +full information about C-INTERCAL, including extensive installation and usage +instructions, see that one; run `info -f doc/ick.inf', or failing that read +the plain text version at doc/ick.txt. (You can build a variety of other +formats as well, such as HTML and PDF, using the Makefile in the doc +directory.) After C-INTERCAL is installed, the manual is also available with +just `info ick' for information about running ick, the compiler, or `info +C-INTERCAL' for the available information about ick and C-INTERCAL. (If you +installed C-INTERCAL in a directory that did not contain the main Info +documentation tree, instead `info ick' will do what `info C-INTERCAL' should +do, and `info C-INTERCAL' will not work at all.) + +You want a man page? Man pages are for wimps. (However, Debian wrote one +anyway, and it's available in the distribution as doc/ick.1.) To compile an +INTERCAL program `foo.i' to executable code, just do + + ick foo.i + +There are many other useful options available, which used to be listed in this +README but it eventually became several long unreadable run-on sentences; +interested readers are referred to the Revamped Manual, or to ick -@ (which +prints a usage message). + +Every compiled INTERCAL program also accepts certain options at runtime (code +by Steve Swales). These include [+/-]help, [+/-]traditional, and +[+/-]wimpmode. The help option (with either + or -) triggers a 'usage' +message. The +traditional option is presently a no-op. Also available are +[+/-] printflow, which gives information that may or may not be helpful for +debugging a program, and [+/-] mystery, which is deliberately undocumented. + +Steve writes: "The wimpmode option is the most interesting. I found myself +always running my test programs with filters on both ends to work around the +'nifty' INTERCAL number representations. This was so painful that I decided it +would be LESS painful (and a lot less code) if I added a 'wimp' option. With +the +wimpmode option, the user is subjected to a humiliating message about what +a wimp he or she is to use this mode, but after that is allowed to use +conventional numerical notation. While such a mode doubtless violates to some +extent the INTERCAL philosophy, the fact that a 'unbutcher' command has been +posted clearly indicates the need for it. Anyway... if you don't like it, don't +use it... the default is -wimpmode (i.e. NOT wimp mode)." + + SPREADING THE BLAME + +There is an INTERCAL Resource Page at http://www.catb.org/intercal + +The latest version of INTERCAL is also kept available at the Retrocomputing +Museun, http://www.catb.org/retro. + +(The above two paragraphs are somewhat out of date, but I kept them there, +including the typos, for historical purposes. Looking through the +alt.lang.intercal archives is usually the best way to find out what the latest +version of C-INTERCAL (and you'll find out how to get its rival too, for that +matter) is nowadays; they tend to pop up in various unusual places, so giving +a URL might be misleading. Note also that contact details, and even who to +contact, often end up out of date; the newsgroup is also a good way to find +out who to contact. + +As of when I wrote this, the current homepage for C-INTERCAL and CLC-INTERCAL +is http://intercal.freeshell.org.) + +There is, in addition, an occasionally active USENET newsgroup devoted to the +language: alt.lang.intercal. (It is a somewhat unusual newsgroup, as although +large numbers of people are known to read it hardly anyone ever writes in it; +occasionally someone asks if the newsgroup is dead and gets several responses +claiming it isn't. Mostly it's full of C-INTERCAL release notices, and is thus +a good way to determine the most recent version of C-INTERCAL.) + + BUILDING C-INTERCAL + +C-INTERCAL now uses a GNU Autotools-based build system, this is something like +the fourth build system that has been tried for it, and hopefully it now works +(we've given the build system several interesting twists, of course; for +instance, automake dumps things like the prebuilt parser in the root of the +distribution by default, which is ugly, so we moved them to the prebuilt +directory.) It is possible to build with the straightforward configure/make/ +make install routine, just as most other distributed software does; however, +this dumps all the generated files into the root of the distribution, which +violates the author's sense of aesthetics, and so the recommended approach is +to build out-of-tree; create a directory anywhere you like, and run configure +from that directory, then make and install there. You can give configure +arguments (see configure --help for details); probably the only one you'll +want to use is --prefix, which selects the directory to install C-INTERCAL +into (--prefix=/usr and --prefix=/usr/local (the default) are both likely +choices, but you may want to install into a subdirectory of your home +directory to avoid the need for root priveleges). Some revious versions of +C-INTERCAL required various information to be specified by the user; the build +system now figures this all out for itself, so you can relax and not need to +worry (in theory). + +Building on DOS (via DJGPP) and Windows (via Cygwin) both work fine the same +way as builds on POSIX-like systems like Linux, Mac OS X, and BSD. + +I have come across lexes whose default limits for various things aren't high +enough to handle INTERCAL's various lexing conundrums. In this case, pay +attention to the error messages they give you, and alter the source file +src/lexer.l accordingly. This should not happen on most modern systems, as +most modern lexers allocate memory dynamically and so can handle source files +of any length. + +The build now uses your default compiler and compiler options; you can change +either of these by specifying them as options to configure (for instance, +configure CC=gcc CFLAGS=-O3 -funroll-loops). (You can also set the appropriate +environment variables instead.) The default options are -g on all compilers, +and also -O2 if you're using gcc, and the default compiler is calculated +automatically by configure; note in particular that if you're using a non-gcc +compiler you'll have to request optimisation yourself by setting the CFLAGS if +you want an optimising build. + +Although the build system tries to find a good high-resolution timing function +to use for profiling, such functions are often system-specific; you may be +able to get better profiling output by tinkering with yuk.h to specify a +different method of profiling. + + NOTES ON COMPILING PIC-INTERCAL + +PIC C compilers tend to differ substantially in the way they handle various +language constructs. As a result, this compiler will only compile to C (not to +hex or asm) when compiling a PIC-INTERCAL program. There are two header files, +pick1.h and pick2.h in the /src directory; these need to be placed somewhere +your compiler can find them, and pick1.h will need to be modified to contain +compiler-specific data (like the names of data types and the syntax for +specifying the device type, fuses, and various commands). + + NOTES ON THE C-INTERCAL / CFUNGE EXTERNAL CALLS SYSTEM + +Code is provided to allow linking of Funge-98 programs to INTERCAL programs; +however, this requires a Funge-98 interpreter, which is not present in this +distribution. Therefore, in order to do this, a Funge-98 interpreter must +first be downloaded and prepared for use with C-INTERCAL. At present, code is +only available for linking with 'cfunge', a Funge-98 interpreter written in +C. You can get the latest sources for that interpreter from the Internet via +the bzr version-control system by running this command: + +bzr branch http://rage.kuonet.org/~anmaster/bzr/cfunge + +Once you have the source code to cfunge, you can compile it into a library +suitable for use by C-INTERCAL by changing to the /etc directory of the +C-INTERCAL distribution, and running the cftoec.sh shell script in that +directory with the path to the cfunge distribution as an argument. The script +will make a copy of cfunge, modify it as required, and then place the +resulting library (libick_ecto_b98.a) in the /prebuilt directory of the +C-INTERCAL distribution; installing (or reinstalling) C-INTERCAL after that +will copy that library into the correct location in your filesystem. + +For information on actually using this system once you've set it up, consult +the Revamped Manual. + + LICENSING + +C-INTERCAL is now distributed under the General Public License version 2 (or +at your choice any later version), except for the C skeleton file which is +explicitly *not* GPLed in order to avoid the (possibly mythical) "license +virus" effect, and the Revamped Manual, which is licenced under the GNU Free +Documentation Licence version 1.2. See the file COPYING for details on the +General Public License, and the file doc/fdl-1-2.txi (which is also included +as a chapter in each of the compiled versions of the documentation, in case +you don't feel like reading Texinfo) for information on the GNU Free +Documentation Licence. diff --git a/README.txt b/README.txt deleted file mode 100644 index 9515e62..0000000 --- a/README.txt +++ /dev/null @@ -1,336 +0,0 @@ - Release Notes for C-INTERCAL - - DISCREDITS - -This package is an implementation of the language INTERCAL designed by Don -Woods and James Lyon, who have since spent more than twenty years trying to -live it down. - -This implementation was created by Eric S. Raymond -during a fit of lunacy from which he has since mostly recovered. It has been -considerably hacked upon and improved by Steve Swales, Michael Ernst, Louis -Howell, Brian Raiter, Alex Smith, Joris Huizer and others. For detailed -credits see NEWS. - - FILES - -The compiler itself is in the src directory. Setting a symbol in the makefile -will allow you to install it and its libraries and support files in a directory -of your choice. The doc directory contains (surprise!) documentation, and pit -contains various examples of INTERCAL source code, writhing in agony. - -The files included are: - -README.txt -- this file -BUGS.txt -- current bug and to-do list -NEWS.txt -- info on features and fixes new in this release -COPYING.txt -- copyright and licence information -MANIFEST.txt -- a list of all files in the distribution - -etc/intercal.el -- elisp for editing INTERCAL code under GNU Emacs - -doc/READ.ME -- historical notes on the docs -doc/ick.txi -- the Revamped Manual sources, a newer manual -doc/fdl-1-2.txi -- the GNU FDL version 1.2 in Texinfo form -doc/ick.txt -- the Revamped Manual in plain text form -doc/ick.inf -- the Revamped Manual in Info -doc/ickstyle.css -- styling rules for the Revamped Manual in HTML -doc/tidy.cfg -- HTML tidying rules for the Revamped Manual -doc/fix83.pl -- script to fixup the HTML output for 8.3 systems -doc/intercal.mm -- the old manual in groffable form -doc/Makefile -- makefile to build old and new manuals -doc/THEORY.txt -- some notes on the internals of the INTERCAL compiler -doc/chipspec.txt -- plans for an INTERCAL-based microprocessor -doc/ick.1 -- man page for ick -doc/convickt.1 -- man page for convickt - -src/abcess.h -- interface to functions linked with programs -src/arrgghh.c -- option argument parsing for generated programs -src/bin2c.c -- creates C code representations of binary files -src/cesspool.c -- the INTERCAL runtime support code -src/clc-cset.c -- compatibility code for CLC-INTERCAL character sets -src/csetstub.c -- small file to allow convickt to link -src/configdj.h -- config.h substitute for DJGPP without config.sh -src/convickt.c -- command line character set converter -src/coopt.sh -- script to help out the -F optimizer (POSIX only) -src/dekludge.c -- INTERCAL optimizer wrapper and utility functions -src/feh.h -- interface to INTERCAL-to-C code generator -src/feh2.c -- INTERCAL-to-C code generator -src/fiddle.[ch] -- the INTERCAL operators -src/ick-wrap.c -- the driver for generated C-from-INTERCAL code -src/ick.h -- compilation types and defines -src/ick_ec.[ch] -- external call support for INTERCAL -src/ick_lose.[ch] -- INTERCAL compile- and run-time error handling -src/idiotism.oil -- list of INTERCAL idioms to optimize -src/lexer.l -- the lexical analyzer specification (in LEX) -src/numerals.c -- numerals table for INTERCAL input -src/oil.y -- compiler to translate idiotism.oil into C -src/oil.h -- name mangling for OIL files -src/parser.y -- the grammar specification (in YACC) -src/perpet.c -- main routine for compiler -src/pick1.h -- template for compiler-dependent PIC C headers -src/pick2.h -- runtime support for compiled PIC-INTERCAL -src/pickwrap.c -- the driver for generated PIC C-from-INTERCAL code -src/sizes.h -- variables defining the numeric base -src/uncommon.[ch] -- code common to the compiler and debugger -src/unravel.c -- multithreading functions -src/yuk.[ch] -- INTERCAL debugger and profiler -src/*.bin -- character set definitions for clc-cset and convickt - -temp/parser.[ch] -- Prebuilt parser (for DJGPP systems without bison) -temp/lexer.c -- Prebuilt lexer (for DJGPP systems without flex) -temp/oil.c -- Prebuilt OIL compiler (again, for bisonless systems) - -makeick.bat -- script to compile under DJGPP -districk.bat -- script to remove files not distributed (DJGPP) -cleanick.bat -- script to remove all non-source files (DJGPP) -etc/ctrlmfix.bat -- script to remove ^Ms that may have got in by mistake -makeick.sh --\ -districk.sh --|the same as above, but in sh format -cleanick.sh --|(use .bat under command.com/cmd, and .sh under bash) -etc/ctrlmfix.sh --/ - -etc/cftoec.sh -- script to convert cfunge to a library (see below) -etc/IFFI* -- input to that script -etc/cfunge.patch -- more input to that script -etc/temp -- temporary directory used by that script - -config.sh -- GNU Autoconf script that generates a makefile - from Makefile.in -ickspec.in -- Input to config.sh -config.ac -- Source from which config.sh was generated -configh.in -- Source from which temp/config.h is generated -Makefile.in -- makefile input for the INTERCAL compiler - -bin/* -- Directory that holds binaries after the build -include/* -- Directory that holds header files after the build -lib/* -- Directory that holds library files after the build - -pit/* -- sample INTERCAL code; see pit/CATALOG -pit/explib/* -- source code for expansion libraries -pit/lib/syslib.*i -- source code for the system libraries - - HOW TO GET STARTED - -First, note that there is a much fuller manual than this file available. For -full information about C-INTERCAL, including extensive installation and usage -instructions, see that one; run `info -f doc/ick.inf', or failing that read the -plain text version at doc/ick.txt. (You can build a variety of other formats as -well, such as HTML and PDF, using the Makefile in the doc directory.) After -C-INTERCAL is installed, the manual is also available with just `info ick' for -information about running ick, the compiler, or `info C-INTERCAL' for the -available information about ick and C-INTERCAL. (If you installed C-INTERCAL -in a directory that did not contain the main Info documentation tree, instead -`info ick' will do what `info C-INTERCAL' should do, and `info C-INTERCAL' -will not work at all.) - -You want a man page? Man pages are for wimps. (However, Debian wrote one -anyway, and it's available in the distribution as ick.1.) To compile an -INTERCAL program `foo.i' to executable code, just do - - ick foo.i - -There's a -c option that leaves the generated `foo.c' in place for inspection -(suppressing compilation to machine code), a -d option that enables verbose -parse reporting from the yacc/bison parser, a -t option that requires strict -INTERCAL-72 compliance (rejecting COME FROM and the extensions for bases other -than two), a -b option that disables the INTERCAL-72 random-bug feature, and an --O option that enables the (hah!) optimizer (which can be invoked at higher -levels with -Of or -F). Invoking ick -? prints a usage message. The -m -option enables multithreading extensions. If you need to debug code, -g -generates the C code in such a way that it can be debugged with a C -debugger. -h, -H, and -hH generate debugging output from the optimizer, which -is useful if you need to understand an INTERCAL program, and -l turns on -warnings (far too many warnings!). If ick itself needs debugging, the -U option -will cause it to dump core on E778. Other than that, yer on yer own. - --t has been mentioned above as a compatibility option; -X is also permitted, -and causes the program to treat the ambiguous characters ? and @ as having the -meanings that they have in CLC-INTERCAL rather than their traditional -C-INTERCAL meanings, and also uses the CLC-INTERCAL meaning for some commands -(such as an ABSTAIN aiming at a GIVE UP command's line label). - -Another switch affects C-INTERCAL's runtime behavior. The `-C' option forces -output in "clockface" mode, for superstitious users who believe writing "IV" -upside-down offends IVPITER and would rather see IIII. - -Every INTERCAL runtime also accepts certain options at runtime (code by Steve -Swales). These include [+/-]help, [+/-]traditional, and [+/-]wimpmode. The -help option (with either + or -) triggers a 'usage' message. The +traditional -option is presently a no-op. Also available are [+/-] printflow, which gives -information that may or may not be helpful for debugging a program, and [+/-] -mystery, which is deliberately undocumented. - -Steve writes: "The wimpmode option is the most interesting. I found myself -always running my test programs with filters on both ends to work around the -'nifty' INTERCAL number representations. This was so painful that I decided it -would be LESS painful (and a lot less code) if I added a 'wimp' option. With -the +wimpmode option, the user is subjected to a humiliating message about what -a wimp he or she is to use this mode, but after that is allowed to use -conventional numerical notation. While such a mode doubtless violates to some -extent the INTERCAL philosophy, the fact that a 'unbutcher' command has been -posted clearly indicates the need for it. Anyway... if you don't like it, don't -use it... the default is -wimpmode (i.e. NOT wimp mode)." - - SPREADING THE BLAME - -There is an INTERCAL Resource Page at http://www.catb.org/intercal - -The latest version of INTERCAL is also kept available at the Retrocomputing -Museun, http://www.catb.org/retro. - -(Note that the above paragraph appears to be out of date; last I checked, that -version wasn't the most recent. Looking through the alt.lang.intercal archives -is usually the best way to find out what the latest version of C-INTERCAL (and -you'll find out how to get its rival too, for that matter) is nowadays; they -tend to pop up in various unusual places, so giving a URL might be misleading. -Note also that contact details, and even who to contact, often end up out of -date; the newsgroup is also a good way to find out who to contact. - -As of when I wrote this, the current homepage for C-INTERCAL and CLC-INTERCAL -is http://intercal.freeshell.org.) - -There is, in addition, an occasionally active USENET newsgroup devoted to the -language: alt.lang.intercal. - - NOTES ON THE POSIX BUILD - -The configure script in this distribution is called 'config.sh', to be kind to -people trying to build under DOS, and also just because we like being -different. (You can build and install C-INTERCAL using the familiar routine of -config.sh, then make, then make install.) C-INTERCAL should run fine without -being installed, as long as you give a full absolute or relative pathname to -its executable, and don't move things from the directories they were compiled -into. The compilation must happen in-place; several empty directories are -distributed with C-INTERCAL specifically for being compiled into. - -I have come across lexes whose default limits for various things aren't high -enough to handle INTERCAL's various lexing conundrums. In this case, pay -attention to the error messages they give you, and alter the source file -src/lexer.l accordingly. (Note that previously you might also have had to -change some defines at the top of ick.h to allow for features of your version -of lex; this is no longer required, as one of the defines is now detected by -config.sh and the source files were refactored to make the other moot.) - -If you are using gcc in an non-ANSI environment, such as SunOS, it is strongly -recommended that you add "-Wno-unused -Wimplicit" to the gcc command in the -makefile. If you are in an ANSI environment and are using the current versions -of gcc, flex, and bison, C-INTERCAL should build with no warnings (except some -from rm saying it can't find files, which is not a problem; if installing for -a second or subsequent time, you may also get a harmless warning from mkdir -explaining that the directory it's trying to make already exists, and you can -ignore that too; also, it's been known for gcc to warn about things that bison -or flex generated and so aren't our fault). - -If you get an error about 'gettimeofday()', or if you have a more accurate -timing function available, there's a whole section about profiling in yuk.h -that you can change to affect the accuracy of the timings. (Option 0 is pure -ANSI C, which can be used as a fallback to allow the debugging library to -compile if you have nothing better.) Note that the configure script now tries -to detect what timing functions you have available; it's pretty good at -finding ANSI and POSIX functions, but at the moment I only have one -nonstandard one there (gethrtime, which was on one proprietary UNIX system I -tested on); feel free to add code to call other proprietary functions in much -the same way if they're more accurate than gettimeofday() or POSIX -alternatives on some system. - - NOTES ON THE DJGPP BUILD - -This distribution needs prebuilding; you can use the makeick.bat or makeick.sh -file provided to compile the program if you can't compile using the usual -POSIX methods via configure and make. (Unlike some previous releases of -C-INTERCAL, the configure/make process can work under DJGPP; invoke the -configure script as 'sh config.sh' (without the sparks), and run make as -normal. However, this requires that you've installed quite a few utilities in -addition to just gcc, including at least bash, perl, sed, tr and make, but -possibly other things I missed.) Once the implementation has been built, you -can install it by adding the \bin subdirectory to your PATH environment -variable (at either end), or by using 'make install' (again without the -sparks) if you got config.sh and make to work (which will copy the INTERCAL -compiler into your main DJGPP installation directories). The temporary output -from bison and flex is included in the distribution (for those people who -don't have bison and flex, makeick will give error messages, but succeed -anyway using the prebuilt versions). The districk.bat file will remove all -generated files that weren't in the distribution, and the cleanick.bat file -will remove all files that aren't needed for a build (including the temporary -bison/flex output). Note that makeick.bat and makeick.sh produce -DJGPP-specific output; and if you're running DJGPP under bash under Windows -XP, you may need to either set your default command interpreter for batch -files to cmd rather than command.com (by setting your SHELL environment -variable), or use some better workaround that I don't know about. (command.com -seems to have problems with the PATH environment variable under Windows XP -when running under bash.) Also try to make sure that you use the .sh versions -of the makeick.* scripts when running under bash or a similar ported shell, -and the .bat versions when running under a DOS shell. - -Some distributions of DJGPP have a bug where they complain that they can't find -'m4.exe' (or maybe my PATH is still wrong...). You can solve this problem by -copying m4.exe into the temp\ subdirectory before running makeick.bat. - -(P.S. It was my PATH that was wrong. Still, if you made the same mistake as me, -you may want to try the same fix.) - -Some features (for instance, -F) are sometimes unavailable under DJGPP (they -are documented, but have no effect); note that if you do compile a program -under DJGPP using -F, the resulting program may not run if invoked using a -command interpreter other than bash (because -F sometimes produces a shell -script with a .exe extension, rather than a DOS-format executable file). Note -also that the profiler is pretty much useless under DOS; this is a problem -inherent in DOS, in that it doesn't provide timings to any decent resolution -(it was worse than 50ms last I checked, and the DJGPP documentation agrees -with me on this; INTERCAL may be traditionally considered to be slow, but it -isn't that slow, especially with the optimiser enabled). - -You can get a copy of DJGPP at . - -If you release your own version of C-INTERCAL and have edited it on DJGPP, -please run etc/ctrlmfix.bat (or sh) from the main installation directory before -releasing it; this will remove any trailing control-M characters that may have -got into the files by mistake. - - NOTES ON COMPILING PIC-INTERCAL - -PIC C compilers tend to differ substantially in the way they handle various -language constructs. As a result, this compiler will only compile to C (not to -hex or asm) when compiling a PIC-INTERCAL program. There are two header files, -pick1.h and pick2.h in the /src directory; these need to be placed somewhere -your compiler can find them, and pick1.h will need to be modified to contain -compiler-specific data (like the names of data types and the syntax for -specifying the device type, fuses, and various commands). - - NOTES ON THE C-INTERCAL / CFUNGE EXTERNAL CALLS SYSTEM - -Code is provided to allow linking of Funge-98 programs to INTERCAL programs; -however, this requires a Funge-98 interpreter, which is not present in this -distribution. Therefore, in order to do this, a Funge-98 interpreter must -first be downloaded and prepared for use with C-INTERCAL. At present, code is -only available for linking with 'cfunge', a Funge-98 interpreter written in -C. You can get the latest sources for that interpreter from the Internet via -the bzr version-control system by running this command: - -bzr branch http://rage.kuonet.org/~anmaster/bzr/cfunge - -Once you have the source code to cfunge, you can compile it into a library -suitable for use by C-INTERCAL by changing to the /etc directory of the -C-INTERCAL distribution, and running the cftoec.sh shell script in that -directory with the path to the cfunge distribution as an argument. The script -will make a copy of cfunge, modify it as required, and then place the -resulting library (libick_ecto_b98.a) in the /lib directory of the C-INTERCAL -distribution; installing (or reinstalling) C-INTERCAL after that will copy -that library into the correct location in your filesystem. - -For information on actually using this system once you've set it up, consult -the Revamped Manual. - - LICENSING - -C-INTERCAL is now distributed under the General Public License, except for the -C skeleton file which is explicitly *not* GPLed in order to avoid the (possibly -mythical) "license virus" effect. See the file COPYING.txt for details on the -General Public License. - - APOCALYPSE - -INTERCAL is fully Y2K-compliant. Indeed, it is Y2K-obsequious, and loves -nothing better than to be punished by relays of leather-clad and spike-heeled -calendricists. Bite me and go buy your own shotgun. diff --git a/buildaux/depcomp b/buildaux/depcomp new file mode 100644 index 0000000..e5f9736 --- /dev/null +++ b/buildaux/depcomp @@ -0,0 +1,589 @@ +#! /bin/sh +# depcomp - compile a program generating dependencies as side-effects + +scriptversion=2007-03-29.01 + +# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007 Free Software +# Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# Originally written by Alexandre Oliva . + +case $1 in + '') + echo "$0: No command. Try \`$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: depcomp [--help] [--version] PROGRAM [ARGS] + +Run PROGRAMS ARGS to compile a file, generating dependencies +as side-effects. + +Environment variables: + depmode Dependency tracking mode. + source Source file read by `PROGRAMS ARGS'. + object Object file output by `PROGRAMS ARGS'. + DEPDIR directory where to store dependencies. + depfile Dependency file to output. + tmpdepfile Temporary file to use when outputing dependencies. + libtool Whether libtool is used (yes/no). + +Report bugs to . +EOF + exit $? + ;; + -v | --v*) + echo "depcomp $scriptversion" + exit $? + ;; +esac + +if test -z "$depmode" || test -z "$source" || test -z "$object"; then + echo "depcomp: Variables source, object and depmode must be set" 1>&2 + exit 1 +fi + +# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. +depfile=${depfile-`echo "$object" | + sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} +tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} + +rm -f "$tmpdepfile" + +# Some modes work just like other modes, but use different flags. We +# parameterize here, but still list the modes in the big case below, +# to make depend.m4 easier to write. Note that we *cannot* use a case +# here, because this file can only contain one case statement. +if test "$depmode" = hp; then + # HP compiler uses -M and no extra arg. + gccflag=-M + depmode=gcc +fi + +if test "$depmode" = dashXmstdout; then + # This is just like dashmstdout with a different argument. + dashmflag=-xM + depmode=dashmstdout +fi + +case "$depmode" in +gcc3) +## gcc 3 implements dependency tracking that does exactly what +## we want. Yay! Note: for some reason libtool 1.4 doesn't like +## it if -MD -MP comes after the -MF stuff. Hmm. +## Unfortunately, FreeBSD c89 acceptance of flags depends upon +## the command line argument order; so add the flags where they +## appear in depend2.am. Note that the slowdown incurred here +## affects only configure: in makefiles, %FASTDEP% shortcuts this. + for arg + do + case $arg in + -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; + *) set fnord "$@" "$arg" ;; + esac + shift # fnord + shift # $arg + done + "$@" + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + mv "$tmpdepfile" "$depfile" + ;; + +gcc) +## There are various ways to get dependency output from gcc. Here's +## why we pick this rather obscure method: +## - Don't want to use -MD because we'd like the dependencies to end +## up in a subdir. Having to rename by hand is ugly. +## (We might end up doing this anyway to support other compilers.) +## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like +## -MM, not -M (despite what the docs say). +## - Using -M directly means running the compiler twice (even worse +## than renaming). + if test -z "$gccflag"; then + gccflag=-MD, + fi + "$@" -Wp,"$gccflag$tmpdepfile" + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + echo "$object : \\" > "$depfile" + alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz +## The second -e expression handles DOS-style file names with drive letters. + sed -e 's/^[^:]*: / /' \ + -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" +## This next piece of magic avoids the `deleted header file' problem. +## The problem is that when a header file which appears in a .P file +## is deleted, the dependency causes make to die (because there is +## typically no way to rebuild the header). We avoid this by adding +## dummy dependencies for each header file. Too bad gcc doesn't do +## this for us directly. + tr ' ' ' +' < "$tmpdepfile" | +## Some versions of gcc put a space before the `:'. On the theory +## that the space means something, we add a space to the output as +## well. +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +hp) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +sgi) + if test "$libtool" = yes; then + "$@" "-Wp,-MDupdate,$tmpdepfile" + else + "$@" -MDupdate "$tmpdepfile" + fi + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + + if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files + echo "$object : \\" > "$depfile" + + # Clip off the initial element (the dependent). Don't try to be + # clever and replace this with sed code, as IRIX sed won't handle + # lines with more than a fixed number of characters (4096 in + # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; + # the IRIX cc adds comments like `#:fec' to the end of the + # dependency line. + tr ' ' ' +' < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ + tr ' +' ' ' >> $depfile + echo >> $depfile + + # The second pass generates a dummy entry for each header file. + tr ' ' ' +' < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ + >> $depfile + else + # The sourcefile does not contain any dependencies, so just + # store a dummy comment line, to avoid errors with the Makefile + # "include basename.Plo" scheme. + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" + ;; + +aix) + # The C for AIX Compiler uses -M and outputs the dependencies + # in a .u file. In older versions, this file always lives in the + # current directory. Also, the AIX compiler puts `$object:' at the + # start of each line; $object doesn't have directory information. + # Version 6 uses the directory in both cases. + dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` + test "x$dir" = "x$object" && dir= + base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` + if test "$libtool" = yes; then + tmpdepfile1=$dir$base.u + tmpdepfile2=$base.u + tmpdepfile3=$dir.libs/$base.u + "$@" -Wc,-M + else + tmpdepfile1=$dir$base.u + tmpdepfile2=$dir$base.u + tmpdepfile3=$dir$base.u + "$@" -M + fi + stat=$? + + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + do + test -f "$tmpdepfile" && break + done + if test -f "$tmpdepfile"; then + # Each line is of the form `foo.o: dependent.h'. + # Do two passes, one to just change these to + # `$object: dependent.h' and one to simply `dependent.h:'. + sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" + # That's a tab and a space in the []. + sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" + else + # The sourcefile does not contain any dependencies, so just + # store a dummy comment line, to avoid errors with the Makefile + # "include basename.Plo" scheme. + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" + ;; + +icc) + # Intel's C compiler understands `-MD -MF file'. However on + # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c + # ICC 7.0 will fill foo.d with something like + # foo.o: sub/foo.c + # foo.o: sub/foo.h + # which is wrong. We want: + # sub/foo.o: sub/foo.c + # sub/foo.o: sub/foo.h + # sub/foo.c: + # sub/foo.h: + # ICC 7.1 will output + # foo.o: sub/foo.c sub/foo.h + # and will wrap long lines using \ : + # foo.o: sub/foo.c ... \ + # sub/foo.h ... \ + # ... + + "$@" -MD -MF "$tmpdepfile" + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + # Each line is of the form `foo.o: dependent.h', + # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. + # Do two passes, one to just change these to + # `$object: dependent.h' and one to simply `dependent.h:'. + sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process this invocation + # correctly. Breaking it into two sed invocations is a workaround. + sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | + sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +hp2) + # The "hp" stanza above does not work with aCC (C++) and HP's ia64 + # compilers, which have integrated preprocessors. The correct option + # to use with these is +Maked; it writes dependencies to a file named + # 'foo.d', which lands next to the object file, wherever that + # happens to be. + # Much of this is similar to the tru64 case; see comments there. + dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` + test "x$dir" = "x$object" && dir= + base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` + if test "$libtool" = yes; then + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir.libs/$base.d + "$@" -Wc,+Maked + else + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir$base.d + "$@" +Maked + fi + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile1" "$tmpdepfile2" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" + do + test -f "$tmpdepfile" && break + done + if test -f "$tmpdepfile"; then + sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" + # Add `dependent.h:' lines. + sed -ne '2,${; s/^ *//; s/ \\*$//; s/$/:/; p;}' "$tmpdepfile" >> "$depfile" + else + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" "$tmpdepfile2" + ;; + +tru64) + # The Tru64 compiler uses -MD to generate dependencies as a side + # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. + # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put + # dependencies in `foo.d' instead, so we check for that too. + # Subdirectories are respected. + dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` + test "x$dir" = "x$object" && dir= + base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` + + if test "$libtool" = yes; then + # With Tru64 cc, shared objects can also be used to make a + # static library. This mechanism is used in libtool 1.4 series to + # handle both shared and static libraries in a single compilation. + # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. + # + # With libtool 1.5 this exception was removed, and libtool now + # generates 2 separate objects for the 2 libraries. These two + # compilations output dependencies in $dir.libs/$base.o.d and + # in $dir$base.o.d. We have to check for both files, because + # one of the two compilations can be disabled. We should prefer + # $dir$base.o.d over $dir.libs/$base.o.d because the latter is + # automatically cleaned when .libs/ is deleted, while ignoring + # the former would cause a distcleancheck panic. + tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 + tmpdepfile2=$dir$base.o.d # libtool 1.5 + tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 + tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 + "$@" -Wc,-MD + else + tmpdepfile1=$dir$base.o.d + tmpdepfile2=$dir$base.d + tmpdepfile3=$dir$base.d + tmpdepfile4=$dir$base.d + "$@" -MD + fi + + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" + do + test -f "$tmpdepfile" && break + done + if test -f "$tmpdepfile"; then + sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" + # That's a tab and a space in the []. + sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" + else + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" + ;; + +#nosideeffect) + # This comment above is used by automake to tell side-effect + # dependency tracking mechanisms from slower ones. + +dashmstdout) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout, regardless of -o. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test $1 != '--mode=compile'; do + shift + done + shift + fi + + # Remove `-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + test -z "$dashmflag" && dashmflag=-M + # Require at least two characters before searching for `:' + # in the target name. This is to cope with DOS-style filenames: + # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. + "$@" $dashmflag | + sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" + rm -f "$depfile" + cat < "$tmpdepfile" > "$depfile" + tr ' ' ' +' < "$tmpdepfile" | \ +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +dashXmstdout) + # This case only exists to satisfy depend.m4. It is never actually + # run, as this mode is specially recognized in the preamble. + exit 1 + ;; + +makedepend) + "$@" || exit $? + # Remove any Libtool call + if test "$libtool" = yes; then + while test $1 != '--mode=compile'; do + shift + done + shift + fi + # X makedepend + shift + cleared=no + for arg in "$@"; do + case $cleared in + no) + set ""; shift + cleared=yes ;; + esac + case "$arg" in + -D*|-I*) + set fnord "$@" "$arg"; shift ;; + # Strip any option that makedepend may not understand. Remove + # the object too, otherwise makedepend will parse it as a source file. + -*|$object) + ;; + *) + set fnord "$@" "$arg"; shift ;; + esac + done + obj_suffix="`echo $object | sed 's/^.*\././'`" + touch "$tmpdepfile" + ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" + rm -f "$depfile" + cat < "$tmpdepfile" > "$depfile" + sed '1,2d' "$tmpdepfile" | tr ' ' ' +' | \ +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" "$tmpdepfile".bak + ;; + +cpp) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test $1 != '--mode=compile'; do + shift + done + shift + fi + + # Remove `-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + "$@" -E | + sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ + -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | + sed '$ s: \\$::' > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + cat < "$tmpdepfile" >> "$depfile" + sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvisualcpp) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout, regardless of -o, + # because we must use -o when running libtool. + "$@" || exit $? + IFS=" " + for arg + do + case "$arg" in + "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") + set fnord "$@" + shift + shift + ;; + *) + set fnord "$@" "$arg" + shift + shift + ;; + esac + done + "$@" -E | + sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" + echo " " >> "$depfile" + . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +none) + exec "$@" + ;; + +*) + echo "Unknown depmode $depmode" 1>&2 + exit 1 + ;; +esac + +exit 0 + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-end: "$" +# End: diff --git a/buildaux/install-sh b/buildaux/install-sh new file mode 100644 index 0000000..a5897de --- /dev/null +++ b/buildaux/install-sh @@ -0,0 +1,519 @@ +#!/bin/sh +# install - install a program, script, or datafile + +scriptversion=2006-12-25.00 + +# This originates from X11R5 (mit/util/scripts/install.sh), which was +# later released in X11R6 (xc/config/util/install.sh) with the +# following copyright and license. +# +# Copyright (C) 1994 X Consortium +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to +# deal in the Software without restriction, including without limitation the +# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +# sell copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- +# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# +# Except as contained in this notice, the name of the X Consortium shall not +# be used in advertising or otherwise to promote the sale, use or other deal- +# ings in this Software without prior written authorization from the X Consor- +# tium. +# +# +# FSF changes to this file are in the public domain. +# +# Calling this script install-sh is preferred over install.sh, to prevent +# `make' implicit rules from creating a file called install from it +# when there is no Makefile. +# +# This script is compatible with the BSD install script, but was written +# from scratch. + +nl=' +' +IFS=" "" $nl" + +# set DOITPROG to echo to test this script + +# Don't use :- since 4.3BSD and earlier shells don't like it. +doit=${DOITPROG-} +if test -z "$doit"; then + doit_exec=exec +else + doit_exec=$doit +fi + +# Put in absolute file names if you don't have them in your path; +# or use environment vars. + +chgrpprog=${CHGRPPROG-chgrp} +chmodprog=${CHMODPROG-chmod} +chownprog=${CHOWNPROG-chown} +cmpprog=${CMPPROG-cmp} +cpprog=${CPPROG-cp} +mkdirprog=${MKDIRPROG-mkdir} +mvprog=${MVPROG-mv} +rmprog=${RMPROG-rm} +stripprog=${STRIPPROG-strip} + +posix_glob='?' +initialize_posix_glob=' + test "$posix_glob" != "?" || { + if (set -f) 2>/dev/null; then + posix_glob= + else + posix_glob=: + fi + } +' + +posix_mkdir= + +# Desired mode of installed file. +mode=0755 + +chgrpcmd= +chmodcmd=$chmodprog +chowncmd= +mvcmd=$mvprog +rmcmd="$rmprog -f" +stripcmd= + +src= +dst= +dir_arg= +dst_arg= + +copy_on_change=false +no_target_directory= + +usage="\ +Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE + or: $0 [OPTION]... SRCFILES... DIRECTORY + or: $0 [OPTION]... -t DIRECTORY SRCFILES... + or: $0 [OPTION]... -d DIRECTORIES... + +In the 1st form, copy SRCFILE to DSTFILE. +In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. +In the 4th, create DIRECTORIES. + +Options: + --help display this help and exit. + --version display version info and exit. + + -c (ignored) + -C install only if different (preserve the last data modification time) + -d create directories instead of installing files. + -g GROUP $chgrpprog installed files to GROUP. + -m MODE $chmodprog installed files to MODE. + -o USER $chownprog installed files to USER. + -s $stripprog installed files. + -t DIRECTORY install into DIRECTORY. + -T report an error if DSTFILE is a directory. + +Environment variables override the default commands: + CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG + RMPROG STRIPPROG +" + +while test $# -ne 0; do + case $1 in + -c) ;; + + -C) copy_on_change=true;; + + -d) dir_arg=true;; + + -g) chgrpcmd="$chgrpprog $2" + shift;; + + --help) echo "$usage"; exit $?;; + + -m) mode=$2 + case $mode in + *' '* | *' '* | *' +'* | *'*'* | *'?'* | *'['*) + echo "$0: invalid mode: $mode" >&2 + exit 1;; + esac + shift;; + + -o) chowncmd="$chownprog $2" + shift;; + + -s) stripcmd=$stripprog;; + + -t) dst_arg=$2 + shift;; + + -T) no_target_directory=true;; + + --version) echo "$0 $scriptversion"; exit $?;; + + --) shift + break;; + + -*) echo "$0: invalid option: $1" >&2 + exit 1;; + + *) break;; + esac + shift +done + +if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then + # When -d is used, all remaining arguments are directories to create. + # When -t is used, the destination is already specified. + # Otherwise, the last argument is the destination. Remove it from $@. + for arg + do + if test -n "$dst_arg"; then + # $@ is not empty: it contains at least $arg. + set fnord "$@" "$dst_arg" + shift # fnord + fi + shift # arg + dst_arg=$arg + done +fi + +if test $# -eq 0; then + if test -z "$dir_arg"; then + echo "$0: no input file specified." >&2 + exit 1 + fi + # It's OK to call `install-sh -d' without argument. + # This can happen when creating conditional directories. + exit 0 +fi + +if test -z "$dir_arg"; then + trap '(exit $?); exit' 1 2 13 15 + + # Set umask so as not to create temps with too-generous modes. + # However, 'strip' requires both read and write access to temps. + case $mode in + # Optimize common cases. + *644) cp_umask=133;; + *755) cp_umask=22;; + + *[0-7]) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw='% 200' + fi + cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; + *) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw=,u+rw + fi + cp_umask=$mode$u_plus_rw;; + esac +fi + +for src +do + # Protect names starting with `-'. + case $src in + -*) src=./$src;; + esac + + if test -n "$dir_arg"; then + dst=$src + dstdir=$dst + test -d "$dstdir" + dstdir_status=$? + else + + # Waiting for this to be detected by the "$cpprog $src $dsttmp" command + # might cause directories to be created, which would be especially bad + # if $src (and thus $dsttmp) contains '*'. + if test ! -f "$src" && test ! -d "$src"; then + echo "$0: $src does not exist." >&2 + exit 1 + fi + + if test -z "$dst_arg"; then + echo "$0: no destination specified." >&2 + exit 1 + fi + + dst=$dst_arg + # Protect names starting with `-'. + case $dst in + -*) dst=./$dst;; + esac + + # If destination is a directory, append the input filename; won't work + # if double slashes aren't ignored. + if test -d "$dst"; then + if test -n "$no_target_directory"; then + echo "$0: $dst_arg: Is a directory" >&2 + exit 1 + fi + dstdir=$dst + dst=$dstdir/`basename "$src"` + dstdir_status=0 + else + # Prefer dirname, but fall back on a substitute if dirname fails. + dstdir=` + (dirname "$dst") 2>/dev/null || + expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$dst" : 'X\(//\)[^/]' \| \ + X"$dst" : 'X\(//\)$' \| \ + X"$dst" : 'X\(/\)' \| . 2>/dev/null || + echo X"$dst" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q' + ` + + test -d "$dstdir" + dstdir_status=$? + fi + fi + + obsolete_mkdir_used=false + + if test $dstdir_status != 0; then + case $posix_mkdir in + '') + # Create intermediate dirs using mode 755 as modified by the umask. + # This is like FreeBSD 'install' as of 1997-10-28. + umask=`umask` + case $stripcmd.$umask in + # Optimize common cases. + *[2367][2367]) mkdir_umask=$umask;; + .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; + + *[0-7]) + mkdir_umask=`expr $umask + 22 \ + - $umask % 100 % 40 + $umask % 20 \ + - $umask % 10 % 4 + $umask % 2 + `;; + *) mkdir_umask=$umask,go-w;; + esac + + # With -d, create the new directory with the user-specified mode. + # Otherwise, rely on $mkdir_umask. + if test -n "$dir_arg"; then + mkdir_mode=-m$mode + else + mkdir_mode= + fi + + posix_mkdir=false + case $umask in + *[123567][0-7][0-7]) + # POSIX mkdir -p sets u+wx bits regardless of umask, which + # is incompatible with FreeBSD 'install' when (umask & 300) != 0. + ;; + *) + tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ + trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 + + if (umask $mkdir_umask && + exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 + then + if test -z "$dir_arg" || { + # Check for POSIX incompatibilities with -m. + # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or + # other-writeable bit of parent directory when it shouldn't. + # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. + ls_ld_tmpdir=`ls -ld "$tmpdir"` + case $ls_ld_tmpdir in + d????-?r-*) different_mode=700;; + d????-?--*) different_mode=755;; + *) false;; + esac && + $mkdirprog -m$different_mode -p -- "$tmpdir" && { + ls_ld_tmpdir_1=`ls -ld "$tmpdir"` + test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" + } + } + then posix_mkdir=: + fi + rmdir "$tmpdir/d" "$tmpdir" + else + # Remove any dirs left behind by ancient mkdir implementations. + rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null + fi + trap '' 0;; + esac;; + esac + + if + $posix_mkdir && ( + umask $mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" + ) + then : + else + + # The umask is ridiculous, or mkdir does not conform to POSIX, + # or it failed possibly due to a race condition. Create the + # directory the slow way, step by step, checking for races as we go. + + case $dstdir in + /*) prefix='/';; + -*) prefix='./';; + *) prefix='';; + esac + + eval "$initialize_posix_glob" + + oIFS=$IFS + IFS=/ + $posix_glob set -f + set fnord $dstdir + shift + $posix_glob set +f + IFS=$oIFS + + prefixes= + + for d + do + test -z "$d" && continue + + prefix=$prefix$d + if test -d "$prefix"; then + prefixes= + else + if $posix_mkdir; then + (umask=$mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break + # Don't fail if two instances are running concurrently. + test -d "$prefix" || exit 1 + else + case $prefix in + *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; + *) qprefix=$prefix;; + esac + prefixes="$prefixes '$qprefix'" + fi + fi + prefix=$prefix/ + done + + if test -n "$prefixes"; then + # Don't fail if two instances are running concurrently. + (umask $mkdir_umask && + eval "\$doit_exec \$mkdirprog $prefixes") || + test -d "$dstdir" || exit 1 + obsolete_mkdir_used=true + fi + fi + fi + + if test -n "$dir_arg"; then + { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && + { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && + { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || + test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 + else + + # Make a couple of temp file names in the proper directory. + dsttmp=$dstdir/_inst.$$_ + rmtmp=$dstdir/_rm.$$_ + + # Trap to clean up those temp files at exit. + trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 + + # Copy the file name to the temp name. + (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && + + # and set any options; do chmod last to preserve setuid bits. + # + # If any of these fail, we abort the whole thing. If we want to + # ignore errors from any of these, just make sure not to ignore + # errors from the above "$doit $cpprog $src $dsttmp" command. + # + { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && + { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && + { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && + { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && + + # If -C, don't bother to copy if it wouldn't change the file. + if $copy_on_change && + old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && + new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && + + eval "$initialize_posix_glob" && + $posix_glob set -f && + set X $old && old=:$2:$4:$5:$6 && + set X $new && new=:$2:$4:$5:$6 && + $posix_glob set +f && + + test "$old" = "$new" && + $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 + then + rm -f "$dsttmp" + else + # Rename the file to the real destination. + $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || + + # The rename failed, perhaps because mv can't rename something else + # to itself, or perhaps because mv is so ancient that it does not + # support -f. + { + # Now remove or move aside any old file at destination location. + # We try this two ways since rm can't unlink itself on some + # systems and the destination file might be busy for other + # reasons. In this case, the final cleanup might fail but the new + # file should still install successfully. + { + test ! -f "$dst" || + $doit $rmcmd -f "$dst" 2>/dev/null || + { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && + { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } + } || + { echo "$0: cannot unlink or rename $dst" >&2 + (exit 1); exit 1 + } + } && + + # Now rename the file to the real destination. + $doit $mvcmd "$dsttmp" "$dst" + } + fi || exit 1 + + trap '' 0 + fi +done + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-end: "$" +# End: diff --git a/buildaux/missing b/buildaux/missing new file mode 100644 index 0000000..1c8ff70 --- /dev/null +++ b/buildaux/missing @@ -0,0 +1,367 @@ +#! /bin/sh +# Common stub for a few missing GNU programs while installing. + +scriptversion=2006-05-10.23 + +# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006 +# Free Software Foundation, Inc. +# Originally by Fran,cois Pinard , 1996. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +if test $# -eq 0; then + echo 1>&2 "Try \`$0 --help' for more information" + exit 1 +fi + +run=: +sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' +sed_minuso='s/.* -o \([^ ]*\).*/\1/p' + +# In the cases where this matters, `missing' is being run in the +# srcdir already. +if test -f configure.ac; then + configure_ac=configure.ac +else + configure_ac=configure.in +fi + +msg="missing on your system" + +case $1 in +--run) + # Try to run requested program, and just exit if it succeeds. + run= + shift + "$@" && exit 0 + # Exit code 63 means version mismatch. This often happens + # when the user try to use an ancient version of a tool on + # a file that requires a minimum version. In this case we + # we should proceed has if the program had been absent, or + # if --run hadn't been passed. + if test $? = 63; then + run=: + msg="probably too old" + fi + ;; + + -h|--h|--he|--hel|--help) + echo "\ +$0 [OPTION]... PROGRAM [ARGUMENT]... + +Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an +error status if there is no known handling for PROGRAM. + +Options: + -h, --help display this help and exit + -v, --version output version information and exit + --run try to run the given command, and emulate it if it fails + +Supported PROGRAM values: + aclocal touch file \`aclocal.m4' + autoconf touch file \`configure' + autoheader touch file \`config.h.in' + autom4te touch the output file, or create a stub one + automake touch all \`Makefile.in' files + bison create \`y.tab.[ch]', if possible, from existing .[ch] + flex create \`lex.yy.c', if possible, from existing .c + help2man touch the output file + lex create \`lex.yy.c', if possible, from existing .c + makeinfo touch the output file + tar try tar, gnutar, gtar, then tar without non-portable flags + yacc create \`y.tab.[ch]', if possible, from existing .[ch] + +Send bug reports to ." + exit $? + ;; + + -v|--v|--ve|--ver|--vers|--versi|--versio|--version) + echo "missing $scriptversion (GNU Automake)" + exit $? + ;; + + -*) + echo 1>&2 "$0: Unknown \`$1' option" + echo 1>&2 "Try \`$0 --help' for more information" + exit 1 + ;; + +esac + +# Now exit if we have it, but it failed. Also exit now if we +# don't have it and --version was passed (most likely to detect +# the program). +case $1 in + lex|yacc) + # Not GNU programs, they don't have --version. + ;; + + tar) + if test -n "$run"; then + echo 1>&2 "ERROR: \`tar' requires --run" + exit 1 + elif test "x$2" = "x--version" || test "x$2" = "x--help"; then + exit 1 + fi + ;; + + *) + if test -z "$run" && ($1 --version) > /dev/null 2>&1; then + # We have it, but it failed. + exit 1 + elif test "x$2" = "x--version" || test "x$2" = "x--help"; then + # Could not run --version or --help. This is probably someone + # running `$TOOL --version' or `$TOOL --help' to check whether + # $TOOL exists and not knowing $TOOL uses missing. + exit 1 + fi + ;; +esac + +# If it does not exist, or fails to run (possibly an outdated version), +# try to emulate it. +case $1 in + aclocal*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`acinclude.m4' or \`${configure_ac}'. You might want + to install the \`Automake' and \`Perl' packages. Grab them from + any GNU archive site." + touch aclocal.m4 + ;; + + autoconf) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`${configure_ac}'. You might want to install the + \`Autoconf' and \`GNU m4' packages. Grab them from any GNU + archive site." + touch configure + ;; + + autoheader) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`acconfig.h' or \`${configure_ac}'. You might want + to install the \`Autoconf' and \`GNU m4' packages. Grab them + from any GNU archive site." + files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` + test -z "$files" && files="config.h" + touch_files= + for f in $files; do + case $f in + *:*) touch_files="$touch_files "`echo "$f" | + sed -e 's/^[^:]*://' -e 's/:.*//'`;; + *) touch_files="$touch_files $f.in";; + esac + done + touch $touch_files + ;; + + automake*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. + You might want to install the \`Automake' and \`Perl' packages. + Grab them from any GNU archive site." + find . -type f -name Makefile.am -print | + sed 's/\.am$/.in/' | + while read f; do touch "$f"; done + ;; + + autom4te) + echo 1>&2 "\ +WARNING: \`$1' is needed, but is $msg. + You might have modified some files without having the + proper tools for further handling them. + You can get \`$1' as part of \`Autoconf' from any GNU + archive site." + + file=`echo "$*" | sed -n "$sed_output"` + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` + if test -f "$file"; then + touch $file + else + test -z "$file" || exec >$file + echo "#! /bin/sh" + echo "# Created by GNU Automake missing as a replacement of" + echo "# $ $@" + echo "exit 0" + chmod +x $file + exit 1 + fi + ;; + + bison|yacc) + echo 1>&2 "\ +WARNING: \`$1' $msg. You should only need it if + you modified a \`.y' file. You may need the \`Bison' package + in order for those modifications to take effect. You can get + \`Bison' from any GNU archive site." + rm -f y.tab.c y.tab.h + if test $# -ne 1; then + eval LASTARG="\${$#}" + case $LASTARG in + *.y) + SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` + if test -f "$SRCFILE"; then + cp "$SRCFILE" y.tab.c + fi + SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` + if test -f "$SRCFILE"; then + cp "$SRCFILE" y.tab.h + fi + ;; + esac + fi + if test ! -f y.tab.h; then + echo >y.tab.h + fi + if test ! -f y.tab.c; then + echo 'main() { return 0; }' >y.tab.c + fi + ;; + + lex|flex) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified a \`.l' file. You may need the \`Flex' package + in order for those modifications to take effect. You can get + \`Flex' from any GNU archive site." + rm -f lex.yy.c + if test $# -ne 1; then + eval LASTARG="\${$#}" + case $LASTARG in + *.l) + SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` + if test -f "$SRCFILE"; then + cp "$SRCFILE" lex.yy.c + fi + ;; + esac + fi + if test ! -f lex.yy.c; then + echo 'main() { return 0; }' >lex.yy.c + fi + ;; + + help2man) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified a dependency of a manual page. You may need the + \`Help2man' package in order for those modifications to take + effect. You can get \`Help2man' from any GNU archive site." + + file=`echo "$*" | sed -n "$sed_output"` + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` + if test -f "$file"; then + touch $file + else + test -z "$file" || exec >$file + echo ".ab help2man is required to generate this page" + exit 1 + fi + ;; + + makeinfo) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified a \`.texi' or \`.texinfo' file, or any other file + indirectly affecting the aspect of the manual. The spurious + call might also be the consequence of using a buggy \`make' (AIX, + DU, IRIX). You might want to install the \`Texinfo' package or + the \`GNU make' package. Grab either from any GNU archive site." + # The file to touch is that specified with -o ... + file=`echo "$*" | sed -n "$sed_output"` + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` + if test -z "$file"; then + # ... or it is the one specified with @setfilename ... + infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` + file=`sed -n ' + /^@setfilename/{ + s/.* \([^ ]*\) *$/\1/ + p + q + }' $infile` + # ... or it is derived from the source name (dir/f.texi becomes f.info) + test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info + fi + # If the file does not exist, the user really needs makeinfo; + # let's fail without touching anything. + test -f $file || exit 1 + touch $file + ;; + + tar) + shift + + # We have already tried tar in the generic part. + # Look for gnutar/gtar before invocation to avoid ugly error + # messages. + if (gnutar --version > /dev/null 2>&1); then + gnutar "$@" && exit 0 + fi + if (gtar --version > /dev/null 2>&1); then + gtar "$@" && exit 0 + fi + firstarg="$1" + if shift; then + case $firstarg in + *o*) + firstarg=`echo "$firstarg" | sed s/o//` + tar "$firstarg" "$@" && exit 0 + ;; + esac + case $firstarg in + *h*) + firstarg=`echo "$firstarg" | sed s/h//` + tar "$firstarg" "$@" && exit 0 + ;; + esac + fi + + echo 1>&2 "\ +WARNING: I can't seem to be able to run \`tar' with the given arguments. + You may want to install GNU tar or Free paxutils, or check the + command line arguments." + exit 1 + ;; + + *) + echo 1>&2 "\ +WARNING: \`$1' is needed, and is $msg. + You might have modified some files without having the + proper tools for further handling them. Check the \`README' file, + it often tells you about the needed prerequisites for installing + this package. You may also peek at any GNU archive site, in case + some other package would contain this missing \`$1' program." + exit 1 + ;; +esac + +exit 0 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-end: "$" +# End: diff --git a/buildaux/ylwrap b/buildaux/ylwrap new file mode 100644 index 0000000..7278b6a --- /dev/null +++ b/buildaux/ylwrap @@ -0,0 +1,223 @@ +#! /bin/sh +# ylwrap - wrapper for lex/yacc invocations. + +scriptversion=2007-11-22.22 + +# Copyright (C) 1996, 1997, 1998, 1999, 2001, 2002, 2003, 2004, 2005, +# 2007 Free Software Foundation, Inc. +# +# Written by Tom Tromey . +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# This file is maintained in Automake, please report +# bugs to or send patches to +# . + +case "$1" in + '') + echo "$0: No files given. Try \`$0 --help' for more information." 1>&2 + exit 1 + ;; + --basedir) + basedir=$2 + shift 2 + ;; + -h|--h*) + cat <<\EOF +Usage: ylwrap [--help|--version] INPUT [OUTPUT DESIRED]... -- PROGRAM [ARGS]... + +Wrapper for lex/yacc invocations, renaming files as desired. + + INPUT is the input file + OUTPUT is one file PROG generates + DESIRED is the file we actually want instead of OUTPUT + PROGRAM is program to run + ARGS are passed to PROG + +Any number of OUTPUT,DESIRED pairs may be used. + +Report bugs to . +EOF + exit $? + ;; + -v|--v*) + echo "ylwrap $scriptversion" + exit $? + ;; +esac + + +# The input. +input="$1" +shift +case "$input" in + [\\/]* | ?:[\\/]*) + # Absolute path; do nothing. + ;; + *) + # Relative path. Make it absolute. + input="`pwd`/$input" + ;; +esac + +pairlist= +while test "$#" -ne 0; do + if test "$1" = "--"; then + shift + break + fi + pairlist="$pairlist $1" + shift +done + +# The program to run. +prog="$1" +shift +# Make any relative path in $prog absolute. +case "$prog" in + [\\/]* | ?:[\\/]*) ;; + *[\\/]*) prog="`pwd`/$prog" ;; +esac + +# FIXME: add hostname here for parallel makes that run commands on +# other machines. But that might take us over the 14-char limit. +dirname=ylwrap$$ +trap "cd '`pwd`'; rm -rf $dirname > /dev/null 2>&1" 1 2 3 15 +mkdir $dirname || exit 1 + +cd $dirname + +case $# in + 0) "$prog" "$input" ;; + *) "$prog" "$@" "$input" ;; +esac +ret=$? + +if test $ret -eq 0; then + set X $pairlist + shift + first=yes + # Since DOS filename conventions don't allow two dots, + # the DOS version of Bison writes out y_tab.c instead of y.tab.c + # and y_tab.h instead of y.tab.h. Test to see if this is the case. + y_tab_nodot="no" + if test -f y_tab.c || test -f y_tab.h; then + y_tab_nodot="yes" + fi + + # The directory holding the input. + input_dir=`echo "$input" | sed -e 's,\([\\/]\)[^\\/]*$,\1,'` + # Quote $INPUT_DIR so we can use it in a regexp. + # FIXME: really we should care about more than `.' and `\'. + input_rx=`echo "$input_dir" | sed 's,\\\\,\\\\\\\\,g;s,\\.,\\\\.,g'` + + while test "$#" -ne 0; do + from="$1" + # Handle y_tab.c and y_tab.h output by DOS + if test $y_tab_nodot = "yes"; then + if test $from = "y.tab.c"; then + from="y_tab.c" + else + if test $from = "y.tab.h"; then + from="y_tab.h" + fi + fi + fi + if test -f "$from"; then + # If $2 is an absolute path name, then just use that, + # otherwise prepend `../'. + case "$2" in + [\\/]* | ?:[\\/]*) target="$2";; + *) target="../$2";; + esac + + # We do not want to overwrite a header file if it hasn't + # changed. This avoid useless recompilations. However the + # parser itself (the first file) should always be updated, + # because it is the destination of the .y.c rule in the + # Makefile. Divert the output of all other files to a temporary + # file so we can compare them to existing versions. + if test $first = no; then + realtarget="$target" + target="tmp-`echo $target | sed s/.*[\\/]//g`" + fi + # Edit out `#line' or `#' directives. + # + # We don't want the resulting debug information to point at + # an absolute srcdir; it is better for it to just mention the + # .y file with no path. + # + # We want to use the real output file name, not yy.lex.c for + # instance. + # + # We want the include guards to be adjusted too. + FROM=`echo "$from" | sed \ + -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'\ + -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'` + TARGET=`echo "$2" | sed \ + -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'\ + -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'` + + sed -e "/^#/!b" -e "s,$input_rx,," -e "s,$from,$2," \ + -e "s,$FROM,$TARGET," "$from" >"$target" || ret=$? + + # Check whether header files must be updated. + if test $first = no; then + if test -f "$realtarget" && cmp -s "$realtarget" "$target"; then + echo "$2" is unchanged + rm -f "$target" + else + echo updating "$2" + mv -f "$target" "$realtarget" + fi + fi + else + # A missing file is only an error for the first file. This + # is a blatant hack to let us support using "yacc -d". If -d + # is not specified, we don't want an error when the header + # file is "missing". + if test $first = yes; then + ret=1 + fi + fi + shift + shift + first=no + done +else + ret=$? +fi + +# Remove the directory. +cd .. +rm -rf $dirname + +exit $ret + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-end: "$" +# End: diff --git a/cleanick.bat b/cleanick.bat deleted file mode 100755 index d8e3f62..0000000 --- a/cleanick.bat +++ /dev/null @@ -1,17 +0,0 @@ -@echo off -rem This batch file removes all files that aren't needed to recompile. -del /Q bin\*.* -del /Q lib\*.* -del /Q include\*.* -del /Q temp\*.h -del /Q temp\*.c -del /Q temp\*.o -del /Q temp\*.a -del /Q temp\*.y -del /Q temp\*.l -del /Q temp\*.bat -del /Q temp\*.sh -del /Q temp\*.exe -del /Q temp\*.bin -del /Q temp\*.in -del /Q temp\*.oil diff --git a/cleanick.sh b/cleanick.sh deleted file mode 100755 index e6f5b62..0000000 --- a/cleanick.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh -# make cleanick as a shell-script, for the benefit of DJGPP systems with broken -# versions of make. -# This batch file removes all files that weren't in the distribution. -rm -f bin/*.* -rm -f lib/*.* -rm -f include/*.* -rm -f temp/*.h -rm -f temp/*.c -rm -f temp/*.o -rm -f temp/*.a -rm -f temp/*.y -rm -f temp/*.l -rm -f temp/*.bat -rm -f temp/*.sh -rm -f temp/*.exe -rm -f temp/*.bin -rm -f temp/*.in -rm -f temp/*.oil -rm -f temp/*~ -rm -f src/*~ -rm -f *~ \ No newline at end of file diff --git a/config.ac b/config.ac deleted file mode 100644 index 9d9ba26..0000000 --- a/config.ac +++ /dev/null @@ -1,133 +0,0 @@ -dnl -*- autoconf -*- -dnl Process this file with autoconf to produce a configure script. -dnl Yes, that is a valid email address. If your mailer doesn't support nested -dnl comments, then get a better mailer. -AC_INIT([C-INTERCAL],[0.29],[[ais523(524\)x\((525)y)@bham.ac.uk]]) -AC_CONFIG_SRCDIR([src/abcess.h]) -AC_CONFIG_HEADER(temp/config.h:src/configh.in) - -dnl Information about this version of INTERCAL. -PACKAGE_VERSION=0.29 - -dnl Checks for programs. -AC_PROG_YACC -AC_PROG_CC -AC_PROG_LEX -AC_PROG_RANLIB -AC_CHECK_PROGS(INSTALLINFO,install-info,:) -AC_CHECK_PROGS(MANDB,mandb,:) -AC_CHECK_PROGS(REALPATH,realpath,echo) - -dnl Check the location of the Info dir file if we have install-info -if test ! $INSTALLINFO = ":"; then -AC_MSG_CHECKING(the location of the Info dir file) -# Try the following locations in order: -INFODIRFILEPREFIXSAVE=$prefix -if test x$prefix = xNONE; then -prefix=$ac_default_prefix -fi -INFODIRFILELOCATIONGUESSES=$infodir/dir -INFODIRFILELOCATIONGUESSES="$INFODIRFILELOCATIONGUESSES $infodir/dir.gz" -INFODIRFILELOCATIONGUESSES="$INFODIRFILELOCATIONGUESSES $prefix/info/dir" -INFODIRFILELOCATIONGUESSES="$INFODIRFILELOCATIONGUESSES $prefix/info/dir.gz" -INFODIRFILELOCATIONGUESSES="$INFODIRFILELOCATIONGUESSES $prefix/share/info/dir" -INFODIRFILELOCATIONGUESSES="$INFODIRFILELOCATIONGUESSES $prefix/share/info/dir.gz" -for my_ac_temp in 1 2 3 4 5 6; do -eval "INFODIRFILELOCATIONGUESSES=\"$INFODIRFILELOCATIONGUESSES\"" -done -prefix=$INFODIRFILEPREFIXSAVE -for my_ac_infodirfile in ${INFODIRFILELOCATIONGUESSES} -do -INFODIRFILE=${my_ac_infodirfile} -test -e "$INFODIRFILE" && break -INFODIRFILE=/dev/null -done -if test $INFODIRFILE = /dev/null; then -AC_MSG_RESULT(not found) -AC_MSG_WARN([Info directory file not found in the --prefix you gave.]) -AC_MSG_WARN([Info documentation will not be installed in the main directory tree.]) -AC_MSG_WARN([If you want to install in the main directory tree even though it's]) -AC_MSG_WARN([outside your --prefix, place a symlink to the directory file from]) -AC_MSG_WARN([(your prefix)/share/info/dir and reconfigure.]) -INSTALLINFO=: -else -AC_MSG_RESULT($INFODIRFILE) -fi -else -INFODIRFILE=irrelevant -fi -AC_SUBST(INFODIRFILE) - -dnl Checks for libraries. - -dnl Checks for header files. -AC_HEADER_STDC -AC_CHECK_HEADERS(sys/time.h unistd.h stdarg.h) -AC_CHECK_HEADERS(stdint.h,[HAVE_STDINT_H=1]) -AC_SUBST(HAVE_STDINT_H) - -dnl Checks for typedefs, structures, and compiler characteristics. -dnl This Autoconf input is compatible with pre-C99 Autoconf, so to -dnl check for long long AC_CHECK_SIZEOF is used to test for a nonzero result, -dnl likewise for _Bool. -AC_C_CONST -AC_C_VOLATILE -AC_CHECK_SIZEOF(long long int,0) -AC_CHECK_SIZEOF(_Bool,0) -AC_HEADER_TIME -AC_EXEEXT -AC_OBJEXT -AC_SYS_INTERPRETER -AC_TYPE_SIGNAL -AC_TYPE_SIZE_T -AC_TYPE_UINT16_T -AC_TYPE_UINT32_T - -AC_MSG_CHECKING(whether yyrestart() is needed) -# Write a lex program that will cause an error if yyrestart exists. -echo '%% -%% -float yyrestart(int, ...);' | $LEX -AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include "${LEX_OUTPUT_ROOT}.c" -]], [[exit(0);]])],[AC_MSG_RESULT(no)],[AC_DEFINE(NEED_YYRESTART) -AC_MSG_RESULT(yes)]) -rm -f ${LEX_OUTPUT_ROOT}.c - -if test "$interpval" != "no"; then -AC_DEFINE([HAVE_SYS_INTERPRETER]) -fi -AC_DEFINE_UNQUOTED(EXEEXT,"$EXEEXT") - -dnl Checks for library functions. -AC_CHECK_FUNCS(gettimeofday gethrtime strdup strtol strtoul snprintf asprintf) -ICK_SAVECFLAGS=$CFLAGS -CFLAGS="$CFLAGS -lrt" -AC_CHECK_FUNCS(clock_gettime) -CFLAGS=$ICK_SAVECFLAGS - -AC_SUBST(PACKAGE_VERSION) - -AC_CONFIG_FILES([Makefile temp/coopt.sh:src/cooptsh.in]) -AC_OUTPUT -dnl After the output, chmod coopt.sh to be executable. -chmod a+x temp/coopt.sh - -dnl Use prebuilt files if necessary. This is done after config.h is generated, -dnl so the touched timestamps fool make in the correct manner. -# Use the prebuilt files if necessary, otherwise delete them. -if test ! -n "$LEX"; then - touch temp/lexer.c - AC_WARN([No version of lex was found, using prebuilt lexer.c.]) - AC_WARN([The lexer will not respond to changes in src/lexer.l unless you]) - AC_WARN([install a version of lex and reconfigure.]) -else - rm -f temp/lexer.c -fi -if test ! -n "$YACC"; then - touch temp/oil.c temp/parser.c temp/parser.h - AC_WARN([No version of yacc was found, using prebuilt oil.c and parser.c.]) - AC_WARN([The parsers will not respond to changes in source files unless you]) - AC_WARN([install a version of yacc and reconfigure.]) -else - rm -f temp/oil.c temp/parser.c temp/parser.h -fi diff --git a/config.sh b/config.sh deleted file mode 100644 index a9e7b83..0000000 --- a/config.sh +++ /dev/null @@ -1,6804 +0,0 @@ -#! /bin/sh -# Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.61 for C-INTERCAL 0.29. -# -# Report bugs to . -# -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -# 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. -# This configure script is free software; the Free Software Foundation -# gives unlimited permission to copy, distribute and modify it. -## --------------------- ## -## M4sh Initialization. ## -## --------------------- ## - -# Be more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in - *posix*) set -o posix ;; -esac - -fi - - - - -# PATH needs CR -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi - -# Support unset when possible. -if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then - as_unset=unset -else - as_unset=false -fi - - -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -as_nl=' -' -IFS=" "" $as_nl" - -# Find who we are. Look in the path if we contain no directory separator. -case $0 in - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break -done -IFS=$as_save_IFS - - ;; -esac -# We did not find ourselves, most probably we were run as `sh COMMAND' -# in which case we are not to be found in the path. -if test "x$as_myself" = x; then - as_myself=$0 -fi -if test ! -f "$as_myself"; then - echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - { (exit 1); exit 1; } -fi - -# Work around bugs in pre-3.0 UWIN ksh. -for as_var in ENV MAIL MAILPATH -do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -for as_var in \ - LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ - LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ - LC_TELEPHONE LC_TIME -do - if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then - eval $as_var=C; export $as_var - else - ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var - fi -done - -# Required to use basename. -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - - -# Name of the executable. -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# CDPATH. -$as_unset CDPATH - - -if test "x$CONFIG_SHELL" = x; then - if (eval ":") 2>/dev/null; then - as_have_required=yes -else - as_have_required=no -fi - - if test $as_have_required = yes && (eval ": -(as_func_return () { - (exit \$1) -} -as_func_success () { - as_func_return 0 -} -as_func_failure () { - as_func_return 1 -} -as_func_ret_success () { - return 0 -} -as_func_ret_failure () { - return 1 -} - -exitcode=0 -if as_func_success; then - : -else - exitcode=1 - echo as_func_success failed. -fi - -if as_func_failure; then - exitcode=1 - echo as_func_failure succeeded. -fi - -if as_func_ret_success; then - : -else - exitcode=1 - echo as_func_ret_success failed. -fi - -if as_func_ret_failure; then - exitcode=1 - echo as_func_ret_failure succeeded. -fi - -if ( set x; as_func_ret_success y && test x = \"\$1\" ); then - : -else - exitcode=1 - echo positional parameters were not saved. -fi - -test \$exitcode = 0) || { (exit 1); exit 1; } - -( - as_lineno_1=\$LINENO - as_lineno_2=\$LINENO - test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" && - test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; } -") 2> /dev/null; then - : -else - as_candidate_shells= - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - case $as_dir in - /*) - for as_base in sh bash ksh sh5; do - as_candidate_shells="$as_candidate_shells $as_dir/$as_base" - done;; - esac -done -IFS=$as_save_IFS - - - for as_shell in $as_candidate_shells $SHELL; do - # Try only shells that exist, to save several forks. - if { test -f "$as_shell" || test -f "$as_shell.exe"; } && - { ("$as_shell") 2> /dev/null <<\_ASEOF -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in - *posix*) set -o posix ;; -esac - -fi - - -: -_ASEOF -}; then - CONFIG_SHELL=$as_shell - as_have_required=yes - if { "$as_shell" 2> /dev/null <<\_ASEOF -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in - *posix*) set -o posix ;; -esac - -fi - - -: -(as_func_return () { - (exit $1) -} -as_func_success () { - as_func_return 0 -} -as_func_failure () { - as_func_return 1 -} -as_func_ret_success () { - return 0 -} -as_func_ret_failure () { - return 1 -} - -exitcode=0 -if as_func_success; then - : -else - exitcode=1 - echo as_func_success failed. -fi - -if as_func_failure; then - exitcode=1 - echo as_func_failure succeeded. -fi - -if as_func_ret_success; then - : -else - exitcode=1 - echo as_func_ret_success failed. -fi - -if as_func_ret_failure; then - exitcode=1 - echo as_func_ret_failure succeeded. -fi - -if ( set x; as_func_ret_success y && test x = "$1" ); then - : -else - exitcode=1 - echo positional parameters were not saved. -fi - -test $exitcode = 0) || { (exit 1); exit 1; } - -( - as_lineno_1=$LINENO - as_lineno_2=$LINENO - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; } - -_ASEOF -}; then - break -fi - -fi - - done - - if test "x$CONFIG_SHELL" != x; then - for as_var in BASH_ENV ENV - do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var - done - export CONFIG_SHELL - exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} -fi - - - if test $as_have_required = no; then - echo This script requires a shell more modern than all the - echo shells that I found on your system. Please install a - echo modern shell, or manually run the script under such a - echo shell if you do have one. - { (exit 1); exit 1; } -fi - - -fi - -fi - - - -(eval "as_func_return () { - (exit \$1) -} -as_func_success () { - as_func_return 0 -} -as_func_failure () { - as_func_return 1 -} -as_func_ret_success () { - return 0 -} -as_func_ret_failure () { - return 1 -} - -exitcode=0 -if as_func_success; then - : -else - exitcode=1 - echo as_func_success failed. -fi - -if as_func_failure; then - exitcode=1 - echo as_func_failure succeeded. -fi - -if as_func_ret_success; then - : -else - exitcode=1 - echo as_func_ret_success failed. -fi - -if as_func_ret_failure; then - exitcode=1 - echo as_func_ret_failure succeeded. -fi - -if ( set x; as_func_ret_success y && test x = \"\$1\" ); then - : -else - exitcode=1 - echo positional parameters were not saved. -fi - -test \$exitcode = 0") || { - echo No shell found that supports shell functions. - echo Please tell autoconf@gnu.org about your system, - echo including any error possibly output before this - echo message -} - - - - as_lineno_1=$LINENO - as_lineno_2=$LINENO - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { - - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO - # uniformly replaced by the line number. The first 'sed' inserts a - # line-number line after each line using $LINENO; the second 'sed' - # does the real work. The second script uses 'N' to pair each - # line-number line with the line containing $LINENO, and appends - # trailing '-' during substitution so that $LINENO is not a special - # case at line end. - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the - # scripts with optimization help from Paolo Bonzini. Blame Lee - # E. McMahon (1931-1989) for sed's syntax. :-) - sed -n ' - p - /[$]LINENO/= - ' <$as_myself | - sed ' - s/[$]LINENO.*/&-/ - t lineno - b - :lineno - N - :loop - s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ - t loop - s/-\n.*// - ' >$as_me.lineno && - chmod +x "$as_me.lineno" || - { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 - { (exit 1); exit 1; }; } - - # Don't try to exec as it changes $[0], causing all sort of problems - # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensitive to this). - . "./$as_me.lineno" - # Exit status is that of the last command. - exit -} - - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in --n*) - case `echo 'x\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - *) ECHO_C='\c';; - esac;; -*) - ECHO_N='-n';; -esac - -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir -fi -echo >conf$$.file -if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' -elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln -else - as_ln_s='cp -p' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - -if mkdir -p . 2>/dev/null; then - as_mkdir_p=: -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - - -exec 7<&0 &1 - -# Name of the host. -# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, -# so uname gets run too. -ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` - -# -# Initializations. -# -ac_default_prefix=/usr/local -ac_clean_files= -ac_config_libobj_dir=. -LIBOBJS= -cross_compiling=no -subdirs= -MFLAGS= -MAKEFLAGS= -SHELL=${CONFIG_SHELL-/bin/sh} - -# Identity of this package. -PACKAGE_NAME='C-INTERCAL' -PACKAGE_TARNAME='c-intercal' -PACKAGE_VERSION='0.29' -PACKAGE_STRING='C-INTERCAL 0.29' -PACKAGE_BUGREPORT='ais523(524\)x\((525)y)@bham.ac.uk' - -ac_unique_file="src/abcess.h" -# Factoring default headers for most tests. -ac_includes_default="\ -#include -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_SYS_STAT_H -# include -#endif -#ifdef STDC_HEADERS -# include -# include -#else -# ifdef HAVE_STDLIB_H -# include -# endif -#endif -#ifdef HAVE_STRING_H -# if !defined STDC_HEADERS && defined HAVE_MEMORY_H -# include -# endif -# include -#endif -#ifdef HAVE_STRINGS_H -# include -#endif -#ifdef HAVE_INTTYPES_H -# include -#endif -#ifdef HAVE_STDINT_H -# include -#endif -#ifdef HAVE_UNISTD_H -# include -#endif" - -ac_subst_vars='SHELL -PATH_SEPARATOR -PACKAGE_NAME -PACKAGE_TARNAME -PACKAGE_VERSION -PACKAGE_STRING -PACKAGE_BUGREPORT -exec_prefix -prefix -program_transform_name -bindir -sbindir -libexecdir -datarootdir -datadir -sysconfdir -sharedstatedir -localstatedir -includedir -oldincludedir -docdir -infodir -htmldir -dvidir -pdfdir -psdir -libdir -localedir -mandir -DEFS -ECHO_C -ECHO_N -ECHO_T -LIBS -build_alias -host_alias -target_alias -YACC -YFLAGS -CC -CFLAGS -LDFLAGS -CPPFLAGS -ac_ct_CC -EXEEXT -OBJEXT -LEX -LEX_OUTPUT_ROOT -LEXLIB -RANLIB -INSTALLINFO -MANDB -REALPATH -INFODIRFILE -CPP -GREP -EGREP -HAVE_STDINT_H -LIBOBJS -LTLIBOBJS' -ac_subst_files='' - ac_precious_vars='build_alias -host_alias -target_alias -YACC -YFLAGS -CC -CFLAGS -LDFLAGS -LIBS -CPPFLAGS -CPP' - - -# Initialize some variables set by options. -ac_init_help= -ac_init_version=false -# The variables have the same names as the options, with -# dashes changed to underlines. -cache_file=/dev/null -exec_prefix=NONE -no_create= -no_recursion= -prefix=NONE -program_prefix=NONE -program_suffix=NONE -program_transform_name=s,x,x, -silent= -site= -srcdir= -verbose= -x_includes=NONE -x_libraries=NONE - -# Installation directory options. -# These are left unexpanded so users can "make install exec_prefix=/foo" -# and all the variables that are supposed to be based on exec_prefix -# by default will actually change. -# Use braces instead of parens because sh, perl, etc. also accept them. -# (The list follows the same order as the GNU Coding Standards.) -bindir='${exec_prefix}/bin' -sbindir='${exec_prefix}/sbin' -libexecdir='${exec_prefix}/libexec' -datarootdir='${prefix}/share' -datadir='${datarootdir}' -sysconfdir='${prefix}/etc' -sharedstatedir='${prefix}/com' -localstatedir='${prefix}/var' -includedir='${prefix}/include' -oldincludedir='/usr/include' -docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' -infodir='${datarootdir}/info' -htmldir='${docdir}' -dvidir='${docdir}' -pdfdir='${docdir}' -psdir='${docdir}' -libdir='${exec_prefix}/lib' -localedir='${datarootdir}/locale' -mandir='${datarootdir}/man' - -ac_prev= -ac_dashdash= -for ac_option -do - # If the previous option needs an argument, assign it. - if test -n "$ac_prev"; then - eval $ac_prev=\$ac_option - ac_prev= - continue - fi - - case $ac_option in - *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; - *) ac_optarg=yes ;; - esac - - # Accept the important Cygnus configure options, so we can diagnose typos. - - case $ac_dashdash$ac_option in - --) - ac_dashdash=yes ;; - - -bindir | --bindir | --bindi | --bind | --bin | --bi) - ac_prev=bindir ;; - -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) - bindir=$ac_optarg ;; - - -build | --build | --buil | --bui | --bu) - ac_prev=build_alias ;; - -build=* | --build=* | --buil=* | --bui=* | --bu=*) - build_alias=$ac_optarg ;; - - -cache-file | --cache-file | --cache-fil | --cache-fi \ - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) - ac_prev=cache_file ;; - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) - cache_file=$ac_optarg ;; - - --config-cache | -C) - cache_file=config.cache ;; - - -datadir | --datadir | --datadi | --datad) - ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=*) - datadir=$ac_optarg ;; - - -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ - | --dataroo | --dataro | --datar) - ac_prev=datarootdir ;; - -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ - | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) - datarootdir=$ac_optarg ;; - - -disable-* | --disable-*) - ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid feature name: $ac_feature" >&2 - { (exit 1); exit 1; }; } - ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'` - eval enable_$ac_feature=no ;; - - -docdir | --docdir | --docdi | --doc | --do) - ac_prev=docdir ;; - -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) - docdir=$ac_optarg ;; - - -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) - ac_prev=dvidir ;; - -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) - dvidir=$ac_optarg ;; - - -enable-* | --enable-*) - ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid feature name: $ac_feature" >&2 - { (exit 1); exit 1; }; } - ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'` - eval enable_$ac_feature=\$ac_optarg ;; - - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ - | --exec | --exe | --ex) - ac_prev=exec_prefix ;; - -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ - | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ - | --exec=* | --exe=* | --ex=*) - exec_prefix=$ac_optarg ;; - - -gas | --gas | --ga | --g) - # Obsolete; use --with-gas. - with_gas=yes ;; - - -help | --help | --hel | --he | -h) - ac_init_help=long ;; - -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) - ac_init_help=recursive ;; - -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) - ac_init_help=short ;; - - -host | --host | --hos | --ho) - ac_prev=host_alias ;; - -host=* | --host=* | --hos=* | --ho=*) - host_alias=$ac_optarg ;; - - -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) - ac_prev=htmldir ;; - -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ - | --ht=*) - htmldir=$ac_optarg ;; - - -includedir | --includedir | --includedi | --included | --include \ - | --includ | --inclu | --incl | --inc) - ac_prev=includedir ;; - -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ - | --includ=* | --inclu=* | --incl=* | --inc=*) - includedir=$ac_optarg ;; - - -infodir | --infodir | --infodi | --infod | --info | --inf) - ac_prev=infodir ;; - -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) - infodir=$ac_optarg ;; - - -libdir | --libdir | --libdi | --libd) - ac_prev=libdir ;; - -libdir=* | --libdir=* | --libdi=* | --libd=*) - libdir=$ac_optarg ;; - - -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ - | --libexe | --libex | --libe) - ac_prev=libexecdir ;; - -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ - | --libexe=* | --libex=* | --libe=*) - libexecdir=$ac_optarg ;; - - -localedir | --localedir | --localedi | --localed | --locale) - ac_prev=localedir ;; - -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) - localedir=$ac_optarg ;; - - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst | --locals) - ac_prev=localstatedir ;; - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) - localstatedir=$ac_optarg ;; - - -mandir | --mandir | --mandi | --mand | --man | --ma | --m) - ac_prev=mandir ;; - -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) - mandir=$ac_optarg ;; - - -nfp | --nfp | --nf) - # Obsolete; use --without-fp. - with_fp=no ;; - - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c | -n) - no_create=yes ;; - - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) - no_recursion=yes ;; - - -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ - | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ - | --oldin | --oldi | --old | --ol | --o) - ac_prev=oldincludedir ;; - -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ - | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ - | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) - oldincludedir=$ac_optarg ;; - - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) - ac_prev=prefix ;; - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) - prefix=$ac_optarg ;; - - -program-prefix | --program-prefix | --program-prefi | --program-pref \ - | --program-pre | --program-pr | --program-p) - ac_prev=program_prefix ;; - -program-prefix=* | --program-prefix=* | --program-prefi=* \ - | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) - program_prefix=$ac_optarg ;; - - -program-suffix | --program-suffix | --program-suffi | --program-suff \ - | --program-suf | --program-su | --program-s) - ac_prev=program_suffix ;; - -program-suffix=* | --program-suffix=* | --program-suffi=* \ - | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) - program_suffix=$ac_optarg ;; - - -program-transform-name | --program-transform-name \ - | --program-transform-nam | --program-transform-na \ - | --program-transform-n | --program-transform- \ - | --program-transform | --program-transfor \ - | --program-transfo | --program-transf \ - | --program-trans | --program-tran \ - | --progr-tra | --program-tr | --program-t) - ac_prev=program_transform_name ;; - -program-transform-name=* | --program-transform-name=* \ - | --program-transform-nam=* | --program-transform-na=* \ - | --program-transform-n=* | --program-transform-=* \ - | --program-transform=* | --program-transfor=* \ - | --program-transfo=* | --program-transf=* \ - | --program-trans=* | --program-tran=* \ - | --progr-tra=* | --program-tr=* | --program-t=*) - program_transform_name=$ac_optarg ;; - - -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) - ac_prev=pdfdir ;; - -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) - pdfdir=$ac_optarg ;; - - -psdir | --psdir | --psdi | --psd | --ps) - ac_prev=psdir ;; - -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) - psdir=$ac_optarg ;; - - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - silent=yes ;; - - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) - ac_prev=sbindir ;; - -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ - | --sbi=* | --sb=*) - sbindir=$ac_optarg ;; - - -sharedstatedir | --sharedstatedir | --sharedstatedi \ - | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ - | --sharedst | --shareds | --shared | --share | --shar \ - | --sha | --sh) - ac_prev=sharedstatedir ;; - -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ - | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ - | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ - | --sha=* | --sh=*) - sharedstatedir=$ac_optarg ;; - - -site | --site | --sit) - ac_prev=site ;; - -site=* | --site=* | --sit=*) - site=$ac_optarg ;; - - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) - ac_prev=srcdir ;; - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) - srcdir=$ac_optarg ;; - - -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ - | --syscon | --sysco | --sysc | --sys | --sy) - ac_prev=sysconfdir ;; - -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ - | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) - sysconfdir=$ac_optarg ;; - - -target | --target | --targe | --targ | --tar | --ta | --t) - ac_prev=target_alias ;; - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) - target_alias=$ac_optarg ;; - - -v | -verbose | --verbose | --verbos | --verbo | --verb) - verbose=yes ;; - - -version | --version | --versio | --versi | --vers | -V) - ac_init_version=: ;; - - -with-* | --with-*) - ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid package name: $ac_package" >&2 - { (exit 1); exit 1; }; } - ac_package=`echo $ac_package | sed 's/[-.]/_/g'` - eval with_$ac_package=\$ac_optarg ;; - - -without-* | --without-*) - ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid package name: $ac_package" >&2 - { (exit 1); exit 1; }; } - ac_package=`echo $ac_package | sed 's/[-.]/_/g'` - eval with_$ac_package=no ;; - - --x) - # Obsolete; use --with-x. - with_x=yes ;; - - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ - | --x-incl | --x-inc | --x-in | --x-i) - ac_prev=x_includes ;; - -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ - | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) - x_includes=$ac_optarg ;; - - -x-libraries | --x-libraries | --x-librarie | --x-librari \ - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) - ac_prev=x_libraries ;; - -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) - x_libraries=$ac_optarg ;; - - -*) { echo "$as_me: error: unrecognized option: $ac_option -Try \`$0 --help' for more information." >&2 - { (exit 1); exit 1; }; } - ;; - - *=*) - ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` - # Reject names that are not valid shell variable names. - expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 - { (exit 1); exit 1; }; } - eval $ac_envvar=\$ac_optarg - export $ac_envvar ;; - - *) - # FIXME: should be removed in autoconf 3.0. - echo "$as_me: WARNING: you should use --build, --host, --target" >&2 - expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && - echo "$as_me: WARNING: invalid host type: $ac_option" >&2 - : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} - ;; - - esac -done - -if test -n "$ac_prev"; then - ac_option=--`echo $ac_prev | sed 's/_/-/g'` - { echo "$as_me: error: missing argument to $ac_option" >&2 - { (exit 1); exit 1; }; } -fi - -# Be sure to have absolute directory names. -for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ - datadir sysconfdir sharedstatedir localstatedir includedir \ - oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ - libdir localedir mandir -do - eval ac_val=\$$ac_var - case $ac_val in - [\\/$]* | ?:[\\/]* ) continue;; - NONE | '' ) case $ac_var in *prefix ) continue;; esac;; - esac - { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 - { (exit 1); exit 1; }; } -done - -# There might be people who depend on the old broken behavior: `$host' -# used to hold the argument of --host etc. -# FIXME: To remove some day. -build=$build_alias -host=$host_alias -target=$target_alias - -# FIXME: To remove some day. -if test "x$host_alias" != x; then - if test "x$build_alias" = x; then - cross_compiling=maybe - echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. - If a cross compiler is detected then cross compile mode will be used." >&2 - elif test "x$build_alias" != "x$host_alias"; then - cross_compiling=yes - fi -fi - -ac_tool_prefix= -test -n "$host_alias" && ac_tool_prefix=$host_alias- - -test "$silent" = yes && exec 6>/dev/null - - -ac_pwd=`pwd` && test -n "$ac_pwd" && -ac_ls_di=`ls -di .` && -ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || - { echo "$as_me: error: Working directory cannot be determined" >&2 - { (exit 1); exit 1; }; } -test "X$ac_ls_di" = "X$ac_pwd_ls_di" || - { echo "$as_me: error: pwd does not report name of working directory" >&2 - { (exit 1); exit 1; }; } - - -# Find the source files, if location was not specified. -if test -z "$srcdir"; then - ac_srcdir_defaulted=yes - # Try the directory containing this script, then the parent directory. - ac_confdir=`$as_dirname -- "$0" || -$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$0" : 'X\(//\)[^/]' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -echo X"$0" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - srcdir=$ac_confdir - if test ! -r "$srcdir/$ac_unique_file"; then - srcdir=.. - fi -else - ac_srcdir_defaulted=no -fi -if test ! -r "$srcdir/$ac_unique_file"; then - test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." - { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 - { (exit 1); exit 1; }; } -fi -ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" -ac_abs_confdir=`( - cd "$srcdir" && test -r "./$ac_unique_file" || { echo "$as_me: error: $ac_msg" >&2 - { (exit 1); exit 1; }; } - pwd)` -# When building in place, set srcdir=. -if test "$ac_abs_confdir" = "$ac_pwd"; then - srcdir=. -fi -# Remove unnecessary trailing slashes from srcdir. -# Double slashes in file names in object file debugging info -# mess up M-x gdb in Emacs. -case $srcdir in -*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; -esac -for ac_var in $ac_precious_vars; do - eval ac_env_${ac_var}_set=\${${ac_var}+set} - eval ac_env_${ac_var}_value=\$${ac_var} - eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} - eval ac_cv_env_${ac_var}_value=\$${ac_var} -done - -# -# Report the --help message. -# -if test "$ac_init_help" = "long"; then - # Omit some internal or obsolete options to make the list less imposing. - # This message is too long to be a string in the A/UX 3.1 sh. - cat <<_ACEOF -\`configure' configures C-INTERCAL 0.29 to adapt to many kinds of systems. - -Usage: $0 [OPTION]... [VAR=VALUE]... - -To assign environment variables (e.g., CC, CFLAGS...), specify them as -VAR=VALUE. See below for descriptions of some of the useful variables. - -Defaults for the options are specified in brackets. - -Configuration: - -h, --help display this help and exit - --help=short display options specific to this package - --help=recursive display the short help of all the included packages - -V, --version display version information and exit - -q, --quiet, --silent do not print \`checking...' messages - --cache-file=FILE cache test results in FILE [disabled] - -C, --config-cache alias for \`--cache-file=config.cache' - -n, --no-create do not create output files - --srcdir=DIR find the sources in DIR [configure dir or \`..'] - -Installation directories: - --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [PREFIX] - -By default, \`make install' will install all the files in -\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify -an installation prefix other than \`$ac_default_prefix' using \`--prefix', -for instance \`--prefix=\$HOME'. - -For better control, use the options below. - -Fine tuning of the installation directories: - --bindir=DIR user executables [EPREFIX/bin] - --sbindir=DIR system admin executables [EPREFIX/sbin] - --libexecdir=DIR program executables [EPREFIX/libexec] - --sysconfdir=DIR read-only single-machine data [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] - --localstatedir=DIR modifiable single-machine data [PREFIX/var] - --libdir=DIR object code libraries [EPREFIX/lib] - --includedir=DIR C header files [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc [/usr/include] - --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] - --datadir=DIR read-only architecture-independent data [DATAROOTDIR] - --infodir=DIR info documentation [DATAROOTDIR/info] - --localedir=DIR locale-dependent data [DATAROOTDIR/locale] - --mandir=DIR man documentation [DATAROOTDIR/man] - --docdir=DIR documentation root [DATAROOTDIR/doc/c-intercal] - --htmldir=DIR html documentation [DOCDIR] - --dvidir=DIR dvi documentation [DOCDIR] - --pdfdir=DIR pdf documentation [DOCDIR] - --psdir=DIR ps documentation [DOCDIR] -_ACEOF - - cat <<\_ACEOF -_ACEOF -fi - -if test -n "$ac_init_help"; then - case $ac_init_help in - short | recursive ) echo "Configuration of C-INTERCAL 0.29:";; - esac - cat <<\_ACEOF - -Some influential environment variables: - YACC The `Yet Another C Compiler' implementation to use. Defaults to - the first program found out of: `bison -y', `byacc', `yacc'. - YFLAGS The list of arguments that will be passed by default to $YACC. - This script will default YFLAGS to the empty string to avoid a - default value of `-d' given by some make applications. - CC C compiler command - CFLAGS C compiler flags - LDFLAGS linker flags, e.g. -L if you have libraries in a - nonstandard directory - LIBS libraries to pass to the linker, e.g. -l - CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if - you have headers in a nonstandard directory - CPP C preprocessor - -Use these variables to override the choices made by `configure' or to help -it to find libraries and programs with nonstandard names/locations. - -Report bugs to . -_ACEOF -ac_status=$? -fi - -if test "$ac_init_help" = "recursive"; then - # If there are subdirs, report their specific --help. - for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue - test -d "$ac_dir" || continue - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - cd "$ac_dir" || { ac_status=$?; continue; } - # Check for guested configure. - if test -f "$ac_srcdir/configure.gnu"; then - echo && - $SHELL "$ac_srcdir/configure.gnu" --help=recursive - elif test -f "$ac_srcdir/configure"; then - echo && - $SHELL "$ac_srcdir/configure" --help=recursive - else - echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 - fi || ac_status=$? - cd "$ac_pwd" || { ac_status=$?; break; } - done -fi - -test -n "$ac_init_help" && exit $ac_status -if $ac_init_version; then - cat <<\_ACEOF -C-INTERCAL configure 0.29 -generated by GNU Autoconf 2.61 - -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. -This configure script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it. -_ACEOF - exit -fi -cat >config.log <<_ACEOF -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. - -It was created by C-INTERCAL $as_me 0.29, which was -generated by GNU Autoconf 2.61. Invocation command line was - - $ $0 $@ - -_ACEOF -exec 5>>config.log -{ -cat <<_ASUNAME -## --------- ## -## Platform. ## -## --------- ## - -hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` -uname -m = `(uname -m) 2>/dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` - -/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` -/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` -/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` -/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` - -_ASUNAME - -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - echo "PATH: $as_dir" -done -IFS=$as_save_IFS - -} >&5 - -cat >&5 <<_ACEOF - - -## ----------- ## -## Core tests. ## -## ----------- ## - -_ACEOF - - -# Keep a trace of the command line. -# Strip out --no-create and --no-recursion so they do not pile up. -# Strip out --silent because we don't want to record it for future runs. -# Also quote any args containing shell meta-characters. -# Make two passes to allow for proper duplicate-argument suppression. -ac_configure_args= -ac_configure_args0= -ac_configure_args1= -ac_must_keep_next=false -for ac_pass in 1 2 -do - for ac_arg - do - case $ac_arg in - -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - continue ;; - *\'*) - ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - case $ac_pass in - 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; - 2) - ac_configure_args1="$ac_configure_args1 '$ac_arg'" - if test $ac_must_keep_next = true; then - ac_must_keep_next=false # Got value, back to normal. - else - case $ac_arg in - *=* | --config-cache | -C | -disable-* | --disable-* \ - | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ - | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ - | -with-* | --with-* | -without-* | --without-* | --x) - case "$ac_configure_args0 " in - "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; - esac - ;; - -* ) ac_must_keep_next=true ;; - esac - fi - ac_configure_args="$ac_configure_args '$ac_arg'" - ;; - esac - done -done -$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } -$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } - -# When interrupted or exit'd, cleanup temporary files, and complete -# config.log. We remove comments because anyway the quotes in there -# would cause problems or look ugly. -# WARNING: Use '\'' to represent an apostrophe within the trap. -# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. -trap 'exit_status=$? - # Save into config.log some information that might help in debugging. - { - echo - - cat <<\_ASBOX -## ---------------- ## -## Cache variables. ## -## ---------------- ## -_ASBOX - echo - # The following way of writing the cache mishandles newlines in values, -( - for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 -echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - *) $as_unset $ac_var ;; - esac ;; - esac - done - (set) 2>&1 | - case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - sed -n \ - "s/'\''/'\''\\\\'\'''\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" - ;; #( - *) - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) - echo - - cat <<\_ASBOX -## ----------------- ## -## Output variables. ## -## ----------------- ## -_ASBOX - echo - for ac_var in $ac_subst_vars - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - echo "$ac_var='\''$ac_val'\''" - done | sort - echo - - if test -n "$ac_subst_files"; then - cat <<\_ASBOX -## ------------------- ## -## File substitutions. ## -## ------------------- ## -_ASBOX - echo - for ac_var in $ac_subst_files - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - echo "$ac_var='\''$ac_val'\''" - done | sort - echo - fi - - if test -s confdefs.h; then - cat <<\_ASBOX -## ----------- ## -## confdefs.h. ## -## ----------- ## -_ASBOX - echo - cat confdefs.h - echo - fi - test "$ac_signal" != 0 && - echo "$as_me: caught signal $ac_signal" - echo "$as_me: exit $exit_status" - } >&5 - rm -f core *.core core.conftest.* && - rm -f -r conftest* confdefs* conf$$* $ac_clean_files && - exit $exit_status -' 0 -for ac_signal in 1 2 13 15; do - trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal -done -ac_signal=0 - -# confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -f -r conftest* confdefs.h - -# Predefined preprocessor variables. - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_NAME "$PACKAGE_NAME" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_TARNAME "$PACKAGE_TARNAME" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_VERSION "$PACKAGE_VERSION" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_STRING "$PACKAGE_STRING" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" -_ACEOF - - -# Let the site file select an alternate cache file if it wants to. -# Prefer explicitly selected file to automatically selected ones. -if test -n "$CONFIG_SITE"; then - set x "$CONFIG_SITE" -elif test "x$prefix" != xNONE; then - set x "$prefix/share/config.site" "$prefix/etc/config.site" -else - set x "$ac_default_prefix/share/config.site" \ - "$ac_default_prefix/etc/config.site" -fi -shift -for ac_site_file -do - if test -r "$ac_site_file"; then - { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 -echo "$as_me: loading site script $ac_site_file" >&6;} - sed 's/^/| /' "$ac_site_file" >&5 - . "$ac_site_file" - fi -done - -if test -r "$cache_file"; then - # Some versions of bash will fail to source /dev/null (special - # files actually), so we avoid doing that. - if test -f "$cache_file"; then - { echo "$as_me:$LINENO: loading cache $cache_file" >&5 -echo "$as_me: loading cache $cache_file" >&6;} - case $cache_file in - [\\/]* | ?:[\\/]* ) . "$cache_file";; - *) . "./$cache_file";; - esac - fi -else - { echo "$as_me:$LINENO: creating cache $cache_file" >&5 -echo "$as_me: creating cache $cache_file" >&6;} - >$cache_file -fi - -# Check that the precious variables saved in the cache have kept the same -# value. -ac_cache_corrupted=false -for ac_var in $ac_precious_vars; do - eval ac_old_set=\$ac_cv_env_${ac_var}_set - eval ac_new_set=\$ac_env_${ac_var}_set - eval ac_old_val=\$ac_cv_env_${ac_var}_value - eval ac_new_val=\$ac_env_${ac_var}_value - case $ac_old_set,$ac_new_set in - set,) - { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,set) - { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 -echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,);; - *) - if test "x$ac_old_val" != "x$ac_new_val"; then - { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 -echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} - { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 -echo "$as_me: former value: $ac_old_val" >&2;} - { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 -echo "$as_me: current value: $ac_new_val" >&2;} - ac_cache_corrupted=: - fi;; - esac - # Pass precious variables to config.status. - if test "$ac_new_set" = set; then - case $ac_new_val in - *\'*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; - *) ac_arg=$ac_var=$ac_new_val ;; - esac - case " $ac_configure_args " in - *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. - *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; - esac - fi -done -if $ac_cache_corrupted; then - { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 -echo "$as_me: error: changes in the environment can compromise the build" >&2;} - { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 -echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} - { (exit 1); exit 1; }; } -fi - - - - - - - - - - - - - - - - - - - - - - - - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - -ac_config_headers="$ac_config_headers temp/config.h:src/configh.in" - - -PACKAGE_VERSION=0.29 - -for ac_prog in 'bison -y' byacc -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_YACC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$YACC"; then - ac_cv_prog_YACC="$YACC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_YACC="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -YACC=$ac_cv_prog_YACC -if test -n "$YACC"; then - { echo "$as_me:$LINENO: result: $YACC" >&5 -echo "${ECHO_T}$YACC" >&6; } -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } -fi - - - test -n "$YACC" && break -done -test -n "$YACC" || YACC="yacc" - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. -set dummy ${ac_tool_prefix}gcc; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CC="${ac_tool_prefix}gcc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6; } -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_CC="gcc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6; } -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } -fi - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -else - CC="$ac_cv_prog_CC" -fi - -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. -set dummy ${ac_tool_prefix}cc; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CC="${ac_tool_prefix}cc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6; } -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } -fi - - - fi -fi -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - ac_prog_rejected=no -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $# != 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" - fi -fi -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6; } -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } -fi - - -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - for ac_prog in cl.exe - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6; } -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } -fi - - - test -n "$CC" && break - done -fi -if test -z "$CC"; then - ac_ct_CC=$CC - for ac_prog in cl.exe -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_CC="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6; } -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } -fi - - - test -n "$ac_ct_CC" && break -done - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -fi - -fi - - -test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH -See \`config.log' for more details." >&5 -echo "$as_me: error: no acceptable C compiler found in \$PATH -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } - -# Provide some information about the compiler. -echo "$as_me:$LINENO: checking for C compiler version" >&5 -ac_compiler=`set X $ac_compile; echo $2` -{ (ac_try="$ac_compiler --version >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compiler --version >&5") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (ac_try="$ac_compiler -v >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compiler -v >&5") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (ac_try="$ac_compiler -V >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compiler -V >&5") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files a.out a.exe b.out" -# Try to create an executable without -o first, disregard a.out. -# It will help us diagnose broken compilers, and finding out an intuition -# of exeext. -{ echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 -echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6; } -ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` -# -# List of possible output files, starting from the most likely. -# The algorithm is not robust to junk in `.', hence go to wildcards (a.*) -# only as a last resort. b.out is created by i960 compilers. -ac_files='a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out' -# -# The IRIX 6 linker writes into existing files which may not be -# executable, retaining their permissions. Remove them first so a -# subsequent execution test works. -ac_rmfiles= -for ac_file in $ac_files -do - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; - * ) ac_rmfiles="$ac_rmfiles $ac_file";; - esac -done -rm -f $ac_rmfiles - -if { (ac_try="$ac_link_default" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link_default") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. -# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' -# in a Makefile. We should not override ac_cv_exeext if it was cached, -# so that the user can short-circuit this test for compilers unknown to -# Autoconf. -for ac_file in $ac_files '' -do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) - ;; - [ab].out ) - # We found the default executable, but exeext='' is most - # certainly right. - break;; - *.* ) - if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; - then :; else - ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - fi - # We set ac_cv_exeext here because the later test for it is not - # safe: cross compilers may not add the suffix if given an `-o' - # argument, so we may need to know it at that point already. - # Even if this section looks crufty: it has the advantage of - # actually working. - break;; - * ) - break;; - esac -done -test "$ac_cv_exeext" = no && ac_cv_exeext= - -else - ac_file='' -fi - -{ echo "$as_me:$LINENO: result: $ac_file" >&5 -echo "${ECHO_T}$ac_file" >&6; } -if test -z "$ac_file"; then - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { echo "$as_me:$LINENO: error: C compiler cannot create executables -See \`config.log' for more details." >&5 -echo "$as_me: error: C compiler cannot create executables -See \`config.log' for more details." >&2;} - { (exit 77); exit 77; }; } -fi - -ac_exeext=$ac_cv_exeext - -# Check that the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -{ echo "$as_me:$LINENO: checking whether the C compiler works" >&5 -echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6; } -# FIXME: These cross compiler hacks should be removed for Autoconf 3.0 -# If not cross compiling, check that we can run a simple program. -if test "$cross_compiling" != yes; then - if { ac_try='./$ac_file' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cross_compiling=no - else - if test "$cross_compiling" = maybe; then - cross_compiling=yes - else - { { echo "$as_me:$LINENO: error: cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } - fi - fi -fi -{ echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6; } - -rm -f a.out a.exe conftest$ac_cv_exeext b.out -ac_clean_files=$ac_clean_files_save -# Check that the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -{ echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 -echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6; } -{ echo "$as_me:$LINENO: result: $cross_compiling" >&5 -echo "${ECHO_T}$cross_compiling" >&6; } - -{ echo "$as_me:$LINENO: checking for suffix of executables" >&5 -echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6; } -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - # If both `conftest.exe' and `conftest' are `present' (well, observable) -# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will -# work properly (i.e., refer to `conftest.exe'), while it won't with -# `rm'. -for ac_file in conftest.exe conftest conftest.*; do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; - *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - break;; - * ) break;; - esac -done -else - { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi - -rm -f conftest$ac_cv_exeext -{ echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 -echo "${ECHO_T}$ac_cv_exeext" >&6; } - -rm -f conftest.$ac_ext -EXEEXT=$ac_cv_exeext -ac_exeext=$EXEEXT -{ echo "$as_me:$LINENO: checking for suffix of object files" >&5 -echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6; } -if test "${ac_cv_objext+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.o conftest.obj -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - for ac_file in conftest.o conftest.obj conftest.*; do - test -f "$ac_file" || continue; - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf ) ;; - *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` - break;; - esac -done -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute suffix of object files: cannot compile -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi - -rm -f conftest.$ac_cv_objext conftest.$ac_ext -fi -{ echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 -echo "${ECHO_T}$ac_cv_objext" >&6; } -OBJEXT=$ac_cv_objext -ac_objext=$OBJEXT -{ echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 -echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6; } -if test "${ac_cv_c_compiler_gnu+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_compiler_gnu=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_compiler_gnu=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_c_compiler_gnu=$ac_compiler_gnu - -fi -{ echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 -echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; } -GCC=`test $ac_compiler_gnu = yes && echo yes` -ac_test_CFLAGS=${CFLAGS+set} -ac_save_CFLAGS=$CFLAGS -{ echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 -echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; } -if test "${ac_cv_prog_cc_g+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_save_c_werror_flag=$ac_c_werror_flag - ac_c_werror_flag=yes - ac_cv_prog_cc_g=no - CFLAGS="-g" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_prog_cc_g=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - CFLAGS="" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_c_werror_flag=$ac_save_c_werror_flag - CFLAGS="-g" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_prog_cc_g=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_c_werror_flag=$ac_save_c_werror_flag -fi -{ echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 -echo "${ECHO_T}$ac_cv_prog_cc_g" >&6; } -if test "$ac_test_CFLAGS" = set; then - CFLAGS=$ac_save_CFLAGS -elif test $ac_cv_prog_cc_g = yes; then - if test "$GCC" = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-g" - fi -else - if test "$GCC" = yes; then - CFLAGS="-O2" - else - CFLAGS= - fi -fi -{ echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 -echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; } -if test "${ac_cv_prog_cc_c89+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_prog_cc_c89=no -ac_save_CC=$CC -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -#include -#include -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} - -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constants. - These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std is added to get - proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an - array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; - -/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters - inside strings and character constants. */ -#define FOO(x) 'x' -int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; - -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -int argc; -char **argv; -int -main () -{ -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; - ; - return 0; -} -_ACEOF -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_prog_cc_c89=$ac_arg -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - -fi - -rm -f core conftest.err conftest.$ac_objext - test "x$ac_cv_prog_cc_c89" != "xno" && break -done -rm -f conftest.$ac_ext -CC=$ac_save_CC - -fi -# AC_CACHE_VAL -case "x$ac_cv_prog_cc_c89" in - x) - { echo "$as_me:$LINENO: result: none needed" >&5 -echo "${ECHO_T}none needed" >&6; } ;; - xno) - { echo "$as_me:$LINENO: result: unsupported" >&5 -echo "${ECHO_T}unsupported" >&6; } ;; - *) - CC="$CC $ac_cv_prog_cc_c89" - { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 -echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;; -esac - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -for ac_prog in flex lex -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_LEX+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$LEX"; then - ac_cv_prog_LEX="$LEX" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_LEX="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -LEX=$ac_cv_prog_LEX -if test -n "$LEX"; then - { echo "$as_me:$LINENO: result: $LEX" >&5 -echo "${ECHO_T}$LEX" >&6; } -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } -fi - - - test -n "$LEX" && break -done -test -n "$LEX" || LEX=":" - -if test "x$LEX" != "x:"; then - cat >conftest.l <<_ACEOF -%% -a { ECHO; } -b { REJECT; } -c { yymore (); } -d { yyless (1); } -e { yyless (input () != 0); } -f { unput (yytext[0]); } -. { BEGIN INITIAL; } -%% -#ifdef YYTEXT_POINTER -extern char *yytext; -#endif -int -main (void) -{ - return ! yylex () + ! yywrap (); -} -_ACEOF -{ (ac_try="$LEX conftest.l" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$LEX conftest.l") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ echo "$as_me:$LINENO: checking lex output file root" >&5 -echo $ECHO_N "checking lex output file root... $ECHO_C" >&6; } -if test "${ac_cv_prog_lex_root+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - -if test -f lex.yy.c; then - ac_cv_prog_lex_root=lex.yy -elif test -f lexyy.c; then - ac_cv_prog_lex_root=lexyy -else - { { echo "$as_me:$LINENO: error: cannot find output from $LEX; giving up" >&5 -echo "$as_me: error: cannot find output from $LEX; giving up" >&2;} - { (exit 1); exit 1; }; } -fi -fi -{ echo "$as_me:$LINENO: result: $ac_cv_prog_lex_root" >&5 -echo "${ECHO_T}$ac_cv_prog_lex_root" >&6; } -LEX_OUTPUT_ROOT=$ac_cv_prog_lex_root - -if test -z "${LEXLIB+set}"; then - { echo "$as_me:$LINENO: checking lex library" >&5 -echo $ECHO_N "checking lex library... $ECHO_C" >&6; } -if test "${ac_cv_lib_lex+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - ac_save_LIBS=$LIBS - ac_cv_lib_lex='none needed' - for ac_lib in '' -lfl -ll; do - LIBS="$ac_lib $ac_save_LIBS" - cat >conftest.$ac_ext <<_ACEOF -`cat $LEX_OUTPUT_ROOT.c` -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_lib_lex=$ac_lib -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext - test "$ac_cv_lib_lex" != 'none needed' && break - done - LIBS=$ac_save_LIBS - -fi -{ echo "$as_me:$LINENO: result: $ac_cv_lib_lex" >&5 -echo "${ECHO_T}$ac_cv_lib_lex" >&6; } - test "$ac_cv_lib_lex" != 'none needed' && LEXLIB=$ac_cv_lib_lex -fi - - -{ echo "$as_me:$LINENO: checking whether yytext is a pointer" >&5 -echo $ECHO_N "checking whether yytext is a pointer... $ECHO_C" >&6; } -if test "${ac_cv_prog_lex_yytext_pointer+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - # POSIX says lex can declare yytext either as a pointer or an array; the -# default is implementation-dependent. Figure out which it is, since -# not all implementations provide the %pointer and %array declarations. -ac_cv_prog_lex_yytext_pointer=no -ac_save_LIBS=$LIBS -LIBS="$LEXLIB $ac_save_LIBS" -cat >conftest.$ac_ext <<_ACEOF -#define YYTEXT_POINTER 1 -`cat $LEX_OUTPUT_ROOT.c` -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_prog_lex_yytext_pointer=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_save_LIBS - -fi -{ echo "$as_me:$LINENO: result: $ac_cv_prog_lex_yytext_pointer" >&5 -echo "${ECHO_T}$ac_cv_prog_lex_yytext_pointer" >&6; } -if test $ac_cv_prog_lex_yytext_pointer = yes; then - -cat >>confdefs.h <<\_ACEOF -#define YYTEXT_POINTER 1 -_ACEOF - -fi -rm -f conftest.l $LEX_OUTPUT_ROOT.c - -fi -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. -set dummy ${ac_tool_prefix}ranlib; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_RANLIB+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$RANLIB"; then - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -RANLIB=$ac_cv_prog_RANLIB -if test -n "$RANLIB"; then - { echo "$as_me:$LINENO: result: $RANLIB" >&5 -echo "${ECHO_T}$RANLIB" >&6; } -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_RANLIB"; then - ac_ct_RANLIB=$RANLIB - # Extract the first word of "ranlib", so it can be a program name with args. -set dummy ranlib; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_RANLIB"; then - ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_RANLIB="ranlib" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB -if test -n "$ac_ct_RANLIB"; then - { echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 -echo "${ECHO_T}$ac_ct_RANLIB" >&6; } -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } -fi - - if test "x$ac_ct_RANLIB" = x; then - RANLIB=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} -ac_tool_warned=yes ;; -esac - RANLIB=$ac_ct_RANLIB - fi -else - RANLIB="$ac_cv_prog_RANLIB" -fi - -for ac_prog in install-info -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_INSTALLINFO+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$INSTALLINFO"; then - ac_cv_prog_INSTALLINFO="$INSTALLINFO" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_INSTALLINFO="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -INSTALLINFO=$ac_cv_prog_INSTALLINFO -if test -n "$INSTALLINFO"; then - { echo "$as_me:$LINENO: result: $INSTALLINFO" >&5 -echo "${ECHO_T}$INSTALLINFO" >&6; } -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } -fi - - - test -n "$INSTALLINFO" && break -done -test -n "$INSTALLINFO" || INSTALLINFO=":" - -for ac_prog in mandb -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_MANDB+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$MANDB"; then - ac_cv_prog_MANDB="$MANDB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_MANDB="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -MANDB=$ac_cv_prog_MANDB -if test -n "$MANDB"; then - { echo "$as_me:$LINENO: result: $MANDB" >&5 -echo "${ECHO_T}$MANDB" >&6; } -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } -fi - - - test -n "$MANDB" && break -done -test -n "$MANDB" || MANDB=":" - -for ac_prog in realpath -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_REALPATH+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$REALPATH"; then - ac_cv_prog_REALPATH="$REALPATH" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_REALPATH="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -REALPATH=$ac_cv_prog_REALPATH -if test -n "$REALPATH"; then - { echo "$as_me:$LINENO: result: $REALPATH" >&5 -echo "${ECHO_T}$REALPATH" >&6; } -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } -fi - - - test -n "$REALPATH" && break -done -test -n "$REALPATH" || REALPATH="echo" - - -if test ! $INSTALLINFO = ":"; then -{ echo "$as_me:$LINENO: checking the location of the Info dir file" >&5 -echo $ECHO_N "checking the location of the Info dir file... $ECHO_C" >&6; } -# Try the following locations in order: -INFODIRFILEPREFIXSAVE=$prefix -if test x$prefix = xNONE; then -prefix=$ac_default_prefix -fi -INFODIRFILELOCATIONGUESSES=$infodir/dir -INFODIRFILELOCATIONGUESSES="$INFODIRFILELOCATIONGUESSES $infodir/dir.gz" -INFODIRFILELOCATIONGUESSES="$INFODIRFILELOCATIONGUESSES $prefix/info/dir" -INFODIRFILELOCATIONGUESSES="$INFODIRFILELOCATIONGUESSES $prefix/info/dir.gz" -INFODIRFILELOCATIONGUESSES="$INFODIRFILELOCATIONGUESSES $prefix/share/info/dir" -INFODIRFILELOCATIONGUESSES="$INFODIRFILELOCATIONGUESSES $prefix/share/info/dir.gz" -for my_ac_temp in 1 2 3 4 5 6; do -eval "INFODIRFILELOCATIONGUESSES=\"$INFODIRFILELOCATIONGUESSES\"" -done -prefix=$INFODIRFILEPREFIXSAVE -for my_ac_infodirfile in ${INFODIRFILELOCATIONGUESSES} -do -INFODIRFILE=${my_ac_infodirfile} -test -e "$INFODIRFILE" && break -INFODIRFILE=/dev/null -done -if test $INFODIRFILE = /dev/null; then -{ echo "$as_me:$LINENO: result: not found" >&5 -echo "${ECHO_T}not found" >&6; } -{ echo "$as_me:$LINENO: WARNING: Info directory file not found in the --prefix you gave." >&5 -echo "$as_me: WARNING: Info directory file not found in the --prefix you gave." >&2;} -{ echo "$as_me:$LINENO: WARNING: Info documentation will not be installed in the main directory tree." >&5 -echo "$as_me: WARNING: Info documentation will not be installed in the main directory tree." >&2;} -{ echo "$as_me:$LINENO: WARNING: If you want to install in the main directory tree even though it's" >&5 -echo "$as_me: WARNING: If you want to install in the main directory tree even though it's" >&2;} -{ echo "$as_me:$LINENO: WARNING: outside your --prefix, place a symlink to the directory file from" >&5 -echo "$as_me: WARNING: outside your --prefix, place a symlink to the directory file from" >&2;} -{ echo "$as_me:$LINENO: WARNING: (your prefix)/share/info/dir and reconfigure." >&5 -echo "$as_me: WARNING: (your prefix)/share/info/dir and reconfigure." >&2;} -INSTALLINFO=: -else -{ echo "$as_me:$LINENO: result: $INFODIRFILE" >&5 -echo "${ECHO_T}$INFODIRFILE" >&6; } -fi -else -INFODIRFILE=irrelevant -fi - - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 -echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6; } -# On Suns, sometimes $CPP names a directory. -if test -n "$CPP" && test -d "$CPP"; then - CPP= -fi -if test -z "$CPP"; then - if test "${ac_cv_prog_CPP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - # Double quotes because CPP needs to be expanded - for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" - do - ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Broken: fails on valid input. -continue -fi - -rm -f conftest.err conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - # Broken: success on invalid input. -continue -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Passes both tests. -ac_preproc_ok=: -break -fi - -rm -f conftest.err conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then - break -fi - - done - ac_cv_prog_CPP=$CPP - -fi - CPP=$ac_cv_prog_CPP -else - ac_cv_prog_CPP=$CPP -fi -{ echo "$as_me:$LINENO: result: $CPP" >&5 -echo "${ECHO_T}$CPP" >&6; } -ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Broken: fails on valid input. -continue -fi - -rm -f conftest.err conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - # Broken: success on invalid input. -continue -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Passes both tests. -ac_preproc_ok=: -break -fi - -rm -f conftest.err conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then - : -else - { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details." >&5 -echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -{ echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5 -echo $ECHO_N "checking for grep that handles long lines and -e... $ECHO_C" >&6; } -if test "${ac_cv_path_GREP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - # Extract the first word of "grep ggrep" to use in msg output -if test -z "$GREP"; then -set dummy grep ggrep; ac_prog_name=$2 -if test "${ac_cv_path_GREP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_path_GREP_found=false -# Loop through the user's path and test for each of PROGNAME-LIST -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in grep ggrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue - # Check for GNU ac_path_GREP and select it if it is found. - # Check for GNU $ac_path_GREP -case `"$ac_path_GREP" --version 2>&1` in -*GNU*) - ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; -*) - ac_count=0 - echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - echo 'GREP' >> "conftest.nl" - "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - ac_count=`expr $ac_count + 1` - if test $ac_count -gt ${ac_path_GREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_GREP="$ac_path_GREP" - ac_path_GREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - - $ac_path_GREP_found && break 3 - done -done - -done -IFS=$as_save_IFS - - -fi - -GREP="$ac_cv_path_GREP" -if test -z "$GREP"; then - { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 -echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} - { (exit 1); exit 1; }; } -fi - -else - ac_cv_path_GREP=$GREP -fi - - -fi -{ echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 -echo "${ECHO_T}$ac_cv_path_GREP" >&6; } - GREP="$ac_cv_path_GREP" - - -{ echo "$as_me:$LINENO: checking for egrep" >&5 -echo $ECHO_N "checking for egrep... $ECHO_C" >&6; } -if test "${ac_cv_path_EGREP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 - then ac_cv_path_EGREP="$GREP -E" - else - # Extract the first word of "egrep" to use in msg output -if test -z "$EGREP"; then -set dummy egrep; ac_prog_name=$2 -if test "${ac_cv_path_EGREP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_path_EGREP_found=false -# Loop through the user's path and test for each of PROGNAME-LIST -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in egrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue - # Check for GNU ac_path_EGREP and select it if it is found. - # Check for GNU $ac_path_EGREP -case `"$ac_path_EGREP" --version 2>&1` in -*GNU*) - ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; -*) - ac_count=0 - echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - echo 'EGREP' >> "conftest.nl" - "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - ac_count=`expr $ac_count + 1` - if test $ac_count -gt ${ac_path_EGREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_EGREP="$ac_path_EGREP" - ac_path_EGREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - - $ac_path_EGREP_found && break 3 - done -done - -done -IFS=$as_save_IFS - - -fi - -EGREP="$ac_cv_path_EGREP" -if test -z "$EGREP"; then - { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 -echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} - { (exit 1); exit 1; }; } -fi - -else - ac_cv_path_EGREP=$EGREP -fi - - - fi -fi -{ echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5 -echo "${ECHO_T}$ac_cv_path_EGREP" >&6; } - EGREP="$ac_cv_path_EGREP" - - -{ echo "$as_me:$LINENO: checking for ANSI C header files" >&5 -echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; } -if test "${ac_cv_header_stdc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -#include -#include - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_header_stdc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_header_stdc=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "memchr" >/dev/null 2>&1; then - : -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "free" >/dev/null 2>&1; then - : -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. - if test "$cross_compiling" = yes; then - : -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -#if ((' ' & 0x0FF) == 0x020) -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#else -# define ISLOWER(c) \ - (('a' <= (c) && (c) <= 'i') \ - || ('j' <= (c) && (c) <= 'r') \ - || ('s' <= (c) && (c) <= 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -#endif - -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -int -main () -{ - int i; - for (i = 0; i < 256; i++) - if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) - return 2; - return 0; -} -_ACEOF -rm -f conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - : -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -ac_cv_header_stdc=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi - - -fi -fi -{ echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 -echo "${ECHO_T}$ac_cv_header_stdc" >&6; } -if test $ac_cv_header_stdc = yes; then - -cat >>confdefs.h <<\_ACEOF -#define STDC_HEADERS 1 -_ACEOF - -fi - -# On IRIX 5.3, sys/types and inttypes.h are conflicting. - - - - - - - - - -for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ - inttypes.h stdint.h unistd.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -{ echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default - -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - eval "$as_ac_Header=yes" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - eval "$as_ac_Header=no" -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - - -for ac_header in sys/time.h unistd.h stdarg.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - { echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -else - # Is the header compilable? -{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_header_compiler=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_compiler=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6; } - -# Is the header present? -{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <$ac_header> -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - ac_header_preproc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_preproc=no -fi - -rm -f conftest.err conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6; } - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - no:yes:* ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - ( cat <<\_ASBOX -## ------------------------------------------------ ## -## Report this to ais523(524\)x\((525)y)@bham.ac.uk ## -## ------------------------------------------------ ## -_ASBOX - ) | sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac -{ echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - eval "$as_ac_Header=\$ac_header_preproc" -fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } - -fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - -for ac_header in stdint.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - { echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -else - # Is the header compilable? -{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_header_compiler=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_compiler=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6; } - -# Is the header present? -{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <$ac_header> -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - ac_header_preproc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_preproc=no -fi - -rm -f conftest.err conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6; } - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - no:yes:* ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - ( cat <<\_ASBOX -## ------------------------------------------------ ## -## Report this to ais523(524\)x\((525)y)@bham.ac.uk ## -## ------------------------------------------------ ## -_ASBOX - ) | sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac -{ echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - eval "$as_ac_Header=\$ac_header_preproc" -fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } - -fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - HAVE_STDINT_H=1 -fi - -done - - - -{ echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5 -echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6; } -if test "${ac_cv_c_const+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ -/* FIXME: Include the comments suggested by Paul. */ -#ifndef __cplusplus - /* Ultrix mips cc rejects this. */ - typedef int charset[2]; - const charset cs; - /* SunOS 4.1.1 cc rejects this. */ - char const *const *pcpcc; - char **ppc; - /* NEC SVR4.0.2 mips cc rejects this. */ - struct point {int x, y;}; - static struct point const zero = {0,0}; - /* AIX XL C 1.02.0.0 rejects this. - It does not let you subtract one const X* pointer from another in - an arm of an if-expression whose if-part is not a constant - expression */ - const char *g = "string"; - pcpcc = &g + (g ? g-g : 0); - /* HPUX 7.0 cc rejects these. */ - ++pcpcc; - ppc = (char**) pcpcc; - pcpcc = (char const *const *) ppc; - { /* SCO 3.2v4 cc rejects this. */ - char *t; - char const *s = 0 ? (char *) 0 : (char const *) 0; - - *t++ = 0; - if (s) return 0; - } - { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ - int x[] = {25, 17}; - const int *foo = &x[0]; - ++foo; - } - { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ - typedef const int *iptr; - iptr p = 0; - ++p; - } - { /* AIX XL C 1.02.0.0 rejects this saying - "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ - struct s { int j; const int *ap[3]; }; - struct s *b; b->j = 5; - } - { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ - const int foo = 10; - if (!foo) return 0; - } - return !cs[0] && !zero.x; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_c_const=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_c_const=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5 -echo "${ECHO_T}$ac_cv_c_const" >&6; } -if test $ac_cv_c_const = no; then - -cat >>confdefs.h <<\_ACEOF -#define const -_ACEOF - -fi - -{ echo "$as_me:$LINENO: checking for working volatile" >&5 -echo $ECHO_N "checking for working volatile... $ECHO_C" >&6; } -if test "${ac_cv_c_volatile+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - -volatile int x; -int * volatile y = (int *) 0; -return !x && !y; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_c_volatile=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_c_volatile=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ echo "$as_me:$LINENO: result: $ac_cv_c_volatile" >&5 -echo "${ECHO_T}$ac_cv_c_volatile" >&6; } -if test $ac_cv_c_volatile = no; then - -cat >>confdefs.h <<\_ACEOF -#define volatile -_ACEOF - -fi - -{ echo "$as_me:$LINENO: checking for long long int" >&5 -echo $ECHO_N "checking for long long int... $ECHO_C" >&6; } -if test "${ac_cv_type_long_long_int+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -typedef long long int ac__type_new_; -int -main () -{ -if ((ac__type_new_ *) 0) - return 0; -if (sizeof (ac__type_new_)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_type_long_long_int=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_type_long_long_int=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ echo "$as_me:$LINENO: result: $ac_cv_type_long_long_int" >&5 -echo "${ECHO_T}$ac_cv_type_long_long_int" >&6; } - -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ echo "$as_me:$LINENO: checking size of long long int" >&5 -echo $ECHO_N "checking size of long long int... $ECHO_C" >&6; } -if test "${ac_cv_sizeof_long_long_int+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then - # Depending upon the size, compute the lo and hi bounds. -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default - typedef long long int ac__type_sizeof_; -int -main () -{ -static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= 0)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_lo=0 ac_mid=0 - while :; do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default - typedef long long int ac__type_sizeof_; -int -main () -{ -static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_hi=$ac_mid; break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_lo=`expr $ac_mid + 1` - if test $ac_lo -le $ac_mid; then - ac_lo= ac_hi= - break - fi - ac_mid=`expr 2 '*' $ac_mid + 1` -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - done -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default - typedef long long int ac__type_sizeof_; -int -main () -{ -static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) < 0)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_hi=-1 ac_mid=-1 - while :; do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default - typedef long long int ac__type_sizeof_; -int -main () -{ -static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= $ac_mid)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_lo=$ac_mid; break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_hi=`expr '(' $ac_mid ')' - 1` - if test $ac_mid -le $ac_hi; then - ac_lo= ac_hi= - break - fi - ac_mid=`expr 2 '*' $ac_mid` -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - done -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_lo= ac_hi= -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -# Binary search between lo and hi bounds. -while test "x$ac_lo" != "x$ac_hi"; do - ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default - typedef long long int ac__type_sizeof_; -int -main () -{ -static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_hi=$ac_mid -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_lo=`expr '(' $ac_mid ')' + 1` -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -done -case $ac_lo in -?*) ac_cv_sizeof_long_long_int=$ac_lo;; -'') if test "$ac_cv_type_long_long_int" = yes; then - { { echo "$as_me:$LINENO: error: cannot compute sizeof (long long int) -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute sizeof (long long int) -See \`config.log' for more details." >&2;} - { (exit 77); exit 77; }; } - else - ac_cv_sizeof_long_long_int=0 - fi ;; -esac -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default - typedef long long int ac__type_sizeof_; -static long int longval () { return (long int) (sizeof (ac__type_sizeof_)); } -static unsigned long int ulongval () { return (long int) (sizeof (ac__type_sizeof_)); } -#include -#include -int -main () -{ - - FILE *f = fopen ("conftest.val", "w"); - if (! f) - return 1; - if (((long int) (sizeof (ac__type_sizeof_))) < 0) - { - long int i = longval (); - if (i != ((long int) (sizeof (ac__type_sizeof_)))) - return 1; - fprintf (f, "%ld\n", i); - } - else - { - unsigned long int i = ulongval (); - if (i != ((long int) (sizeof (ac__type_sizeof_)))) - return 1; - fprintf (f, "%lu\n", i); - } - return ferror (f) || fclose (f) != 0; - - ; - return 0; -} -_ACEOF -rm -f conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_sizeof_long_long_int=`cat conftest.val` -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -if test "$ac_cv_type_long_long_int" = yes; then - { { echo "$as_me:$LINENO: error: cannot compute sizeof (long long int) -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute sizeof (long long int) -See \`config.log' for more details." >&2;} - { (exit 77); exit 77; }; } - else - ac_cv_sizeof_long_long_int=0 - fi -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -rm -f conftest.val -fi -{ echo "$as_me:$LINENO: result: $ac_cv_sizeof_long_long_int" >&5 -echo "${ECHO_T}$ac_cv_sizeof_long_long_int" >&6; } - - - -cat >>confdefs.h <<_ACEOF -#define SIZEOF_LONG_LONG_INT $ac_cv_sizeof_long_long_int -_ACEOF - - -{ echo "$as_me:$LINENO: checking for _Bool" >&5 -echo $ECHO_N "checking for _Bool... $ECHO_C" >&6; } -if test "${ac_cv_type__Bool+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -typedef _Bool ac__type_new_; -int -main () -{ -if ((ac__type_new_ *) 0) - return 0; -if (sizeof (ac__type_new_)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_type__Bool=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_type__Bool=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ echo "$as_me:$LINENO: result: $ac_cv_type__Bool" >&5 -echo "${ECHO_T}$ac_cv_type__Bool" >&6; } - -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ echo "$as_me:$LINENO: checking size of _Bool" >&5 -echo $ECHO_N "checking size of _Bool... $ECHO_C" >&6; } -if test "${ac_cv_sizeof__Bool+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then - # Depending upon the size, compute the lo and hi bounds. -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default - typedef _Bool ac__type_sizeof_; -int -main () -{ -static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= 0)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_lo=0 ac_mid=0 - while :; do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default - typedef _Bool ac__type_sizeof_; -int -main () -{ -static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_hi=$ac_mid; break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_lo=`expr $ac_mid + 1` - if test $ac_lo -le $ac_mid; then - ac_lo= ac_hi= - break - fi - ac_mid=`expr 2 '*' $ac_mid + 1` -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - done -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default - typedef _Bool ac__type_sizeof_; -int -main () -{ -static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) < 0)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_hi=-1 ac_mid=-1 - while :; do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default - typedef _Bool ac__type_sizeof_; -int -main () -{ -static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= $ac_mid)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_lo=$ac_mid; break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_hi=`expr '(' $ac_mid ')' - 1` - if test $ac_mid -le $ac_hi; then - ac_lo= ac_hi= - break - fi - ac_mid=`expr 2 '*' $ac_mid` -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - done -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_lo= ac_hi= -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -# Binary search between lo and hi bounds. -while test "x$ac_lo" != "x$ac_hi"; do - ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default - typedef _Bool ac__type_sizeof_; -int -main () -{ -static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_hi=$ac_mid -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_lo=`expr '(' $ac_mid ')' + 1` -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -done -case $ac_lo in -?*) ac_cv_sizeof__Bool=$ac_lo;; -'') if test "$ac_cv_type__Bool" = yes; then - { { echo "$as_me:$LINENO: error: cannot compute sizeof (_Bool) -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute sizeof (_Bool) -See \`config.log' for more details." >&2;} - { (exit 77); exit 77; }; } - else - ac_cv_sizeof__Bool=0 - fi ;; -esac -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default - typedef _Bool ac__type_sizeof_; -static long int longval () { return (long int) (sizeof (ac__type_sizeof_)); } -static unsigned long int ulongval () { return (long int) (sizeof (ac__type_sizeof_)); } -#include -#include -int -main () -{ - - FILE *f = fopen ("conftest.val", "w"); - if (! f) - return 1; - if (((long int) (sizeof (ac__type_sizeof_))) < 0) - { - long int i = longval (); - if (i != ((long int) (sizeof (ac__type_sizeof_)))) - return 1; - fprintf (f, "%ld\n", i); - } - else - { - unsigned long int i = ulongval (); - if (i != ((long int) (sizeof (ac__type_sizeof_)))) - return 1; - fprintf (f, "%lu\n", i); - } - return ferror (f) || fclose (f) != 0; - - ; - return 0; -} -_ACEOF -rm -f conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_sizeof__Bool=`cat conftest.val` -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -if test "$ac_cv_type__Bool" = yes; then - { { echo "$as_me:$LINENO: error: cannot compute sizeof (_Bool) -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute sizeof (_Bool) -See \`config.log' for more details." >&2;} - { (exit 77); exit 77; }; } - else - ac_cv_sizeof__Bool=0 - fi -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -rm -f conftest.val -fi -{ echo "$as_me:$LINENO: result: $ac_cv_sizeof__Bool" >&5 -echo "${ECHO_T}$ac_cv_sizeof__Bool" >&6; } - - - -cat >>confdefs.h <<_ACEOF -#define SIZEOF__BOOL $ac_cv_sizeof__Bool -_ACEOF - - -{ echo "$as_me:$LINENO: checking whether time.h and sys/time.h may both be included" >&5 -echo $ECHO_N "checking whether time.h and sys/time.h may both be included... $ECHO_C" >&6; } -if test "${ac_cv_header_time+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -#include - -int -main () -{ -if ((struct tm *) 0) -return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_header_time=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_header_time=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ echo "$as_me:$LINENO: result: $ac_cv_header_time" >&5 -echo "${ECHO_T}$ac_cv_header_time" >&6; } -if test $ac_cv_header_time = yes; then - -cat >>confdefs.h <<\_ACEOF -#define TIME_WITH_SYS_TIME 1 -_ACEOF - -fi - - - -{ echo "$as_me:$LINENO: checking whether #! works in shell scripts" >&5 -echo $ECHO_N "checking whether #! works in shell scripts... $ECHO_C" >&6; } -if test "${ac_cv_sys_interpreter+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - echo '#! /bin/cat -exit 69 -' >conftest -chmod u+x conftest -(SHELL=/bin/sh; export SHELL; ./conftest >/dev/null 2>&1) -if test $? -ne 69; then - ac_cv_sys_interpreter=yes -else - ac_cv_sys_interpreter=no -fi -rm -f conftest -fi -{ echo "$as_me:$LINENO: result: $ac_cv_sys_interpreter" >&5 -echo "${ECHO_T}$ac_cv_sys_interpreter" >&6; } -interpval=$ac_cv_sys_interpreter - -{ echo "$as_me:$LINENO: checking return type of signal handlers" >&5 -echo $ECHO_N "checking return type of signal handlers... $ECHO_C" >&6; } -if test "${ac_cv_type_signal+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include - -int -main () -{ -return *(signal (0, 0)) (0) == 1; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_type_signal=int -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_type_signal=void -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ echo "$as_me:$LINENO: result: $ac_cv_type_signal" >&5 -echo "${ECHO_T}$ac_cv_type_signal" >&6; } - -cat >>confdefs.h <<_ACEOF -#define RETSIGTYPE $ac_cv_type_signal -_ACEOF - - -{ echo "$as_me:$LINENO: checking for size_t" >&5 -echo $ECHO_N "checking for size_t... $ECHO_C" >&6; } -if test "${ac_cv_type_size_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -typedef size_t ac__type_new_; -int -main () -{ -if ((ac__type_new_ *) 0) - return 0; -if (sizeof (ac__type_new_)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_type_size_t=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_type_size_t=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5 -echo "${ECHO_T}$ac_cv_type_size_t" >&6; } -if test $ac_cv_type_size_t = yes; then - : -else - -cat >>confdefs.h <<_ACEOF -#define size_t unsigned int -_ACEOF - -fi - - - { echo "$as_me:$LINENO: checking for uint16_t" >&5 -echo $ECHO_N "checking for uint16_t... $ECHO_C" >&6; } -if test "${ac_cv_c_uint16_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_c_uint16_t=no - for ac_type in 'uint16_t' 'unsigned int' 'unsigned long int' \ - 'unsigned long long int' 'unsigned short int' 'unsigned char'; do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array [1 - 2 * !(($ac_type) -1 >> (16 - 1) == 1)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - case $ac_type in - uint16_t) ac_cv_c_uint16_t=yes ;; - *) ac_cv_c_uint16_t=$ac_type ;; -esac - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - test "$ac_cv_c_uint16_t" != no && break - done -fi -{ echo "$as_me:$LINENO: result: $ac_cv_c_uint16_t" >&5 -echo "${ECHO_T}$ac_cv_c_uint16_t" >&6; } - case $ac_cv_c_uint16_t in #( - no|yes) ;; #( - *) - - -cat >>confdefs.h <<_ACEOF -#define uint16_t $ac_cv_c_uint16_t -_ACEOF -;; - esac - - - { echo "$as_me:$LINENO: checking for uint32_t" >&5 -echo $ECHO_N "checking for uint32_t... $ECHO_C" >&6; } -if test "${ac_cv_c_uint32_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_c_uint32_t=no - for ac_type in 'uint32_t' 'unsigned int' 'unsigned long int' \ - 'unsigned long long int' 'unsigned short int' 'unsigned char'; do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array [1 - 2 * !(($ac_type) -1 >> (32 - 1) == 1)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - case $ac_type in - uint32_t) ac_cv_c_uint32_t=yes ;; - *) ac_cv_c_uint32_t=$ac_type ;; -esac - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - test "$ac_cv_c_uint32_t" != no && break - done -fi -{ echo "$as_me:$LINENO: result: $ac_cv_c_uint32_t" >&5 -echo "${ECHO_T}$ac_cv_c_uint32_t" >&6; } - case $ac_cv_c_uint32_t in #( - no|yes) ;; #( - *) - -cat >>confdefs.h <<\_ACEOF -#define _UINT32_T 1 -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define uint32_t $ac_cv_c_uint32_t -_ACEOF -;; - esac - - -{ echo "$as_me:$LINENO: checking whether yyrestart() is needed" >&5 -echo $ECHO_N "checking whether yyrestart() is needed... $ECHO_C" >&6; } -# Write a lex program that will cause an error if yyrestart exists. -echo '%% -%% -float yyrestart(int, ...);' | $LEX -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include "${LEX_OUTPUT_ROOT}.c" - -int -main () -{ -exit(0); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - cat >>confdefs.h <<\_ACEOF -#define NEED_YYRESTART 1 -_ACEOF - -{ echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6; } -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -rm -f ${LEX_OUTPUT_ROOT}.c - -if test "$interpval" != "no"; then -cat >>confdefs.h <<\_ACEOF -#define HAVE_SYS_INTERPRETER 1 -_ACEOF - -fi -cat >>confdefs.h <<_ACEOF -#define EXEEXT "$EXEEXT" -_ACEOF - - - - - - - - - -for ac_func in gettimeofday gethrtime strdup strtol strtoul snprintf asprintf -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } -if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define $ac_func to an innocuous variant, in case declares $ac_func. - For example, HP-UX 11i declares gettimeofday. */ -#define $ac_func innocuous_$ac_func - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef $ac_func - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char $ac_func (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined __stub_$ac_func || defined __stub___$ac_func -choke me -#endif - -int -main () -{ -return $ac_func (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - eval "$as_ac_var=no" -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -fi -ac_res=`eval echo '${'$as_ac_var'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -if test `eval echo '${'$as_ac_var'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - -ICK_SAVECFLAGS=$CFLAGS -CFLAGS="$CFLAGS -lrt" - -for ac_func in clock_gettime -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } -if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define $ac_func to an innocuous variant, in case declares $ac_func. - For example, HP-UX 11i declares gettimeofday. */ -#define $ac_func innocuous_$ac_func - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef $ac_func - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char $ac_func (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined __stub_$ac_func || defined __stub___$ac_func -choke me -#endif - -int -main () -{ -return $ac_func (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - eval "$as_ac_var=no" -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -fi -ac_res=`eval echo '${'$as_ac_var'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -if test `eval echo '${'$as_ac_var'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - -CFLAGS=$ICK_SAVECFLAGS - - - -ac_config_files="$ac_config_files Makefile temp/coopt.sh:src/cooptsh.in" - -cat >confcache <<\_ACEOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs, see configure's option --config-cache. -# It is not useful on other systems. If it contains results you don't -# want to keep, you may remove or edit it. -# -# config.status only pays attention to the cache file if you give it -# the --recheck option to rerun configure. -# -# `ac_cv_env_foo' variables (set or unset) will be overridden when -# loading this file, other *unset* `ac_cv_foo' will be assigned the -# following values. - -_ACEOF - -# The following way of writing the cache mishandles newlines in values, -# but we know of no workaround that is simple, portable, and efficient. -# So, we kill variables containing newlines. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -( - for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 -echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - *) $as_unset $ac_var ;; - esac ;; - esac - done - - (set) 2>&1 | - case $as_nl`(ac_space=' '; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - # `set' does not quote correctly, so add quotes (double-quote - # substitution turns \\\\ into \\, and sed turns \\ into \). - sed -n \ - "s/'/'\\\\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" - ;; #( - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) | - sed ' - /^ac_cv_env_/b end - t clear - :clear - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ - t end - s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ - :end' >>confcache -if diff "$cache_file" confcache >/dev/null 2>&1; then :; else - if test -w "$cache_file"; then - test "x$cache_file" != "x/dev/null" && - { echo "$as_me:$LINENO: updating cache $cache_file" >&5 -echo "$as_me: updating cache $cache_file" >&6;} - cat confcache >$cache_file - else - { echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 -echo "$as_me: not updating unwritable cache $cache_file" >&6;} - fi -fi -rm -f confcache - -test "x$prefix" = xNONE && prefix=$ac_default_prefix -# Let make expand exec_prefix. -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' - -DEFS=-DHAVE_CONFIG_H - -ac_libobjs= -ac_ltlibobjs= -for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue - # 1. Remove the extension, and $U if already installed. - ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' - ac_i=`echo "$ac_i" | sed "$ac_script"` - # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR - # will be set to the directory where LIBOBJS objects are built. - ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" - ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo' -done -LIBOBJS=$ac_libobjs - -LTLIBOBJS=$ac_ltlibobjs - - - -: ${CONFIG_STATUS=./config.status} -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 -echo "$as_me: creating $CONFIG_STATUS" >&6;} -cat >$CONFIG_STATUS <<_ACEOF -#! $SHELL -# Generated by $as_me. -# Run this file to recreate the current configuration. -# Compiler output produced by configure, useful for debugging -# configure, is in config.log if it exists. - -debug=false -ac_cs_recheck=false -ac_cs_silent=false -SHELL=\${CONFIG_SHELL-$SHELL} -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF -## --------------------- ## -## M4sh Initialization. ## -## --------------------- ## - -# Be more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in - *posix*) set -o posix ;; -esac - -fi - - - - -# PATH needs CR -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi - -# Support unset when possible. -if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then - as_unset=unset -else - as_unset=false -fi - - -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -as_nl=' -' -IFS=" "" $as_nl" - -# Find who we are. Look in the path if we contain no directory separator. -case $0 in - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break -done -IFS=$as_save_IFS - - ;; -esac -# We did not find ourselves, most probably we were run as `sh COMMAND' -# in which case we are not to be found in the path. -if test "x$as_myself" = x; then - as_myself=$0 -fi -if test ! -f "$as_myself"; then - echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - { (exit 1); exit 1; } -fi - -# Work around bugs in pre-3.0 UWIN ksh. -for as_var in ENV MAIL MAILPATH -do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -for as_var in \ - LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ - LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ - LC_TELEPHONE LC_TIME -do - if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then - eval $as_var=C; export $as_var - else - ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var - fi -done - -# Required to use basename. -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - - -# Name of the executable. -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# CDPATH. -$as_unset CDPATH - - - - as_lineno_1=$LINENO - as_lineno_2=$LINENO - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { - - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO - # uniformly replaced by the line number. The first 'sed' inserts a - # line-number line after each line using $LINENO; the second 'sed' - # does the real work. The second script uses 'N' to pair each - # line-number line with the line containing $LINENO, and appends - # trailing '-' during substitution so that $LINENO is not a special - # case at line end. - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the - # scripts with optimization help from Paolo Bonzini. Blame Lee - # E. McMahon (1931-1989) for sed's syntax. :-) - sed -n ' - p - /[$]LINENO/= - ' <$as_myself | - sed ' - s/[$]LINENO.*/&-/ - t lineno - b - :lineno - N - :loop - s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ - t loop - s/-\n.*// - ' >$as_me.lineno && - chmod +x "$as_me.lineno" || - { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 - { (exit 1); exit 1; }; } - - # Don't try to exec as it changes $[0], causing all sort of problems - # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensitive to this). - . "./$as_me.lineno" - # Exit status is that of the last command. - exit -} - - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in --n*) - case `echo 'x\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - *) ECHO_C='\c';; - esac;; -*) - ECHO_N='-n';; -esac - -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir -fi -echo >conf$$.file -if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' -elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln -else - as_ln_s='cp -p' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - -if mkdir -p . 2>/dev/null; then - as_mkdir_p=: -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - -exec 6>&1 - -# Save the log message, to keep $[0] and so on meaningful, and to -# report actual input values of CONFIG_FILES etc. instead of their -# values after options handling. -ac_log=" -This file was extended by C-INTERCAL $as_me 0.29, which was -generated by GNU Autoconf 2.61. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES - CONFIG_HEADERS = $CONFIG_HEADERS - CONFIG_LINKS = $CONFIG_LINKS - CONFIG_COMMANDS = $CONFIG_COMMANDS - $ $0 $@ - -on `(hostname || uname -n) 2>/dev/null | sed 1q` -" - -_ACEOF - -cat >>$CONFIG_STATUS <<_ACEOF -# Files that config.status was made for. -config_files="$ac_config_files" -config_headers="$ac_config_headers" - -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF -ac_cs_usage="\ -\`$as_me' instantiates files from templates according to the -current configuration. - -Usage: $0 [OPTIONS] [FILE]... - - -h, --help print this help, then exit - -V, --version print version number and configuration settings, then exit - -q, --quiet do not print progress messages - -d, --debug don't remove temporary files - --recheck update $as_me by reconfiguring in the same conditions - --file=FILE[:TEMPLATE] - instantiate the configuration file FILE - --header=FILE[:TEMPLATE] - instantiate the configuration header FILE - -Configuration files: -$config_files - -Configuration headers: -$config_headers - -Report bugs to ." - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF -ac_cs_version="\\ -C-INTERCAL config.status 0.29 -configured by $0, generated by GNU Autoconf 2.61, - with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" - -Copyright (C) 2006 Free Software Foundation, Inc. -This config.status script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it." - -ac_pwd='$ac_pwd' -srcdir='$srcdir' -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF -# If no file are specified by the user, then we need to provide default -# value. By we need to know if files were specified by the user. -ac_need_defaults=: -while test $# != 0 -do - case $1 in - --*=*) - ac_option=`expr "X$1" : 'X\([^=]*\)='` - ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` - ac_shift=: - ;; - *) - ac_option=$1 - ac_optarg=$2 - ac_shift=shift - ;; - esac - - case $ac_option in - # Handling of the options. - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - ac_cs_recheck=: ;; - --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) - echo "$ac_cs_version"; exit ;; - --debug | --debu | --deb | --de | --d | -d ) - debug=: ;; - --file | --fil | --fi | --f ) - $ac_shift - CONFIG_FILES="$CONFIG_FILES $ac_optarg" - ac_need_defaults=false;; - --header | --heade | --head | --hea ) - $ac_shift - CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" - ac_need_defaults=false;; - --he | --h) - # Conflict between --help and --header - { echo "$as_me: error: ambiguous option: $1 -Try \`$0 --help' for more information." >&2 - { (exit 1); exit 1; }; };; - --help | --hel | -h ) - echo "$ac_cs_usage"; exit ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil | --si | --s) - ac_cs_silent=: ;; - - # This is an error. - -*) { echo "$as_me: error: unrecognized option: $1 -Try \`$0 --help' for more information." >&2 - { (exit 1); exit 1; }; } ;; - - *) ac_config_targets="$ac_config_targets $1" - ac_need_defaults=false ;; - - esac - shift -done - -ac_configure_extra_args= - -if $ac_cs_silent; then - exec 6>/dev/null - ac_configure_extra_args="$ac_configure_extra_args --silent" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF -if \$ac_cs_recheck; then - echo "running CONFIG_SHELL=$SHELL $SHELL $0 "$ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 - CONFIG_SHELL=$SHELL - export CONFIG_SHELL - exec $SHELL "$0"$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion -fi - -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF -exec 5>>config.log -{ - echo - sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX -## Running $as_me. ## -_ASBOX - echo "$ac_log" -} >&5 - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF - -# Handling of arguments. -for ac_config_target in $ac_config_targets -do - case $ac_config_target in - "temp/config.h") CONFIG_HEADERS="$CONFIG_HEADERS temp/config.h:src/configh.in" ;; - "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; - "temp/coopt.sh") CONFIG_FILES="$CONFIG_FILES temp/coopt.sh:src/cooptsh.in" ;; - - *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 -echo "$as_me: error: invalid argument: $ac_config_target" >&2;} - { (exit 1); exit 1; }; };; - esac -done - - -# If the user did not use the arguments to specify the items to instantiate, -# then the envvar interface is used. Set only those that are not. -# We use the long form for the default assignment because of an extremely -# bizarre bug on SunOS 4.1.3. -if $ac_need_defaults; then - test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files - test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers -fi - -# Have a temporary directory for convenience. Make it in the build tree -# simply because there is no reason against having it here, and in addition, -# creating and moving files from /tmp can sometimes cause problems. -# Hook for its removal unless debugging. -# Note that there is a small window in which the directory will not be cleaned: -# after its creation but before its name has been assigned to `$tmp'. -$debug || -{ - tmp= - trap 'exit_status=$? - { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status -' 0 - trap '{ (exit 1); exit 1; }' 1 2 13 15 -} -# Create a (secure) tmp directory for tmp files. - -{ - tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && - test -n "$tmp" && test -d "$tmp" -} || -{ - tmp=./conf$$-$RANDOM - (umask 077 && mkdir "$tmp") -} || -{ - echo "$me: cannot create a temporary directory in ." >&2 - { (exit 1); exit 1; } -} - -# -# Set up the sed scripts for CONFIG_FILES section. -# - -# No need to generate the scripts if there are no CONFIG_FILES. -# This happens for instance when ./config.status config.h -if test -n "$CONFIG_FILES"; then - -_ACEOF - - - -ac_delim='%!_!# ' -for ac_last_try in false false false false false :; do - cat >conf$$subs.sed <<_ACEOF -SHELL!$SHELL$ac_delim -PATH_SEPARATOR!$PATH_SEPARATOR$ac_delim -PACKAGE_NAME!$PACKAGE_NAME$ac_delim -PACKAGE_TARNAME!$PACKAGE_TARNAME$ac_delim -PACKAGE_VERSION!$PACKAGE_VERSION$ac_delim -PACKAGE_STRING!$PACKAGE_STRING$ac_delim -PACKAGE_BUGREPORT!$PACKAGE_BUGREPORT$ac_delim -exec_prefix!$exec_prefix$ac_delim -prefix!$prefix$ac_delim -program_transform_name!$program_transform_name$ac_delim -bindir!$bindir$ac_delim -sbindir!$sbindir$ac_delim -libexecdir!$libexecdir$ac_delim -datarootdir!$datarootdir$ac_delim -datadir!$datadir$ac_delim -sysconfdir!$sysconfdir$ac_delim -sharedstatedir!$sharedstatedir$ac_delim -localstatedir!$localstatedir$ac_delim -includedir!$includedir$ac_delim -oldincludedir!$oldincludedir$ac_delim -docdir!$docdir$ac_delim -infodir!$infodir$ac_delim -htmldir!$htmldir$ac_delim -dvidir!$dvidir$ac_delim -pdfdir!$pdfdir$ac_delim -psdir!$psdir$ac_delim -libdir!$libdir$ac_delim -localedir!$localedir$ac_delim -mandir!$mandir$ac_delim -DEFS!$DEFS$ac_delim -ECHO_C!$ECHO_C$ac_delim -ECHO_N!$ECHO_N$ac_delim -ECHO_T!$ECHO_T$ac_delim -LIBS!$LIBS$ac_delim -build_alias!$build_alias$ac_delim -host_alias!$host_alias$ac_delim -target_alias!$target_alias$ac_delim -YACC!$YACC$ac_delim -YFLAGS!$YFLAGS$ac_delim -CC!$CC$ac_delim -CFLAGS!$CFLAGS$ac_delim -LDFLAGS!$LDFLAGS$ac_delim -CPPFLAGS!$CPPFLAGS$ac_delim -ac_ct_CC!$ac_ct_CC$ac_delim -EXEEXT!$EXEEXT$ac_delim -OBJEXT!$OBJEXT$ac_delim -LEX!$LEX$ac_delim -LEX_OUTPUT_ROOT!$LEX_OUTPUT_ROOT$ac_delim -LEXLIB!$LEXLIB$ac_delim -RANLIB!$RANLIB$ac_delim -INSTALLINFO!$INSTALLINFO$ac_delim -MANDB!$MANDB$ac_delim -REALPATH!$REALPATH$ac_delim -INFODIRFILE!$INFODIRFILE$ac_delim -CPP!$CPP$ac_delim -GREP!$GREP$ac_delim -EGREP!$EGREP$ac_delim -HAVE_STDINT_H!$HAVE_STDINT_H$ac_delim -LIBOBJS!$LIBOBJS$ac_delim -LTLIBOBJS!$LTLIBOBJS$ac_delim -_ACEOF - - if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 60; then - break - elif $ac_last_try; then - { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 -echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} - { (exit 1); exit 1; }; } - else - ac_delim="$ac_delim!$ac_delim _$ac_delim!! " - fi -done - -ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` -if test -n "$ac_eof"; then - ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` - ac_eof=`expr $ac_eof + 1` -fi - -cat >>$CONFIG_STATUS <<_ACEOF -cat >"\$tmp/subs-1.sed" <<\CEOF$ac_eof -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b end -_ACEOF -sed ' -s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g -s/^/s,@/; s/!/@,|#_!!_#|/ -:n -t n -s/'"$ac_delim"'$/,g/; t -s/$/\\/; p -N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n -' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF -:end -s/|#_!!_#|//g -CEOF$ac_eof -_ACEOF - - -# VPATH may cause trouble with some makes, so we remove $(srcdir), -# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and -# trailing colons and then remove the whole line if VPATH becomes empty -# (actually we leave an empty line to preserve line numbers). -if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=/{ -s/:*\$(srcdir):*/:/ -s/:*\${srcdir}:*/:/ -s/:*@srcdir@:*/:/ -s/^\([^=]*=[ ]*\):*/\1/ -s/:*$// -s/^[^=]*=[ ]*$// -}' -fi - -cat >>$CONFIG_STATUS <<\_ACEOF -fi # test -n "$CONFIG_FILES" - - -for ac_tag in :F $CONFIG_FILES :H $CONFIG_HEADERS -do - case $ac_tag in - :[FHLC]) ac_mode=$ac_tag; continue;; - esac - case $ac_mode$ac_tag in - :[FHL]*:*);; - :L* | :C*:*) { { echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5 -echo "$as_me: error: Invalid tag $ac_tag." >&2;} - { (exit 1); exit 1; }; };; - :[FH]-) ac_tag=-:-;; - :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; - esac - ac_save_IFS=$IFS - IFS=: - set x $ac_tag - IFS=$ac_save_IFS - shift - ac_file=$1 - shift - - case $ac_mode in - :L) ac_source=$1;; - :[FH]) - ac_file_inputs= - for ac_f - do - case $ac_f in - -) ac_f="$tmp/stdin";; - *) # Look for the file first in the build tree, then in the source tree - # (if the path is not absolute). The absolute path cannot be DOS-style, - # because $ac_f cannot contain `:'. - test -f "$ac_f" || - case $ac_f in - [\\/$]*) false;; - *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; - esac || - { { echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 -echo "$as_me: error: cannot find input file: $ac_f" >&2;} - { (exit 1); exit 1; }; };; - esac - ac_file_inputs="$ac_file_inputs $ac_f" - done - - # Let's still pretend it is `configure' which instantiates (i.e., don't - # use $as_me), people would be surprised to read: - # /* config.h. Generated by config.status. */ - configure_input="Generated from "`IFS=: - echo $* | sed 's|^[^:]*/||;s|:[^:]*/|, |g'`" by configure." - if test x"$ac_file" != x-; then - configure_input="$ac_file. $configure_input" - { echo "$as_me:$LINENO: creating $ac_file" >&5 -echo "$as_me: creating $ac_file" >&6;} - fi - - case $ac_tag in - *:-:* | *:-) cat >"$tmp/stdin";; - esac - ;; - esac - - ac_dir=`$as_dirname -- "$ac_file" || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || -echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - { as_dir="$ac_dir" - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 -echo "$as_me: error: cannot create directory $as_dir" >&2;} - { (exit 1); exit 1; }; }; } - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - - case $ac_mode in - :F) - # - # CONFIG_FILE - # - -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF -# If the template does not know about datarootdir, expand it. -# FIXME: This hack should be removed a few years after 2.60. -ac_datarootdir_hack=; ac_datarootdir_seen= - -case `sed -n '/datarootdir/ { - p - q -} -/@datadir@/p -/@docdir@/p -/@infodir@/p -/@localedir@/p -/@mandir@/p -' $ac_file_inputs` in -*datarootdir*) ac_datarootdir_seen=yes;; -*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) - { echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 -echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF - ac_datarootdir_hack=' - s&@datadir@&$datadir&g - s&@docdir@&$docdir&g - s&@infodir@&$infodir&g - s&@localedir@&$localedir&g - s&@mandir@&$mandir&g - s&\\\${datarootdir}&$datarootdir&g' ;; -esac -_ACEOF - -# Neutralize VPATH when `$srcdir' = `.'. -# Shell code in configure.ac might set extrasub. -# FIXME: do we really want to maintain this feature? -cat >>$CONFIG_STATUS <<_ACEOF - sed "$ac_vpsub -$extrasub -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF -:t -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b -s&@configure_input@&$configure_input&;t t -s&@top_builddir@&$ac_top_builddir_sub&;t t -s&@srcdir@&$ac_srcdir&;t t -s&@abs_srcdir@&$ac_abs_srcdir&;t t -s&@top_srcdir@&$ac_top_srcdir&;t t -s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t -s&@builddir@&$ac_builddir&;t t -s&@abs_builddir@&$ac_abs_builddir&;t t -s&@abs_top_builddir@&$ac_abs_top_builddir&;t t -$ac_datarootdir_hack -" $ac_file_inputs | sed -f "$tmp/subs-1.sed" >$tmp/out - -test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && - { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && - { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && - { echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined." >&5 -echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined." >&2;} - - rm -f "$tmp/stdin" - case $ac_file in - -) cat "$tmp/out"; rm -f "$tmp/out";; - *) rm -f "$ac_file"; mv "$tmp/out" $ac_file;; - esac - ;; - :H) - # - # CONFIG_HEADER - # -_ACEOF - -# Transform confdefs.h into a sed script `conftest.defines', that -# substitutes the proper values into config.h.in to produce config.h. -rm -f conftest.defines conftest.tail -# First, append a space to every undef/define line, to ease matching. -echo 's/$/ /' >conftest.defines -# Then, protect against being on the right side of a sed subst, or in -# an unquoted here document, in config.status. If some macros were -# called several times there might be several #defines for the same -# symbol, which is useless. But do not sort them, since the last -# AC_DEFINE must be honored. -ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* -# These sed commands are passed to sed as "A NAME B PARAMS C VALUE D", where -# NAME is the cpp macro being defined, VALUE is the value it is being given. -# PARAMS is the parameter list in the macro definition--in most cases, it's -# just an empty string. -ac_dA='s,^\\([ #]*\\)[^ ]*\\([ ]*' -ac_dB='\\)[ (].*,\\1define\\2' -ac_dC=' ' -ac_dD=' ,' - -uniq confdefs.h | - sed -n ' - t rset - :rset - s/^[ ]*#[ ]*define[ ][ ]*// - t ok - d - :ok - s/[\\&,]/\\&/g - s/^\('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/ '"$ac_dA"'\1'"$ac_dB"'\2'"${ac_dC}"'\3'"$ac_dD"'/p - s/^\('"$ac_word_re"'\)[ ]*\(.*\)/'"$ac_dA"'\1'"$ac_dB$ac_dC"'\2'"$ac_dD"'/p - ' >>conftest.defines - -# Remove the space that was appended to ease matching. -# Then replace #undef with comments. This is necessary, for -# example, in the case of _POSIX_SOURCE, which is predefined and required -# on some systems where configure will not decide to define it. -# (The regexp can be short, since the line contains either #define or #undef.) -echo 's/ $// -s,^[ #]*u.*,/* & */,' >>conftest.defines - -# Break up conftest.defines: -ac_max_sed_lines=50 - -# First sed command is: sed -f defines.sed $ac_file_inputs >"$tmp/out1" -# Second one is: sed -f defines.sed "$tmp/out1" >"$tmp/out2" -# Third one will be: sed -f defines.sed "$tmp/out2" >"$tmp/out1" -# et cetera. -ac_in='$ac_file_inputs' -ac_out='"$tmp/out1"' -ac_nxt='"$tmp/out2"' - -while : -do - # Write a here document: - cat >>$CONFIG_STATUS <<_ACEOF - # First, check the format of the line: - cat >"\$tmp/defines.sed" <<\\CEOF -/^[ ]*#[ ]*undef[ ][ ]*$ac_word_re[ ]*\$/b def -/^[ ]*#[ ]*define[ ][ ]*$ac_word_re[( ]/b def -b -:def -_ACEOF - sed ${ac_max_sed_lines}q conftest.defines >>$CONFIG_STATUS - echo 'CEOF - sed -f "$tmp/defines.sed"' "$ac_in >$ac_out" >>$CONFIG_STATUS - ac_in=$ac_out; ac_out=$ac_nxt; ac_nxt=$ac_in - sed 1,${ac_max_sed_lines}d conftest.defines >conftest.tail - grep . conftest.tail >/dev/null || break - rm -f conftest.defines - mv conftest.tail conftest.defines -done -rm -f conftest.defines conftest.tail - -echo "ac_result=$ac_in" >>$CONFIG_STATUS -cat >>$CONFIG_STATUS <<\_ACEOF - if test x"$ac_file" != x-; then - echo "/* $configure_input */" >"$tmp/config.h" - cat "$ac_result" >>"$tmp/config.h" - if diff $ac_file "$tmp/config.h" >/dev/null 2>&1; then - { echo "$as_me:$LINENO: $ac_file is unchanged" >&5 -echo "$as_me: $ac_file is unchanged" >&6;} - else - rm -f $ac_file - mv "$tmp/config.h" $ac_file - fi - else - echo "/* $configure_input */" - cat "$ac_result" - fi - rm -f "$tmp/out12" - ;; - - - esac - -done # for ac_tag - - -{ (exit 0); exit 0; } -_ACEOF -chmod +x $CONFIG_STATUS -ac_clean_files=$ac_clean_files_save - - -# configure is writing to config.log, and then calls config.status. -# config.status does its own redirection, appending to config.log. -# Unfortunately, on DOS this fails, as config.log is still kept open -# by configure, so config.status won't be able to write to it; its -# output is simply discarded. So we exec the FD to /dev/null, -# effectively closing config.log, so it can be properly (re)opened and -# appended to by config.status. When coming back to configure, we -# need to make the FD available again. -if test "$no_create" != yes; then - ac_cs_success=: - ac_config_status_args= - test "$silent" = yes && - ac_config_status_args="$ac_config_status_args --quiet" - exec 5>/dev/null - $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false - exec 5>>config.log - # Use ||, not &&, to avoid exiting from the if with $? = 1, which - # would make configure fail if this is the last instruction. - $ac_cs_success || { (exit 1); exit 1; } -fi - -chmod a+x temp/coopt.sh - -# Use the prebuilt files if necessary, otherwise delete them. -if test ! -n "$LEX"; then - touch temp/lexer.c - { echo "$as_me:$LINENO: WARNING: No version of lex was found, using prebuilt lexer.c." >&5 -echo "$as_me: WARNING: No version of lex was found, using prebuilt lexer.c." >&2;} - { echo "$as_me:$LINENO: WARNING: The lexer will not respond to changes in src/lexer.l unless you" >&5 -echo "$as_me: WARNING: The lexer will not respond to changes in src/lexer.l unless you" >&2;} - { echo "$as_me:$LINENO: WARNING: install a version of lex and reconfigure." >&5 -echo "$as_me: WARNING: install a version of lex and reconfigure." >&2;} -else - rm -f temp/lexer.c -fi -if test ! -n "$YACC"; then - touch temp/oil.c temp/parser.c temp/parser.h - { echo "$as_me:$LINENO: WARNING: No version of yacc was found, using prebuilt oil.c and parser.c." >&5 -echo "$as_me: WARNING: No version of yacc was found, using prebuilt oil.c and parser.c." >&2;} - { echo "$as_me:$LINENO: WARNING: The parsers will not respond to changes in source files unless you" >&5 -echo "$as_me: WARNING: The parsers will not respond to changes in source files unless you" >&2;} - { echo "$as_me:$LINENO: WARNING: install a version of yacc and reconfigure." >&5 -echo "$as_me: WARNING: install a version of yacc and reconfigure." >&2;} -else - rm -f temp/oil.c temp/parser.c temp/parser.h -fi diff --git a/configure.ac b/configure.ac new file mode 100644 index 0000000..6ad37a2 --- /dev/null +++ b/configure.ac @@ -0,0 +1,92 @@ +dnl -*- autoconf -*- +dnl Process this file with autoconf to produce a configure script. + +dnl Yes, that is a valid email address. If your mailer doesn't support nested +dnl comments, then get a better mailer. +AC_INIT([C-INTERCAL],[0.29],[[ais523(524\)x\((525)y)@bham.ac.uk]],[ick]) +AC_CONFIG_SRCDIR([src/abcess.h]) +AC_CONFIG_HEADER([config.h:src/configh.in]) +AC_CONFIG_AUX_DIR([buildaux]) +AM_INIT_AUTOMAKE([foreign dist-bzip2 dist-lzma tar-pax check-news + no-texinfo.tex]) + +dnl Information about this version of INTERCAL. +PACKAGE_VERSION=0.29 + +dnl Checks for programs. +AC_PROG_YACC +AC_PROG_CC +AM_PROG_LEX +AC_PROG_RANLIB +AC_PROG_LN_S + +dnl Checks for libraries. + +dnl Checks for header files. +AC_HEADER_STDC +AC_CHECK_HEADERS([sys/time.h unistd.h stdarg.h]) +AC_CHECK_HEADERS([stdint.h],[HAVE_STDINT_H=1]) +AC_SUBST(HAVE_STDINT_H) + +dnl Checks for typedefs, structures, and compiler characteristics. +dnl This Autoconf input is compatible with pre-C99 Autoconf, so to +dnl check for long long AC_CHECK_SIZEOF is used to test for a nonzero result, +dnl likewise for _Bool. +AC_C_CONST +AC_C_VOLATILE +AC_CHECK_SIZEOF([long long int],[0]) +AC_CHECK_SIZEOF([_Bool],[0]) +AC_HEADER_TIME +AC_EXEEXT +AC_OBJEXT +AC_SYS_INTERPRETER +AC_TYPE_SIGNAL +AC_TYPE_SIZE_T +AC_TYPE_UINT16_T +AC_TYPE_UINT32_T + +AC_MSG_CHECKING([[whether yyrestart() is needed]]) +# Write a lex program that will cause an error if yyrestart exists. +echo '%% +%% +float yyrestart(int, ...);' | $LEX +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include "${LEX_OUTPUT_ROOT}.c" +]], [[exit(0);]])],[AC_MSG_RESULT(no)],[AC_DEFINE([NEED_YYRESTART],dnl +[],[Define if yyrestart() is necessary to yyparse a new file.]) +AC_MSG_RESULT(yes)]) +rm -f ${LEX_OUTPUT_ROOT}.c + +if test "$interpval" != "no"; then +AC_DEFINE([HAVE_SYS_INTERPRETER], [], [Define if #! works on your system.]) +fi +AC_DEFINE_UNQUOTED([EXEEXT],"$EXEEXT",[Extension to use on executable files.]) + +dnl Checks for library functions. +AC_CHECK_FUNCS(gettimeofday gethrtime strdup strtol strtoul snprintf) +ICK_SAVECFLAGS=$CFLAGS +CFLAGS="$CFLAGS -lrt" +AC_CHECK_FUNCS(clock_gettime) +CFLAGS=$ICK_SAVECFLAGS + +AC_SUBST(PACKAGE_VERSION) + +AC_CONFIG_FILES([Makefile coopt.sh:src/cooptsh.in]) +AC_OUTPUT +# After the output, chmod coopt.sh to be executable. +chmod a+x coopt.sh + +# Use prebuilt files if necessary, after config.h is generated. +# Automake is capable of handling the files in question, but they need to +# be in the directory configure was run in. +if test ! -n "$LEX"; then + cp $srcdir/prebuilt/lexer.c $ac_pwd/lexer.c + AC_WARN([No version of lex was found; using prebuilt lexer.]) + AC_WARN([Changes to src/lexer.l will be ignored.]) +fi +if test ! -n "$YACC"; then + cp $srcdir/prebuilt/parser.c $ac_pwd/parser.c + cp $srcdir/prebuilt/parser.h $ac_pwd/parser.h + cp $srcdir/prebuilt/oil-oil.c $ac_pwd/oil-oil.c + AC_WARN([No version of yacc was found; using prebuilt parser.]) + AC_WARN([Changes to src/parser.y and src/oil.y will be ingored.]) +fi \ No newline at end of file diff --git a/districk.bat b/districk.bat deleted file mode 100755 index 787cab1..0000000 --- a/districk.bat +++ /dev/null @@ -1,11 +0,0 @@ -@echo off -rem This batch file removes all files that weren't in the distribution. -ren temp\parser.c parser.tmp -ren temp\parser.h parserh.tmp -ren temp\lexer.c lexer.tmp -ren temp\oil.c oil.tmp -call cleanick -ren temp\parser.tmp parser.c -ren temp\parserh.tmp parser.h -ren temp\lexer.tmp lexer.c -ren temp\oil.tmp oil.c \ No newline at end of file diff --git a/districk.sh b/districk.sh deleted file mode 100755 index f302375..0000000 --- a/districk.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh -# make districk as a shell-script, for the benefit of DJGPP systems with broken -# versions of make. -# This batch file removes all files that weren't in the distribution. -mv temp/parser.c temp/parser.tmp -mv temp/parser.h temp/parserh.tmp -mv temp/lexer.c temp/lexer.tmp -mv temp/oil.c temp/oil.tmp -sh cleanick.sh -mv temp/parser.tmp temp/parser.c -mv temp/parserh.tmp temp/parser.h -mv temp/lexer.tmp temp/lexer.c -mv temp/oil.tmp temp/oil.c \ No newline at end of file diff --git a/doc/ick.txi b/doc/ick.txi index 8db4bb6..4519836 100644 --- a/doc/ick.txi +++ b/doc/ick.txi @@ -240,9 +240,7 @@ directly to the maintainers.) @menu * Obtaining:: How to get a @cic{} distribution to install * Unpacking:: What to do with the distribution file -* Simple Installation:: Normally you can just do things the easy way -* DOS/Windows Install:: For users of DOS or of Microsoft Windows -* Not Installing:: You can use the software without installing it +* Simple Installation:: How to install things the easy way * Uninstalling:: If you don't want to use the software * Reporting Bugs:: If it doesn't work or you know how to fix it * Distributing:: How to make your own @cic{} distribution @@ -283,12 +281,20 @@ This has not always been the case, though.) @cindex C-INTERCAL, unpacking @cindex unzipping C-INTERCAL @cindex unpacking C-INTERCAL -@cindex ick-@value{VERSIONDASH}.tgz - -The distribution is likely to be a single file with extension -@samp{.tgz}; this refers to a gzipped tar file. Most computer systems -can extract files in this format (nowadays even many computers running -Windows have the appropriate software). +@cindex ick-@value{VERSIONDASH}.pax.* + +@cic{} is distributed in compressed pax format; for instance, you may +find as a @samp{.pax.lzma} file if you have the @command{unlzma} +decompression program (this is advised, as it's the smallest); +@samp{.pax.bz2} is larger and @samp{.pax.gz} is larger still. Most +computers can decompress files in this format, even if they don't +realise it, because pax is forwards-compatible with tar; try renaming +the extension from @samp{.pax} to @samp{.tar} after decompressing to +see if you have a progam that can decompress it. (If you're wondering +why such an apparently non-standard format is being used, this is is +actually a case where @cic{} is being perfectly nonstandard by +conforming to the standards; tar is no longer specified by POSIX, and +pax is its replacement. It's just that pax never really caught on.) It doesn't matter where you extract the distribution file to: it's best if you don't put it anywhere special. If you aren't an administrator, @@ -303,49 +309,71 @@ anywhere). Some commands that you might use to extract it: @item Generic UNIX/Linux @example -gunzip ick-@value{VERSIONDASH}.tgz -tar xvf ick-@value{VERSIONDASH}.tar +unlzma ick-@value{VERSIONDASH}.pax.lzma +tar xvf ick-@value{VERSIONDASH}.pax +@end example +@i{or} +@example +bunzip2 ick-@value{VERSIONDASH}.pax.bz2 +tar xvf ick-@value{VERSIONDASH}.pax +@end example +@i{or} +@example +gunzip ick-@value{VERSIONDASH}.pax.gz +tar xvf ick-@value{VERSIONDASH}.pax @end example On most UNIX-based and Linux-based systems, @command{tar} will be available to unpack the installation files once they've been -uncompressed with @command{gunzip}. @command{gunzip} is also likely to -be available; if it isn't, you will need to download a copy from the -Internet. +uncompressed with @command{gunzip}. (I've heard that some BSD systems +have @command{pax} itself to decompress the files, although have not +been able to verify this; some Linux distributions also have +@command{pax} in their package managers. Both tar and pax should work +fine, though.) @command{gunzip} is also likely to be available (and +@command{bunzip2} and @command{unlzma} are less likely, but use those +versions if you have them to save on your bandwidth); if it isn't, you +will need to download a copy from the Internet. @item Using GNU tar @example -tar xzvf ick-@value{VERSIONDASH}.tgz +tar xzvf ick-@value{VERSIONDASH}.pax.gz +@end example +@i{or} +@example +tar xqvf ick-@value{VERSIONDASH}.pax.bz2 @end example If you are using the GNU version of @command{tar} (which is very likely -on Linux), you can combine the two steps into one as shown here. +on Linux), you can combine the two steps into one as shown here, +except when using the lzma-compressed version. @item Using DJGPP @example -djtar -x ick-@value{VERSIONDASH}.tgz +djtar -x ick-@value{VERSIONDASH}.pax.gz @end example -On a DOS or Windows system, you will have to install DJGPP anyway to be -able to compile the distribution (@pxref{DOS/Windows Install}), and once -you've done that you will be able to use DJGPP's decompressing and -unpacking utility to extract the files needed to install the -distribution. (You will need to type this at the command line; on -Windows 95 and later, try choosing Run...@: from the start menu then -typing @command{cmd} (or @command{command} if that fails) in the dialog -box that opens to get a command prompt, which you can exit by typing -@command{exit}. After typing any command at a command line, press -@key{RET} to tell the shell to execute that command.) +On a DOS system, you will have to install DJGPP anyway to be able to +compile the distribution, and once you've done that you will be able +to use DJGPP's decompressing and unpacking utility to extract the +files needed to install the distribution. (You will need to type this +at the command line; on Windows 95 and later, try choosing Run...@: +from the start menu then typing @command{cmd} (or @command{command} if +that fails) in the dialog box that opens to get a command prompt, +which you can exit by typing @command{exit}. After typing any command +at a command line, press @key{RET} to tell the shell to execute that +command.) @item On Windows -If you're running a Windows system, you could always try double-clicking -on the ick-@value{VERSIONDASH}.tgz file. It's quite possible that -you'll have a program installed that's capable of decompressing and -unpacking it. Unfortunately, I can't guess what program that might be, -so I can't give you any instructions for using it. +If you're running a Windows system, you could always try +double-clicking on the ick-@value{VERSIONDASH}.pax.gz file; probably +renaming it to have the extension @samp{.tgz} is likely to give the +best results. It's quite possible that you'll have a program +installed that's capable of decompressing and unpacking it. +Unfortunately, I can't guess what program that might be, so I can't +give you any instructions for using it. @end table @@ -375,10 +403,33 @@ use the following routine: @enumerate @item -Configure @cic{}, by typing @command{sh config.sh} +Configure @cic{}, by running @command{configure}. Although building +in the distribution directory works; it is recommended that you build +elsewhere; create a directory to build in (using @command{mkdir} on +most operating systems), then run @command{configure} from inside that +directory (for instance, you could do this from inside the main +installation directory: +@example +mkdir build +cd build +../configure +@end example +to build in a subdirectory of the distribution called ``build''). You +also specify where you want the files to be installed at this stage; +the default of @samp{/usr/local} is good for many people, but you may +want to install elsewhere (in particular, if you want to test out +C-INTERCAL without installing it, create a new directory somewhere you +own and specify that as the place to install it, so the install will +actually just copy the files into the right structure for use instead +of installing them). To specify a location, give the option +@option{--prefix=@var{location}} to configure; for instance, +@command{configure --prefix=/usr} would install in /usr. @item -Compile the source code, with the command @command{make} +Compile the source code, with the command @command{make}. The +Makefile will be set up for your version of @command{make}, and to +automatically recompile only what needs compiling (it will even +recompile the build system if you change that). @item Optionally, create libraries from third-party interpreters to add @@ -392,39 +443,42 @@ Install the executables, help files, include files, and libraries, using @command{make install}. (This is the only step that needs root/administrator permissions; so on a system that uses sudo to elevate permissions, for instance, write it as @command{sudo make -install}.) +install} if you're installing into a directory that you can't write to +as a non-administrative user.) @end enumerate On all systems, it's worth just trying this to see if it works. This requires a lot of software on your computer to work, but all of it is -standard on Linux and UNIX systems. The first command is a shell-script -which will analyse your system and set settings accordingly; it will -explain what it's doing and what settings it detected, and create several -files in the installation directory to record its results. (This is a -configure script produced by the GNU autoconf (config.sh); its autoconf -source code is available in the file @file{config.ac}.) The second -command actually compiles the source code to produce binaries; this takes -the longest of any of the steps. You will see all the commands that it's -running as it runs them. The third command will copy the files it's -compiled to appropriate shared locations on your system so that anyone on -the system can just use @command{ick}. +standard on Linux and UNIX systems. The first command is a +shell-script which will analyse your system and set settings +accordingly; it will explain what it's doing and what settings it +detected, and create several files in the installation directory to +record its results. (This is a configure script produced by the GNU +autoconf (configure); its autoconf source code is available in the +file @file{configure.ac}.) The second command actually compiles the +source code to produce binaries; this takes the longest of any of the +steps. You will see all the commands that it's running as it runs +them. The third command will copy the files it's compiled to +appropriate shared locations on your system so that anyone on the +system can just use @command{ick}. There may be various factors that prevent this simple installation method working. On a system not based on UNIX or Linux, you may find that you don't have some of the software required to run this (for -instance, you may be missing the shell @command{sh}, and don't have the -shell @command{bash} which can emulate it, and so can't run @command{sh -config.sh} that depends on one of those shells being available) and so -this method won't work for you. In such cases, one solution may be to -install all the software required; the GNU project has a version of all -the commands required, for instance, and there may be ports available -for your operating system. However, the only software absolutely -required is a C compiler (@cic{} was designed to work with @command{gcc} -and has only been tested in combination with that compiler, but in -theory it should be possible to adapt it to work with other compilers) -and the associated software needed to compile C files to object files -and executables, combine object files into libraries, etc. +instance, you may be missing the shell @command{sh}, and don't have +the shell @command{bash} which can emulate it, and so can't run +@command{sh config.sh} that depends on one of those shells being +available) and so this method won't work for you. In such cases, one +solution may be to install all the software required; the GNU project +has a version of all the commands required, for instance, and there +may be ports available for your operating system. However, the only +software absolutely required is a C compiler (@cic{} was designed to +work with @command{gcc} and is tested mostly with that compiler, but +in theory it should work with other C compilers too, and this is +tested on occasion) and the associated software needed to compile C +files to object files and executables, combine object files into +libraries, etc. Another possibility that might stop this process working is if your version of the relevant software is incompatible with the GNU versions @@ -442,156 +496,27 @@ files that will cause the compilation to work again. Some Linux and UNIX systems (notably Debian and Ubuntu) don't have the required files for compilation installed by default. To install them, just download and install the required packages: for Ubuntu at the -time of writing, they are @samp{binutils}, @samp{bison}, @samp{cpp}, -@samp{flex}, @samp{gcc}, @samp{libc6-dev}, @samp{make} to compile -@cic{}, and if you want to modify it, you may also need -@samp{autoconf}. For debugging help, you may also want @samp{gdb}, -and to recompile the documentation, you may need @samp{groff}, -@samp{tetex-bin}, @samp{texinfo}, and @samp{tidy}. Of course, if -@ical{} ever (the author of this sentence was going to write something -like ``becomes popular, someone will probably package up a compiler -for Debian or Ubuntu anyway'', but at that point on a whim did an -Ubunutu package search for 'intercal' and actually came up with two -results, which look suspiciously like @cic{} and @clcic{}, later -confirming this. The author was vaguely aware that there was a +time of writing, they are @samp{binutils}, @samp{cpp}, @samp{gcc}, +@samp{libc6-dev}, @samp{make} to compile @cic{}, and if you want to +modify it, you may also need @samp{autoconf}, @samp{automake}, +@samp{bison}, and @samp{flex}. For debugging help, you may also want +@samp{gdb}, and to recompile the documentation, you may need +@samp{groff}, @samp{tetex-bin}, @samp{texinfo}, and @samp{tidy}. Of +course, if @ical{} ever (the author of this sentence was going to +write something like ``becomes popular, someone will probably package +up a compiler for Debian or Ubuntu anyway'', but at that point on a +whim did an Ubuntu package search for 'intercal' and actually came up +with two results, which look suspiciously like @cic{} and @clcic{}, +later confirming this. The author was vaguely aware that there was a @clcic{} package floating around, but was unaware of the @cic{} package, and as a result was too surprised to finish the sentence.) If you're trying to do something unusual, you probably want to set some of the settings yourself rather than letting the compilation process -guess everything. In this case, use @command{sh config.sh --help} to -view the options that you can set on @command{config.sh}; there's a wide +guess everything. In this case, use @command{configure --help} to +view the options that you can set on @command{configure}; there's a wide range of settings that you can set available there, and one of them may -be what you want. For the special case of a non-administrator user who -wants to test the @cic{} compiler without having admin rights, or -equivalently any user who wants to test the compiler without installing -it, see @ref{Not Installing}. - -@node DOS/Windows Install -@section DOS/Windows Install -@cindex installation, on DOS or Windows -@cindex DOS -@cindex Windows -@cindex DJGPP -@findex makeick.sh -@findex makeick.bat - -On DOS and Windows, it's possible to install @cic{} by using the C -compiler and utilities provided by DJGPP. (Possibly other environments -also work, but DJGPP is the only C compilation system on which recent -versions of @cic{} have been tested.) If you don't have a copy of DJGPP, -or you're not sure whether you have the most recent version, visit -@uref{http://www.delorie.com/djgpp}. I think it's possible to compile -@cic{} to binaries from only the files in the distribution and the C -compilation parts of DJGPP, but this relies on some prebuilt files -enclosed in the distribution, and I haven't actually tested this, so I -might be wrong. At the other extreme, if you download and install not -only the DJGPP C compiler but also all the DJGPP ports of the GNU -utilities required to run @command{config.sh} and @command{make}, you -can use the simple installation method; see @ref{Simple Installation}. -(This is actually somewhat recommended; doing this will not only allow -you to change source code, recompile, and be guaranteed to have your -changes to the source code affect the executables, and allow you to -install @cic{} without having to fiddle around with the @samp{PATH} -environment variable, but also you may then be able to install other -programs distributed in source form without further hassle.) - -Assuming that you decide not to download all the utilites required to -carry out a simple install, follow the following instructions to compile -and install the @cic{} compiler: - -@enumerate - -@item -If you haven't already installed DJGPP, do that now, following the -instructions given there. - -@item -Open a command prompt if you aren't at one already, unpack the -distribution if you haven't already, and change directory to the main -installation directory (@pxref{Unpacking}). - -@item -Run one of two commands included in the distribution especially for -installing @cic{} under DJGPP. Which one you run depends on the shell -you're using: if you're running under one of the DOS/Windows shells -(@command{cmd.exe} or @command{command.com}), type -@command{makeick.bat}, and if you're running under a port of a UNIX or -Linux shell (such as @command{bash}), type @command{makeick.sh}. - -@item -The distribution should now have been compiled, but it still needs to be -installed. To do this, you will need to edit your @samp{PATH} -environment variable. Under DOS and earlier versions of Windows, you -can do this by editing @file{C:\autoexec.bat}; look for the last command -that sets the @samp{PATH} environment variable (i.@:e.@: that starts -with @samp{set PATH=}), and add another semicolon and the @file{bin} -subdirectory of your main installation directory to it (for instance, if -your installation directory is -@file{C:\stuff\intercal\ick-@value{VERSION}}, you want to add -@samp{;C:\stuff\intercal\ick-@value{VERSION}\bin} to the end of that -line). Under later versions of Windows, this won't work (I'm not sure -exactly where the cutoff is, but I know the other method doesn't work on -Windows XP); instead, go via the Start menu to Settings, Control Panel, -System, Advanced, Environment Variables, and edit either your own or the -system-wide PATH setting (depending on whether you want to install for -yourself or for everyone) to end with the @file{bin} subdirectory of the -main installation directory, the same way as for older versions of -Windows. - -@end enumerate - -To test that the @samp{PATH} setting is set correctly, try changing to -an unrelated directory (for instance, by typing @command{cd \} at a -command prompt), and typing @command{ick -@@}; if you get a usage -message for @command{ick}, then you've set the @samp{PATH} setting -correctly. Note that if things go wrong during compilation, other than -errors about inability to find @command{flex} or @command{bison} (the -compilation process can succeed despite either of these errors), it's -likely that you've messed up your DJGPP installation (maybe by setting -the @samp{PATH} or @samp{DJDIR} environment variables incorrectly for -it). - -@node Not Installing -@section Not Installing -@cindex @command{ick}, using without installation -@cindex @command{ick}, not installating -@cindex trying out @command{ick} -@cindex not installing -@cindex non-root installation -@cindex installation, non-root -@cindex live CD/USB stick -@cindex making a live CD/USB stick - -You don't have to install @cic{} to be able to use it; you can instead -stop any of the other install techniques just after compiling the source -code, before the installation step. (This may be useful if you just -want to try out @cic{}, or if you aren't a root/admin user and therefore -don't have the permissions to install things.) When @cic{} hasn't been -installed, @command{ick} won't be able to find the files it looks for in -the places that they ought to have been installed, so it will look in a -variety of places they might be instead (the installation directory, if -it can figure out where it is; the same directory as the binary; the -current directory). In order for this to work, just don't move any of -the files that were compiled anywhere else. - -Of course, if you haven't installed the compiler, just typing -@command{ick} is unlikely to work, because your computer won't know what -you mean. Instead, you should give a pathname (absolute or relative) to -where @command{ick} is, so that your computer can find it. With any -luck, your computer will communicate the pathname you used to -@command{ick} itself, and if that happens @command{ick} will use it to -figure out where the main installation directory is, and find the files -it needs that way. If you suspect that errors you are getting are due -to inability to find files (such as E127 (@pxref{E127}) or E999 -(@pxref{E999})), try giving the @option{-u} (@pxref{-u}) option to -@command{ick} to see where it's looking. - -You can make a `live' CD or USB-stick version of @cic{} using similar -methods; configure (if possible) and compile it, but instead of -installing it, copy the entire @file{ick-@value{VERSION}} directory to the -CD or USB stick. @ical{} can then be run from there by explicitly giving -a pathname to @file{bin/ick} or @file{bin/ick.exe}. +be what you want. @node Uninstalling @section Uninstalling @@ -603,31 +528,28 @@ this may be useful if you want to test the installation system, or change the location you install programs, or for some reason you don't want it on your computer. It's worth uninstalling just before you install a new version of @cic{} because this will save some disk space; -you cannot install two versions of @cic{} at once (but see @ref{Not -Installing} for information on how you can use @cic{} without installing -it). +you cannot install two versions of @cic{} at once (at least, not in +the same directory; but you can change the --prefix of one of the +installations to get two versions at once). If you installed @cic{} using @command{make install}, you can uninstall it by using @command{make uninstall} from the installation directory, assuming that it still exists. If you can't use that method for some reason, you can uninstall it by deleting the files -@file{ick.exe} where your computer installs binaries, @file{libick.a}, -@file{libickmt.a}, @file{libickec.a}, and @file{libyuk.a} where your -computer installs libraries, and the subdirectories -@file{ick-@value{VERSION}} in the places where your computer installs -data files and include files, and their contents. - -If you installed @cic{} by changing your @samp{PATH} environment -variable, you can uninstall by changing it back. - -You can go further than uninstalling. Running @command{make distr}, -@command{districk.sh}, or @command{districk.bat} will delete any files -created by compilation; @command{make distclean} will delete those -files, and also any files created by configuring. The distribution -contains prebuilt versions of the parser, lexical analyser and OIL -compiler; doing @command{make clean} (or @command{cleanick.sh} or -@command{cleanick.bat}) will do the same thing as @command{make distr} -and also delete those prebuilt versions. +@file{ick} and @file{convickt} where your computer installs binaries +(with an extension like @samp{.exe} added if that's usual for binaries +on your operating system), @file{libick.a}, @file{libickmt.a}, +@file{libickec.a}, and @file{libyuk.a} where your computer installs +libraries, and the subdirectories @file{ick-@value{VERSION}} in the +places where your computer installs data files and include files, and +their contents. + +You can go further than uninstalling. Running @command{make clean} +will delete any files created by compilation; @command{make distclean} +will delete those files, and also any files created by configuring. +It's probably a wise idea to uninstall before doing a distclean, +though, as otherwise information needed to uninstall will be deleted, +as that information is generated by @command{configure}. @node Reporting Bugs @section Reporting Bugs @@ -718,17 +640,17 @@ Increment the version number; if you add any new features, increment the major version number (after the decimal point) and drop the minor version number (before the decimal point) to 0, and otherwise increment the minor version number. You have to update the version number in the following -files: @file{config.in}, @file{config.sh}, and @file{doc/ick.txi}. You +files: @file{configure.ac}, @file{configure}, and @file{doc/ick.txi}. You also have to rename the installation directory to reflect the new version number. @item -Add an entry to the @file{NEWS.txt} file explaining what's new in the +Add an entry to the @file{NEWS} file explaining what's new in the version that you're releasing, following the same format as the other entries. @item -Update the @file{README.txt} with a description of any new files you may +Update the @file{README} with a description of any new files you may have added. @item @@ -736,26 +658,13 @@ Remove any autosave or backup files that may be littering the installation directory or its subdirectories. @item -Run @command{make distclean}, or @command{districk.sh} or -@command{districk.bat} if you didn't manage to configure; this will -remove all files created by the compilation process that shouldn't be -in the distribution. - -@item -Update the @file{MANIFEST.txt} file that lists all files in the -distribution; on a Linux or UNIX system, you can do this by typing -@command{ls -R1 > MANIFEST.txt} in the main installation directory. - -@item -If creating the distribution under DJGPP, run @command{etc/ctrlmfix.bat} -or @command{etc/ctrlmfix.sh}, even if you managed to configure; this -will sort out portability problems with newlines. - -@item -Create a gzipped tar file containing the installation directory. Its -filename should be @samp{ick-}, followed by the version number with the -dot replaced by a dash, followed by @samp{.tgz}; this form of filename -is friendly to DOS. +Run @command{make distcheck}, which will make the distribution +paxballs, and rename them to have the correct extensions (Automake +thinks they're tarballs, so will use @samp{.tar} rather than +@samp{.pax}, and you have to fix this by hand). @command{make +distcheck} will also perform some sanity checks on the build system of +the resulting paxball, which will help to ensure that nothing +important is missing from it. @item Place the new version somewhere on the Internet, and announce the diff --git a/etc/cftoec.sh b/etc/cftoec.sh index 1b5eb0a..3395eb9 100644 --- a/etc/cftoec.sh +++ b/etc/cftoec.sh @@ -2,7 +2,8 @@ # This shell-script takes one argument, the path to a source # distribution of cfunge, and compiles that source distribution into a # library (libick_ecto_b98.a) suitable for linking to C-INTERCAL -# programs. +# programs. The cfunge distribution itself is not modified; all changes +# are made on a copy. test x$1 != x || ( echo Please give the path to the root of a cfunge source @@ -10,7 +11,7 @@ test x$1 != x || ( exit 1 ) || exit 1 -CFUNGEPATH=`realpath $1` || ( +CFUNGEPATH=`(cd $1; pwd)` || ( echo Please give the path to the root of a cfunge source echo distribution as an argument to this script\; the directory echo or file you gave does not exist. @@ -59,8 +60,8 @@ echo " " Compiling source... find . -name '*.c' -printf "gcc $CFLAGS -c %p -o %f.o\n" | sh echo " " Creating library... -ar cr ../../lib/libick_ecto_b98.a *.o -ranlib ../../lib/libick_ecto_b98.a +ar cr ../../prebuilt/libick_ecto_b98.a *.o +ranlib ../../prebuilt/libick_ecto_b98.a echo " " Cleaning up... rm -rf * diff --git a/etc/ctrlmfix.bat b/etc/ctrlmfix.bat deleted file mode 100755 index 26aef6a..0000000 --- a/etc/ctrlmfix.bat +++ /dev/null @@ -1,22 +0,0 @@ -@echo off -rem This is a script to remove trailing ^Ms that might otherwise get into files -rem when running under DJGPP, to prevent the files being unusable on Unix. -rem Likewise, it adds trailing ^Ms to .bat files so they run under DOS shells. - - -dtou *.* -dtou ickspec -dtou etc\intercal.el -dtou src\*.c -dtou src\*.h -dtou src\*.l -dtou src\*.y -dtou src\*.in -dtou pit\*.doc -dtou pit\*.i -dtou pit\tests\*.doc -dtou pit\tests\*.i -dtou pit\lib\*.doc -dtou pit\lib\*.i -utod *.bat -utod configdj.sh diff --git a/etc/ctrlmfix.sh b/etc/ctrlmfix.sh deleted file mode 100755 index 7c43962..0000000 --- a/etc/ctrlmfix.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh -# This is a script to remove trailing ^Ms that might otherwise get into files -# when running under DJGPP, to prevent the files being unusable on Unix. -# Likewise, it adds trailing ^Ms to .bat files so they run under DOS shells. - - -dtou *.* -dtou ickspec -dtou etc/intercal.el -dtou src/*.c -dtou src/*.h -dtou src/*.l -dtou src/*.y -dtou src/*.in -dtou pit/*.doc -dtou pit/*.i -dtou pit/tests/*.doc -dtou pit/tests/*.i -dtou pit/lib/*.doc -dtou pit/lib/*.i -utod *.bat -utod configdj.sh \ No newline at end of file diff --git a/makeick.bat b/makeick.bat deleted file mode 100755 index 24c1485..0000000 --- a/makeick.bat +++ /dev/null @@ -1,89 +0,0 @@ -@echo off - -rem C-INTERCAL 0.28 compilation batch file for DJGPP. - -rem This code will attempt to recompile the parser and lexer using -rem bison and flex. If you don't have them, you will get an error -rem message and the parser and lexer included with the distribution -rem will be used. - -if not exist makeick.bat goto :direrror - -copy /y src\*.* temp -cd temp -copy /y configdj.h config.h -echo Trying to build parsers and lexers (if this fails, e.g. if you do not -echo have bison/flex, this will produce errors but the compiler will build -echo anyway using prebuilt versions)... -bison -d -oparser.c parser.y -flex -olexer.c lexer.l -bison -ooil.c oil.y - -rem If you don't care about being able to debug ick, use -rem set CFLAGS=-s -O2 -DICKNOSEARCH -W -Wall -set CFLAGS=-gstabs+ -O2 -DICKNOSEARCH -W -Wall -DICK_HAVE_STDINT_H= - -echo Compiling... -gcc %CFLAGS% -o oil.exe oil.c -oil.exe < idiotism.oil > idiotism.c -gcc %CFLAGS% -o bin2c.exe bin2c.c -bin2c.exe ick_clc_cset_atari < atari.bin > cset-a.c -bin2c.exe ick_clc_cset_baudot < baudot.bin > cset-b.c -bin2c.exe ick_clc_cset_ebcdic < ebcdic.bin > cset-e.c -bin2c.exe ick-clc_cset_latin1 < latin1.bin > cset-l.c -gcc -c %CFLAGS% idiotism.c -gcc -c %CFLAGS% parser.c -gcc -c %CFLAGS% lexer.c -gcc -c %CFLAGS% feh2.c -gcc -c %CFLAGS% dekludge.c -gcc -c %CFLAGS% perpet.c -gcc -c %CFLAGS% cesspool.c -gcc -c %CFLAGS% numerals.c -gcc -c %CFLAGS% unravel.c -gcc -c %CFLAGS% fiddle.c -gcc -c %CFLAGS% arrgghh.c -gcc -c %CFLAGS% ick_lose.c -gcc -c %CFLAGS% uncommon.c -gcc -c %CFLAGS$ ick_ec.c -gcc -c %CFLAGS% yuk.c -gcc -c %CFLAGS% convickt.c -gcc -c %CFLAGS% clc-cset.c -gcc -c %CFLAGS% cset-a.c -gcc -c %CFLAGS% cset-b.c -gcc -c %CFLAGS% cset-e.c -gcc -c %CFLAGS% cset-l.c - -ar cr libick.a cesspool.o numerals.o fiddle.o arrgghh.o ick_lose.o clc-cset.o cset-?.o uncommon.o -ranlib libick.a -ar cr libickmt.a cesspool.o numerals.o fiddle.o arrgghh.o ick_lose.o unravel.o clc-cset.o cset-?.o uncommon.o -ranlib libickmt.a -ar cr libickec.a cesspool.o numerals.o fiddle.o arrgghh.o ick_lose.o ick_ec.o clc-cset.o cset-?.o uncommon.o -ranlib libickec.a -ar cr libyuk.a yuk.o uncommon.o -ranlib libyuk.a -echo parser.o lexer.o perpet.o feh2.o idiotism.o dekludge.o ick_lose.o fiddle.o uncommon.o > ickmgcc.rsp -gcc %CFLAGS% -oick.exe @ickmgcc.rsp -del ickmgcc.rsp -gcc %CFLAGS% -oconvickt.exe convickt.o clc-cset.o uncommon.o -copy /y ick.exe ..\bin -copy /y convickt.exe ..\bin -copy /y *.a ..\lib -cd .. -copy /y src\ick-wrap.c lib -copy /y src\pickwrap.c lib -copy /y pit\lib\syslib.i lib -copy /y pit\lib\syslib.?i lib -copy /y pit\explib\syslibc.c lib -copy /y pit\explib\compunex.c lib -copy /y COPYING.txt lib -copy /y src\fiddle.h include -copy /y src\ick_ec.h include -copy /y src\abcess.h include -copy /y src\ick_lose.h include -copy /y src\yuk.h include -copy /y src\*.bin include -echo Compilation complete unless there were errors. -goto :end -:direrror -echo Please run this batch file from its own directory. -:end diff --git a/makeick.sh b/makeick.sh deleted file mode 100755 index face32b..0000000 --- a/makeick.sh +++ /dev/null @@ -1,89 +0,0 @@ -#!/bin/sh - -# C-INTERCAL 0.25 compilation batch file for sh and bash. - -# This code will attempt to recompile the parser and lexer using -# bison and flex. If you don't have them, you will get an error -# message and the parser and lexer included with the distribution -# will be used. - -# Using configure.sh and make is recommended; this script is a fallback for -# when you can't get configure.sh and/or make to work on your system. - -# This file is meant to contain the same content as makeick.bat; it's simply -# written for sh rather than COMMAND.COM (and doesn't make use of all its -# features, as it's meant to be exactly analogous). - -# Run this file from the directory in which this script is installed. - -cp src/* temp -cd temp -cp configdj.h config.h -echo 'Trying to build parsers and lexers (if this fails, e.g. if you do not' -echo 'have bison/flex, this will produce errors but the compiler will build' -echo 'anyway using prebuilt versions)...' -bison -d -oparser.c parser.y -flex -olexer.c lexer.l -bison -ooil.c oil.y - -# If you don't care about being able to debug ick, use -# CFLAGS=-s -O2 -DICKNOSEARCH -W -Wall -CFLAGS='-gstabs+ -O2 -DICKNOSEARCH -W -Wall -DICK_HAVE_STDINT_H=' - -echo Compiling... -gcc ${CFLAGS} -o oil.exe oil.c -oil.exe < idiotism.oil > idiotism.c -gcc ${CFLAGS} -o bin2c.exe bin2c.c -bin2c.exe ick_clc_cset_atari < atari.bin > cset-a.c -bin2c.exe ick_clc_cset_baudot < baudot.bin > cset-b.c -bin2c.exe ick_clc_cset_ebcdic < ebcdic.bin > cset-e.c -bin2c.exe ick_clc_cset_latin1 < latin1.bin > cset-l.c -gcc -c ${CFLAGS} idiotism.c -gcc -c ${CFLAGS} parser.c -gcc -c ${CFLAGS} lexer.c -gcc -c ${CFLAGS} feh2.c -gcc -c ${CFLAGS} dekludge.c -gcc -c ${CFLAGS} perpet.c -gcc -c ${CFLAGS} cesspool.c -gcc -c ${CFLAGS} numerals.c -gcc -c ${CFLAGS} unravel.c -gcc -c ${CFLAGS} fiddle.c -gcc -c ${CFLAGS} arrgghh.c -gcc -c ${CFLAGS} ick_lose.c -gcc -c ${CFLAGS} uncommon.c -gcc -c ${CFLAGS} ick_ec.c -gcc -c ${CFLAGS} yuk.c -gcc -c ${CFLAGS} convickt.c -gcc -c ${CFLAGS} clc-cset.c -gcc -c ${CFLAGS} cset-a.c -gcc -c ${CFLAGS} cset-b.c -gcc -c ${CFLAGS} cset-e.c -gcc -c ${CFLAGS} cset-l.c -ar cr libick.a cesspool.o numerals.o fiddle.o arrgghh.o ick_lose.o clc-cset.o cset-?.o uncommon.o -ranlib libick.a -ar cr libickmt.a cesspool.o numerals.o fiddle.o arrgghh.o ick_lose.o unravel.o clc-cset.o cset-?.o uncommon.o -ranlib libickmt.a -ar cr libickec.a cesspool.o numerals.o fiddle.o arrgghh.o ick_lose.o ick_ec.o clc-cset.o cset-?.o uncommon.o -ranlib libickec.a -ar cr libyuk.a yuk.o uncommon.o -ranlib libyuk.a -gcc ${CFLAGS} -oick.exe parser.o lexer.o perpet.o feh2.o idiotism.o dekludge.o ick_lose.o fiddle.o uncommon.o -gcc ${CFLAGS} -oconvickt.exe convickt.o clc-cset.o uncommon.o -cp ick.exe ../bin -cp convickt.exe ../bin -cp *.a ../lib -cd .. -cp src/ick-wrap.c lib -cp src/pickwrap.c lib -cp pit/lib/syslib.i lib -cp pit/lib/syslib.?i lib -cp pit/explib/syslibc.c lib -cp pit/explib/compunex.c lib -cp COPYING.txt lib -cp src/fiddle.h include -cp src/ick_ec.h include -cp src/abcess.h include -cp src/ick_lose.h include -cp src/yuk.h include -cp src/*.bin include -echo Compilation complete unless there were errors. diff --git a/prebuilt/lexer.c b/prebuilt/lexer.c new file mode 100644 index 0000000..774de5e --- /dev/null +++ b/prebuilt/lexer.c @@ -0,0 +1,3126 @@ + +#line 3 "lexer.c" + +#define YY_INT_ALIGNED short int + +/* A lexical scanner generated by flex */ + +#define FLEX_SCANNER +#define YY_FLEX_MAJOR_VERSION 2 +#define YY_FLEX_MINOR_VERSION 5 +#define YY_FLEX_SUBMINOR_VERSION 34 +#if YY_FLEX_SUBMINOR_VERSION > 0 +#define FLEX_BETA +#endif + +/* First, we deal with platform-specific or compiler-specific issues. */ + +/* begin standard C headers. */ +#include +#include +#include +#include + +/* end standard C headers. */ + +/* flex integer type definitions */ + +#ifndef FLEXINT_H +#define FLEXINT_H + +/* C99 systems have . Non-C99 systems may or may not. */ + +#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L + +/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, + * if you want the limit (max/min) macros for int types. + */ +#ifndef __STDC_LIMIT_MACROS +#define __STDC_LIMIT_MACROS 1 +#endif + +#include +typedef int8_t flex_int8_t; +typedef uint8_t flex_uint8_t; +typedef int16_t flex_int16_t; +typedef uint16_t flex_uint16_t; +typedef int32_t flex_int32_t; +typedef uint32_t flex_uint32_t; +#else +typedef signed char flex_int8_t; +typedef short int flex_int16_t; +typedef int flex_int32_t; +typedef unsigned char flex_uint8_t; +typedef unsigned short int flex_uint16_t; +typedef unsigned int flex_uint32_t; +#endif /* ! C99 */ + +/* Limits of integral types. */ +#ifndef INT8_MIN +#define INT8_MIN (-128) +#endif +#ifndef INT16_MIN +#define INT16_MIN (-32767-1) +#endif +#ifndef INT32_MIN +#define INT32_MIN (-2147483647-1) +#endif +#ifndef INT8_MAX +#define INT8_MAX (127) +#endif +#ifndef INT16_MAX +#define INT16_MAX (32767) +#endif +#ifndef INT32_MAX +#define INT32_MAX (2147483647) +#endif +#ifndef UINT8_MAX +#define UINT8_MAX (255U) +#endif +#ifndef UINT16_MAX +#define UINT16_MAX (65535U) +#endif +#ifndef UINT32_MAX +#define UINT32_MAX (4294967295U) +#endif + +#endif /* ! FLEXINT_H */ + +#ifdef __cplusplus + +/* The "const" storage-class-modifier is valid. */ +#define YY_USE_CONST + +#else /* ! __cplusplus */ + +/* C99 requires __STDC__ to be defined as 1. */ +#if defined (__STDC__) + +#define YY_USE_CONST + +#endif /* defined (__STDC__) */ +#endif /* ! __cplusplus */ + +#ifdef YY_USE_CONST +#define yyconst const +#else +#define yyconst +#endif + +/* Returned upon end-of-file. */ +#define YY_NULL 0 + +/* Promotes a possibly negative, possibly signed char to an unsigned + * integer for use as an array index. If the signed char is negative, + * we want to instead treat it as an 8-bit unsigned char, hence the + * double cast. + */ +#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) + +/* Enter a start condition. This macro really ought to take a parameter, + * but we do it the disgusting crufty way forced on us by the ()-less + * definition of BEGIN. + */ +#define BEGIN (yy_start) = 1 + 2 * + +/* Translate the current start state into a value that can be later handed + * to BEGIN to return to the state. The YYSTATE alias is for lex + * compatibility. + */ +#define YY_START (((yy_start) - 1) / 2) +#define YYSTATE YY_START + +/* Action number for EOF rule of a given start state. */ +#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) + +/* Special action meaning "start processing a new file". */ +#define YY_NEW_FILE yyrestart(yyin ) + +#define YY_END_OF_BUFFER_CHAR 0 + +/* Size of default input buffer. */ +#ifndef YY_BUF_SIZE +#define YY_BUF_SIZE 16384 +#endif + +/* The state buf must be large enough to hold one state per character in the main buffer. + */ +#define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) + +#ifndef YY_TYPEDEF_YY_BUFFER_STATE +#define YY_TYPEDEF_YY_BUFFER_STATE +typedef struct yy_buffer_state *YY_BUFFER_STATE; +#endif + +extern int yyleng; + +extern FILE *yyin, *yyout; + +#define EOB_ACT_CONTINUE_SCAN 0 +#define EOB_ACT_END_OF_FILE 1 +#define EOB_ACT_LAST_MATCH 2 + + #define YY_LESS_LINENO(n) + +/* Return all but the first "n" matched characters back to the input stream. */ +#define yyless(n) \ + do \ + { \ + /* Undo effects of setting up yytext. */ \ + int yyless_macro_arg = (n); \ + YY_LESS_LINENO(yyless_macro_arg);\ + *yy_cp = (yy_hold_char); \ + YY_RESTORE_YY_MORE_OFFSET \ + (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ + YY_DO_BEFORE_ACTION; /* set up yytext again */ \ + } \ + while ( 0 ) + +#define unput(c) yyunput( c, (yytext_ptr) ) + +/* The following is because we cannot portably get our hands on size_t + * (without autoconf's help, which isn't available because we want + * flex-generated scanners to compile on their own). + * Given that the standard has decreed that size_t exists since 1989, + * I guess we can afford to depend on it. Manoj. + */ + +#ifndef YY_TYPEDEF_YY_SIZE_T +#define YY_TYPEDEF_YY_SIZE_T +typedef size_t yy_size_t; +#endif + +#ifndef YY_STRUCT_YY_BUFFER_STATE +#define YY_STRUCT_YY_BUFFER_STATE +struct yy_buffer_state + { + FILE *yy_input_file; + + char *yy_ch_buf; /* input buffer */ + char *yy_buf_pos; /* current position in input buffer */ + + /* Size of input buffer in bytes, not including room for EOB + * characters. + */ + yy_size_t yy_buf_size; + + /* Number of characters read into yy_ch_buf, not including EOB + * characters. + */ + int yy_n_chars; + + /* Whether we "own" the buffer - i.e., we know we created it, + * and can realloc() it to grow it, and should free() it to + * delete it. + */ + int yy_is_our_buffer; + + /* Whether this is an "interactive" input source; if so, and + * if we're using stdio for input, then we want to use getc() + * instead of fread(), to make sure we stop fetching input after + * each newline. + */ + int yy_is_interactive; + + /* Whether we're considered to be at the beginning of a line. + * If so, '^' rules will be active on the next match, otherwise + * not. + */ + int yy_at_bol; + + int yy_bs_lineno; /**< The line count. */ + int yy_bs_column; /**< The column count. */ + + /* Whether to try to fill the input buffer when we reach the + * end of it. + */ + int yy_fill_buffer; + + int yy_buffer_status; + +#define YY_BUFFER_NEW 0 +#define YY_BUFFER_NORMAL 1 + /* When an EOF's been seen but there's still some text to process + * then we mark the buffer as YY_EOF_PENDING, to indicate that we + * shouldn't try reading from the input source any more. We might + * still have a bunch of tokens to match, though, because of + * possible backing-up. + * + * When we actually see the EOF, we change the status to "new" + * (via yyrestart()), so that the user can continue scanning by + * just pointing yyin at a new input file. + */ +#define YY_BUFFER_EOF_PENDING 2 + + }; +#endif /* !YY_STRUCT_YY_BUFFER_STATE */ + +/* Stack of input buffers. */ +static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */ +static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */ +static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */ + +/* We provide macros for accessing buffer states in case in the + * future we want to put the buffer states in a more general + * "scanner state". + * + * Returns the top of the stack, or NULL. + */ +#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ + ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ + : NULL) + +/* Same as previous macro, but useful when we know that the buffer stack is not + * NULL or when we need an lvalue. For internal use only. + */ +#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] + +/* yy_hold_char holds the character lost when yytext is formed. */ +static char yy_hold_char; +static int yy_n_chars; /* number of characters read into yy_ch_buf */ +int yyleng; + +/* Points to current character in buffer. */ +static char *yy_c_buf_p = (char *) 0; +static int yy_init = 0; /* whether we need to initialize */ +static int yy_start = 0; /* start state number */ + +/* Flag which is used to allow yywrap()'s to do buffer switches + * instead of setting up a fresh yyin. A bit of a hack ... + */ +static int yy_did_buffer_switch_on_eof; + +void yyrestart (FILE *input_file ); +void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ); +YY_BUFFER_STATE yy_create_buffer (FILE *file,int size ); +void yy_delete_buffer (YY_BUFFER_STATE b ); +void yy_flush_buffer (YY_BUFFER_STATE b ); +void yypush_buffer_state (YY_BUFFER_STATE new_buffer ); +void yypop_buffer_state (void ); + +static void yyensure_buffer_stack (void ); +static void yy_load_buffer_state (void ); +static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file ); + +#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER ) + +YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size ); +YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str ); +YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len ); + +void *yyalloc (yy_size_t ); +void *yyrealloc (void *,yy_size_t ); +void yyfree (void * ); + +#define yy_new_buffer yy_create_buffer + +#define yy_set_interactive(is_interactive) \ + { \ + if ( ! YY_CURRENT_BUFFER ){ \ + yyensure_buffer_stack (); \ + YY_CURRENT_BUFFER_LVALUE = \ + yy_create_buffer(yyin,YY_BUF_SIZE ); \ + } \ + YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ + } + +#define yy_set_bol(at_bol) \ + { \ + if ( ! YY_CURRENT_BUFFER ){\ + yyensure_buffer_stack (); \ + YY_CURRENT_BUFFER_LVALUE = \ + yy_create_buffer(yyin,YY_BUF_SIZE ); \ + } \ + YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ + } + +#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) + +/* Begin user sect3 */ + +typedef unsigned char YY_CHAR; + +FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0; + +typedef int yy_state_type; + +extern int yylineno; + +int yylineno = 1; + +extern char *yytext; +#define yytext_ptr yytext + +static yy_state_type yy_get_previous_state (void ); +static yy_state_type yy_try_NUL_trans (yy_state_type current_state ); +static int yy_get_next_buffer (void ); +static void yy_fatal_error (yyconst char msg[] ); + +/* Done after the current pattern has been matched and before the + * corresponding action - sets up yytext. + */ +#define YY_DO_BEFORE_ACTION \ + (yytext_ptr) = yy_bp; \ + yyleng = (size_t) (yy_cp - yy_bp); \ + (yy_hold_char) = *yy_cp; \ + *yy_cp = '\0'; \ + (yy_c_buf_p) = yy_cp; + +#define YY_NUM_RULES 168 +#define YY_END_OF_BUFFER 169 +/* This struct is not used in this scanner, + but its presence is necessary. */ +struct yy_trans_info + { + flex_int32_t yy_verify; + flex_int32_t yy_nxt; + }; +static yyconst flex_int16_t yy_accept[646] = + { 0, + 164, 164, 169, 167, 164, 164, 49, 7, 11, 167, + 37, 48, 167, 163, 5, 3, 35, 1, 1, 4, + 6, 167, 43, 46, 165, 165, 165, 165, 165, 165, + 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, + 165, 165, 38, 165, 36, 45, 2, 167, 44, 34, + 12, 13, 14, 39, 64, 65, 8, 40, 167, 167, + 167, 0, 164, 0, 70, 0, 0, 1, 1, 47, + 74, 0, 0, 0, 0, 73, 0, 0, 0, 0, + 0, 51, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 15, 16, 17, 0, 0, 0, + 0, 0, 70, 0, 50, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 62, 0, 63, 61, 0, 121, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 71, 0, 0, 0, 0, 0, 31, + 32, 33, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 42, 166, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 139, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 136, 66, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 41, 0, + 0, 9, 10, 0, 0, 0, 68, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 57, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, + 0, 145, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 158, + 0, 135, 0, 0, 0, 85, 78, 142, 0, 149, + 0, 0, 0, 0, 94, 0, 0, 89, 69, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 54, 53, 0, 0, 0, 0, 0, 0, 150, 0, + 0, 82, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 102, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 120, 0, 159, 0, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 0, 153, 0, 0, + 154, 0, 0, 0, 0, 0, 147, 58, 0, 0, + 0, 0, 138, 122, 0, 0, 0, 0, 0, 67, + 0, 110, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 146, 114, 0, 0, 0, 0, + 0, 0, 0, 77, 0, 0, 132, 0, 0, 0, + 118, 0, 0, 0, 0, 0, 0, 0, 160, 161, + 0, 0, 0, 0, 87, 0, 0, 0, 96, 91, + 111, 109, 0, 0, 0, 126, 0, 0, 0, 55, + 0, 0, 0, 81, 152, 0, 0, 98, 84, 90, + + 0, 0, 0, 88, 144, 0, 0, 0, 0, 0, + 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 117, 0, 140, 0, 0, 0, 0, 0, 156, 0, + 0, 125, 141, 0, 0, 0, 151, 0, 97, 0, + 0, 0, 0, 0, 0, 0, 0, 105, 0, 106, + 0, 0, 0, 0, 0, 0, 0, 116, 104, 0, + 133, 131, 79, 0, 0, 0, 0, 134, 119, 0, + 157, 0, 0, 127, 0, 0, 0, 0, 80, 155, + 0, 0, 0, 0, 0, 0, 0, 0, 112, 0, + 0, 0, 0, 92, 115, 113, 0, 103, 0, 0, + + 75, 76, 0, 130, 162, 143, 0, 0, 0, 93, + 59, 0, 0, 0, 124, 128, 0, 137, 0, 0, + 108, 100, 148, 0, 0, 0, 123, 0, 0, 0, + 0, 0, 56, 83, 0, 0, 129, 95, 60, 99, + 0, 107, 0, 72, 0 + } ; + +static yyconst flex_int32_t yy_ec[256] = + { 0, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 1, 4, 5, 6, 7, 8, 9, 10, + 11, 1, 12, 13, 14, 15, 16, 17, 17, 18, + 18, 18, 18, 17, 17, 17, 17, 19, 20, 21, + 1, 1, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 33, + 1, 49, 1, 50, 51, 1, 1, 1, 52, 1, + + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 53, 1, 54, 1, 55, 1, 56, + 1, 1, 1, 1, 1, 57, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 1, 1, 1, 1, 1, 71, 72, 1, + 1, 1, 1, 73, 1, 1, 1, 1, 74, 75, + 76, 1, 1, 77, 1, 1, 1, 1, 1, 1, + + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 78, 1, 79, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1 + } ; + +static yyconst flex_int32_t yy_meta[80] = + { 0, + 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1 + } ; + +static yyconst flex_int16_t yy_base[647] = + { 0, + 0, 0, 967, 916, 78, 80, 915, 914, 913, 82, + 912, 911, 84, 910, 909, 908, 907, 86, 88, 906, + 905, 79, 904, 903, 83, 44, 71, 87, 67, 102, + 103, 902, 112, 118, 123, 122, 70, 113, 72, 111, + 131, 128, 901, 135, 900, 899, 898, 897, 896, 895, + 894, 893, 892, 891, 890, 889, 888, 887, 127, 121, + 108, 905, 94, 180, 188, 190, 193, 197, 199, 968, + 968, 893, 889, 909, 900, 968, 896, 87, 902, 138, + 887, 968, 884, 901, 885, 887, 879, 210, 899, 885, + 877, 892, 889, 880, 869, 880, 880, 871, 866, 166, + + 886, 874, 195, 872, 871, 194, 867, 883, 881, 857, + 873, 871, 870, 870, 968, 968, 968, 153, 824, 185, + 844, 0, 254, 256, 968, 855, 869, 864, 867, 868, + 232, 202, 869, 855, 852, 848, 861, 968, 858, 851, + 858, 259, 854, 860, 846, 840, 843, 852, 838, 850, + 838, 851, 843, 831, 968, 830, 968, 968, 844, 834, + 844, 845, 821, 830, 839, 827, 201, 827, 835, 818, + 820, 828, 817, 968, 263, 844, 822, 813, 216, 968, + 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, + 968, 968, 968, 968, 968, 968, 968, 246, 818, 817, + + 816, 808, 273, 814, 822, 821, 816, 806, 803, 818, + 816, 811, 240, 814, 968, 236, 813, 814, 809, 796, + 796, 245, 792, 248, 803, 806, 796, 800, 288, 968, + 799, 802, 787, 796, 800, 290, 791, 788, 783, 781, + 786, 785, 788, 794, 787, 294, 787, 779, 968, 266, + 271, 968, 968, 783, 777, 272, 968, 785, 777, 303, + 770, 780, 271, 782, 782, 307, 283, 779, 765, 769, + 777, 775, 759, 310, 762, 776, 765, 321, 760, 293, + 770, 768, 759, 767, 765, 755, 324, 759, 751, 327, + 748, 751, 750, 743, 757, 748, 759, 331, 745, 737, + + 752, 752, 750, 734, 751, 303, 747, 746, 741, 748, + 741, 968, 733, 334, 732, 731, 739, 729, 724, 301, + 740, 725, 338, 734, 718, 732, 731, 341, 715, 345, + 312, 316, 733, 712, 711, 968, 711, 968, 726, 968, + 356, 721, 727, 709, 968, 712, 704, 968, 968, 703, + 358, 716, 362, 707, 709, 701, 707, 703, 710, 709, + 368, 372, 714, 701, 706, 692, 693, 689, 968, 708, + 703, 968, 693, 684, 331, 691, 695, 374, 696, 376, + 688, 694, 691, 346, 695, 693, 693, 691, 345, 682, + 382, 676, 675, 320, 674, 390, 686, 392, 388, 683, + + 675, 684, 682, 668, 673, 671, 674, 968, 677, 678, + 968, 673, 666, 665, 401, 653, 968, 968, 671, 656, + 665, 660, 407, 968, 410, 671, 413, 656, 656, 968, + 415, 968, 664, 655, 273, 649, 659, 391, 661, 659, + 656, 648, 418, 654, 968, 968, 422, 646, 655, 653, + 636, 428, 635, 968, 651, 645, 431, 638, 637, 637, + 968, 645, 435, 441, 645, 630, 444, 446, 968, 968, + 626, 448, 641, 644, 968, 630, 642, 631, 968, 968, + 968, 968, 640, 635, 636, 463, 465, 620, 634, 968, + 632, 467, 614, 620, 968, 628, 428, 623, 968, 968, + + 617, 609, 472, 968, 968, 628, 474, 614, 620, 605, + 968, 612, 476, 619, 610, 601, 607, 478, 480, 607, + 968, 612, 968, 482, 484, 597, 596, 505, 968, 603, + 487, 507, 968, 385, 608, 610, 968, 594, 598, 610, + 510, 512, 594, 603, 586, 586, 600, 968, 589, 968, + 586, 585, 591, 580, 489, 557, 558, 968, 968, 548, + 968, 516, 968, 542, 535, 522, 525, 968, 968, 530, + 968, 528, 525, 968, 535, 532, 519, 516, 968, 968, + 503, 469, 450, 549, 551, 435, 394, 396, 968, 384, + 387, 377, 366, 968, 968, 968, 282, 968, 553, 555, + + 968, 968, 568, 968, 968, 968, 557, 578, 257, 968, + 574, 244, 235, 580, 968, 968, 235, 968, 205, 183, + 968, 968, 968, 585, 597, 602, 968, 148, 590, 141, + 123, 88, 968, 968, 91, 607, 968, 968, 968, 968, + 604, 968, 609, 968, 968, 97 + } ; + +static yyconst flex_int16_t yy_def[647] = + { 0, + 645, 1, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 646, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 646, 645, 645, 646, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 0, 645 + } ; + +static yyconst flex_int16_t yy_nxt[1048] = + { 0, + 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 4, 14, 15, 4, 16, 17, 18, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 32, 32, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 32, 43, 44, 32, 32, 45, 46, + 47, 48, 49, 50, 4, 4, 4, 4, 4, 51, + 52, 53, 54, 4, 4, 4, 4, 55, 4, 56, + 4, 4, 4, 57, 58, 4, 59, 60, 61, 63, + 63, 63, 63, 64, 64, 66, 66, 68, 68, 69, + 69, 76, 71, 62, 77, 63, 63, 197, 65, 65, + + 67, 67, 68, 68, 68, 68, 101, 72, 78, 73, + 70, 79, 74, 83, 80, 105, 62, 75, 81, 62, + 62, 62, 131, 132, 82, 84, 642, 62, 62, 641, + 98, 62, 62, 62, 87, 62, 62, 62, 106, 85, + 88, 90, 86, 89, 102, 93, 95, 103, 91, 99, + 96, 62, 62, 104, 92, 94, 107, 62, 640, 100, + 62, 62, 62, 120, 121, 112, 97, 62, 110, 134, + 62, 62, 62, 108, 109, 113, 62, 62, 639, 135, + 62, 64, 64, 638, 62, 118, 115, 116, 117, 123, + 123, 66, 66, 119, 124, 124, 65, 65, 68, 68, + + 69, 69, 157, 125, 123, 123, 67, 67, 158, 124, + 124, 142, 142, 68, 68, 68, 68, 165, 161, 166, + 167, 70, 162, 180, 181, 168, 635, 206, 238, 169, + 207, 252, 239, 143, 144, 170, 171, 274, 274, 208, + 634, 145, 183, 184, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 123, 123, 124, 124, 203, + 142, 142, 633, 204, 246, 246, 125, 205, 253, 254, + 123, 123, 124, 124, 260, 260, 271, 255, 632, 275, + 272, 281, 143, 144, 284, 282, 247, 631, 285, 290, + 290, 298, 298, 312, 248, 246, 246, 313, 314, 318, + + 628, 261, 315, 319, 260, 260, 324, 325, 328, 328, + 330, 274, 274, 496, 331, 497, 291, 247, 623, 292, + 345, 299, 341, 341, 346, 353, 353, 300, 290, 290, + 372, 261, 298, 298, 373, 380, 380, 387, 329, 391, + 391, 388, 328, 328, 342, 343, 398, 398, 400, 401, + 354, 460, 402, 275, 399, 291, 403, 341, 341, 415, + 415, 461, 355, 353, 353, 381, 392, 439, 300, 425, + 425, 440, 329, 427, 427, 443, 443, 380, 380, 342, + 343, 455, 449, 391, 391, 416, 450, 456, 354, 467, + 467, 463, 463, 398, 398, 622, 426, 444, 428, 464, + + 355, 399, 415, 415, 468, 468, 621, 381, 487, 487, + 392, 425, 425, 620, 427, 427, 492, 492, 500, 443, + 443, 577, 501, 507, 507, 578, 465, 619, 416, 513, + 513, 618, 518, 518, 617, 488, 463, 463, 426, 428, + 519, 444, 524, 524, 464, 467, 467, 528, 528, 531, + 531, 549, 493, 508, 514, 550, 529, 525, 525, 551, + 468, 468, 528, 528, 541, 541, 487, 487, 492, 492, + 616, 532, 542, 555, 555, 507, 507, 513, 513, 518, + 518, 566, 566, 524, 524, 570, 570, 519, 531, 531, + 555, 555, 613, 488, 571, 612, 567, 567, 525, 525, + + 570, 570, 514, 556, 493, 508, 528, 528, 575, 575, + 532, 541, 541, 584, 584, 529, 576, 599, 599, 542, + 556, 528, 528, 566, 566, 600, 603, 603, 585, 585, + 611, 570, 570, 607, 607, 604, 575, 575, 567, 567, + 571, 603, 603, 610, 576, 609, 570, 570, 608, 608, + 584, 584, 614, 614, 599, 599, 624, 624, 607, 607, + 606, 615, 600, 605, 602, 585, 585, 614, 614, 603, + 603, 625, 625, 608, 608, 629, 629, 601, 604, 626, + 626, 614, 614, 598, 603, 603, 624, 624, 627, 597, + 615, 629, 629, 596, 626, 626, 614, 614, 636, 636, + + 630, 625, 625, 626, 626, 643, 643, 637, 636, 636, + 643, 643, 627, 636, 636, 595, 630, 637, 626, 626, + 594, 593, 592, 636, 636, 591, 590, 644, 589, 588, + 587, 586, 644, 583, 582, 581, 580, 579, 574, 573, + 572, 569, 568, 565, 564, 563, 562, 561, 560, 559, + 558, 557, 554, 553, 552, 548, 547, 546, 545, 544, + 543, 540, 539, 538, 537, 536, 535, 534, 533, 530, + 527, 526, 523, 522, 521, 520, 517, 516, 515, 512, + 511, 510, 509, 506, 505, 504, 503, 502, 499, 498, + 495, 494, 491, 490, 489, 486, 485, 484, 483, 482, + + 481, 480, 479, 478, 477, 476, 475, 474, 473, 472, + 471, 470, 469, 466, 462, 459, 458, 457, 454, 453, + 452, 451, 448, 447, 446, 445, 442, 441, 438, 437, + 436, 435, 434, 433, 432, 431, 430, 429, 424, 423, + 422, 421, 420, 419, 418, 417, 414, 413, 412, 411, + 410, 409, 408, 407, 406, 405, 404, 397, 396, 395, + 394, 393, 390, 389, 386, 385, 384, 383, 382, 379, + 378, 377, 376, 375, 374, 371, 370, 369, 368, 367, + 366, 365, 364, 363, 362, 361, 360, 359, 358, 357, + 356, 352, 351, 350, 349, 348, 347, 344, 340, 339, + + 338, 337, 336, 335, 334, 333, 332, 327, 326, 323, + 322, 321, 320, 317, 316, 311, 310, 309, 308, 307, + 306, 305, 304, 303, 302, 301, 297, 296, 295, 294, + 293, 289, 288, 287, 286, 283, 280, 279, 278, 277, + 276, 273, 270, 269, 268, 267, 266, 265, 264, 263, + 262, 259, 258, 257, 256, 251, 250, 249, 245, 244, + 243, 242, 241, 240, 237, 236, 235, 234, 233, 232, + 231, 230, 229, 228, 227, 226, 225, 224, 223, 222, + 221, 220, 219, 218, 217, 216, 215, 214, 213, 212, + 211, 210, 209, 202, 201, 200, 199, 198, 196, 182, + + 179, 178, 177, 176, 175, 174, 173, 172, 164, 163, + 160, 159, 156, 155, 154, 153, 152, 151, 150, 149, + 148, 147, 146, 141, 140, 139, 138, 137, 136, 133, + 130, 129, 128, 127, 126, 122, 62, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 114, 62, 62, 62, + 111, 62, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 645, 3, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645 + } ; + +static yyconst flex_int16_t yy_chk[1048] = + { 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, + 5, 6, 6, 10, 10, 13, 13, 18, 18, 19, + 19, 26, 22, 26, 27, 63, 63, 646, 10, 10, + + 13, 13, 18, 18, 19, 19, 37, 25, 27, 25, + 19, 27, 25, 29, 28, 39, 29, 25, 28, 37, + 27, 39, 78, 78, 28, 30, 635, 5, 22, 632, + 36, 10, 25, 13, 31, 18, 28, 19, 40, 30, + 31, 33, 30, 31, 38, 34, 35, 38, 33, 36, + 35, 30, 31, 38, 33, 34, 41, 61, 631, 36, + 40, 33, 38, 61, 61, 44, 35, 34, 42, 80, + 60, 36, 35, 41, 41, 44, 59, 42, 630, 80, + 41, 64, 64, 628, 44, 60, 59, 59, 59, 65, + 65, 66, 66, 60, 67, 67, 64, 64, 68, 68, + + 69, 69, 100, 67, 65, 65, 66, 66, 100, 67, + 67, 88, 88, 68, 68, 69, 69, 106, 103, 106, + 106, 69, 103, 118, 118, 106, 620, 132, 167, 106, + 132, 179, 167, 88, 88, 106, 106, 216, 216, 132, + 619, 88, 120, 120, 120, 120, 120, 120, 120, 120, + 120, 120, 120, 120, 120, 123, 123, 124, 124, 131, + 142, 142, 617, 131, 175, 175, 124, 131, 179, 198, + 123, 123, 124, 124, 203, 203, 213, 198, 613, 216, + 213, 222, 142, 142, 224, 222, 175, 612, 224, 229, + 229, 236, 236, 250, 175, 246, 246, 250, 251, 256, + + 609, 203, 251, 256, 260, 260, 263, 263, 266, 266, + 267, 274, 274, 435, 267, 435, 229, 246, 597, 229, + 280, 236, 278, 278, 280, 287, 287, 236, 290, 290, + 306, 260, 298, 298, 306, 314, 314, 320, 266, 323, + 323, 320, 328, 328, 278, 278, 330, 330, 331, 331, + 287, 394, 332, 274, 330, 290, 332, 341, 341, 351, + 351, 394, 287, 353, 353, 314, 323, 375, 298, 361, + 361, 375, 328, 362, 362, 378, 378, 380, 380, 341, + 341, 389, 384, 391, 391, 351, 384, 389, 353, 399, + 399, 396, 396, 398, 398, 593, 361, 378, 362, 396, + + 353, 398, 415, 415, 399, 399, 592, 380, 423, 423, + 391, 425, 425, 591, 427, 427, 431, 431, 438, 443, + 443, 534, 438, 447, 447, 534, 396, 590, 415, 452, + 452, 588, 457, 457, 587, 423, 463, 463, 425, 427, + 457, 443, 464, 464, 463, 467, 467, 468, 468, 472, + 472, 497, 431, 447, 452, 497, 468, 464, 464, 497, + 467, 467, 468, 468, 486, 486, 487, 487, 492, 492, + 586, 472, 486, 503, 503, 507, 507, 513, 513, 518, + 518, 519, 519, 524, 524, 525, 525, 518, 531, 531, + 555, 555, 583, 487, 525, 582, 519, 519, 524, 524, + + 525, 525, 513, 503, 492, 507, 528, 528, 532, 532, + 531, 541, 541, 542, 542, 528, 532, 562, 562, 541, + 555, 528, 528, 566, 566, 562, 567, 567, 542, 542, + 581, 570, 570, 576, 576, 567, 575, 575, 566, 566, + 570, 567, 567, 578, 575, 577, 570, 570, 576, 576, + 584, 584, 585, 585, 599, 599, 600, 600, 607, 607, + 573, 585, 599, 572, 565, 584, 584, 585, 585, 603, + 603, 600, 600, 607, 607, 611, 611, 564, 603, 608, + 608, 614, 614, 560, 603, 603, 624, 624, 608, 557, + 614, 629, 629, 556, 608, 608, 614, 614, 625, 625, + + 611, 624, 624, 626, 626, 641, 641, 625, 636, 636, + 643, 643, 626, 625, 625, 554, 629, 636, 626, 626, + 553, 552, 551, 636, 636, 549, 547, 641, 546, 545, + 544, 543, 643, 540, 539, 538, 536, 535, 530, 527, + 526, 522, 520, 517, 516, 515, 514, 512, 510, 509, + 508, 506, 502, 501, 498, 496, 494, 493, 491, 489, + 488, 485, 484, 483, 478, 477, 476, 474, 473, 471, + 466, 465, 462, 460, 459, 458, 456, 455, 453, 451, + 450, 449, 448, 444, 442, 441, 440, 439, 437, 436, + 434, 433, 429, 428, 426, 422, 421, 420, 419, 416, + + 414, 413, 412, 410, 409, 407, 406, 405, 404, 403, + 402, 401, 400, 397, 395, 393, 392, 390, 388, 387, + 386, 385, 383, 382, 381, 379, 377, 376, 374, 373, + 371, 370, 368, 367, 366, 365, 364, 363, 360, 359, + 358, 357, 356, 355, 354, 352, 350, 347, 346, 344, + 343, 342, 339, 337, 335, 334, 333, 329, 327, 326, + 325, 324, 322, 321, 319, 318, 317, 316, 315, 313, + 311, 310, 309, 308, 307, 305, 304, 303, 302, 301, + 300, 299, 297, 296, 295, 294, 293, 292, 291, 289, + 288, 286, 285, 284, 283, 282, 281, 279, 277, 276, + + 275, 273, 272, 271, 270, 269, 268, 265, 264, 262, + 261, 259, 258, 255, 254, 248, 247, 245, 244, 243, + 242, 241, 240, 239, 238, 237, 235, 234, 233, 232, + 231, 228, 227, 226, 225, 223, 221, 220, 219, 218, + 217, 214, 212, 211, 210, 209, 208, 207, 206, 205, + 204, 202, 201, 200, 199, 178, 177, 176, 173, 172, + 171, 170, 169, 168, 166, 165, 164, 163, 162, 161, + 160, 159, 156, 154, 153, 152, 151, 150, 149, 148, + 147, 146, 145, 144, 143, 141, 140, 139, 137, 136, + 135, 134, 133, 130, 129, 128, 127, 126, 121, 119, + + 114, 113, 112, 111, 110, 109, 108, 107, 105, 104, + 102, 101, 99, 98, 97, 96, 95, 94, 93, 92, + 91, 90, 89, 87, 86, 85, 84, 83, 81, 79, + 77, 75, 74, 73, 72, 62, 58, 57, 56, 55, + 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, + 43, 32, 24, 23, 21, 20, 17, 16, 15, 14, + 12, 11, 9, 8, 7, 4, 3, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 645 + } ; + +static yy_state_type yy_last_accepting_state; +static char *yy_last_accepting_cpos; + +extern int yy_flex_debug; +int yy_flex_debug = 0; + +/* The intent behind this definition is that it'll catch + * any uses of REJECT which flex missed. + */ +#define REJECT reject_used_but_not_detected +#define yymore() yymore_used_but_not_detected +#define YY_MORE_ADJ 0 +#define YY_RESTORE_YY_MORE_OFFSET +char *yytext; +#line 1 "lexer.l" +#line 5 "lexer.l" +/* the directives above are for Solaris lex, and will be ignored by + * flex */ + +/* + * NAME + * lexer.l -- source for the C-INTERCAL lexical analyzer. + * +LICENSE TERMS + Copyright (C) 1996 Eric S. Raymond + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ +#include "config.h" +#include +#include +#include +#include +#include "ick.h" +#include "parser.h" +#include "ick_lose.h" + +/*#undef wchar_t*/ +/*#define wchar_t unsigned char*/ + +#ifndef yywrap +static int yywrap(void) +{ + return 1; +} +#endif /* yywrap */ + +int iyylineno = 1; + +#ifdef MAIN +YYSTYPE yylval; +#endif /* MAIN */ + +char **textlines = NULL; +int textlinecount = 0; +int politesse = 0; +int stbeginline = 0; + +/* AIS: Sort out a grammar near-ambiguity */ +unsigned long sparkearsstack[SENESTMAX] = {0}; +int sparkearslev = 0; + +/* AIS: Some symbols are ambiguous between C-INTERCAL and CLC-INTERCAL: + Symbol C-INTERCAL CLC-INTERCAL + NOSPOT _ @ + WHIRL @ ? + XOR ? yen, or bookworm (bookworm's also C-INTERCAL legal) + By default, the C-INTERCAL meanings are used; the extern variable clclex + causes CLC-INTERCAL interpretations to be put on the ambiguous symbols. + Otherwise, mixing syntaxes freely is allowed. */ +extern int clclex; + +#ifdef FLEX_SCANNER +static char linebuf[YY_BUF_SIZE]; +#else /* FLEX_SCANNER */ +static char linebuf[YYLMAX]; +#endif /* FLEX_SCANNER */ + +static char *lineptr = linebuf; + +ick_bool re_send_token = ick_FALSE; + +int lexer(void); +static int myatoi(char *text); + +#define SETLINENO \ + {if (stbeginline == 0) stbeginline = iyylineno;\ + else if (stbeginline < 0) stbeginline = 0;} + +/* AIS: Keep track of the spark/ears situation */ +#define STACKSPARKEARS(a) \ + if (sparkearslev+1>=SENESTMAX*32) ick_lose(IE281, iyylineno, (char*) NULL); \ + sparkearslev++; sparkearsstack[sparkearslev/32]<<=1; \ + sparkearsstack[sparkearslev/32]+=a +#define CLEARSPARKEARSTACK {int i=SENESTMAX; \ + while(i--) sparkearsstack[i] = 0;} \ + sparkearslev = 0 + +/* + * The spectacular ugliness of INTERCAL syntax requires that the lexical + * analyzer have two levels. One, embedded in the getc() function, handles + * logical-line continuation and the ! abbrev, and stashes each logical + * line away in a buffer accessible to the code generator (this is necessary + * for the * construct to be interpreted correctly). The upper level is + * generated by lex(1) and does normal tokenizing. + */ + +#undef getc +int getc(FILE *fp) +{ + extern FILE* yyin; + + static ick_bool bangflag = ick_FALSE; + static ick_bool backflag = ick_FALSE; + + static ick_bool eolflag = ick_FALSE; + + if ((size_t)(lineptr - linebuf) > sizeof linebuf) + ick_lose(IE666, iyylineno, (char *)NULL); + + if (bangflag) + { + bangflag = ick_FALSE; + /* *lineptr++ = '!'; */ + return('.'); + } + else if (backflag) /* converting ctrl-H (backspace) to two chars "^H" */ + { + backflag = ick_FALSE; + /* *lineptr++ = '\b'; */ + return('H'); + } + else + { + int c; + char c_char; + /*fprintf(stderr,"about to fgetc(\045p)",(void*)fp);*/ + + c_char=0; /* AIS */ + (void)fread(&c_char,1,1,fp); + /* AIS: ignore the first \r in a row to deal with DOS newlines. The + second in a row is definitely an error, though, and will be caught + later on. */ + if(c_char=='\r') (void)fread(&c_char,1,1,fp); + c = c_char; + + if(feof(fp)) c=EOF; + if(!eolflag && c == EOF) c = '\n'; + + /*fprintf(stderr,"getc input a character: %c\n",c);*/ + + if (feof(yyin)) + { + *lineptr = '\0'; + if(eolflag) return(EOF); + if(c=='\0' || c==EOF) c='\n'; + } + + eolflag = ick_FALSE; + + if (c == '!') + { + *lineptr++ = '!'; + bangflag = ick_TRUE; + return(c = '\''); + } + else if (c == '\b') /* convert ctrl-H (backspace) to + two chars "^" and "H" so lex can take it */ + { + *lineptr++ = '\b'; + backflag = ick_TRUE; + return(c = '^'); + } + else if (c == '\n') + { + *lineptr = '\0'; + lineptr = linebuf; + if (iyylineno >= textlinecount) + { + textlinecount += ALLOC_CHUNK; + if (textlines) + textlines = realloc(textlines, + textlinecount * sizeof(char*)); + else + textlines = malloc(textlinecount * sizeof(char*)); + if (!textlines) + ick_lose(IE666, iyylineno, (char *)NULL); + } + textlines[iyylineno] = malloc(1 + strlen(linebuf)); + if (!textlines[iyylineno]) + ick_lose(IE666, iyylineno, (char *)NULL); + strcpy(textlines[iyylineno], linebuf); + iyylineno++; + eolflag=ick_TRUE; + return('\n'); + } + else + { + return(*lineptr++ = c); + } + } +} + +/* replace YY_INPUT so that it uses our getc function. */ +#undef YY_INPUT +#define YY_INPUT(buf,result,max_size) \ + { \ + int c = getc(yyin); \ + if (c == EOF) { \ + if (ferror(yyin)) \ + YY_FATAL_ERROR("input in flex scanner failed"); \ + result = YY_NULL; \ + } else { \ + buf[0] = c; \ + result = 1; \ + } \ + } + +#line 1116 "lexer.c" + +#define INITIAL 0 + +#ifndef YY_NO_UNISTD_H +/* Special case for "unistd.h", since it is non-ANSI. We include it way + * down here because we want the user's section 1 to have been scanned first. + * The user has a chance to override it with an option. + */ +#include +#endif + +#ifndef YY_EXTRA_TYPE +#define YY_EXTRA_TYPE void * +#endif + +static int yy_init_globals (void ); + +/* Macros after this point can all be overridden by user definitions in + * section 1. + */ + +#ifndef YY_SKIP_YYWRAP +#ifdef __cplusplus +extern "C" int yywrap (void ); +#else +extern int yywrap (void ); +#endif +#endif + + static void yyunput (int c,char *buf_ptr ); + +#ifndef yytext_ptr +static void yy_flex_strncpy (char *,yyconst char *,int ); +#endif + +#ifdef YY_NEED_STRLEN +static int yy_flex_strlen (yyconst char * ); +#endif + +#ifndef YY_NO_INPUT + +#ifdef __cplusplus +static int yyinput (void ); +#else +static int input (void ); +#endif + +#endif + +/* Amount of stuff to slurp up with each read. */ +#ifndef YY_READ_BUF_SIZE +#define YY_READ_BUF_SIZE 8192 +#endif + +/* Copy whatever the last rule matched to the standard output. */ +#ifndef ECHO +/* This used to be an fputs(), but since the string might contain NUL's, + * we now use fwrite(). + */ +#define ECHO fwrite( yytext, yyleng, 1, yyout ) +#endif + +/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, + * is returned in "result". + */ +#ifndef YY_INPUT +#define YY_INPUT(buf,result,max_size) \ + if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ + { \ + int c = '*'; \ + int n; \ + for ( n = 0; n < max_size && \ + (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ + buf[n] = (char) c; \ + if ( c == '\n' ) \ + buf[n++] = (char) c; \ + if ( c == EOF && ferror( yyin ) ) \ + YY_FATAL_ERROR( "input in flex scanner failed" ); \ + result = n; \ + } \ + else \ + { \ + errno=0; \ + while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \ + { \ + if( errno != EINTR) \ + { \ + YY_FATAL_ERROR( "input in flex scanner failed" ); \ + break; \ + } \ + errno=0; \ + clearerr(yyin); \ + } \ + }\ +\ + +#endif + +/* No semi-colon after return; correct usage is to write "yyterminate();" - + * we don't want an extra ';' after the "return" because that will cause + * some compilers to complain about unreachable statements. + */ +#ifndef yyterminate +#define yyterminate() return YY_NULL +#endif + +/* Number of entries by which start-condition stack grows. */ +#ifndef YY_START_STACK_INCR +#define YY_START_STACK_INCR 25 +#endif + +/* Report a fatal error. */ +#ifndef YY_FATAL_ERROR +#define YY_FATAL_ERROR(msg) yy_fatal_error( msg ) +#endif + +/* end tables serialization structures and prototypes */ + +/* Default declaration of generated scanner - a define so the user can + * easily add parameters. + */ +#ifndef YY_DECL +#define YY_DECL_IS_OURS 1 + +extern int yylex (void); + +#define YY_DECL int yylex (void) +#endif /* !YY_DECL */ + +/* Code executed at the beginning of each rule, after yytext and yyleng + * have been set up. + */ +#ifndef YY_USER_ACTION +#define YY_USER_ACTION +#endif + +/* Code executed at the end of each rule. */ +#ifndef YY_BREAK +#define YY_BREAK break; +#endif + +#define YY_RULE_SETUP \ + YY_USER_ACTION + +/** The main scanner function which does all the work. + */ +YY_DECL +{ + register yy_state_type yy_current_state; + register char *yy_cp, *yy_bp; + register int yy_act; + +#line 225 "lexer.l" + + +#line 1272 "lexer.c" + + if ( !(yy_init) ) + { + (yy_init) = 1; + +#ifdef YY_USER_INIT + YY_USER_INIT; +#endif + + if ( ! (yy_start) ) + (yy_start) = 1; /* first start state */ + + if ( ! yyin ) + yyin = stdin; + + if ( ! yyout ) + yyout = stdout; + + if ( ! YY_CURRENT_BUFFER ) { + yyensure_buffer_stack (); + YY_CURRENT_BUFFER_LVALUE = + yy_create_buffer(yyin,YY_BUF_SIZE ); + } + + yy_load_buffer_state( ); + } + + while ( 1 ) /* loops until end-of-file is reached */ + { + yy_cp = (yy_c_buf_p); + + /* Support of yytext. */ + *yy_cp = (yy_hold_char); + + /* yy_bp points to the position in yy_ch_buf of the start of + * the current run. + */ + yy_bp = yy_cp; + + yy_current_state = (yy_start); +yy_match: + do + { + register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; + if ( yy_accept[yy_current_state] ) + { + (yy_last_accepting_state) = yy_current_state; + (yy_last_accepting_cpos) = yy_cp; + } + while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) + { + yy_current_state = (int) yy_def[yy_current_state]; + if ( yy_current_state >= 646 ) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + ++yy_cp; + } + while ( yy_base[yy_current_state] != 968 ); + +yy_find_action: + yy_act = yy_accept[yy_current_state]; + if ( yy_act == 0 ) + { /* have to back up */ + yy_cp = (yy_last_accepting_cpos); + yy_current_state = (yy_last_accepting_state); + yy_act = yy_accept[yy_current_state]; + } + + YY_DO_BEFORE_ACTION; + +do_action: /* This label is used only to access EOF actions. */ + + switch ( yy_act ) + { /* beginning of action switch */ + case 0: /* must back up */ + /* undo the effects of YY_DO_BEFORE_ACTION */ + *yy_cp = (yy_hold_char); + yy_cp = (yy_last_accepting_cpos); + yy_current_state = (yy_last_accepting_state); + goto yy_find_action; + +case 1: +/* rule 1 can match eol */ +YY_RULE_SETUP +#line 227 "lexer.l" +{yylval.numval = myatoi(yytext); return(NUMBER);} + YY_BREAK +case 2: +YY_RULE_SETUP +#line 228 "lexer.l" +{return(NOSPOT);} + YY_BREAK +case 3: +YY_RULE_SETUP +#line 229 "lexer.l" +{return(ick_ONESPOT);} + YY_BREAK +case 4: +YY_RULE_SETUP +#line 230 "lexer.l" +{return(ick_TWOSPOT);} + YY_BREAK +case 5: +YY_RULE_SETUP +#line 231 "lexer.l" +{return(ick_TAIL);} + YY_BREAK +case 6: +YY_RULE_SETUP +#line 232 "lexer.l" +{return(ick_HYBRID);} + YY_BREAK +case 7: +YY_RULE_SETUP +#line 233 "lexer.l" +{return(MESH);} + YY_BREAK +case 8: +#line 236 "lexer.l" +case 9: +#line 237 "lexer.l" +case 10: +YY_RULE_SETUP +#line 237 "lexer.l" +{return(MINGLE); /* AIS: CLC-INTERCAL ick_mingle symbols. + The \xBD is ISO-8859-1 for cent. */} + YY_BREAK +case 11: +#line 240 "lexer.l" +case 12: +#line 241 "lexer.l" +case 13: +#line 242 "lexer.l" +case 14: +#line 243 "lexer.l" +case 15: +#line 244 "lexer.l" +case 16: +#line 245 "lexer.l" +case 17: +#line 246 "lexer.l" +case 18: +#line 247 "lexer.l" +case 19: +#line 248 "lexer.l" +case 20: +#line 249 "lexer.l" +case 21: +#line 250 "lexer.l" +case 22: +#line 251 "lexer.l" +case 23: +#line 252 "lexer.l" +case 24: +#line 253 "lexer.l" +case 25: +#line 254 "lexer.l" +case 26: +#line 255 "lexer.l" +case 27: +#line 256 "lexer.l" +case 28: +#line 257 "lexer.l" +case 29: +#line 258 "lexer.l" +case 30: +#line 259 "lexer.l" +case 31: +#line 260 "lexer.l" +case 32: +#line 261 "lexer.l" +case 33: +YY_RULE_SETUP +#line 261 "lexer.l" +{return(MINGLE);} + YY_BREAK +case 34: +YY_RULE_SETUP +#line 263 "lexer.l" +{return(SELECT);} + YY_BREAK +case 35: +YY_RULE_SETUP +#line 265 "lexer.l" +{return(SLAT); /* AIS: Operand overloading */} + YY_BREAK +case 36: +YY_RULE_SETUP +#line 266 "lexer.l" +{return(BACKSLAT); /* ditto */} + YY_BREAK +case 37: +YY_RULE_SETUP +#line 268 "lexer.l" +{yylval.numval = AND; return(UNARY);} + YY_BREAK +case 38: +YY_RULE_SETUP +#line 269 "lexer.l" +{yylval.numval = OR; return(UNARY);} + YY_BREAK +case 39: +#line 271 "lexer.l" +case 40: +#line 272 "lexer.l" +case 41: +#line 273 "lexer.l" +case 42: +YY_RULE_SETUP +#line 273 "lexer.l" +{yylval.numval = XOR; return(UNARY); + /* AIS: CLC-INTERCAL uses \xBE, ISO-8859-1 for yen; + for some reason, \xA5 is what was detected by the compiler + during my tests, so that's here too */} + YY_BREAK +case 43: +YY_RULE_SETUP +#line 277 "lexer.l" +{if(clclex) yylval.numval = WHIRL; + else yylval.numval = XOR; return(UNARY); + /* AIS: ? is a unary operator in both C-INTERCAL and + CLC-INTERCAL, but with different meanings. */} + YY_BREAK +case 44: +#line 282 "lexer.l" +case 45: +YY_RULE_SETUP +#line 282 "lexer.l" +{yylval.numval = FIN; return(UNARY); /* AIS: | is CLC */} + YY_BREAK +case 46: +YY_RULE_SETUP +#line 283 "lexer.l" +{if(clclex) return(NOSPOT); /* AIS: a C/CLC ambiguity */ + else {yylval.numval = WHIRL; return(UNARY);}} + YY_BREAK +case 47: +/* rule 47 can match eol */ +YY_RULE_SETUP +#line 285 "lexer.l" +{yylval.numval = WHIRL + myatoi(yytext) - 1; return(UNARY);} + YY_BREAK +case 48: +YY_RULE_SETUP +#line 287 "lexer.l" +{char temp = sparkearsstack[sparkearslev/32]&1; + STACKSPARKEARS(0); /* AIS: I added all mentions of + STACKSPARKEARS, OPEN\(SPARK\|EARS\), + CLOSE\(SPARK\|EARS\), + and CLEARSPARKEARSTACK */ + return(temp?OPENSPARK:CLOSESPARK);} + YY_BREAK +case 49: +YY_RULE_SETUP +#line 293 "lexer.l" +{char temp = sparkearsstack[sparkearslev/32]&1; + STACKSPARKEARS(1); + return(temp?CLOSEEARS:OPENEARS);} + YY_BREAK +case 50: +/* rule 50 can match eol */ +YY_RULE_SETUP +#line 297 "lexer.l" +{SETLINENO; yylval.numval = myatoi(yytext); return(LABEL);} + YY_BREAK +case 51: +YY_RULE_SETUP +#line 299 "lexer.l" +{SETLINENO; CLEARSPARKEARSTACK; return(DO);} + YY_BREAK +case 52: +YY_RULE_SETUP +#line 300 "lexer.l" +{SETLINENO; CLEARSPARKEARSTACK; return(DO);} + YY_BREAK +case 53: +YY_RULE_SETUP +#line 301 "lexer.l" +{SETLINENO; CLEARSPARKEARSTACK; politesse++; return(DO);} + YY_BREAK +case 54: +YY_RULE_SETUP +#line 302 "lexer.l" +{SETLINENO; CLEARSPARKEARSTACK; politesse++; return(DO);} + YY_BREAK +case 55: +/* rule 55 can match eol */ +YY_RULE_SETUP +#line 303 "lexer.l" +{SETLINENO; CLEARSPARKEARSTACK; politesse++; return(DO);} + YY_BREAK +case 56: +/* rule 56 can match eol */ +YY_RULE_SETUP +#line 304 "lexer.l" +{SETLINENO; CLEARSPARKEARSTACK; politesse++; return(DO);} + YY_BREAK +case 57: +YY_RULE_SETUP +#line 305 "lexer.l" +{SETLINENO; CLEARSPARKEARSTACK; return(MAYBE);} + YY_BREAK +case 58: +/* rule 58 can match eol */ +YY_RULE_SETUP +#line 306 "lexer.l" +{SETLINENO; CLEARSPARKEARSTACK; return(MAYBE);} + YY_BREAK +case 59: +/* rule 59 can match eol */ +YY_RULE_SETUP +#line 307 "lexer.l" +{SETLINENO; CLEARSPARKEARSTACK; politesse++; return(MAYBE);} + YY_BREAK +case 60: +/* rule 60 can match eol */ +YY_RULE_SETUP +#line 308 "lexer.l" +{SETLINENO; CLEARSPARKEARSTACK; politesse++; return(MAYBE); + /* AIS: I added all the MAYBE cases. It seems that MAYBE + has no simple Latin synonym. */} + YY_BREAK +case 61: +YY_RULE_SETUP +#line 312 "lexer.l" +{return(NOT);} + YY_BREAK +case 62: +YY_RULE_SETUP +#line 313 "lexer.l" +{return(NOT);} + YY_BREAK +case 63: +YY_RULE_SETUP +#line 314 "lexer.l" +{return(NOT);} + YY_BREAK +case 64: +YY_RULE_SETUP +#line 315 "lexer.l" +{return(NOT); /* AIS: CLC-INTERCAL again, this time it's + ISO-8859-1 for the logical NOT symbol... */} + YY_BREAK +case 65: +YY_RULE_SETUP +#line 317 "lexer.l" +{return(NOT); /* ... but my computer translates it to \xAC */} + YY_BREAK +case 66: +YY_RULE_SETUP +#line 319 "lexer.l" +{return(ONCE);} + YY_BREAK +case 67: +YY_RULE_SETUP +#line 320 "lexer.l" +{return(ONCE);} + YY_BREAK +case 68: +YY_RULE_SETUP +#line 321 "lexer.l" +{return(AGAIN);} + YY_BREAK +case 69: +YY_RULE_SETUP +#line 322 "lexer.l" +{return(AGAIN);} + YY_BREAK +case 70: +/* rule 70 can match eol */ +YY_RULE_SETUP +#line 324 "lexer.l" +{yylval.numval = myatoi(yytext); + if (yylval.numval && yylval.numval < 100) + return(OHOHSEVEN); + else + ick_lose(IE017, iyylineno, (char *)NULL);} + YY_BREAK +case 71: +YY_RULE_SETUP +#line 329 "lexer.l" +{return(SUB);} + YY_BREAK +case 72: +/* rule 72 can match eol */ +#line 331 "lexer.l" +case 73: +/* rule 73 can match eol */ +YY_RULE_SETUP +#line 331 "lexer.l" +{return(BY);} + YY_BREAK +case 74: +YY_RULE_SETUP +#line 333 "lexer.l" +{return(GETS);} + YY_BREAK +case 75: +#line 335 "lexer.l" +case 76: +YY_RULE_SETUP +#line 335 "lexer.l" +{yylval.numval = GETS; return(GERUND);} + YY_BREAK +case 77: +#line 338 "lexer.l" +case 78: +YY_RULE_SETUP +#line 338 "lexer.l" +{return(FORGET);} + YY_BREAK +case 79: +#line 340 "lexer.l" +case 80: +YY_RULE_SETUP +#line 340 "lexer.l" +{yylval.numval = FORGET; return(GERUND);} + YY_BREAK +case 81: +#line 342 "lexer.l" +case 82: +YY_RULE_SETUP +#line 342 "lexer.l" +{return(RESUME);} + YY_BREAK +case 83: +#line 344 "lexer.l" +case 84: +YY_RULE_SETUP +#line 344 "lexer.l" +{yylval.numval = RESUME; return(GERUND);} + YY_BREAK +case 85: +#line 346 "lexer.l" +case 86: +YY_RULE_SETUP +#line 346 "lexer.l" +{return(STASH);} + YY_BREAK +case 87: +#line 348 "lexer.l" +case 88: +YY_RULE_SETUP +#line 348 "lexer.l" +{yylval.numval = STASH; return(GERUND);} + YY_BREAK +case 89: +#line 350 "lexer.l" +case 90: +YY_RULE_SETUP +#line 350 "lexer.l" +{return(RETRIEVE);} + YY_BREAK +case 91: +#line 352 "lexer.l" +case 92: +YY_RULE_SETUP +#line 352 "lexer.l" +{yylval.numval = RETRIEVE; return(GERUND);} + YY_BREAK +case 93: +#line 354 "lexer.l" +case 94: +YY_RULE_SETUP +#line 354 "lexer.l" +{return(IGNORE);} + YY_BREAK +case 95: +#line 356 "lexer.l" +case 96: +YY_RULE_SETUP +#line 356 "lexer.l" +{yylval.numval = IGNORE; return(GERUND);} + YY_BREAK +case 97: +#line 358 "lexer.l" +case 98: +YY_RULE_SETUP +#line 358 "lexer.l" +{return(REMEMBER);} + YY_BREAK +case 99: +#line 360 "lexer.l" +case 100: +YY_RULE_SETUP +#line 360 "lexer.l" +{yylval.numval = REMEMBER; return(GERUND);} + YY_BREAK +case 101: +#line 362 "lexer.l" +case 102: +YY_RULE_SETUP +#line 362 "lexer.l" +{return(ABSTAIN);} + YY_BREAK +case 103: +#line 364 "lexer.l" +case 104: +YY_RULE_SETUP +#line 364 "lexer.l" +{yylval.numval = ABSTAIN; return(GERUND);} + YY_BREAK +case 105: +#line 366 "lexer.l" +case 106: +YY_RULE_SETUP +#line 366 "lexer.l" +{return(REINSTATE);} + YY_BREAK +case 107: +#line 368 "lexer.l" +case 108: +YY_RULE_SETUP +#line 368 "lexer.l" +{yylval.numval = REINSTATE; return(GERUND);} + YY_BREAK +case 109: +/* rule 109 can match eol */ +#line 370 "lexer.l" +case 110: +/* rule 110 can match eol */ +YY_RULE_SETUP +#line 370 "lexer.l" +{return(READ_OUT);} + YY_BREAK +case 111: +#line 372 "lexer.l" +case 112: +/* rule 112 can match eol */ +YY_RULE_SETUP +#line 372 "lexer.l" +{yylval.numval = READ_OUT; return(GERUND);} + YY_BREAK +case 113: +/* rule 113 can match eol */ +#line 374 "lexer.l" +case 114: +/* rule 114 can match eol */ +YY_RULE_SETUP +#line 374 "lexer.l" +{return(WRITE_IN);} + YY_BREAK +case 115: +#line 376 "lexer.l" +case 116: +/* rule 116 can match eol */ +YY_RULE_SETUP +#line 376 "lexer.l" +{yylval.numval = WRITE_IN; return(GERUND);} + YY_BREAK +case 117: +#line 378 "lexer.l" +case 118: +#line 379 "lexer.l" +case 119: +#line 380 "lexer.l" +case 120: +YY_RULE_SETUP +#line 380 "lexer.l" +{yylval.numval = UNKNOWN; return(GERUND); + /* AIS: An idea stolen from CLC-INTERCAL. + The Latin means literally 'remind' or 'mention'. */} + YY_BREAK +case 121: +YY_RULE_SETUP +#line 383 "lexer.l" +{/* By AIS. I can't find a Latin translation for this. */ + return(PIN);} + YY_BREAK +case 122: +YY_RULE_SETUP +#line 385 "lexer.l" +{/* By AIS */ yylval.numval = PIN; return(GERUND);} + YY_BREAK +case 123: +/* rule 123 can match eol */ +#line 387 "lexer.l" +case 124: +/* rule 124 can match eol */ +YY_RULE_SETUP +#line 387 "lexer.l" +{/* AIS */ yylval.numval = myatoi(yytext); + return(NEXTFROMLABEL);} + YY_BREAK +case 125: +/* rule 125 can match eol */ +#line 390 "lexer.l" +case 126: +/* rule 126 can match eol */ +YY_RULE_SETUP +#line 390 "lexer.l" +{/* AIS: 'next' is not a verb, so the Latin is invented */ + return(NEXTFROMEXPR);} + YY_BREAK +case 127: +#line 393 "lexer.l" +case 128: +/* rule 128 can match eol */ +YY_RULE_SETUP +#line 393 "lexer.l" +{/* AIS */ yylval.numval = NEXTFROMLABEL; return(GERUND);} + YY_BREAK +case 129: +/* rule 129 can match eol */ +#line 395 "lexer.l" +case 130: +/* rule 130 can match eol */ +YY_RULE_SETUP +#line 395 "lexer.l" +{/* AIS */ yylval.numval = myatoi(yytext); + return(COME_FROM);} + YY_BREAK +case 131: +/* rule 131 can match eol */ +#line 398 "lexer.l" +case 132: +/* rule 132 can match eol */ +YY_RULE_SETUP +#line 398 "lexer.l" +{/* AIS */ return(COMPUCOME);} + YY_BREAK +case 133: +#line 400 "lexer.l" +case 134: +/* rule 134 can match eol */ +YY_RULE_SETUP +#line 400 "lexer.l" +{yylval.numval = COME_FROM; return(GERUND);} + YY_BREAK +case 135: +#line 402 "lexer.l" +case 136: +YY_RULE_SETUP +#line 402 "lexer.l" +{stbeginline = 0; return(NEXT);} + YY_BREAK +case 137: +#line 404 "lexer.l" +case 138: +YY_RULE_SETUP +#line 404 "lexer.l" +{yylval.numval = NEXT; return(GERUND);} + YY_BREAK +case 139: +YY_RULE_SETUP +#line 405 "lexer.l" +{return(FROM); /* AIS: Latin is 'A', which confuses the rest + of the parser */} + YY_BREAK +case 140: +#line 408 "lexer.l" +case 141: +#line 409 "lexer.l" +case 142: +/* rule 142 can match eol */ +YY_RULE_SETUP +#line 409 "lexer.l" +{return(GIVE_UP);} + YY_BREAK +case 143: +/* rule 143 can match eol */ +#line 411 "lexer.l" +case 144: +/* rule 144 can match eol */ +YY_RULE_SETUP +#line 411 "lexer.l" +{return(TRY_AGAIN);} + YY_BREAK +case 145: +YY_RULE_SETUP +#line 412 "lexer.l" +{return(WHILE); /* AIS. Latin for this is needed. */} + YY_BREAK +case 146: +#line 414 "lexer.l" +case 147: +YY_RULE_SETUP +#line 414 "lexer.l" +{yylval.numval = WHILE; return(GERUND);} + YY_BREAK +case 148: +/* rule 148 can match eol */ +YY_RULE_SETUP +#line 415 "lexer.l" +{yylval.numval = TRY_AGAIN; return(GERUND);} + YY_BREAK +case 149: +/* rule 149 can match eol */ +#line 417 "lexer.l" +case 150: +/* rule 150 can match eol */ +YY_RULE_SETUP +#line 417 "lexer.l" +{return(GO_BACK);} + YY_BREAK +case 151: +/* rule 151 can match eol */ +#line 419 "lexer.l" +case 152: +/* rule 152 can match eol */ +YY_RULE_SETUP +#line 419 "lexer.l" +{yylval.numval = GO_BACK; return(GERUND);} + YY_BREAK +case 153: +/* rule 153 can match eol */ +#line 421 "lexer.l" +case 154: +/* rule 154 can match eol */ +YY_RULE_SETUP +#line 421 "lexer.l" +{return(GO_AHEAD);} + YY_BREAK +case 155: +/* rule 155 can match eol */ +YY_RULE_SETUP +#line 422 "lexer.l" +{yylval.numval = GO_AHEAD; return(GERUND); + /* AIS: I'm having a few deponent troubles with the Latin, so + there are no Latin gerunds around here. Besides, the Latin + 'gerunds' look somewhat like gerundives to me, but that's + purely based on memory so I may be wrong. */} + YY_BREAK +case 156: +/* rule 156 can match eol */ +#line 428 "lexer.l" +case 157: +/* rule 157 can match eol */ +YY_RULE_SETUP +#line 428 "lexer.l" +{yylval.numval = myatoi(yytext); return(CREATE);} + YY_BREAK +case 158: +#line 430 "lexer.l" +case 159: +YY_RULE_SETUP +#line 430 "lexer.l" +{return(COMPUCREATE);} + YY_BREAK +case 160: +#line 432 "lexer.l" +case 161: +#line 433 "lexer.l" +case 162: +YY_RULE_SETUP +#line 433 "lexer.l" +{yylval.numval = CREATE; return(GERUND);} + YY_BREAK +case 163: +YY_RULE_SETUP +#line 435 "lexer.l" +{return(INTERSECTION);} + YY_BREAK +case 164: +/* rule 164 can match eol */ +YY_RULE_SETUP +#line 437 "lexer.l" +; + YY_BREAK +case 165: +YY_RULE_SETUP +#line 438 "lexer.l" +{/* AIS */ yylval.numval = *yytext; return(UNKNOWNID);} + YY_BREAK +case 166: +YY_RULE_SETUP +#line 439 "lexer.l" +{/* AIS */ yylval.numval = yytext[0]*256 + yytext[3]; + if(yytext[0] > yytext[3]) + yylval.numval = yytext[0] + yytext[3]*256; + return(BADCHAR);} + YY_BREAK +case 167: +YY_RULE_SETUP +#line 443 "lexer.l" +{yylval.numval = yytext[0]; /* AIS: The line below for debug */ + if(yydebug) fprintf(stdout, "yylex: bad char %#x\n",(unsigned char)yytext[0]); + return(BADCHAR);} + YY_BREAK +case 168: +YY_RULE_SETUP +#line 448 "lexer.l" +ECHO; + YY_BREAK +#line 2058 "lexer.c" +case YY_STATE_EOF(INITIAL): + yyterminate(); + + case YY_END_OF_BUFFER: + { + /* Amount of text matched not including the EOB char. */ + int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1; + + /* Undo the effects of YY_DO_BEFORE_ACTION. */ + *yy_cp = (yy_hold_char); + YY_RESTORE_YY_MORE_OFFSET + + if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) + { + /* We're scanning a new file or input source. It's + * possible that this happened because the user + * just pointed yyin at a new source and called + * yylex(). If so, then we have to assure + * consistency between YY_CURRENT_BUFFER and our + * globals. Here is the right place to do so, because + * this is the first action (other than possibly a + * back-up) that will match for the new input source. + */ + (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; + YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; + YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; + } + + /* Note that here we test for yy_c_buf_p "<=" to the position + * of the first EOB in the buffer, since yy_c_buf_p will + * already have been incremented past the NUL character + * (since all states make transitions on EOB to the + * end-of-buffer state). Contrast this with the test + * in input(). + */ + if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) + { /* This was really a NUL. */ + yy_state_type yy_next_state; + + (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; + + yy_current_state = yy_get_previous_state( ); + + /* Okay, we're now positioned to make the NUL + * transition. We couldn't have + * yy_get_previous_state() go ahead and do it + * for us because it doesn't know how to deal + * with the possibility of jamming (and we don't + * want to build jamming into it because then it + * will run more slowly). + */ + + yy_next_state = yy_try_NUL_trans( yy_current_state ); + + yy_bp = (yytext_ptr) + YY_MORE_ADJ; + + if ( yy_next_state ) + { + /* Consume the NUL. */ + yy_cp = ++(yy_c_buf_p); + yy_current_state = yy_next_state; + goto yy_match; + } + + else + { + yy_cp = (yy_c_buf_p); + goto yy_find_action; + } + } + + else switch ( yy_get_next_buffer( ) ) + { + case EOB_ACT_END_OF_FILE: + { + (yy_did_buffer_switch_on_eof) = 0; + + if ( yywrap( ) ) + { + /* Note: because we've taken care in + * yy_get_next_buffer() to have set up + * yytext, we can now set up + * yy_c_buf_p so that if some total + * hoser (like flex itself) wants to + * call the scanner after we return the + * YY_NULL, it'll still work - another + * YY_NULL will get returned. + */ + (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ; + + yy_act = YY_STATE_EOF(YY_START); + goto do_action; + } + + else + { + if ( ! (yy_did_buffer_switch_on_eof) ) + YY_NEW_FILE; + } + break; + } + + case EOB_ACT_CONTINUE_SCAN: + (yy_c_buf_p) = + (yytext_ptr) + yy_amount_of_matched_text; + + yy_current_state = yy_get_previous_state( ); + + yy_cp = (yy_c_buf_p); + yy_bp = (yytext_ptr) + YY_MORE_ADJ; + goto yy_match; + + case EOB_ACT_LAST_MATCH: + (yy_c_buf_p) = + &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)]; + + yy_current_state = yy_get_previous_state( ); + + yy_cp = (yy_c_buf_p); + yy_bp = (yytext_ptr) + YY_MORE_ADJ; + goto yy_find_action; + } + break; + } + + default: + YY_FATAL_ERROR( + "fatal flex scanner internal error--no action found" ); + } /* end of action switch */ + } /* end of scanning one token */ +} /* end of yylex */ + +/* yy_get_next_buffer - try to read in a new buffer + * + * Returns a code representing an action: + * EOB_ACT_LAST_MATCH - + * EOB_ACT_CONTINUE_SCAN - continue scanning from current position + * EOB_ACT_END_OF_FILE - end of file + */ +static int yy_get_next_buffer (void) +{ + register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; + register char *source = (yytext_ptr); + register int number_to_move, i; + int ret_val; + + if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) + YY_FATAL_ERROR( + "fatal flex scanner internal error--end of buffer missed" ); + + if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) + { /* Don't try to fill the buffer, so this is an EOF. */ + if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 ) + { + /* We matched a single character, the EOB, so + * treat this as a final EOF. + */ + return EOB_ACT_END_OF_FILE; + } + + else + { + /* We matched some text prior to the EOB, first + * process it. + */ + return EOB_ACT_LAST_MATCH; + } + } + + /* Try to read more data. */ + + /* First move last chars to start of buffer. */ + number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1; + + for ( i = 0; i < number_to_move; ++i ) + *(dest++) = *(source++); + + if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) + /* don't do the read, it's not guaranteed to return an EOF, + * just force an EOF + */ + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0; + + else + { + int num_to_read = + YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; + + while ( num_to_read <= 0 ) + { /* Not enough room in the buffer - grow it. */ + + /* just a shorter name for the current buffer */ + YY_BUFFER_STATE b = YY_CURRENT_BUFFER; + + int yy_c_buf_p_offset = + (int) ((yy_c_buf_p) - b->yy_ch_buf); + + if ( b->yy_is_our_buffer ) + { + int new_size = b->yy_buf_size * 2; + + if ( new_size <= 0 ) + b->yy_buf_size += b->yy_buf_size / 8; + else + b->yy_buf_size *= 2; + + b->yy_ch_buf = (char *) + /* Include room in for 2 EOB chars. */ + yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); + } + else + /* Can't grow it, we don't own it. */ + b->yy_ch_buf = 0; + + if ( ! b->yy_ch_buf ) + YY_FATAL_ERROR( + "fatal error - scanner input buffer overflow" ); + + (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset]; + + num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - + number_to_move - 1; + + } + + if ( num_to_read > YY_READ_BUF_SIZE ) + num_to_read = YY_READ_BUF_SIZE; + + /* Read in more data. */ + YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), + (yy_n_chars), (size_t) num_to_read ); + + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); + } + + if ( (yy_n_chars) == 0 ) + { + if ( number_to_move == YY_MORE_ADJ ) + { + ret_val = EOB_ACT_END_OF_FILE; + yyrestart(yyin ); + } + + else + { + ret_val = EOB_ACT_LAST_MATCH; + YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = + YY_BUFFER_EOF_PENDING; + } + } + + else + ret_val = EOB_ACT_CONTINUE_SCAN; + + if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { + /* Extend the array by 50%, plus the number we really need. */ + yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); + if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) + YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); + } + + (yy_n_chars) += number_to_move; + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR; + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR; + + (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; + + return ret_val; +} + +/* yy_get_previous_state - get the state just before the EOB char was reached */ + + static yy_state_type yy_get_previous_state (void) +{ + register yy_state_type yy_current_state; + register char *yy_cp; + + yy_current_state = (yy_start); + + for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) + { + register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); + if ( yy_accept[yy_current_state] ) + { + (yy_last_accepting_state) = yy_current_state; + (yy_last_accepting_cpos) = yy_cp; + } + while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) + { + yy_current_state = (int) yy_def[yy_current_state]; + if ( yy_current_state >= 646 ) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + } + + return yy_current_state; +} + +/* yy_try_NUL_trans - try to make a transition on the NUL character + * + * synopsis + * next_state = yy_try_NUL_trans( current_state ); + */ + static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state ) +{ + register int yy_is_jam; + register char *yy_cp = (yy_c_buf_p); + + register YY_CHAR yy_c = 1; + if ( yy_accept[yy_current_state] ) + { + (yy_last_accepting_state) = yy_current_state; + (yy_last_accepting_cpos) = yy_cp; + } + while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) + { + yy_current_state = (int) yy_def[yy_current_state]; + if ( yy_current_state >= 646 ) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_is_jam = (yy_current_state == 645); + + return yy_is_jam ? 0 : yy_current_state; +} + + static void yyunput (int c, register char * yy_bp ) +{ + register char *yy_cp; + + yy_cp = (yy_c_buf_p); + + /* undo effects of setting up yytext */ + *yy_cp = (yy_hold_char); + + if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) + { /* need to shift things up to make room */ + /* +2 for EOB chars. */ + register int number_to_move = (yy_n_chars) + 2; + register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ + YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; + register char *source = + &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]; + + while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) + *--dest = *--source; + + yy_cp += (int) (dest - source); + yy_bp += (int) (dest - source); + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = + (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size; + + if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) + YY_FATAL_ERROR( "flex scanner push-back overflow" ); + } + + *--yy_cp = (char) c; + + (yytext_ptr) = yy_bp; + (yy_hold_char) = *yy_cp; + (yy_c_buf_p) = yy_cp; +} + +#ifndef YY_NO_INPUT +#ifdef __cplusplus + static int yyinput (void) +#else + static int input (void) +#endif + +{ + int c; + + *(yy_c_buf_p) = (yy_hold_char); + + if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR ) + { + /* yy_c_buf_p now points to the character we want to return. + * If this occurs *before* the EOB characters, then it's a + * valid NUL; if not, then we've hit the end of the buffer. + */ + if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) + /* This was really a NUL. */ + *(yy_c_buf_p) = '\0'; + + else + { /* need more input */ + int offset = (yy_c_buf_p) - (yytext_ptr); + ++(yy_c_buf_p); + + switch ( yy_get_next_buffer( ) ) + { + case EOB_ACT_LAST_MATCH: + /* This happens because yy_g_n_b() + * sees that we've accumulated a + * token and flags that we need to + * try matching the token before + * proceeding. But for input(), + * there's no matching to consider. + * So convert the EOB_ACT_LAST_MATCH + * to EOB_ACT_END_OF_FILE. + */ + + /* Reset buffer status. */ + yyrestart(yyin ); + + /*FALLTHROUGH*/ + + case EOB_ACT_END_OF_FILE: + { + if ( yywrap( ) ) + return EOF; + + if ( ! (yy_did_buffer_switch_on_eof) ) + YY_NEW_FILE; +#ifdef __cplusplus + return yyinput(); +#else + return input(); +#endif + } + + case EOB_ACT_CONTINUE_SCAN: + (yy_c_buf_p) = (yytext_ptr) + offset; + break; + } + } + } + + c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */ + *(yy_c_buf_p) = '\0'; /* preserve yytext */ + (yy_hold_char) = *++(yy_c_buf_p); + + return c; +} +#endif /* ifndef YY_NO_INPUT */ + +/** Immediately switch to a different input stream. + * @param input_file A readable stream. + * + * @note This function does not reset the start condition to @c INITIAL . + */ + void yyrestart (FILE * input_file ) +{ + + if ( ! YY_CURRENT_BUFFER ){ + yyensure_buffer_stack (); + YY_CURRENT_BUFFER_LVALUE = + yy_create_buffer(yyin,YY_BUF_SIZE ); + } + + yy_init_buffer(YY_CURRENT_BUFFER,input_file ); + yy_load_buffer_state( ); +} + +/** Switch to a different input buffer. + * @param new_buffer The new input buffer. + * + */ + void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ) +{ + + /* TODO. We should be able to replace this entire function body + * with + * yypop_buffer_state(); + * yypush_buffer_state(new_buffer); + */ + yyensure_buffer_stack (); + if ( YY_CURRENT_BUFFER == new_buffer ) + return; + + if ( YY_CURRENT_BUFFER ) + { + /* Flush out information for old buffer. */ + *(yy_c_buf_p) = (yy_hold_char); + YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); + } + + YY_CURRENT_BUFFER_LVALUE = new_buffer; + yy_load_buffer_state( ); + + /* We don't actually know whether we did this switch during + * EOF (yywrap()) processing, but the only time this flag + * is looked at is after yywrap() is called, so it's safe + * to go ahead and always set it. + */ + (yy_did_buffer_switch_on_eof) = 1; +} + +static void yy_load_buffer_state (void) +{ + (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; + (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; + yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; + (yy_hold_char) = *(yy_c_buf_p); +} + +/** Allocate and initialize an input buffer state. + * @param file A readable stream. + * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. + * + * @return the allocated buffer state. + */ + YY_BUFFER_STATE yy_create_buffer (FILE * file, int size ) +{ + YY_BUFFER_STATE b; + + b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) ); + if ( ! b ) + YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); + + b->yy_buf_size = size; + + /* yy_ch_buf has to be 2 characters longer than the size given because + * we need to put in 2 end-of-buffer characters. + */ + b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2 ); + if ( ! b->yy_ch_buf ) + YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); + + b->yy_is_our_buffer = 1; + + yy_init_buffer(b,file ); + + return b; +} + +/** Destroy the buffer. + * @param b a buffer created with yy_create_buffer() + * + */ + void yy_delete_buffer (YY_BUFFER_STATE b ) +{ + + if ( ! b ) + return; + + if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ + YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; + + if ( b->yy_is_our_buffer ) + yyfree((void *) b->yy_ch_buf ); + + yyfree((void *) b ); +} + +#ifndef __cplusplus +extern int isatty (int ); +#endif /* __cplusplus */ + +/* Initializes or reinitializes a buffer. + * This function is sometimes called more than once on the same buffer, + * such as during a yyrestart() or at EOF. + */ + static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file ) + +{ + int oerrno = errno; + + yy_flush_buffer(b ); + + b->yy_input_file = file; + b->yy_fill_buffer = 1; + + /* If b is the current buffer, then yy_init_buffer was _probably_ + * called from yyrestart() or through yy_get_next_buffer. + * In that case, we don't want to reset the lineno or column. + */ + if (b != YY_CURRENT_BUFFER){ + b->yy_bs_lineno = 1; + b->yy_bs_column = 0; + } + + b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; + + errno = oerrno; +} + +/** Discard all buffered characters. On the next scan, YY_INPUT will be called. + * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. + * + */ + void yy_flush_buffer (YY_BUFFER_STATE b ) +{ + if ( ! b ) + return; + + b->yy_n_chars = 0; + + /* We always need two end-of-buffer characters. The first causes + * a transition to the end-of-buffer state. The second causes + * a jam in that state. + */ + b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; + b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; + + b->yy_buf_pos = &b->yy_ch_buf[0]; + + b->yy_at_bol = 1; + b->yy_buffer_status = YY_BUFFER_NEW; + + if ( b == YY_CURRENT_BUFFER ) + yy_load_buffer_state( ); +} + +/** Pushes the new state onto the stack. The new state becomes + * the current state. This function will allocate the stack + * if necessary. + * @param new_buffer The new state. + * + */ +void yypush_buffer_state (YY_BUFFER_STATE new_buffer ) +{ + if (new_buffer == NULL) + return; + + yyensure_buffer_stack(); + + /* This block is copied from yy_switch_to_buffer. */ + if ( YY_CURRENT_BUFFER ) + { + /* Flush out information for old buffer. */ + *(yy_c_buf_p) = (yy_hold_char); + YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); + } + + /* Only push if top exists. Otherwise, replace top. */ + if (YY_CURRENT_BUFFER) + (yy_buffer_stack_top)++; + YY_CURRENT_BUFFER_LVALUE = new_buffer; + + /* copied from yy_switch_to_buffer. */ + yy_load_buffer_state( ); + (yy_did_buffer_switch_on_eof) = 1; +} + +/** Removes and deletes the top of the stack, if present. + * The next element becomes the new top. + * + */ +void yypop_buffer_state (void) +{ + if (!YY_CURRENT_BUFFER) + return; + + yy_delete_buffer(YY_CURRENT_BUFFER ); + YY_CURRENT_BUFFER_LVALUE = NULL; + if ((yy_buffer_stack_top) > 0) + --(yy_buffer_stack_top); + + if (YY_CURRENT_BUFFER) { + yy_load_buffer_state( ); + (yy_did_buffer_switch_on_eof) = 1; + } +} + +/* Allocates the stack if it does not exist. + * Guarantees space for at least one push. + */ +static void yyensure_buffer_stack (void) +{ + int num_to_alloc; + + if (!(yy_buffer_stack)) { + + /* First allocation is just for 2 elements, since we don't know if this + * scanner will even need a stack. We use 2 instead of 1 to avoid an + * immediate realloc on the next call. + */ + num_to_alloc = 1; + (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc + (num_to_alloc * sizeof(struct yy_buffer_state*) + ); + if ( ! (yy_buffer_stack) ) + YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); + + memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); + + (yy_buffer_stack_max) = num_to_alloc; + (yy_buffer_stack_top) = 0; + return; + } + + if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ + + /* Increase the buffer to prepare for a possible push. */ + int grow_size = 8 /* arbitrary grow size */; + + num_to_alloc = (yy_buffer_stack_max) + grow_size; + (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc + ((yy_buffer_stack), + num_to_alloc * sizeof(struct yy_buffer_state*) + ); + if ( ! (yy_buffer_stack) ) + YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); + + /* zero only the new slots.*/ + memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); + (yy_buffer_stack_max) = num_to_alloc; + } +} + +/** Setup the input buffer state to scan directly from a user-specified character buffer. + * @param base the character buffer + * @param size the size in bytes of the character buffer + * + * @return the newly allocated buffer state object. + */ +YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) +{ + YY_BUFFER_STATE b; + + if ( size < 2 || + base[size-2] != YY_END_OF_BUFFER_CHAR || + base[size-1] != YY_END_OF_BUFFER_CHAR ) + /* They forgot to leave room for the EOB's. */ + return 0; + + b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) ); + if ( ! b ) + YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); + + b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ + b->yy_buf_pos = b->yy_ch_buf = base; + b->yy_is_our_buffer = 0; + b->yy_input_file = 0; + b->yy_n_chars = b->yy_buf_size; + b->yy_is_interactive = 0; + b->yy_at_bol = 1; + b->yy_fill_buffer = 0; + b->yy_buffer_status = YY_BUFFER_NEW; + + yy_switch_to_buffer(b ); + + return b; +} + +/** Setup the input buffer state to scan a string. The next call to yylex() will + * scan from a @e copy of @a str. + * @param yystr a NUL-terminated string to scan + * + * @return the newly allocated buffer state object. + * @note If you want to scan bytes that may contain NUL values, then use + * yy_scan_bytes() instead. + */ +YY_BUFFER_STATE yy_scan_string (yyconst char * yystr ) +{ + + return yy_scan_bytes(yystr,strlen(yystr) ); +} + +/** Setup the input buffer state to scan the given bytes. The next call to yylex() will + * scan from a @e copy of @a bytes. + * @param bytes the byte buffer to scan + * @param len the number of bytes in the buffer pointed to by @a bytes. + * + * @return the newly allocated buffer state object. + */ +YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, int _yybytes_len ) +{ + YY_BUFFER_STATE b; + char *buf; + yy_size_t n; + int i; + + /* Get memory for full buffer, including space for trailing EOB's. */ + n = _yybytes_len + 2; + buf = (char *) yyalloc(n ); + if ( ! buf ) + YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); + + for ( i = 0; i < _yybytes_len; ++i ) + buf[i] = yybytes[i]; + + buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; + + b = yy_scan_buffer(buf,n ); + if ( ! b ) + YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" ); + + /* It's okay to grow etc. this buffer, and we should throw it + * away when we're done. + */ + b->yy_is_our_buffer = 1; + + return b; +} + +#ifndef YY_EXIT_FAILURE +#define YY_EXIT_FAILURE 2 +#endif + +static void yy_fatal_error (yyconst char* msg ) +{ + (void) fprintf( stderr, "%s\n", msg ); + exit( YY_EXIT_FAILURE ); +} + +/* Redefine yyless() so it works in section 3 code. */ + +#undef yyless +#define yyless(n) \ + do \ + { \ + /* Undo effects of setting up yytext. */ \ + int yyless_macro_arg = (n); \ + YY_LESS_LINENO(yyless_macro_arg);\ + yytext[yyleng] = (yy_hold_char); \ + (yy_c_buf_p) = yytext + yyless_macro_arg; \ + (yy_hold_char) = *(yy_c_buf_p); \ + *(yy_c_buf_p) = '\0'; \ + yyleng = yyless_macro_arg; \ + } \ + while ( 0 ) + +/* Accessor methods (get/set functions) to struct members. */ + +/** Get the current line number. + * + */ +int yyget_lineno (void) +{ + + return yylineno; +} + +/** Get the input stream. + * + */ +FILE *yyget_in (void) +{ + return yyin; +} + +/** Get the output stream. + * + */ +FILE *yyget_out (void) +{ + return yyout; +} + +/** Get the length of the current token. + * + */ +int yyget_leng (void) +{ + return yyleng; +} + +/** Get the current token. + * + */ + +char *yyget_text (void) +{ + return yytext; +} + +/** Set the current line number. + * @param line_number + * + */ +void yyset_lineno (int line_number ) +{ + + yylineno = line_number; +} + +/** Set the input stream. This does not discard the current + * input buffer. + * @param in_str A readable stream. + * + * @see yy_switch_to_buffer + */ +void yyset_in (FILE * in_str ) +{ + yyin = in_str ; +} + +void yyset_out (FILE * out_str ) +{ + yyout = out_str ; +} + +int yyget_debug (void) +{ + return yy_flex_debug; +} + +void yyset_debug (int bdebug ) +{ + yy_flex_debug = bdebug ; +} + +static int yy_init_globals (void) +{ + /* Initialization is the same as for the non-reentrant scanner. + * This function is called from yylex_destroy(), so don't allocate here. + */ + + (yy_buffer_stack) = 0; + (yy_buffer_stack_top) = 0; + (yy_buffer_stack_max) = 0; + (yy_c_buf_p) = (char *) 0; + (yy_init) = 0; + (yy_start) = 0; + +/* Defined in main.c */ +#ifdef YY_STDINIT + yyin = stdin; + yyout = stdout; +#else + yyin = (FILE *) 0; + yyout = (FILE *) 0; +#endif + + /* For future reference: Set errno on error, since we are called by + * yylex_init() + */ + return 0; +} + +/* yylex_destroy is for both reentrant and non-reentrant scanners. */ +int yylex_destroy (void) +{ + + /* Pop the buffer stack, destroying each element. */ + while(YY_CURRENT_BUFFER){ + yy_delete_buffer(YY_CURRENT_BUFFER ); + YY_CURRENT_BUFFER_LVALUE = NULL; + yypop_buffer_state(); + } + + /* Destroy the stack itself. */ + yyfree((yy_buffer_stack) ); + (yy_buffer_stack) = NULL; + + /* Reset the globals. This is important in a non-reentrant scanner so the next time + * yylex() is called, initialization will occur. */ + yy_init_globals( ); + + return 0; +} + +/* + * Internal utility routines. + */ + +#ifndef yytext_ptr +static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) +{ + register int i; + for ( i = 0; i < n; ++i ) + s1[i] = s2[i]; +} +#endif + +#ifdef YY_NEED_STRLEN +static int yy_flex_strlen (yyconst char * s ) +{ + register int n; + for ( n = 0; s[n]; ++n ) + ; + + return n; +} +#endif + +void *yyalloc (yy_size_t size ) +{ + return (void *) malloc( size ); +} + +void *yyrealloc (void * ptr, yy_size_t size ) +{ + /* The cast to (char *) in the following accommodates both + * implementations that use char* generic pointers, and those + * that use void* generic pointers. It works with the latter + * because both ANSI C and C++ allow castless assignment from + * any pointer type to void*, and deal with argument conversions + * as though doing an assignment. + */ + return (void *) realloc( (char *) ptr, size ); +} + +void yyfree (void * ptr ) +{ + free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ +} + +#define YYTABLES_NAME "yytables" + +#line 448 "lexer.l" + + + +int lexer(void) +{ + static int tok = BADCHAR; + + if (re_send_token) + re_send_token = ick_FALSE; + else + { + tok = yylex(); +#ifdef YYDEBUG + if (yydebug) + (void) fprintf(stdout, "yylex: returning token %d\n", tok); +#endif /* YYDEBUG */ + } + +#ifdef YYDEBUG + if (yydebug) + (void) fprintf(stdout, "lexer: returning token %d\n", tok); +#endif /* YYDEBUG */ + return(tok); +} + +static int myatoi(char *text) /* AIS */ +{ +#define MAXTEXT 100 + static char buf[MAXTEXT]; + static char thinbuf[MAXTEXT]; + char* bp; + char* tp; + register int i; + + for(buf[i = 0] = '\0';*text && i < MAXTEXT;text++) { + if(isdigit(*text)) { + buf[i++] = *text; + } + } + buf[i] = '\0'; + bp=buf; tp=thinbuf; + while(((*tp++=*bp++))); /* thinbuf code added by an AIS + in case we want to work with wchar_t; + the extra brackets tell GCC that this is + intended and not a mistaken assignment */ + return atoi(thinbuf); +} + +void yyerror(char *errtype) +{ +#ifdef MAIN + (void) printf("lextest: lexer error: %s.\n", errtype); +#else /* MAIN */ + (void) errtype; +#endif /* MAIN */ +} + +#ifdef MAIN +int ick_main(void) +{ + int t; + + while ((t = yylex()) > 0) + { + (void) printf("%03d %09d\n", t, yylval.numval); + yylval.numval = 0; + } + return 0; +} +#endif /* MAIN */ + diff --git a/prebuilt/oil-oil.c b/prebuilt/oil-oil.c new file mode 100644 index 0000000..5d5a209 --- /dev/null +++ b/prebuilt/oil-oil.c @@ -0,0 +1,2761 @@ +/* A Bison parser, made by GNU Bison 2.3. */ + +/* Skeleton implementation for Bison's Yacc-like parsers in C + + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 + Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. */ + +/* As a special exception, you may create a larger work that contains + part or all of the Bison parser skeleton and distribute that work + under terms of your choice, so long as that work isn't itself a + parser generator using the skeleton or a modified version thereof + as a parser skeleton. Alternatively, if you modify or redistribute + the parser skeleton itself, you may (at your option) remove this + special exception, which will cause the skeleton and the resulting + Bison output files to be licensed under the GNU General Public + License without this special exception. + + This special exception was added by the Free Software Foundation in + version 2.2 of Bison. */ + +/* C LALR(1) parser skeleton written by Richard Stallman, by + simplifying the original so-called "semantic" parser. */ + +/* All symbols defined below should begin with yy or YY, to avoid + infringing on user name space. This should be done even for local + variables, as they might otherwise be expanded by user macros. + There are some unavoidable exceptions within include files to + define necessary library symbols; they are noted "INFRINGES ON + USER NAME SPACE" below. */ + +/* Identify Bison output. */ +#define YYBISON 1 + +/* Bison version. */ +#define YYBISON_VERSION "2.3" + +/* Skeleton name. */ +#define YYSKELETON_NAME "yacc.c" + +/* Pure parsers. */ +#define YYPURE 0 + +/* Using locations. */ +#define YYLSP_NEEDED 0 + + + +/* Tokens. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + /* Put the tokens into the symbol table, so that GDB and other debuggers + know about them. */ + enum yytokentype { + LEXERLEAF = 258 + }; +#endif +/* Tokens. */ +#define LEXERLEAF 258 + + + + +/* Copy the first part of user declarations. */ +#line 25 "oil.y" + + +#include "config.h" +#include +#include +#include +#include + +/* Autoconf lets us know if we have _Bool available, usually. On DJGPP there's + an occasional bug that I haven't managed to reproduce that leaves + SIZEOF_BOOL as the null string, so detect that ick_first. */ +#if 100 - SIZEOF__BOOL - 1 == 101 +/* The bug happened, so play safe. */ + typedef int mybool; +#else +# if SIZEOF__BOOL > 0 + typedef _Bool mybool; +# else + typedef int mybool; +# endif +#endif + +/* Define strdup if it isn't available */ +#ifndef HAVE_STRDUP +char* strdup(char* s) +{ + char* t=malloc(strlen(s)+1); + if(t) strcpy(t,s); + return t; +} +#endif + +/* +#define YYDEBUG 1 +int yydebug=1; +*/ + +/* Each semantic value represents either a constraint on a node that needs to + be true for the optimization template to match, or part of the replacement + for the optimization template. */ +struct ickstype +{ + unsigned depth; /* The number of child nodes this is from the root */ + unsigned long path; /* Bits from the end of this number represent the + sequence of lvals (=0) or rvals (=1) this is from the + root; depth bits from the end are relevant, and the + bit nearest the root is least significant */ + char* condition; /* Points to a constant string; the condition to generate + on that node. Could also point to something the lexer + mallocs, but then the lexer has to keep track of being + able to free it again. If this is NULL, it means that + there isn't a condition other than maybe mustbemesh */ + char* nodetypename; /* The name of the type of node this condition matches, + or NULL for a LEXERLEAF */ + mybool usec; /* Whether to append the value of c to the condition */ + mybool mustbemesh; /* Must this node be a mesh or mesh32? */ + mybool cxneeded; /* True means calculate c and x for the node and the + condition is on those; false means append 'condition' + to the node itself to form the condition and c and x + aren't needed */ + mybool width32; /* Generate a 32-bit node? */ + mybool ublo; /* Is this a UBLO (if set, generate conditions + to check width)? */ + unsigned long c; /* The value to append to the condition */ + int replnum; /* Number of this group for replacements */ + struct ickstype *n1;/* n1 and n2 are pointers to other conditions that */ + struct ickstype *n2;/* also have to be satisified */ +}; + +#define YYSTYPE YYSTYPE + +#define MAXOPTNAMELEN 64 +char optname[MAXOPTNAMELEN]="undefined"; + +typedef struct ickstype *YYSTYPE; + +void splitend(); +void splitstart(); + +void treedepthup(YYSTYPE, mybool); +void treefree(YYSTYPE); +void gennodepath(unsigned, unsigned long); +mybool treeshapecond(YYSTYPE, mybool); +YYSTYPE treenscheck(YYSTYPE, YYSTYPE, int); +void treecxcond(YYSTYPE); +void treerepcount(YYSTYPE, int*); +void treerepgen(YYSTYPE, YYSTYPE*, int*); + +int countgetchar(void); +int countungetc(int, FILE*); +int cgccol; +int cgcrow; + +/* #defines for chaining together template expressions; here, s is the type + of expression (e.g. select, bitwise and, unary and) that's chaining the + expressions together and n is the nonterminal that's the rval */ +#define BINARYEXPR(s,m,l,r,w) do{ \ + m=malloc(sizeof(struct ickstype)); \ + m->n1=l; \ + m->n2=r; \ + m->usec=0; \ + m->condition="->opcode==" s; \ + m->nodetypename=s; \ + m->mustbemesh=0; \ + m->cxneeded=0; \ + m->depth=0; \ + m->path=0; \ + m->replnum=0; \ + m->width32=w; \ + m->ublo=0; \ + treedepthup(m->n1,0); \ + treedepthup(m->n2,1); \ + } while(0) + +#define UNARYEXPR(s,m,r,w,u) do{ \ + m=malloc(sizeof(struct ickstype)); \ + m->n1=0; \ + m->n2=r; \ + m->usec=0; \ + m->condition="->opcode==" s; \ + m->nodetypename=s; \ + m->mustbemesh=0; \ + m->cxneeded=0; \ + m->depth=0; \ + m->path=0; \ + m->replnum=0; \ + m->width32=w; \ + m->ublo=u; \ + treedepthup(m->n2,1); \ + } while(0) + +/* Error handling and lexing */ +int yylex(void); +int yyerror(char const *); + +/* Split the output file */ +#define SPLITMAX 20 +int splitcount=SPLITMAX; +int filenumber=0; +mybool inloop=0; + + +/* Enabling traces. */ +#ifndef YYDEBUG +# define YYDEBUG 0 +#endif + +/* Enabling verbose error messages. */ +#ifdef YYERROR_VERBOSE +# undef YYERROR_VERBOSE +# define YYERROR_VERBOSE 1 +#else +# define YYERROR_VERBOSE 0 +#endif + +/* Enabling the token table. */ +#ifndef YYTOKEN_TABLE +# define YYTOKEN_TABLE 0 +#endif + +#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED +typedef int YYSTYPE; +# define yystype YYSTYPE /* obsolescent; will be withdrawn */ +# define YYSTYPE_IS_DECLARED 1 +# define YYSTYPE_IS_TRIVIAL 1 +#endif + + + +/* Copy the second part of user declarations. */ + + +/* Line 216 of yacc.c. */ +#line 254 "oil-oil.c" + +#ifdef short +# undef short +#endif + +#ifdef YYTYPE_UINT8 +typedef YYTYPE_UINT8 yytype_uint8; +#else +typedef unsigned char yytype_uint8; +#endif + +#ifdef YYTYPE_INT8 +typedef YYTYPE_INT8 yytype_int8; +#elif (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +typedef signed char yytype_int8; +#else +typedef short int yytype_int8; +#endif + +#ifdef YYTYPE_UINT16 +typedef YYTYPE_UINT16 yytype_uint16; +#else +typedef unsigned short int yytype_uint16; +#endif + +#ifdef YYTYPE_INT16 +typedef YYTYPE_INT16 yytype_int16; +#else +typedef short int yytype_int16; +#endif + +#ifndef YYSIZE_T +# ifdef __SIZE_TYPE__ +# define YYSIZE_T __SIZE_TYPE__ +# elif defined size_t +# define YYSIZE_T size_t +# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +# include /* INFRINGES ON USER NAME SPACE */ +# define YYSIZE_T size_t +# else +# define YYSIZE_T unsigned int +# endif +#endif + +#define YYSIZE_MAXIMUM ((YYSIZE_T) -1) + +#ifndef YY_ +# if YYENABLE_NLS +# if ENABLE_NLS +# include /* INFRINGES ON USER NAME SPACE */ +# define YY_(msgid) dgettext ("bison-runtime", msgid) +# endif +# endif +# ifndef YY_ +# define YY_(msgid) msgid +# endif +#endif + +/* Suppress unused-variable warnings by "using" E. */ +#if ! defined lint || defined __GNUC__ +# define YYUSE(e) ((void) (e)) +#else +# define YYUSE(e) /* empty */ +#endif + +/* Identity function, used to suppress warnings about constant conditions. */ +#ifndef lint +# define YYID(n) (n) +#else +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static int +YYID (int i) +#else +static int +YYID (i) + int i; +#endif +{ + return i; +} +#endif + +#if ! defined yyoverflow || YYERROR_VERBOSE + +/* The parser invokes alloca or malloc; define the necessary symbols. */ + +# ifdef YYSTACK_USE_ALLOCA +# if YYSTACK_USE_ALLOCA +# ifdef __GNUC__ +# define YYSTACK_ALLOC __builtin_alloca +# elif defined __BUILTIN_VA_ARG_INCR +# include /* INFRINGES ON USER NAME SPACE */ +# elif defined _AIX +# define YYSTACK_ALLOC __alloca +# elif defined _MSC_VER +# include /* INFRINGES ON USER NAME SPACE */ +# define alloca _alloca +# else +# define YYSTACK_ALLOC alloca +# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +# include /* INFRINGES ON USER NAME SPACE */ +# ifndef _STDLIB_H +# define _STDLIB_H 1 +# endif +# endif +# endif +# endif +# endif + +# ifdef YYSTACK_ALLOC + /* Pacify GCC's `empty if-body' warning. */ +# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) +# ifndef YYSTACK_ALLOC_MAXIMUM + /* The OS might guarantee only one guard page at the bottom of the stack, + and a page size can be as small as 4096 bytes. So we cannot safely + invoke alloca (N) if N exceeds 4096. Use a slightly smaller number + to allow for a few compiler-allocated temporary stack slots. */ +# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ +# endif +# else +# define YYSTACK_ALLOC YYMALLOC +# define YYSTACK_FREE YYFREE +# ifndef YYSTACK_ALLOC_MAXIMUM +# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM +# endif +# if (defined __cplusplus && ! defined _STDLIB_H \ + && ! ((defined YYMALLOC || defined malloc) \ + && (defined YYFREE || defined free))) +# include /* INFRINGES ON USER NAME SPACE */ +# ifndef _STDLIB_H +# define _STDLIB_H 1 +# endif +# endif +# ifndef YYMALLOC +# define YYMALLOC malloc +# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ +# endif +# endif +# ifndef YYFREE +# define YYFREE free +# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +void free (void *); /* INFRINGES ON USER NAME SPACE */ +# endif +# endif +# endif +#endif /* ! defined yyoverflow || YYERROR_VERBOSE */ + + +#if (! defined yyoverflow \ + && (! defined __cplusplus \ + || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) + +/* A type that is properly aligned for any stack member. */ +union yyalloc +{ + yytype_int16 yyss; + YYSTYPE yyvs; + }; + +/* The size of the maximum gap between one aligned stack and the next. */ +# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) + +/* The size of an array large to enough to hold all stacks, each with + N elements. */ +# define YYSTACK_BYTES(N) \ + ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ + + YYSTACK_GAP_MAXIMUM) + +/* Copy COUNT objects from FROM to TO. The source and destination do + not overlap. */ +# ifndef YYCOPY +# if defined __GNUC__ && 1 < __GNUC__ +# define YYCOPY(To, From, Count) \ + __builtin_memcpy (To, From, (Count) * sizeof (*(From))) +# else +# define YYCOPY(To, From, Count) \ + do \ + { \ + YYSIZE_T yyi; \ + for (yyi = 0; yyi < (Count); yyi++) \ + (To)[yyi] = (From)[yyi]; \ + } \ + while (YYID (0)) +# endif +# endif + +/* Relocate STACK from its old location to the new one. The + local variables YYSIZE and YYSTACKSIZE give the old and new number of + elements in the stack, and YYPTR gives the new location of the + stack. Advance YYPTR to a properly aligned location for the next + stack. */ +# define YYSTACK_RELOCATE(Stack) \ + do \ + { \ + YYSIZE_T yynewbytes; \ + YYCOPY (&yyptr->Stack, Stack, yysize); \ + Stack = &yyptr->Stack; \ + yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ + yyptr += yynewbytes / sizeof (*yyptr); \ + } \ + while (YYID (0)) + +#endif + +/* YYFINAL -- State number of the termination state. */ +#define YYFINAL 2 +/* YYLAST -- Last index in YYTABLE. */ +#define YYLAST 345 + +/* YYNTOKENS -- Number of terminals. */ +#define YYNTOKENS 31 +/* YYNNTS -- Number of nonterminals. */ +#define YYNNTS 8 +/* YYNRULES -- Number of rules. */ +#define YYNRULES 89 +/* YYNRULES -- Number of states. */ +#define YYNSTATES 244 + +/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ +#define YYUNDEFTOK 2 +#define YYMAXUTOK 258 + +#define YYTRANSLATE(YYX) \ + ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) + +/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ +static const yytype_uint8 yytranslate[] = +{ + 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 29, 9, 2, 11, 28, 17, 10, + 7, 8, 26, 25, 2, 4, 2, 27, 2, 13, + 16, 15, 22, 23, 14, 2, 2, 2, 2, 2, + 6, 30, 5, 19, 21, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 18, 2, 2, 2, + 2, 2, 2, 2, 20, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 24, 2, 12, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 1, 2, 3 +}; + +#if YYDEBUG +/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in + YYRHS. */ +static const yytype_uint16 yyprhs[] = +{ + 0, 0, 3, 4, 7, 12, 17, 19, 21, 25, + 29, 33, 35, 37, 41, 45, 51, 57, 62, 67, + 72, 77, 82, 87, 92, 97, 102, 108, 114, 120, + 126, 131, 137, 143, 149, 155, 159, 165, 171, 175, + 181, 187, 191, 197, 203, 207, 213, 219, 223, 229, + 235, 239, 245, 251, 255, 261, 267, 271, 277, 283, + 287, 293, 299, 303, 309, 315, 320, 325, 330, 337, + 344, 349, 356, 363, 368, 375, 382, 387, 394, 401, + 406, 413, 420, 425, 432, 439, 442, 447, 452, 454 +}; + +/* YYRHS -- A `-1'-separated list of the rules' RHS. */ +static const yytype_int8 yyrhs[] = +{ + 32, 0, -1, -1, 32, 33, -1, 34, 4, 5, + 38, -1, 6, 3, 4, 3, -1, 5, -1, 35, + -1, 7, 37, 8, -1, 9, 37, 9, -1, 10, + 37, 10, -1, 35, -1, 3, -1, 36, 11, 36, + -1, 36, 12, 36, -1, 36, 12, 13, 14, 36, + -1, 36, 12, 15, 16, 36, -1, 17, 13, 14, + 36, -1, 17, 15, 16, 36, -1, 18, 13, 14, + 36, -1, 18, 15, 16, 36, -1, 19, 13, 14, + 36, -1, 19, 15, 16, 36, -1, 20, 13, 14, + 36, -1, 20, 15, 16, 36, -1, 21, 13, 14, + 36, -1, 21, 16, 13, 14, 36, -1, 21, 15, + 13, 14, 36, -1, 21, 22, 13, 14, 36, -1, + 21, 23, 13, 14, 36, -1, 21, 15, 16, 36, + -1, 21, 16, 15, 16, 36, -1, 21, 15, 15, + 16, 36, -1, 21, 22, 15, 16, 36, -1, 21, + 23, 15, 16, 36, -1, 36, 17, 36, -1, 36, + 17, 13, 14, 36, -1, 36, 17, 15, 16, 36, + -1, 36, 24, 36, -1, 36, 24, 13, 14, 36, + -1, 36, 24, 15, 16, 36, -1, 36, 20, 36, + -1, 36, 20, 13, 14, 36, -1, 36, 20, 15, + 16, 36, -1, 36, 25, 36, -1, 36, 25, 13, + 14, 36, -1, 36, 25, 15, 16, 36, -1, 36, + 4, 36, -1, 36, 4, 13, 14, 36, -1, 36, + 4, 15, 16, 36, -1, 36, 26, 36, -1, 36, + 26, 13, 14, 36, -1, 36, 26, 15, 16, 36, + -1, 36, 27, 36, -1, 36, 27, 13, 14, 36, + -1, 36, 27, 15, 16, 36, -1, 36, 28, 36, + -1, 36, 28, 13, 14, 36, -1, 36, 28, 15, + 16, 36, -1, 36, 5, 36, -1, 36, 5, 13, + 14, 36, -1, 36, 5, 15, 16, 36, -1, 36, + 6, 36, -1, 36, 6, 13, 14, 36, -1, 36, + 6, 15, 16, 36, -1, 12, 13, 14, 36, -1, + 12, 15, 16, 36, -1, 36, 29, 30, 36, -1, + 36, 29, 30, 13, 14, 36, -1, 36, 29, 30, + 15, 16, 36, -1, 36, 30, 30, 36, -1, 36, + 30, 30, 13, 14, 36, -1, 36, 30, 30, 15, + 16, 36, -1, 36, 17, 17, 36, -1, 36, 17, + 17, 13, 14, 36, -1, 36, 17, 17, 15, 16, + 36, -1, 36, 24, 24, 36, -1, 36, 24, 24, + 13, 14, 36, -1, 36, 24, 24, 15, 16, 36, + -1, 36, 5, 5, 36, -1, 36, 5, 5, 13, + 14, 36, -1, 36, 5, 5, 15, 16, 36, -1, + 36, 6, 6, 36, -1, 36, 6, 6, 13, 14, + 36, -1, 36, 6, 6, 15, 16, 36, -1, 29, + 36, -1, 29, 13, 14, 36, -1, 29, 15, 16, + 36, -1, 36, -1, 35, -1 +}; + +/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ +static const yytype_uint16 yyrline[] = +{ + 0, 198, 198, 198, 200, 258, 270, 272, 274, 275, + 276, 278, 279, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 358 +}; +#endif + +#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE +/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. + First, the terminals, then, starting at YYNTOKENS, nonterminals. */ +static const char *const yytname[] = +{ + "$end", "error", "$undefined", "LEXERLEAF", "'-'", "'>'", "'<'", "'('", + "')'", "'\"'", "'''", "'$'", "'~'", "'1'", "'6'", "'3'", "'2'", "'&'", + "'V'", "'?'", "'^'", "'@'", "'4'", "'5'", "'|'", "'+'", "'*'", "'/'", + "'%'", "'!'", "'='", "$accept", "input", "optimization", "template", + "expr3", "expr", "expr2", "replacement", 0 +}; +#endif + +# ifdef YYPRINT +/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to + token YYLEX-NUM. */ +static const yytype_uint16 yytoknum[] = +{ + 0, 256, 257, 258, 45, 62, 60, 40, 41, 34, + 39, 36, 126, 49, 54, 51, 50, 38, 86, 63, + 94, 64, 52, 53, 124, 43, 42, 47, 37, 33, + 61 +}; +# endif + +/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ +static const yytype_uint8 yyr1[] = +{ + 0, 31, 32, 32, 33, 33, 33, 34, 35, 35, + 35, 36, 36, 37, 37, 37, 37, 37, 37, 37, + 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, + 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, + 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, + 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, + 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, + 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, + 37, 37, 37, 37, 37, 37, 37, 37, 37, 38 +}; + +/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ +static const yytype_uint8 yyr2[] = +{ + 0, 2, 0, 2, 4, 4, 1, 1, 3, 3, + 3, 1, 1, 3, 3, 5, 5, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, + 4, 5, 5, 5, 5, 3, 5, 5, 3, 5, + 5, 3, 5, 5, 3, 5, 5, 3, 5, 5, + 3, 5, 5, 3, 5, 5, 3, 5, 5, 3, + 5, 5, 3, 5, 5, 4, 4, 4, 6, 6, + 4, 6, 6, 4, 6, 6, 4, 6, 6, 4, + 6, 6, 4, 6, 6, 2, 4, 4, 1, 1 +}; + +/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state + STATE-NUM when YYTABLE doesn't specify something else to do. Zero + means the default is an error. */ +static const yytype_uint8 yydefact[] = +{ + 2, 0, 1, 6, 0, 0, 0, 0, 3, 0, + 7, 0, 12, 0, 0, 0, 0, 0, 0, 0, + 11, 88, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 85, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, + 9, 10, 0, 5, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 47, 0, + 0, 0, 59, 0, 0, 0, 62, 13, 0, 0, + 14, 0, 0, 0, 35, 0, 0, 41, 0, 0, + 0, 38, 0, 0, 44, 0, 0, 50, 0, 0, + 53, 0, 0, 56, 0, 0, 89, 4, 65, 66, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, + 0, 30, 0, 0, 0, 0, 0, 0, 86, 87, + 0, 0, 0, 0, 79, 0, 0, 0, 0, 82, + 0, 0, 0, 0, 0, 0, 0, 0, 73, 0, + 0, 0, 0, 0, 0, 76, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 67, 0, 0, 70, + 27, 32, 26, 31, 28, 33, 29, 34, 48, 49, + 0, 0, 60, 61, 0, 0, 63, 64, 15, 16, + 36, 37, 0, 0, 42, 43, 39, 40, 0, 0, + 45, 46, 51, 52, 54, 55, 57, 58, 0, 0, + 0, 0, 80, 81, 83, 84, 74, 75, 77, 78, + 68, 69, 71, 72 +}; + +/* YYDEFGOTO[NTERM-NUM]. */ +static const yytype_int8 yydefgoto[] = +{ + -1, 1, 8, 9, 20, 21, 22, 127 +}; + +/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing + STATE-NUM. */ +#define YYPACT_NINF -20 +static const yytype_int16 yypact[] = +{ + -20, 10, -20, -20, 1, 210, 210, 210, -20, 3, + -20, 17, -20, -10, -2, 29, 63, 120, 192, 89, + -20, 83, 31, 34, 46, 67, 65, 68, 74, 72, + 77, 87, 81, 101, 102, 105, 106, 115, 25, 125, + 134, 141, 116, 118, -20, 188, 70, 162, 15, 231, + 54, 240, -1, 249, 258, 267, 276, 51, 109, -20, + -20, -20, 107, -20, 15, 15, 15, 15, 15, 15, + 15, 15, 15, 15, 15, 152, 132, 15, 153, 139, + 156, 157, 160, 163, 15, 15, 164, 167, -20, 285, + 166, 168, -20, 294, 173, 172, -20, -20, 175, 174, + -20, 178, 180, 303, -20, 190, 186, -20, 202, 205, + 312, -20, 204, 207, -20, 211, 208, -20, 212, 216, + -20, 219, 220, -20, 321, 330, -20, -20, -20, -20, + -20, -20, -20, -20, -20, -20, -20, -20, -20, 15, + 15, -20, 15, 15, 15, 15, 15, 15, -20, -20, + 15, 15, 221, 226, -20, 15, 15, 223, 229, -20, + 15, 15, 15, 15, 15, 15, 234, 235, -20, 15, + 15, 15, 15, 243, 238, -20, 15, 15, 15, 15, + 15, 15, 15, 15, 246, 247, -20, 252, 253, -20, + -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, + 15, 15, -20, -20, 15, 15, -20, -20, -20, -20, + -20, -20, 15, 15, -20, -20, -20, -20, 15, 15, + -20, -20, -20, -20, -20, -20, -20, -20, 15, 15, + 15, 15, -20, -20, -20, -20, -20, -20, -20, -20, + -20, -20, -20, -20 +}; + +/* YYPGOTO[NTERM-NUM]. */ +static const yytype_int8 yypgoto[] = +{ + -20, -20, -20, -20, 0, -19, 53, -20 +}; + +/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If + positive, shift that token. If negative, reduce the rule which + number is the opposite. If zero, do what YYDEFACT says. + If YYTABLE_NINF, syntax error. */ +#define YYTABLE_NINF -1 +static const yytype_uint8 yytable[] = +{ + 44, 10, 12, 27, 11, 28, 5, 25, 6, 7, + 2, 29, 108, 30, 109, 3, 4, 5, 12, 6, + 7, 26, 5, 110, 6, 7, 88, 92, 96, 97, + 100, 104, 107, 111, 114, 117, 120, 123, 75, 59, + 76, 77, 31, 60, 32, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 61, 12, 141, 23, + 24, 5, 126, 6, 7, 148, 149, 101, 63, 102, + 154, 103, 62, 12, 159, 89, 33, 5, 34, 6, + 7, 124, 64, 90, 168, 91, 66, 45, 46, 47, + 65, 175, 12, 67, 48, 49, 5, 69, 6, 7, + 50, 68, 42, 51, 43, 186, 189, 52, 53, 54, + 55, 56, 57, 58, 5, 70, 6, 7, 71, 72, + 190, 191, 73, 192, 193, 194, 195, 196, 197, 74, + 84, 198, 199, 35, 85, 36, 202, 203, 78, 125, + 79, 206, 207, 208, 209, 210, 211, 80, 140, 81, + 214, 215, 216, 217, 82, 143, 83, 220, 221, 222, + 223, 224, 225, 226, 227, 12, 139, 142, 93, 5, + 144, 6, 7, 145, 146, 94, 0, 95, 150, 147, + 155, 232, 233, 151, 156, 234, 235, 160, 161, 162, + 163, 12, 164, 236, 237, 5, 165, 6, 7, 238, + 239, 86, 170, 87, 169, 37, 0, 38, 39, 240, + 241, 242, 243, 12, 40, 41, 171, 5, 176, 6, + 7, 172, 13, 177, 179, 178, 180, 14, 15, 16, + 17, 18, 181, 182, 12, 200, 183, 204, 5, 19, + 6, 7, 201, 12, 98, 205, 99, 5, 212, 6, + 7, 213, 12, 105, 219, 106, 5, 218, 6, 7, + 228, 12, 112, 229, 113, 5, 230, 6, 7, 231, + 12, 115, 0, 116, 5, 0, 6, 7, 0, 12, + 118, 0, 119, 5, 0, 6, 7, 0, 12, 121, + 0, 122, 5, 0, 6, 7, 0, 12, 152, 0, + 153, 5, 0, 6, 7, 0, 12, 157, 0, 158, + 5, 0, 6, 7, 0, 12, 166, 0, 167, 5, + 0, 6, 7, 0, 12, 173, 0, 174, 5, 0, + 6, 7, 0, 12, 184, 0, 185, 5, 0, 6, + 7, 0, 0, 187, 0, 188 +}; + +static const yytype_int16 yycheck[] = +{ + 19, 1, 3, 13, 3, 15, 7, 4, 9, 10, + 0, 13, 13, 15, 15, 5, 6, 7, 3, 9, + 10, 4, 7, 24, 9, 10, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 13, 8, + 15, 16, 13, 9, 15, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 10, 3, 77, 6, + 7, 7, 62, 9, 10, 84, 85, 13, 3, 15, + 89, 17, 5, 3, 93, 5, 13, 7, 15, 9, + 10, 30, 14, 13, 103, 15, 14, 4, 5, 6, + 16, 110, 3, 16, 11, 12, 7, 16, 9, 10, + 17, 14, 13, 20, 15, 124, 125, 24, 25, 26, + 27, 28, 29, 30, 7, 14, 9, 10, 16, 14, + 139, 140, 16, 142, 143, 144, 145, 146, 147, 14, + 14, 150, 151, 13, 16, 15, 155, 156, 13, 30, + 15, 160, 161, 162, 163, 164, 165, 13, 16, 15, + 169, 170, 171, 172, 13, 16, 15, 176, 177, 178, + 179, 180, 181, 182, 183, 3, 14, 14, 6, 7, + 14, 9, 10, 16, 14, 13, -1, 15, 14, 16, + 14, 200, 201, 16, 16, 204, 205, 14, 16, 14, + 16, 3, 14, 212, 213, 7, 16, 9, 10, 218, + 219, 13, 16, 15, 14, 13, -1, 15, 16, 228, + 229, 230, 231, 3, 22, 23, 14, 7, 14, 9, + 10, 16, 12, 16, 16, 14, 14, 17, 18, 19, + 20, 21, 16, 14, 3, 14, 16, 14, 7, 29, + 9, 10, 16, 3, 13, 16, 15, 7, 14, 9, + 10, 16, 3, 13, 16, 15, 7, 14, 9, 10, + 14, 3, 13, 16, 15, 7, 14, 9, 10, 16, + 3, 13, -1, 15, 7, -1, 9, 10, -1, 3, + 13, -1, 15, 7, -1, 9, 10, -1, 3, 13, + -1, 15, 7, -1, 9, 10, -1, 3, 13, -1, + 15, 7, -1, 9, 10, -1, 3, 13, -1, 15, + 7, -1, 9, 10, -1, 3, 13, -1, 15, 7, + -1, 9, 10, -1, 3, 13, -1, 15, 7, -1, + 9, 10, -1, 3, 13, -1, 15, 7, -1, 9, + 10, -1, -1, 13, -1, 15 +}; + +/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing + symbol of state STATE-NUM. */ +static const yytype_uint8 yystos[] = +{ + 0, 32, 0, 5, 6, 7, 9, 10, 33, 34, + 35, 3, 3, 12, 17, 18, 19, 20, 21, 29, + 35, 36, 37, 37, 37, 4, 4, 13, 15, 13, + 15, 13, 15, 13, 15, 13, 15, 13, 15, 16, + 22, 23, 13, 15, 36, 4, 5, 6, 11, 12, + 17, 20, 24, 25, 26, 27, 28, 29, 30, 8, + 9, 10, 5, 3, 14, 16, 14, 16, 14, 16, + 14, 16, 14, 16, 14, 13, 15, 16, 13, 15, + 13, 15, 13, 15, 14, 16, 13, 15, 36, 5, + 13, 15, 36, 6, 13, 15, 36, 36, 13, 15, + 36, 13, 15, 17, 36, 13, 15, 36, 13, 15, + 24, 36, 13, 15, 36, 13, 15, 36, 13, 15, + 36, 13, 15, 36, 30, 30, 35, 38, 36, 36, + 36, 36, 36, 36, 36, 36, 36, 36, 36, 14, + 16, 36, 14, 16, 14, 16, 14, 16, 36, 36, + 14, 16, 13, 15, 36, 14, 16, 13, 15, 36, + 14, 16, 14, 16, 14, 16, 13, 15, 36, 14, + 16, 14, 16, 13, 15, 36, 14, 16, 14, 16, + 14, 16, 14, 16, 13, 15, 36, 13, 15, 36, + 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, + 14, 16, 36, 36, 14, 16, 36, 36, 36, 36, + 36, 36, 14, 16, 36, 36, 36, 36, 14, 16, + 36, 36, 36, 36, 36, 36, 36, 36, 14, 16, + 14, 16, 36, 36, 36, 36, 36, 36, 36, 36, + 36, 36, 36, 36 +}; + +#define yyerrok (yyerrstatus = 0) +#define yyclearin (yychar = YYEMPTY) +#define YYEMPTY (-2) +#define YYEOF 0 + +#define YYACCEPT goto yyacceptlab +#define YYABORT goto yyabortlab +#define YYERROR goto yyerrorlab + + +/* Like YYERROR except do call yyerror. This remains here temporarily + to ease the transition to the new meaning of YYERROR, for GCC. + Once GCC version 2 has supplanted version 1, this can go. */ + +#define YYFAIL goto yyerrlab + +#define YYRECOVERING() (!!yyerrstatus) + +#define YYBACKUP(Token, Value) \ +do \ + if (yychar == YYEMPTY && yylen == 1) \ + { \ + yychar = (Token); \ + yylval = (Value); \ + yytoken = YYTRANSLATE (yychar); \ + YYPOPSTACK (1); \ + goto yybackup; \ + } \ + else \ + { \ + yyerror (YY_("syntax error: cannot back up")); \ + YYERROR; \ + } \ +while (YYID (0)) + + +#define YYTERROR 1 +#define YYERRCODE 256 + + +/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. + If N is 0, then set CURRENT to the empty location which ends + the previous symbol: RHS[0] (always defined). */ + +#define YYRHSLOC(Rhs, K) ((Rhs)[K]) +#ifndef YYLLOC_DEFAULT +# define YYLLOC_DEFAULT(Current, Rhs, N) \ + do \ + if (YYID (N)) \ + { \ + (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ + (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ + (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ + (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ + } \ + else \ + { \ + (Current).first_line = (Current).last_line = \ + YYRHSLOC (Rhs, 0).last_line; \ + (Current).first_column = (Current).last_column = \ + YYRHSLOC (Rhs, 0).last_column; \ + } \ + while (YYID (0)) +#endif + + +/* YY_LOCATION_PRINT -- Print the location on the stream. + This macro was not mandated originally: define only if we know + we won't break user code: when these are the locations we know. */ + +#ifndef YY_LOCATION_PRINT +# if YYLTYPE_IS_TRIVIAL +# define YY_LOCATION_PRINT(File, Loc) \ + fprintf (File, "%d.%d-%d.%d", \ + (Loc).first_line, (Loc).first_column, \ + (Loc).last_line, (Loc).last_column) +# else +# define YY_LOCATION_PRINT(File, Loc) ((void) 0) +# endif +#endif + + +/* YYLEX -- calling `yylex' with the right arguments. */ + +#ifdef YYLEX_PARAM +# define YYLEX yylex (YYLEX_PARAM) +#else +# define YYLEX yylex () +#endif + +/* Enable debugging if requested. */ +#if YYDEBUG + +# ifndef YYFPRINTF +# include /* INFRINGES ON USER NAME SPACE */ +# define YYFPRINTF fprintf +# endif + +# define YYDPRINTF(Args) \ +do { \ + if (yydebug) \ + YYFPRINTF Args; \ +} while (YYID (0)) + +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ +do { \ + if (yydebug) \ + { \ + YYFPRINTF (stderr, "%s ", Title); \ + yy_symbol_print (stderr, \ + Type, Value); \ + YYFPRINTF (stderr, "\n"); \ + } \ +} while (YYID (0)) + + +/*--------------------------------. +| Print this symbol on YYOUTPUT. | +`--------------------------------*/ + +/*ARGSUSED*/ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) +#else +static void +yy_symbol_value_print (yyoutput, yytype, yyvaluep) + FILE *yyoutput; + int yytype; + YYSTYPE const * const yyvaluep; +#endif +{ + if (!yyvaluep) + return; +# ifdef YYPRINT + if (yytype < YYNTOKENS) + YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); +# else + YYUSE (yyoutput); +# endif + switch (yytype) + { + default: + break; + } +} + + +/*--------------------------------. +| Print this symbol on YYOUTPUT. | +`--------------------------------*/ + +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) +#else +static void +yy_symbol_print (yyoutput, yytype, yyvaluep) + FILE *yyoutput; + int yytype; + YYSTYPE const * const yyvaluep; +#endif +{ + if (yytype < YYNTOKENS) + YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); + else + YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); + + yy_symbol_value_print (yyoutput, yytype, yyvaluep); + YYFPRINTF (yyoutput, ")"); +} + +/*------------------------------------------------------------------. +| yy_stack_print -- Print the state stack from its BOTTOM up to its | +| TOP (included). | +`------------------------------------------------------------------*/ + +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yy_stack_print (yytype_int16 *bottom, yytype_int16 *top) +#else +static void +yy_stack_print (bottom, top) + yytype_int16 *bottom; + yytype_int16 *top; +#endif +{ + YYFPRINTF (stderr, "Stack now"); + for (; bottom <= top; ++bottom) + YYFPRINTF (stderr, " %d", *bottom); + YYFPRINTF (stderr, "\n"); +} + +# define YY_STACK_PRINT(Bottom, Top) \ +do { \ + if (yydebug) \ + yy_stack_print ((Bottom), (Top)); \ +} while (YYID (0)) + + +/*------------------------------------------------. +| Report that the YYRULE is going to be reduced. | +`------------------------------------------------*/ + +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yy_reduce_print (YYSTYPE *yyvsp, int yyrule) +#else +static void +yy_reduce_print (yyvsp, yyrule) + YYSTYPE *yyvsp; + int yyrule; +#endif +{ + int yynrhs = yyr2[yyrule]; + int yyi; + unsigned long int yylno = yyrline[yyrule]; + YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", + yyrule - 1, yylno); + /* The symbols being reduced. */ + for (yyi = 0; yyi < yynrhs; yyi++) + { + fprintf (stderr, " $%d = ", yyi + 1); + yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], + &(yyvsp[(yyi + 1) - (yynrhs)]) + ); + fprintf (stderr, "\n"); + } +} + +# define YY_REDUCE_PRINT(Rule) \ +do { \ + if (yydebug) \ + yy_reduce_print (yyvsp, Rule); \ +} while (YYID (0)) + +/* Nonzero means print parse trace. It is left uninitialized so that + multiple parsers can coexist. */ +int yydebug; +#else /* !YYDEBUG */ +# define YYDPRINTF(Args) +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) +# define YY_STACK_PRINT(Bottom, Top) +# define YY_REDUCE_PRINT(Rule) +#endif /* !YYDEBUG */ + + +/* YYINITDEPTH -- initial size of the parser's stacks. */ +#ifndef YYINITDEPTH +# define YYINITDEPTH 200 +#endif + +/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only + if the built-in stack extension method is used). + + Do not make this value too large; the results are undefined if + YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) + evaluated with infinite-precision integer arithmetic. */ + +#ifndef YYMAXDEPTH +# define YYMAXDEPTH 10000 +#endif + + + +#if YYERROR_VERBOSE + +# ifndef yystrlen +# if defined __GLIBC__ && defined _STRING_H +# define yystrlen strlen +# else +/* Return the length of YYSTR. */ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static YYSIZE_T +yystrlen (const char *yystr) +#else +static YYSIZE_T +yystrlen (yystr) + const char *yystr; +#endif +{ + YYSIZE_T yylen; + for (yylen = 0; yystr[yylen]; yylen++) + continue; + return yylen; +} +# endif +# endif + +# ifndef yystpcpy +# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE +# define yystpcpy stpcpy +# else +/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in + YYDEST. */ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static char * +yystpcpy (char *yydest, const char *yysrc) +#else +static char * +yystpcpy (yydest, yysrc) + char *yydest; + const char *yysrc; +#endif +{ + char *yyd = yydest; + const char *yys = yysrc; + + while ((*yyd++ = *yys++) != '\0') + continue; + + return yyd - 1; +} +# endif +# endif + +# ifndef yytnamerr +/* Copy to YYRES the contents of YYSTR after stripping away unnecessary + quotes and backslashes, so that it's suitable for yyerror. The + heuristic is that double-quoting is unnecessary unless the string + contains an apostrophe, a comma, or backslash (other than + backslash-backslash). YYSTR is taken from yytname. If YYRES is + null, do not copy; instead, return the length of what the result + would have been. */ +static YYSIZE_T +yytnamerr (char *yyres, const char *yystr) +{ + if (*yystr == '"') + { + YYSIZE_T yyn = 0; + char const *yyp = yystr; + + for (;;) + switch (*++yyp) + { + case '\'': + case ',': + goto do_not_strip_quotes; + + case '\\': + if (*++yyp != '\\') + goto do_not_strip_quotes; + /* Fall through. */ + default: + if (yyres) + yyres[yyn] = *yyp; + yyn++; + break; + + case '"': + if (yyres) + yyres[yyn] = '\0'; + return yyn; + } + do_not_strip_quotes: ; + } + + if (! yyres) + return yystrlen (yystr); + + return yystpcpy (yyres, yystr) - yyres; +} +# endif + +/* Copy into YYRESULT an error message about the unexpected token + YYCHAR while in state YYSTATE. Return the number of bytes copied, + including the terminating null byte. If YYRESULT is null, do not + copy anything; just return the number of bytes that would be + copied. As a special case, return 0 if an ordinary "syntax error" + message will do. Return YYSIZE_MAXIMUM if overflow occurs during + size calculation. */ +static YYSIZE_T +yysyntax_error (char *yyresult, int yystate, int yychar) +{ + int yyn = yypact[yystate]; + + if (! (YYPACT_NINF < yyn && yyn <= YYLAST)) + return 0; + else + { + int yytype = YYTRANSLATE (yychar); + YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]); + YYSIZE_T yysize = yysize0; + YYSIZE_T yysize1; + int yysize_overflow = 0; + enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; + char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; + int yyx; + +# if 0 + /* This is so xgettext sees the translatable formats that are + constructed on the fly. */ + YY_("syntax error, unexpected %s"); + YY_("syntax error, unexpected %s, expecting %s"); + YY_("syntax error, unexpected %s, expecting %s or %s"); + YY_("syntax error, unexpected %s, expecting %s or %s or %s"); + YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"); +# endif + char *yyfmt; + char const *yyf; + static char const yyunexpected[] = "syntax error, unexpected %s"; + static char const yyexpecting[] = ", expecting %s"; + static char const yyor[] = " or %s"; + char yyformat[sizeof yyunexpected + + sizeof yyexpecting - 1 + + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2) + * (sizeof yyor - 1))]; + char const *yyprefix = yyexpecting; + + /* Start YYX at -YYN if negative to avoid negative indexes in + YYCHECK. */ + int yyxbegin = yyn < 0 ? -yyn : 0; + + /* Stay within bounds of both yycheck and yytname. */ + int yychecklim = YYLAST - yyn + 1; + int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; + int yycount = 1; + + yyarg[0] = yytname[yytype]; + yyfmt = yystpcpy (yyformat, yyunexpected); + + for (yyx = yyxbegin; yyx < yyxend; ++yyx) + if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) + { + if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) + { + yycount = 1; + yysize = yysize0; + yyformat[sizeof yyunexpected - 1] = '\0'; + break; + } + yyarg[yycount++] = yytname[yyx]; + yysize1 = yysize + yytnamerr (0, yytname[yyx]); + yysize_overflow |= (yysize1 < yysize); + yysize = yysize1; + yyfmt = yystpcpy (yyfmt, yyprefix); + yyprefix = yyor; + } + + yyf = YY_(yyformat); + yysize1 = yysize + yystrlen (yyf); + yysize_overflow |= (yysize1 < yysize); + yysize = yysize1; + + if (yysize_overflow) + return YYSIZE_MAXIMUM; + + if (yyresult) + { + /* Avoid sprintf, as that infringes on the user's name space. + Don't have undefined behavior even if the translation + produced a string with the wrong number of "%s"s. */ + char *yyp = yyresult; + int yyi = 0; + while ((*yyp = *yyf) != '\0') + { + if (*yyp == '%' && yyf[1] == 's' && yyi < yycount) + { + yyp += yytnamerr (yyp, yyarg[yyi++]); + yyf += 2; + } + else + { + yyp++; + yyf++; + } + } + } + return yysize; + } +} +#endif /* YYERROR_VERBOSE */ + + +/*-----------------------------------------------. +| Release the memory associated to this symbol. | +`-----------------------------------------------*/ + +/*ARGSUSED*/ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) +#else +static void +yydestruct (yymsg, yytype, yyvaluep) + const char *yymsg; + int yytype; + YYSTYPE *yyvaluep; +#endif +{ + YYUSE (yyvaluep); + + if (!yymsg) + yymsg = "Deleting"; + YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); + + switch (yytype) + { + + default: + break; + } +} + + +/* Prevent warnings from -Wmissing-prototypes. */ + +#ifdef YYPARSE_PARAM +#if defined __STDC__ || defined __cplusplus +int yyparse (void *YYPARSE_PARAM); +#else +int yyparse (); +#endif +#else /* ! YYPARSE_PARAM */ +#if defined __STDC__ || defined __cplusplus +int yyparse (void); +#else +int yyparse (); +#endif +#endif /* ! YYPARSE_PARAM */ + + + +/* The look-ahead symbol. */ +int yychar; + +/* The semantic value of the look-ahead symbol. */ +YYSTYPE yylval; + +/* Number of syntax errors so far. */ +int yynerrs; + + + +/*----------. +| yyparse. | +`----------*/ + +#ifdef YYPARSE_PARAM +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +int +yyparse (void *YYPARSE_PARAM) +#else +int +yyparse (YYPARSE_PARAM) + void *YYPARSE_PARAM; +#endif +#else /* ! YYPARSE_PARAM */ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +int +yyparse (void) +#else +int +yyparse () + +#endif +#endif +{ + + int yystate; + int yyn; + int yyresult; + /* Number of tokens to shift before error messages enabled. */ + int yyerrstatus; + /* Look-ahead token as an internal (translated) token number. */ + int yytoken = 0; +#if YYERROR_VERBOSE + /* Buffer for error messages, and its allocated size. */ + char yymsgbuf[128]; + char *yymsg = yymsgbuf; + YYSIZE_T yymsg_alloc = sizeof yymsgbuf; +#endif + + /* Three stacks and their tools: + `yyss': related to states, + `yyvs': related to semantic values, + `yyls': related to locations. + + Refer to the stacks thru separate pointers, to allow yyoverflow + to reallocate them elsewhere. */ + + /* The state stack. */ + yytype_int16 yyssa[YYINITDEPTH]; + yytype_int16 *yyss = yyssa; + yytype_int16 *yyssp; + + /* The semantic value stack. */ + YYSTYPE yyvsa[YYINITDEPTH]; + YYSTYPE *yyvs = yyvsa; + YYSTYPE *yyvsp; + + + +#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) + + YYSIZE_T yystacksize = YYINITDEPTH; + + /* The variables used to return semantic value and location from the + action routines. */ + YYSTYPE yyval; + + + /* The number of symbols on the RHS of the reduced rule. + Keep to zero when no symbol should be popped. */ + int yylen = 0; + + YYDPRINTF ((stderr, "Starting parse\n")); + + yystate = 0; + yyerrstatus = 0; + yynerrs = 0; + yychar = YYEMPTY; /* Cause a token to be read. */ + + /* Initialize stack pointers. + Waste one element of value and location stack + so that they stay on the same level as the state stack. + The wasted elements are never initialized. */ + + yyssp = yyss; + yyvsp = yyvs; + + goto yysetstate; + +/*------------------------------------------------------------. +| yynewstate -- Push a new state, which is found in yystate. | +`------------------------------------------------------------*/ + yynewstate: + /* In all cases, when you get here, the value and location stacks + have just been pushed. So pushing a state here evens the stacks. */ + yyssp++; + + yysetstate: + *yyssp = yystate; + + if (yyss + yystacksize - 1 <= yyssp) + { + /* Get the current used size of the three stacks, in elements. */ + YYSIZE_T yysize = yyssp - yyss + 1; + +#ifdef yyoverflow + { + /* Give user a chance to reallocate the stack. Use copies of + these so that the &'s don't force the real ones into + memory. */ + YYSTYPE *yyvs1 = yyvs; + yytype_int16 *yyss1 = yyss; + + + /* Each stack pointer address is followed by the size of the + data in use in that stack, in bytes. This used to be a + conditional around just the two extra args, but that might + be undefined if yyoverflow is a macro. */ + yyoverflow (YY_("memory exhausted"), + &yyss1, yysize * sizeof (*yyssp), + &yyvs1, yysize * sizeof (*yyvsp), + + &yystacksize); + + yyss = yyss1; + yyvs = yyvs1; + } +#else /* no yyoverflow */ +# ifndef YYSTACK_RELOCATE + goto yyexhaustedlab; +# else + /* Extend the stack our own way. */ + if (YYMAXDEPTH <= yystacksize) + goto yyexhaustedlab; + yystacksize *= 2; + if (YYMAXDEPTH < yystacksize) + yystacksize = YYMAXDEPTH; + + { + yytype_int16 *yyss1 = yyss; + union yyalloc *yyptr = + (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); + if (! yyptr) + goto yyexhaustedlab; + YYSTACK_RELOCATE (yyss); + YYSTACK_RELOCATE (yyvs); + +# undef YYSTACK_RELOCATE + if (yyss1 != yyssa) + YYSTACK_FREE (yyss1); + } +# endif +#endif /* no yyoverflow */ + + yyssp = yyss + yysize - 1; + yyvsp = yyvs + yysize - 1; + + + YYDPRINTF ((stderr, "Stack size increased to %lu\n", + (unsigned long int) yystacksize)); + + if (yyss + yystacksize - 1 <= yyssp) + YYABORT; + } + + YYDPRINTF ((stderr, "Entering state %d\n", yystate)); + + goto yybackup; + +/*-----------. +| yybackup. | +`-----------*/ +yybackup: + + /* Do appropriate processing given the current state. Read a + look-ahead token if we need one and don't already have one. */ + + /* First try to decide what to do without reference to look-ahead token. */ + yyn = yypact[yystate]; + if (yyn == YYPACT_NINF) + goto yydefault; + + /* Not known => get a look-ahead token if don't already have one. */ + + /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */ + if (yychar == YYEMPTY) + { + YYDPRINTF ((stderr, "Reading a token: ")); + yychar = YYLEX; + } + + if (yychar <= YYEOF) + { + yychar = yytoken = YYEOF; + YYDPRINTF ((stderr, "Now at end of input.\n")); + } + else + { + yytoken = YYTRANSLATE (yychar); + YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); + } + + /* If the proper action on seeing token YYTOKEN is to reduce or to + detect an error, take that action. */ + yyn += yytoken; + if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) + goto yydefault; + yyn = yytable[yyn]; + if (yyn <= 0) + { + if (yyn == 0 || yyn == YYTABLE_NINF) + goto yyerrlab; + yyn = -yyn; + goto yyreduce; + } + + if (yyn == YYFINAL) + YYACCEPT; + + /* Count tokens shifted since error; after three, turn off error + status. */ + if (yyerrstatus) + yyerrstatus--; + + /* Shift the look-ahead token. */ + YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); + + /* Discard the shifted token unless it is eof. */ + if (yychar != YYEOF) + yychar = YYEMPTY; + + yystate = yyn; + *++yyvsp = yylval; + + goto yynewstate; + + +/*-----------------------------------------------------------. +| yydefault -- do the default action for the current state. | +`-----------------------------------------------------------*/ +yydefault: + yyn = yydefact[yystate]; + if (yyn == 0) + goto yyerrlab; + goto yyreduce; + + +/*-----------------------------. +| yyreduce -- Do a reduction. | +`-----------------------------*/ +yyreduce: + /* yyn is the number of a rule to reduce with. */ + yylen = yyr2[yyn]; + + /* If YYLEN is nonzero, implement the default value of the action: + `$$ = $1'. + + Otherwise, the following line sets YYVAL to garbage. + This behavior is undocumented and Bison + users should not rely upon it. Assigning to YYVAL + unconditionally makes the parser a bit smaller, and it avoids a + GCC warning that YYVAL may be used uninitialized. */ + yyval = yyvsp[1-yylen]; + + + YY_REDUCE_PRINT (yyn); + switch (yyn) + { + case 4: +#line 201 "oil.y" + { + static YYSTYPE tempmem[10]; + static int replcount[10]; + /* Handle splitting the file. */ + if(splitcount) splitcount--; + if(!splitcount && !inloop) + { + splitcount=SPLITMAX; + splitend(); + ++filenumber; + splitstart(); + } + /* This is where we actually generate the optimizer code. */ + /* Tree-shape and is-constant conditions */ + printf(" checknodeactbits(np);\n"); + if(treeshapecond((yyvsp[(1) - (4)]),1)) printf(" if(1"); printf(")\n do\n {\n"); + /* Nodesame and cxdata conditions */ + { + int i=10; + YYSTYPE temp; + while(--i) + { + temp=treenscheck((yyvsp[(1) - (4)]),0,i); + if(temp) + { + printf(" x%d=np",i); + gennodepath(temp->depth,temp->path); + printf("->constant; c%d=np",i); + gennodepath(temp->depth,temp->path); + printf("->optdata;\n"); + } + tempmem[i]=temp; + replcount[i]=0; /* we need to zero this somewhere, may as well be here */ + } + treecxcond((yyvsp[(1) - (4)])); + } + /* If we reach this point in the generated code, we have an optimizer + template match. */ + printf(" OPTING(%s);\n",optname); + + /* We now need to replace np with its replacement. This is done by creating + a new nodetree, copying across tempmem'd nodes where necessary, and then + substituting one for the other. (This is an inefficient but general way + to do this.) One special case is needed; because pointers into the root + node need to continue pointing there, the temporary node tp is copied + member-for-member and then freed again. To make coding optimizations + easier, the root stays as the same width no matter what. */ + printf(" tp=newnode();\n"); + treerepcount((yyvsp[(4) - (4)]),replcount); + treerepgen((yyvsp[(4) - (4)]),tempmem,replcount); + printf(" nodefree(np->lval); nodefree(np->rval);\n"); + printf(" tempw=np->width; *np=*tp; np->width=tempw; free(tp);\n"); + printf(" } while(0);\n\n"); + /* Free the template and replacement now they're finished being used. */ + treefree((yyvsp[(1) - (4)])); + treefree((yyvsp[(4) - (4)])); +} + break; + + case 5: +#line 259 "oil.y" + { + if(!(yyvsp[(2) - (4)])->mustbemesh||!(yyvsp[(4) - (4)])->mustbemesh) + { + yyerror("syntax error in <#..#()->()> construct"); + free((yyvsp[(2) - (4)])); free((yyvsp[(4) - (4)])); + YYERROR; + } + printf(" r=%luLU; while(r<=%luLU) {\n",(yyvsp[(2) - (4)])->c,(yyvsp[(4) - (4)])->c); + free((yyvsp[(2) - (4)])); free((yyvsp[(4) - (4)])); + inloop=1; +} + break; + + case 6: +#line 270 "oil.y" + {printf(" r++;\n }\n"); inloop=0;} + break; + + case 8: +#line 274 "oil.y" + {(yyval)=(yyvsp[(2) - (3)]);} + break; + + case 9: +#line 275 "oil.y" + {(yyval)=(yyvsp[(2) - (3)]);} + break; + + case 10: +#line 276 "oil.y" + {(yyval)=(yyvsp[(2) - (3)]);} + break; + + case 13: +#line 281 "oil.y" + {BINARYEXPR("MINGLE",(yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),1);} + break; + + case 14: +#line 282 "oil.y" + {BINARYEXPR("SELECT",(yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),1);} + break; + + case 15: +#line 283 "oil.y" + {BINARYEXPR("SELECT",(yyval),(yyvsp[(1) - (5)]),(yyvsp[(5) - (5)]),0);} + break; + + case 16: +#line 284 "oil.y" + {BINARYEXPR("SELECT",(yyval),(yyvsp[(1) - (5)]),(yyvsp[(5) - (5)]),1);} + break; + + case 17: +#line 285 "oil.y" + {UNARYEXPR("AND",(yyval),(yyvsp[(4) - (4)]),0,1);} + break; + + case 18: +#line 286 "oil.y" + {UNARYEXPR("AND",(yyval),(yyvsp[(4) - (4)]),1,1);} + break; + + case 19: +#line 287 "oil.y" + {UNARYEXPR("OR",(yyval),(yyvsp[(4) - (4)]),0,1);} + break; + + case 20: +#line 288 "oil.y" + {UNARYEXPR("OR",(yyval),(yyvsp[(4) - (4)]),1,1);} + break; + + case 21: +#line 289 "oil.y" + {UNARYEXPR("XOR",(yyval),(yyvsp[(4) - (4)]),0,1);} + break; + + case 22: +#line 290 "oil.y" + {UNARYEXPR("XOR",(yyval),(yyvsp[(4) - (4)]),1,1);} + break; + + case 23: +#line 291 "oil.y" + {UNARYEXPR("FIN",(yyval),(yyvsp[(4) - (4)]),0,1);} + break; + + case 24: +#line 292 "oil.y" + {UNARYEXPR("FIN",(yyval),(yyvsp[(4) - (4)]),1,1);} + break; + + case 25: +#line 293 "oil.y" + {UNARYEXPR("WHIRL",(yyval),(yyvsp[(4) - (4)]),0,1);} + break; + + case 26: +#line 294 "oil.y" + {UNARYEXPR("WHIRL2",(yyval),(yyvsp[(5) - (5)]),0,1);} + break; + + case 27: +#line 295 "oil.y" + {UNARYEXPR("WHIRL3",(yyval),(yyvsp[(5) - (5)]),0,1);} + break; + + case 28: +#line 296 "oil.y" + {UNARYEXPR("WHIRL4",(yyval),(yyvsp[(5) - (5)]),0,1);} + break; + + case 29: +#line 297 "oil.y" + {UNARYEXPR("WHIRL5",(yyval),(yyvsp[(5) - (5)]),0,1);} + break; + + case 30: +#line 298 "oil.y" + {UNARYEXPR("WHIRL",(yyval),(yyvsp[(4) - (4)]),1,1);} + break; + + case 31: +#line 299 "oil.y" + {UNARYEXPR("WHIRL2",(yyval),(yyvsp[(5) - (5)]),1,1);} + break; + + case 32: +#line 300 "oil.y" + {UNARYEXPR("WHIRL3",(yyval),(yyvsp[(5) - (5)]),1,1);} + break; + + case 33: +#line 301 "oil.y" + {UNARYEXPR("WHIRL4",(yyval),(yyvsp[(5) - (5)]),1,1);} + break; + + case 34: +#line 302 "oil.y" + {UNARYEXPR("WHIRL5",(yyval),(yyvsp[(5) - (5)]),1,1);} + break; + + case 35: +#line 303 "oil.y" + {BINARYEXPR("C_AND",(yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),1);} + break; + + case 36: +#line 304 "oil.y" + {BINARYEXPR("C_AND",(yyval),(yyvsp[(1) - (5)]),(yyvsp[(5) - (5)]),0);} + break; + + case 37: +#line 305 "oil.y" + {BINARYEXPR("C_AND",(yyval),(yyvsp[(1) - (5)]),(yyvsp[(5) - (5)]),1);} + break; + + case 38: +#line 306 "oil.y" + {BINARYEXPR("C_OR",(yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),1);} + break; + + case 39: +#line 307 "oil.y" + {BINARYEXPR("C_OR",(yyval),(yyvsp[(1) - (5)]),(yyvsp[(5) - (5)]),0);} + break; + + case 40: +#line 308 "oil.y" + {BINARYEXPR("C_OR",(yyval),(yyvsp[(1) - (5)]),(yyvsp[(5) - (5)]),1);} + break; + + case 41: +#line 309 "oil.y" + {BINARYEXPR("C_XOR",(yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),1);} + break; + + case 42: +#line 310 "oil.y" + {BINARYEXPR("C_XOR",(yyval),(yyvsp[(1) - (5)]),(yyvsp[(5) - (5)]),0);} + break; + + case 43: +#line 311 "oil.y" + {BINARYEXPR("C_XOR",(yyval),(yyvsp[(1) - (5)]),(yyvsp[(5) - (5)]),1);} + break; + + case 44: +#line 312 "oil.y" + {BINARYEXPR("C_PLUS",(yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),1);} + break; + + case 45: +#line 313 "oil.y" + {BINARYEXPR("C_PLUS",(yyval),(yyvsp[(1) - (5)]),(yyvsp[(5) - (5)]),0);} + break; + + case 46: +#line 314 "oil.y" + {BINARYEXPR("C_PLUS",(yyval),(yyvsp[(1) - (5)]),(yyvsp[(5) - (5)]),1);} + break; + + case 47: +#line 315 "oil.y" + {BINARYEXPR("C_MINUS",(yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),1);} + break; + + case 48: +#line 316 "oil.y" + {BINARYEXPR("C_MINUS",(yyval),(yyvsp[(1) - (5)]),(yyvsp[(5) - (5)]),0);} + break; + + case 49: +#line 317 "oil.y" + {BINARYEXPR("C_MINUS",(yyval),(yyvsp[(1) - (5)]),(yyvsp[(5) - (5)]),1);} + break; + + case 50: +#line 318 "oil.y" + {BINARYEXPR("C_TIMES",(yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),1);} + break; + + case 51: +#line 319 "oil.y" + {BINARYEXPR("C_TIMES",(yyval),(yyvsp[(1) - (5)]),(yyvsp[(5) - (5)]),0);} + break; + + case 52: +#line 320 "oil.y" + {BINARYEXPR("C_TIMES",(yyval),(yyvsp[(1) - (5)]),(yyvsp[(5) - (5)]),1);} + break; + + case 53: +#line 321 "oil.y" + {BINARYEXPR("C_DIVIDEBY",(yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),1);} + break; + + case 54: +#line 322 "oil.y" + {BINARYEXPR("C_DIVIDEBY",(yyval),(yyvsp[(1) - (5)]),(yyvsp[(5) - (5)]),0);} + break; + + case 55: +#line 323 "oil.y" + {BINARYEXPR("C_DIVIDEBY",(yyval),(yyvsp[(1) - (5)]),(yyvsp[(5) - (5)]),1);} + break; + + case 56: +#line 324 "oil.y" + {BINARYEXPR("C_MODULUS",(yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),1);} + break; + + case 57: +#line 325 "oil.y" + {BINARYEXPR("C_MODULUS",(yyval),(yyvsp[(1) - (5)]),(yyvsp[(5) - (5)]),0);} + break; + + case 58: +#line 326 "oil.y" + {BINARYEXPR("C_MODULUS",(yyval),(yyvsp[(1) - (5)]),(yyvsp[(5) - (5)]),1);} + break; + + case 59: +#line 327 "oil.y" + {BINARYEXPR("C_GREATER",(yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),1);} + break; + + case 60: +#line 328 "oil.y" + {BINARYEXPR("C_GREATER",(yyval),(yyvsp[(1) - (5)]),(yyvsp[(5) - (5)]),0);} + break; + + case 61: +#line 329 "oil.y" + {BINARYEXPR("C_GREATER",(yyval),(yyvsp[(1) - (5)]),(yyvsp[(5) - (5)]),1);} + break; + + case 62: +#line 330 "oil.y" + {BINARYEXPR("C_LESS",(yyval),(yyvsp[(1) - (3)]),(yyvsp[(3) - (3)]),1);} + break; + + case 63: +#line 331 "oil.y" + {BINARYEXPR("C_LESS",(yyval),(yyvsp[(1) - (5)]),(yyvsp[(5) - (5)]),0);} + break; + + case 64: +#line 332 "oil.y" + {BINARYEXPR("C_LESS",(yyval),(yyvsp[(1) - (5)]),(yyvsp[(5) - (5)]),1);} + break; + + case 65: +#line 333 "oil.y" + {UNARYEXPR("C_NOT",(yyval),(yyvsp[(4) - (4)]),0,1);} + break; + + case 66: +#line 334 "oil.y" + {UNARYEXPR("C_NOT",(yyval),(yyvsp[(4) - (4)]),1,1);} + break; + + case 67: +#line 335 "oil.y" + {BINARYEXPR("C_NOTEQUAL",(yyval),(yyvsp[(1) - (4)]),(yyvsp[(4) - (4)]),0);} + break; + + case 68: +#line 336 "oil.y" + {BINARYEXPR("C_NOTEQUAL",(yyval),(yyvsp[(1) - (6)]),(yyvsp[(6) - (6)]),0);} + break; + + case 69: +#line 337 "oil.y" + {BINARYEXPR("C_NOTEQUAL",(yyval),(yyvsp[(1) - (6)]),(yyvsp[(6) - (6)]),1);} + break; + + case 70: +#line 338 "oil.y" + {BINARYEXPR("C_ISEQUAL",(yyval),(yyvsp[(1) - (4)]),(yyvsp[(4) - (4)]),0);} + break; + + case 71: +#line 339 "oil.y" + {BINARYEXPR("C_ISEQUAL",(yyval),(yyvsp[(1) - (6)]),(yyvsp[(6) - (6)]),0);} + break; + + case 72: +#line 340 "oil.y" + {BINARYEXPR("C_ISEQUAL",(yyval),(yyvsp[(1) - (6)]),(yyvsp[(6) - (6)]),1);} + break; + + case 73: +#line 341 "oil.y" + {BINARYEXPR("C_LOGICALAND",(yyval),(yyvsp[(1) - (4)]),(yyvsp[(4) - (4)]),0);} + break; + + case 74: +#line 342 "oil.y" + {BINARYEXPR("C_LOGICALAND",(yyval),(yyvsp[(1) - (6)]),(yyvsp[(6) - (6)]),0);} + break; + + case 75: +#line 343 "oil.y" + {BINARYEXPR("C_LOGICALAND",(yyval),(yyvsp[(1) - (6)]),(yyvsp[(6) - (6)]),1);} + break; + + case 76: +#line 344 "oil.y" + {BINARYEXPR("C_LOGICALOR",(yyval),(yyvsp[(1) - (4)]),(yyvsp[(4) - (4)]),0);} + break; + + case 77: +#line 345 "oil.y" + {BINARYEXPR("C_LOGICALOR",(yyval),(yyvsp[(1) - (6)]),(yyvsp[(6) - (6)]),0);} + break; + + case 78: +#line 346 "oil.y" + {BINARYEXPR("C_LOGICALOR",(yyval),(yyvsp[(1) - (6)]),(yyvsp[(6) - (6)]),1);} + break; + + case 79: +#line 347 "oil.y" + {BINARYEXPR("C_RSHIFTBY",(yyval),(yyvsp[(1) - (4)]),(yyvsp[(4) - (4)]),1);} + break; + + case 80: +#line 348 "oil.y" + {BINARYEXPR("C_RSHIFTBY",(yyval),(yyvsp[(1) - (6)]),(yyvsp[(6) - (6)]),0);} + break; + + case 81: +#line 349 "oil.y" + {BINARYEXPR("C_RSHIFTBY",(yyval),(yyvsp[(1) - (6)]),(yyvsp[(6) - (6)]),1);} + break; + + case 82: +#line 350 "oil.y" + {BINARYEXPR("C_LSHIFTBY",(yyval),(yyvsp[(1) - (4)]),(yyvsp[(4) - (4)]),1);} + break; + + case 83: +#line 351 "oil.y" + {BINARYEXPR("C_LSHIFTBY",(yyval),(yyvsp[(1) - (6)]),(yyvsp[(6) - (6)]),0);} + break; + + case 84: +#line 352 "oil.y" + {BINARYEXPR("C_LSHIFTBY",(yyval),(yyvsp[(1) - (6)]),(yyvsp[(6) - (6)]),1);} + break; + + case 85: +#line 353 "oil.y" + {UNARYEXPR("C_LOGICALNOT",(yyval),(yyvsp[(2) - (2)]),0,0);} + break; + + case 86: +#line 354 "oil.y" + {UNARYEXPR("C_LOGICALNOT",(yyval),(yyvsp[(4) - (4)]),0,0);} + break; + + case 87: +#line 355 "oil.y" + {UNARYEXPR("C_LOGICALNOT",(yyval),(yyvsp[(4) - (4)]),1,0);} + break; + + +/* Line 1267 of yacc.c. */ +#line 2127 "oil-oil.c" + default: break; + } + YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); + + YYPOPSTACK (yylen); + yylen = 0; + YY_STACK_PRINT (yyss, yyssp); + + *++yyvsp = yyval; + + + /* Now `shift' the result of the reduction. Determine what state + that goes to, based on the state we popped back to and the rule + number reduced by. */ + + yyn = yyr1[yyn]; + + yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; + if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) + yystate = yytable[yystate]; + else + yystate = yydefgoto[yyn - YYNTOKENS]; + + goto yynewstate; + + +/*------------------------------------. +| yyerrlab -- here on detecting error | +`------------------------------------*/ +yyerrlab: + /* If not already recovering from an error, report this error. */ + if (!yyerrstatus) + { + ++yynerrs; +#if ! YYERROR_VERBOSE + yyerror (YY_("syntax error")); +#else + { + YYSIZE_T yysize = yysyntax_error (0, yystate, yychar); + if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM) + { + YYSIZE_T yyalloc = 2 * yysize; + if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM)) + yyalloc = YYSTACK_ALLOC_MAXIMUM; + if (yymsg != yymsgbuf) + YYSTACK_FREE (yymsg); + yymsg = (char *) YYSTACK_ALLOC (yyalloc); + if (yymsg) + yymsg_alloc = yyalloc; + else + { + yymsg = yymsgbuf; + yymsg_alloc = sizeof yymsgbuf; + } + } + + if (0 < yysize && yysize <= yymsg_alloc) + { + (void) yysyntax_error (yymsg, yystate, yychar); + yyerror (yymsg); + } + else + { + yyerror (YY_("syntax error")); + if (yysize != 0) + goto yyexhaustedlab; + } + } +#endif + } + + + + if (yyerrstatus == 3) + { + /* If just tried and failed to reuse look-ahead token after an + error, discard it. */ + + if (yychar <= YYEOF) + { + /* Return failure if at end of input. */ + if (yychar == YYEOF) + YYABORT; + } + else + { + yydestruct ("Error: discarding", + yytoken, &yylval); + yychar = YYEMPTY; + } + } + + /* Else will try to reuse look-ahead token after shifting the error + token. */ + goto yyerrlab1; + + +/*---------------------------------------------------. +| yyerrorlab -- error raised explicitly by YYERROR. | +`---------------------------------------------------*/ +yyerrorlab: + + /* Pacify compilers like GCC when the user code never invokes + YYERROR and the label yyerrorlab therefore never appears in user + code. */ + if (/*CONSTCOND*/ 0) + goto yyerrorlab; + + /* Do not reclaim the symbols of the rule which action triggered + this YYERROR. */ + YYPOPSTACK (yylen); + yylen = 0; + YY_STACK_PRINT (yyss, yyssp); + yystate = *yyssp; + goto yyerrlab1; + + +/*-------------------------------------------------------------. +| yyerrlab1 -- common code for both syntax error and YYERROR. | +`-------------------------------------------------------------*/ +yyerrlab1: + yyerrstatus = 3; /* Each real token shifted decrements this. */ + + for (;;) + { + yyn = yypact[yystate]; + if (yyn != YYPACT_NINF) + { + yyn += YYTERROR; + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) + { + yyn = yytable[yyn]; + if (0 < yyn) + break; + } + } + + /* Pop the current state because it cannot handle the error token. */ + if (yyssp == yyss) + YYABORT; + + + yydestruct ("Error: popping", + yystos[yystate], yyvsp); + YYPOPSTACK (1); + yystate = *yyssp; + YY_STACK_PRINT (yyss, yyssp); + } + + if (yyn == YYFINAL) + YYACCEPT; + + *++yyvsp = yylval; + + + /* Shift the error token. */ + YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); + + yystate = yyn; + goto yynewstate; + + +/*-------------------------------------. +| yyacceptlab -- YYACCEPT comes here. | +`-------------------------------------*/ +yyacceptlab: + yyresult = 0; + goto yyreturn; + +/*-----------------------------------. +| yyabortlab -- YYABORT comes here. | +`-----------------------------------*/ +yyabortlab: + yyresult = 1; + goto yyreturn; + +#ifndef yyoverflow +/*-------------------------------------------------. +| yyexhaustedlab -- memory exhaustion comes here. | +`-------------------------------------------------*/ +yyexhaustedlab: + yyerror (YY_("memory exhausted")); + yyresult = 2; + /* Fall through. */ +#endif + +yyreturn: + if (yychar != YYEOF && yychar != YYEMPTY) + yydestruct ("Cleanup: discarding lookahead", + yytoken, &yylval); + /* Do not reclaim the symbols of the rule which action triggered + this YYABORT or YYACCEPT. */ + YYPOPSTACK (yylen); + YY_STACK_PRINT (yyss, yyssp); + while (yyssp != yyss) + { + yydestruct ("Cleanup: popping", + yystos[*yyssp], yyvsp); + YYPOPSTACK (1); + } +#ifndef yyoverflow + if (yyss != yyssa) + YYSTACK_FREE (yyss); +#endif +#if YYERROR_VERBOSE + if (yymsg != yymsgbuf) + YYSTACK_FREE (yymsg); +#endif + /* Make sure YYID is used. */ + return YYID (yyresult); +} + + +#line 360 "oil.y" + + +#define MAXTOFREE 1000 + +char* tofree[MAXTOFREE]={0}; +int tfi=0; + +int yylex(void) +{ + int c; + unsigned long acc; + + /* Whitespace is completely insignificant here, even inside && and other + two-character operators. Just to be different, though, it /is/ significant + inside constructs like .1 and #{1}2; in such cases, it isn't allowed. */ + c=countgetchar(); + while(isspace(c)) c=countgetchar(); + while(c==';'||c=='[') + { + /* Comments go from a semicolon/hybrid to the end of the line. */ + if(c==';') + { + c=countgetchar(); + while(c!='\n') c=countgetchar(); + while(isspace(c)) c=countgetchar(); + } + /* Square brackets set the name for optimizations. */ + if(c=='[') + { + int i=0; + c=countgetchar(); + while(c!=']') + { + optname[i++]=c; + c=countgetchar(); + if(i==MAXOPTNAMELEN-1) {i=0; yyerror("optimization name too long");} + } + optname[i]=0; + c=countgetchar(); + while(isspace(c)) c=countgetchar(); + } + } + if(c==EOF) return 0; + switch(c) + { + case '#': + c=countgetchar(); + if(c!='{') + { + acc=0; + while(isdigit(c)) + { + acc*=10; + acc+=(c-'0'); + c=countgetchar(); + } + yylval=malloc(sizeof(struct ickstype)); + yylval->depth=0; + yylval->path=0; + yylval->condition="->constant=="; + yylval->nodetypename=0; + yylval->usec=1; + yylval->mustbemesh=1; + yylval->cxneeded=0; + yylval->c=acc; + yylval->replnum=0; + yylval->n1=0; + yylval->n2=0; + yylval->ublo=0; + yylval->width32=1; /* generate MESH32 not MESH; we can still AND16 it, + etc., if necessary */ + countungetc(c, stdin); + return LEXERLEAF; + } + countungetc(c, stdin); + c='#'; + /* fall through */ + case '_': + case ':': + case '.': + yylval=malloc(sizeof(struct ickstype)); + yylval->depth=0; + yylval->path=0; + yylval->condition=0; /* _ or # */ + yylval->width32=1; /* should never matter, but you never + know... */ + yylval->ublo=0; + if(c==':') yylval->condition="->width==32"; + if(c=='.') {yylval->condition="->width==16"; yylval->width32=0;} + yylval->nodetypename=0; + yylval->usec=0; + yylval->mustbemesh=c=='#'; + yylval->cxneeded=0; + c=countgetchar(); + if(c=='{') + { + /* Create a new node to hold the c/x condition */ + yylval->n1=malloc(sizeof(struct ickstype)); + yylval->n1->depth=0; + yylval->n1->path=0; + { + static char buf[512]; + int bi=0; + c=countgetchar(); + while(c!='}') + { + buf[bi++]=c; + if(bi==511) {yyerror("{quoted} string too long"); bi=0;} + c=countgetchar(); + } + buf[bi]=0; + yylval->n1->condition=tofree[tfi++]=strdup(buf); + if(tfi==MAXTOFREE) {yyerror("Too many {quoted} strings"); tfi--;} + c=countgetchar(); + } + yylval->n1->nodetypename=0; + yylval->n1->usec=0; + yylval->n1->mustbemesh=0; + yylval->n1->cxneeded=1; + yylval->n1->n1=0; + yylval->n1->n2=0; + yylval->n1->width32=yylval->width32; + yylval->n1->ublo=0; + } + else yylval->n1=0; + yylval->replnum=0; + if(yylval->n1) yylval->n1->replnum=c-'0'; else yylval->replnum=c-'0'; + yylval->n2=0; + return LEXERLEAF; + default: + return c; + } +} + +void treedepthup(YYSTYPE v, mybool i) +{ + if(!v) return; + treedepthup(v->n1,i); + treedepthup(v->n2,i); + v->depth++; + v->path<<=1; + v->path|=i; + if(v->depth>30) yyerror("Nesting too deep in template or replacement\n"); +} + +void treefree(YYSTYPE v) +{ + if(!v) return; + treefree(v->n1); + treefree(v->n2); + free(v); +} + +void gennodepath(unsigned depth, unsigned long path) +{ + while(depth--) + { + if(path&1) printf("->rval"); else printf("->lval"); + path>>=1; + } +} + +mybool treeshapecond(YYSTYPE v, mybool firstopt) +{ + if(!v) return firstopt; + /* To prevent possibly dereferencing a null pointer, check the root ick_first */ + if(v->mustbemesh) /* it's a must-be-constant constraint */ + { + printf(firstopt?" if((np":" &&\n (np"); + gennodepath(v->depth,v->path); + printf("->opcode==MESH || np"); + gennodepath(v->depth,v->path); + printf("->opcode==MESH32)"); + firstopt=0; + } + if(v->condition&&!v->cxneeded) /* it's a tree-shape constraint */ + { + printf(firstopt?" if(np":" &&\n np"); + gennodepath(v->depth,v->path); + printf("%s",v->condition); + if(v->usec) printf("%luLU",v->c); + firstopt=0; + } + if(v->ublo) /* generate a width check */ + { + printf(firstopt?" if(np":" &&\n np"); + gennodepath(v->depth,v->path); + printf("->width==%d",v->width32?32:16); + firstopt=0; + } + firstopt=treeshapecond(v->n1,firstopt); + return treeshapecond(v->n2,firstopt); +} + +YYSTYPE treenscheck(YYSTYPE v, YYSTYPE prev, int replnum) +{ + if(!v) return prev; + prev=treenscheck(v->n1,prev,replnum); + prev=treenscheck(v->n2,prev,replnum); + if(v->replnum!=replnum) return prev; + if(prev) + { + printf(" if(!nodessame(np"); + gennodepath(prev->depth,prev->path); + printf(",np"); + gennodepath(v->depth,v->path); + printf(")) break;\n"); + } + return v; +} + +void treecxcond(YYSTYPE v) +{ + if(!v) return; + if(v->cxneeded&&strcmp(v->condition,"1")) + { + if(v->replnum) + printf(" x=x%d; c=c%d; ",v->replnum,v->replnum); + else + { + printf(" x=np"); + gennodepath(v->depth,v->path); + printf("->constant;\n c=np"); + gennodepath(v->depth,v->path); + printf("->optdata;\n "); + } + printf("if(!(%s)) break;\n",v->condition); + } + treecxcond(v->n1); + treecxcond(v->n2); +} + +void treerepcount(YYSTYPE v, int* rc) +{ + if(!v) return; + if(!(v->nodetypename)&&v->replnum&&!(v->cxneeded)) rc[v->replnum]++; + treerepcount(v->n1, rc); + treerepcount(v->n2, rc); +} + +void treerepgen(YYSTYPE v, YYSTYPE* refs, int* rc) +{ + if(!v) return; + /* We absolutely have to generate the root node ick_first here, because otherwise + the nodes in question won't exist. */ + if(v->nodetypename) /* Generate an intermediate node */ + { + printf(" MAYBENEWNODE(tp"); + gennodepath(v->depth,v->path); + printf(");\n tp"); + gennodepath(v->depth,v->path); + printf("->opcode=%s;\n tp",v->nodetypename); + gennodepath(v->depth,v->path); + printf("->width=%d;\n",v->width32?32:16); + /* optdata will be filled in by checknodeactbits before the ick_next idiom is + tested; constant is irrelevant, lval and rval are NULL at present and + will be filled in by later recursions of this function, and I seriously + hope that nextslat is never filled in by an optimizer idiom. */ + } + else if(v->replnum&&!(v->cxneeded)) + { + /* Copy a node from the template. The node ought not to be allocated at + this point, so we can safely just ick_assign to it with a new malloced + node. */ + if(refs[v->replnum]) + { + if(rc[v->replnum]>1||!refs[v->replnum]->depth) + { + /* The node actually has to be copied, either because another copy is + needed or because it's np itself that's being copied over. */ + rc[v->replnum]--; + printf(" tp"); + gennodepath(v->depth,v->path); + printf("=nodecopy(np"); + gennodepath(refs[v->replnum]->depth,refs[v->replnum]->path); + printf(");\n"); + } + else + { + /* This can be optimized slightly by moving rather than copying, + zeroing backlinks so that the node won't be freed. */ + rc[v->replnum]--; + printf(" tp"); + gennodepath(v->depth,v->path); + printf("=np"); + gennodepath(refs[v->replnum]->depth,refs[v->replnum]->path); + printf(";\n np"); + gennodepath(refs[v->replnum]->depth,refs[v->replnum]->path); + printf("=0;\n"); + } + } + else yyerror("Replacement isn't in the template"); + } + else if(v->cxneeded) + { + /* Generate a constant node based on an expression (#{expr}0). */ + printf(" MAYBENEWNODE(tp"); + gennodepath(v->depth,v->path); + printf(");\n tp"); + gennodepath(v->depth,v->path); + printf("->opcode=MESH32;\n tp"); + gennodepath(v->depth,v->path); + printf("->width=32;\n tp"); + gennodepath(v->depth,v->path); + printf("->constant=(%s);\n",v->condition); + } + else if(v->mustbemesh&&!v->n1) + { + /* Generate a constant node based on a constant (#65535). */ + printf(" MAYBENEWNODE(tp"); + gennodepath(v->depth,v->path); + printf(");\n tp"); + gennodepath(v->depth,v->path); + printf("->opcode=MESH32;\n tp"); + gennodepath(v->depth,v->path); + printf("->width=32;\n tp"); + gennodepath(v->depth,v->path); + printf("->constant=(%luLU);\n",v->c); + } + else if(v->mustbemesh&&v->n1) + /* let this node's n1 handle it */ ; + else + yyerror("can't figure out how to generate a replacement node\n"); + treerepgen(v->n1,refs,rc); + treerepgen(v->n2,refs,rc); +} + +int yyerror(char const *s) +{ + fprintf(stderr,"Error at (%d:%d): \"%s\"\n",cgcrow,cgccol,s); + return 0; /* this return value is ignored anyway */ +} + +static int cgcpushback=0; + +int countgetchar(void) +{ + int c=getchar(); + if(cgcpushback) {cgcpushback=0; return c;} + cgccol++; + if(c=='\n') {cgccol=0; cgcrow++;} + return c; +} + +int countungetc(int c, FILE* f) +{ + ungetc(c,f); + cgcpushback=1; + return c; +} + +void splitstart() +{ + static char fname[]="oilout00.c"; + if(filenumber>255) + { + filenumber=255; + fprintf(stdout,"Input file too long.\n"); + } + sprintf(fname,"oilout%02x.c",filenumber); + freopen(fname,"w",stdout); + puts("/* Automatically generated output, edit source and recompile to " + "change */"); + printf("#include \"oil.h\"\n" + "int optimize_pass1_%x(node *np)\n" + "{" + " int opted=0;\n" + " unsigned long c,c1,c2,c3,c4,c5,c6,c7,c8,c9;\n" + " unsigned long x,x1,x2,x3,x4,x5,x6,x7,x8,x9,r;\n" + " int tempw;\n" + " node *tp;\n", filenumber); +} + +void splitend() +{ + /* Disabling warnings about unused variables. gcc will optimize this right + out, and in any case the raise(SIGSEGV) will be unreachable (but will + cause a pretty recognizable error because it'll be caught by the handler + for SIGSEGV and output an internal error, with an obvious debug backtrace + if -U is used). */ + printf(" c=c1=c2=c3=c4=c5=c6=c7=c8=c9=0;\n" + " x=x1=x2=x3=x4=x5=x6=x7=x8=x9=r=0;\n" + " if(c+c1+c2+c3+c4+c5+c6+c7+c8+c9+r+\n" + " x+x1+x2+x3+x4+x5+x6+x7+x8+x9) raise(SIGSEGV);\n"); + printf(" return opted;\n}\n"); + fclose(stdout); +} + +int main(void) +{ + int e,i; + /* + " if(!np) return 0;\n" + " if(np->lval) opted|=optimize_pass1(np->lval);\n" + " if(np->rval) opted|=optimize_pass1(np->rval);\n" + */ + splitstart(); + cgccol=0; + cgcrow=1; + e=yyparse(); + while(tfi--) free(tofree[tfi]); + splitend(); + freopen("oilout-m.c","w",stdout); + puts("/* Automatically generated output, edit source and recompile to " + "change */"); + puts("#include \"ick.h\""); + i=filenumber+1; + while(i--) printf("extern int optimize_pass1_%x(node*);\n",i); + puts("int optimize_pass1(node* np)\n" + "{\n" + " int opted=0;\n" + " if(!np) return 0;\n" + " if(np->lval) opted|=optimize_pass1(np->lval);\n" + " if(np->rval) opted|=optimize_pass1(np->rval);"); + i=filenumber+1; + while(i--) printf(" opted|=optimize_pass1_%x(np);\n",i); + puts(" return opted;\n" + "}"); + return e; +} + diff --git a/prebuilt/parser.c b/prebuilt/parser.c new file mode 100644 index 0000000..0d70329 --- /dev/null +++ b/prebuilt/parser.c @@ -0,0 +1,3012 @@ +/* A Bison parser, made by GNU Bison 2.3. */ + +/* Skeleton implementation for Bison's Yacc-like parsers in C + + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 + Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. */ + +/* As a special exception, you may create a larger work that contains + part or all of the Bison parser skeleton and distribute that work + under terms of your choice, so long as that work isn't itself a + parser generator using the skeleton or a modified version thereof + as a parser skeleton. Alternatively, if you modify or redistribute + the parser skeleton itself, you may (at your option) remove this + special exception, which will cause the skeleton and the resulting + Bison output files to be licensed under the GNU General Public + License without this special exception. + + This special exception was added by the Free Software Foundation in + version 2.2 of Bison. */ + +/* C LALR(1) parser skeleton written by Richard Stallman, by + simplifying the original so-called "semantic" parser. */ + +/* All symbols defined below should begin with yy or YY, to avoid + infringing on user name space. This should be done even for local + variables, as they might otherwise be expanded by user macros. + There are some unavoidable exceptions within include files to + define necessary library symbols; they are noted "INFRINGES ON + USER NAME SPACE" below. */ + +/* Identify Bison output. */ +#define YYBISON 1 + +/* Bison version. */ +#define YYBISON_VERSION "2.3" + +/* Skeleton name. */ +#define YYSKELETON_NAME "yacc.c" + +/* Pure parsers. */ +#define YYPURE 0 + +/* Using locations. */ +#define YYLSP_NEEDED 0 + + + +/* Tokens. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + /* Put the tokens into the symbol table, so that GDB and other debuggers + know about them. */ + enum yytokentype { + UNKNOWN = 258, + GETS = 259, + RESIZE = 260, + NEXT = 261, + GO_AHEAD = 262, + GO_BACK = 263, + FORGET = 264, + RESUME = 265, + STASH = 266, + RETRIEVE = 267, + IGNORE = 268, + REMEMBER = 269, + ABSTAIN = 270, + REINSTATE = 271, + DISABLE = 272, + ENABLE = 273, + MANYFROM = 274, + GIVE_UP = 275, + READ_OUT = 276, + WRITE_IN = 277, + PIN = 278, + COME_FROM = 279, + NEXTFROMLABEL = 280, + NEXTFROMEXPR = 281, + NEXTFROMGERUND = 282, + COMPUCOME = 283, + GERUCOME = 284, + PREPROC = 285, + WHILE = 286, + TRY_AGAIN = 287, + CREATE = 288, + COMPUCREATE = 289, + FROM = 290, + MAYBE = 291, + DO = 292, + PLEASE = 293, + NOT = 294, + ONCE = 295, + AGAIN = 296, + MESH = 297, + NOSPOT = 298, + ick_ONESPOT = 299, + ick_TWOSPOT = 300, + ick_TAIL = 301, + ick_HYBRID = 302, + MINGLE = 303, + SELECT = 304, + UNKNOWNOP = 305, + SUB = 306, + BY = 307, + SLAT = 308, + BACKSLAT = 309, + NUMBER = 310, + UNARY = 311, + OHOHSEVEN = 312, + GERUND = 313, + LABEL = 314, + BADCHAR = 315, + INTERSECTION = 316, + SPLATTERED = 317, + MESH32 = 318, + C_AND = 319, + C_OR = 320, + C_XOR = 321, + C_NOT = 322, + C_LOGICALNOT = 323, + C_LSHIFTBY = 324, + C_RSHIFTBY = 325, + C_NOTEQUAL = 326, + C_A = 327, + C_PLUS = 328, + C_MINUS = 329, + C_TIMES = 330, + C_DIVIDEBY = 331, + C_MODULUS = 332, + C_GREATER = 333, + C_LESS = 334, + C_ISEQUAL = 335, + C_LOGICALAND = 336, + C_LOGICALOR = 337, + AND = 338, + OR = 339, + XOR = 340, + FIN = 341, + WHIRL = 342, + WHIRL2 = 343, + WHIRL3 = 344, + WHIRL4 = 345, + WHIRL5 = 346, + REV_AND = 347, + REV_OR = 348, + REV_XOR = 349, + REV_FIN = 350, + REV_WHIRL = 351, + REV_WHIRL2 = 352, + REV_WHIRL3 = 353, + REV_WHIRL4 = 354, + REV_WHIRL5 = 355, + UNKNOWNID = 356, + US_ID = 357, + US_SCALAR = 358, + US_ARRVAR = 359, + US_ELEM = 360, + US_EXPR = 361, + CLOSESPARK = 362, + CLOSEEARS = 363, + OPENSPARK = 364, + OPENEARS = 365, + HIGHPREC = 366, + UNARYPREC = 367, + LOWPREC = 368 + }; +#endif +/* Tokens. */ +#define UNKNOWN 258 +#define GETS 259 +#define RESIZE 260 +#define NEXT 261 +#define GO_AHEAD 262 +#define GO_BACK 263 +#define FORGET 264 +#define RESUME 265 +#define STASH 266 +#define RETRIEVE 267 +#define IGNORE 268 +#define REMEMBER 269 +#define ABSTAIN 270 +#define REINSTATE 271 +#define DISABLE 272 +#define ENABLE 273 +#define MANYFROM 274 +#define GIVE_UP 275 +#define READ_OUT 276 +#define WRITE_IN 277 +#define PIN 278 +#define COME_FROM 279 +#define NEXTFROMLABEL 280 +#define NEXTFROMEXPR 281 +#define NEXTFROMGERUND 282 +#define COMPUCOME 283 +#define GERUCOME 284 +#define PREPROC 285 +#define WHILE 286 +#define TRY_AGAIN 287 +#define CREATE 288 +#define COMPUCREATE 289 +#define FROM 290 +#define MAYBE 291 +#define DO 292 +#define PLEASE 293 +#define NOT 294 +#define ONCE 295 +#define AGAIN 296 +#define MESH 297 +#define NOSPOT 298 +#define ick_ONESPOT 299 +#define ick_TWOSPOT 300 +#define ick_TAIL 301 +#define ick_HYBRID 302 +#define MINGLE 303 +#define SELECT 304 +#define UNKNOWNOP 305 +#define SUB 306 +#define BY 307 +#define SLAT 308 +#define BACKSLAT 309 +#define NUMBER 310 +#define UNARY 311 +#define OHOHSEVEN 312 +#define GERUND 313 +#define LABEL 314 +#define BADCHAR 315 +#define INTERSECTION 316 +#define SPLATTERED 317 +#define MESH32 318 +#define C_AND 319 +#define C_OR 320 +#define C_XOR 321 +#define C_NOT 322 +#define C_LOGICALNOT 323 +#define C_LSHIFTBY 324 +#define C_RSHIFTBY 325 +#define C_NOTEQUAL 326 +#define C_A 327 +#define C_PLUS 328 +#define C_MINUS 329 +#define C_TIMES 330 +#define C_DIVIDEBY 331 +#define C_MODULUS 332 +#define C_GREATER 333 +#define C_LESS 334 +#define C_ISEQUAL 335 +#define C_LOGICALAND 336 +#define C_LOGICALOR 337 +#define AND 338 +#define OR 339 +#define XOR 340 +#define FIN 341 +#define WHIRL 342 +#define WHIRL2 343 +#define WHIRL3 344 +#define WHIRL4 345 +#define WHIRL5 346 +#define REV_AND 347 +#define REV_OR 348 +#define REV_XOR 349 +#define REV_FIN 350 +#define REV_WHIRL 351 +#define REV_WHIRL2 352 +#define REV_WHIRL3 353 +#define REV_WHIRL4 354 +#define REV_WHIRL5 355 +#define UNKNOWNID 356 +#define US_ID 357 +#define US_SCALAR 358 +#define US_ARRVAR 359 +#define US_ELEM 360 +#define US_EXPR 361 +#define CLOSESPARK 362 +#define CLOSEEARS 363 +#define OPENSPARK 364 +#define OPENEARS 365 +#define HIGHPREC 366 +#define UNARYPREC 367 +#define LOWPREC 368 + + + + +/* Copy the first part of user declarations. */ +#line 30 "parser.y" + +#include "config.h" +#include +#include +#include "sizes.h" +#include "ick.h" +#include "feh.h" +#include "ick_lose.h" + +extern int yyerror(char*); + +/* Intervene our ick_first-stage lexer. */ +extern int lexer(void); +#define yylex() lexer() + +static node *rlist; /* pointer to current right-hand node list */ +/*static node *llist;*/ /* pointer to current left-hand node list */ +static node *np; /* variable for building node lists */ + +extern int stbeginline; /* line number of last seen preamble */ +static int thisline; /* line number of beginning of current statement */ + +extern int mark112; /* AIS: Mark the tuple for W112 when it's created. */ +static int lineuid=65537; /* AIS: a line number not used anywhere else */ +static int cacsofar=0; /* AIS: Number of args in a CREATE statement */ + +static tuple *splat(int); + +static tuple *prevtuple = NULL; + +#define GETLINENO \ + {if (stbeginline < 0) thisline = -stbeginline; \ + else {thisline = stbeginline; stbeginline = 0;}} + +#define ACTION(x, nt, nn) \ + {x = newtuple(); x->type = nt; x->ick_lineno = thisline; x->u.node = nn;} +#define TARGET(x, nt, nn) \ + {x = newtuple(); x->type = nt; x->ick_lineno = thisline; x->u.target = nn;} +#define ACTARGET(x, nt, nn, nn2)\ + {x = newtuple(); x->type = nt; x->ick_lineno = thisline;\ + x->u.node = nn; x->u.target = nn2;} +/* AIS : The macro above was added for ABSTAIN expr FROM. */ +#define NEWFANGLED mark112 = 1; /* AIS: Added the mention of mark112 */ \ + if (ick_traditional) ick_lose(IE111,iyylineno,(char*)NULL); else + +#define DESTACKSE1 sparkearsstack[sparkearslev--/32] >>= 1 +#define DESTACKSPARKEARS DESTACKSE1; DESTACKSE1 + + + +/* Enabling traces. */ +#ifndef YYDEBUG +# define YYDEBUG 0 +#endif + +/* Enabling verbose error messages. */ +#ifdef YYERROR_VERBOSE +# undef YYERROR_VERBOSE +# define YYERROR_VERBOSE 1 +#else +# define YYERROR_VERBOSE 0 +#endif + +/* Enabling the token table. */ +#ifndef YYTOKEN_TABLE +# define YYTOKEN_TABLE 0 +#endif + +#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED +typedef union YYSTYPE +#line 83 "parser.y" +{ + int numval; /* a numeric value */ + tuple *tuple; /* a code tuple */ + node *node; /* an expression-tree node */ +} +/* Line 187 of yacc.c. */ +#line 378 "parser.c" + YYSTYPE; +# define yystype YYSTYPE /* obsolescent; will be withdrawn */ +# define YYSTYPE_IS_DECLARED 1 +# define YYSTYPE_IS_TRIVIAL 1 +#endif + + + +/* Copy the second part of user declarations. */ + + +/* Line 216 of yacc.c. */ +#line 391 "parser.c" + +#ifdef short +# undef short +#endif + +#ifdef YYTYPE_UINT8 +typedef YYTYPE_UINT8 yytype_uint8; +#else +typedef unsigned char yytype_uint8; +#endif + +#ifdef YYTYPE_INT8 +typedef YYTYPE_INT8 yytype_int8; +#elif (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +typedef signed char yytype_int8; +#else +typedef short int yytype_int8; +#endif + +#ifdef YYTYPE_UINT16 +typedef YYTYPE_UINT16 yytype_uint16; +#else +typedef unsigned short int yytype_uint16; +#endif + +#ifdef YYTYPE_INT16 +typedef YYTYPE_INT16 yytype_int16; +#else +typedef short int yytype_int16; +#endif + +#ifndef YYSIZE_T +# ifdef __SIZE_TYPE__ +# define YYSIZE_T __SIZE_TYPE__ +# elif defined size_t +# define YYSIZE_T size_t +# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +# include /* INFRINGES ON USER NAME SPACE */ +# define YYSIZE_T size_t +# else +# define YYSIZE_T unsigned int +# endif +#endif + +#define YYSIZE_MAXIMUM ((YYSIZE_T) -1) + +#ifndef YY_ +# if YYENABLE_NLS +# if ENABLE_NLS +# include /* INFRINGES ON USER NAME SPACE */ +# define YY_(msgid) dgettext ("bison-runtime", msgid) +# endif +# endif +# ifndef YY_ +# define YY_(msgid) msgid +# endif +#endif + +/* Suppress unused-variable warnings by "using" E. */ +#if ! defined lint || defined __GNUC__ +# define YYUSE(e) ((void) (e)) +#else +# define YYUSE(e) /* empty */ +#endif + +/* Identity function, used to suppress warnings about constant conditions. */ +#ifndef lint +# define YYID(n) (n) +#else +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static int +YYID (int i) +#else +static int +YYID (i) + int i; +#endif +{ + return i; +} +#endif + +#if ! defined yyoverflow || YYERROR_VERBOSE + +/* The parser invokes alloca or malloc; define the necessary symbols. */ + +# ifdef YYSTACK_USE_ALLOCA +# if YYSTACK_USE_ALLOCA +# ifdef __GNUC__ +# define YYSTACK_ALLOC __builtin_alloca +# elif defined __BUILTIN_VA_ARG_INCR +# include /* INFRINGES ON USER NAME SPACE */ +# elif defined _AIX +# define YYSTACK_ALLOC __alloca +# elif defined _MSC_VER +# include /* INFRINGES ON USER NAME SPACE */ +# define alloca _alloca +# else +# define YYSTACK_ALLOC alloca +# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +# include /* INFRINGES ON USER NAME SPACE */ +# ifndef _STDLIB_H +# define _STDLIB_H 1 +# endif +# endif +# endif +# endif +# endif + +# ifdef YYSTACK_ALLOC + /* Pacify GCC's `empty if-body' warning. */ +# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) +# ifndef YYSTACK_ALLOC_MAXIMUM + /* The OS might guarantee only one guard page at the bottom of the stack, + and a page size can be as small as 4096 bytes. So we cannot safely + invoke alloca (N) if N exceeds 4096. Use a slightly smaller number + to allow for a few compiler-allocated temporary stack slots. */ +# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ +# endif +# else +# define YYSTACK_ALLOC YYMALLOC +# define YYSTACK_FREE YYFREE +# ifndef YYSTACK_ALLOC_MAXIMUM +# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM +# endif +# if (defined __cplusplus && ! defined _STDLIB_H \ + && ! ((defined YYMALLOC || defined malloc) \ + && (defined YYFREE || defined free))) +# include /* INFRINGES ON USER NAME SPACE */ +# ifndef _STDLIB_H +# define _STDLIB_H 1 +# endif +# endif +# ifndef YYMALLOC +# define YYMALLOC malloc +# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ +# endif +# endif +# ifndef YYFREE +# define YYFREE free +# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +void free (void *); /* INFRINGES ON USER NAME SPACE */ +# endif +# endif +# endif +#endif /* ! defined yyoverflow || YYERROR_VERBOSE */ + + +#if (! defined yyoverflow \ + && (! defined __cplusplus \ + || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) + +/* A type that is properly aligned for any stack member. */ +union yyalloc +{ + yytype_int16 yyss; + YYSTYPE yyvs; + }; + +/* The size of the maximum gap between one aligned stack and the next. */ +# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) + +/* The size of an array large to enough to hold all stacks, each with + N elements. */ +# define YYSTACK_BYTES(N) \ + ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ + + YYSTACK_GAP_MAXIMUM) + +/* Copy COUNT objects from FROM to TO. The source and destination do + not overlap. */ +# ifndef YYCOPY +# if defined __GNUC__ && 1 < __GNUC__ +# define YYCOPY(To, From, Count) \ + __builtin_memcpy (To, From, (Count) * sizeof (*(From))) +# else +# define YYCOPY(To, From, Count) \ + do \ + { \ + YYSIZE_T yyi; \ + for (yyi = 0; yyi < (Count); yyi++) \ + (To)[yyi] = (From)[yyi]; \ + } \ + while (YYID (0)) +# endif +# endif + +/* Relocate STACK from its old location to the new one. The + local variables YYSIZE and YYSTACKSIZE give the old and new number of + elements in the stack, and YYPTR gives the new location of the + stack. Advance YYPTR to a properly aligned location for the next + stack. */ +# define YYSTACK_RELOCATE(Stack) \ + do \ + { \ + YYSIZE_T yynewbytes; \ + YYCOPY (&yyptr->Stack, Stack, yysize); \ + Stack = &yyptr->Stack; \ + yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ + yyptr += yynewbytes / sizeof (*yyptr); \ + } \ + while (YYID (0)) + +#endif + +/* YYFINAL -- State number of the termination state. */ +#define YYFINAL 2 +/* YYLAST -- Last index in YYTABLE. */ +#define YYLAST 670 + +/* YYNTOKENS -- Number of terminals. */ +#define YYNTOKENS 114 +/* YYNNTS -- Number of nonterminals. */ +#define YYNNTS 43 +/* YYNRULES -- Number of rules. */ +#define YYNRULES 145 +/* YYNRULES -- Number of states. */ +#define YYNSTATES 230 + +/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ +#define YYUNDEFTOK 2 +#define YYMAXUTOK 368 + +#define YYTRANSLATE(YYX) \ + ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) + +/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ +static const yytype_uint8 yytranslate[] = +{ + 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113 +}; + +#if YYDEBUG +/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in + YYRHS. */ +static const yytype_uint16 yyprhs[] = +{ + 0, 0, 3, 4, 7, 10, 14, 18, 23, 25, + 27, 30, 33, 35, 39, 41, 44, 46, 49, 53, + 57, 61, 64, 67, 70, 73, 76, 79, 82, 86, + 90, 95, 100, 103, 106, 109, 112, 115, 117, 119, + 121, 123, 125, 128, 131, 133, 136, 139, 142, 146, + 149, 153, 155, 157, 159, 161, 164, 166, 168, 171, + 173, 176, 178, 180, 182, 184, 186, 188, 192, 194, + 196, 198, 200, 203, 206, 209, 212, 215, 219, 223, + 226, 228, 232, 234, 236, 238, 242, 244, 246, 248, + 250, 252, 256, 258, 262, 264, 266, 270, 274, 277, + 280, 282, 284, 286, 288, 292, 296, 298, 300, 304, + 308, 312, 316, 318, 320, 322, 324, 328, 332, 336, + 340, 342, 346, 350, 354, 358, 360, 362, 364, 366, + 368, 370, 374, 379, 384, 388, 392, 394, 396, 398, + 401, 403, 406, 408, 410, 412 +}; + +/* YYRHS -- A `-1'-separated list of the rules' RHS. */ +static const yytype_int16 yyrhs[] = +{ + 115, 0, -1, -1, 115, 116, -1, 119, 117, -1, + 119, 57, 117, -1, 59, 119, 117, -1, 59, 119, + 57, 117, -1, 1, -1, 118, -1, 118, 40, -1, + 118, 41, -1, 120, -1, 120, 31, 120, -1, 37, + -1, 37, 39, -1, 36, -1, 36, 39, -1, 128, + 4, 147, -1, 131, 4, 139, -1, 148, 4, 147, + -1, 59, 6, -1, 9, 147, -1, 10, 147, -1, + 11, 134, -1, 12, 134, -1, 13, 134, -1, 14, + 134, -1, 15, 35, 59, -1, 15, 35, 126, -1, + 15, 147, 35, 59, -1, 15, 147, 35, 126, -1, + 16, 59, -1, 16, 126, -1, 22, 136, -1, 21, + 138, -1, 23, 129, -1, 20, -1, 7, -1, 8, + -1, 32, -1, 24, -1, 28, 126, -1, 28, 147, + -1, 25, -1, 26, 126, -1, 26, 147, -1, 33, + 121, -1, 34, 147, 122, -1, 33, 146, -1, 34, + 154, 146, -1, 121, -1, 60, -1, 1, -1, 124, + -1, 123, 124, -1, 123, -1, 125, -1, 125, 121, + -1, 125, -1, 121, 125, -1, 140, -1, 130, -1, + 148, -1, 131, -1, 101, -1, 58, -1, 126, 61, + 58, -1, 130, -1, 131, -1, 130, -1, 140, -1, + 45, 55, -1, 44, 55, -1, 45, 55, -1, 46, + 55, -1, 47, 55, -1, 46, 56, 55, -1, 47, + 56, 55, -1, 42, 55, -1, 127, -1, 134, 61, + 127, -1, 130, -1, 140, -1, 131, -1, 135, 61, + 136, -1, 135, -1, 130, -1, 140, -1, 133, -1, + 131, -1, 137, 61, 138, -1, 137, -1, 147, 52, + 139, -1, 147, -1, 141, -1, 131, 51, 142, -1, + 131, 51, 143, -1, 154, 142, -1, 154, 143, -1, + 141, -1, 145, -1, 154, -1, 145, -1, 132, 51, + 142, -1, 132, 51, 143, -1, 60, -1, 154, -1, + 154, 49, 147, -1, 154, 48, 147, -1, 154, 146, + 147, -1, 130, 53, 147, -1, 140, -1, 144, -1, + 153, -1, 144, -1, 154, 49, 147, -1, 154, 48, + 147, -1, 154, 146, 147, -1, 130, 53, 147, -1, + 152, -1, 152, 49, 147, -1, 152, 48, 147, -1, + 152, 146, 147, -1, 130, 53, 147, -1, 140, -1, + 144, -1, 42, -1, 44, -1, 45, -1, 133, -1, + 150, 56, 55, -1, 155, 56, 147, 107, -1, 156, + 56, 147, 108, -1, 155, 149, 107, -1, 156, 149, + 108, -1, 151, -1, 130, -1, 151, -1, 56, 154, + -1, 152, -1, 56, 154, -1, 109, -1, 107, -1, + 110, -1, 108, -1 +}; + +/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ +static const yytype_uint16 yyrline[] = +{ + 0, 168, 168, 169, 181, 183, 185, 187, 189, 204, + 206, 209, 226, 227, 266, 267, 268, 269, 273, 274, + 275, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 304, 307, 309, 312, 315, 316, 319, + 321, 325, 327, 328, 333, 334, 336, 339, 340, 342, + 343, 348, 355, 362, 369, 372, 376, 378, 387, 387, + 389, 389, 391, 397, 403, 411, 417, 427, 435, 446, + 461, 462, 468, 468, 468, 469, 470, 475, 475, 475, + 475, 476, 477, 483, 484, 488, 489, 491, 493, 494, + 496, 497, 498, 502, 503, 506, 511, 516, 519, 520, + 521, 532, 537, 538, 542, 543, 544, 545, 546, 556, + 564, 565, 566, 567, 577, 582, 583, 587, 587, 587, + 592, 594, 616, 623, 632, 633, 636, 637, 640, 641, + 651, 652, 656, 657, 660, 661 +}; +#endif + +#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE +/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. + First, the terminals, then, starting at YYNTOKENS, nonterminals. */ +static const char *const yytname[] = +{ + "$end", "error", "$undefined", "UNKNOWN", "GETS", "RESIZE", "NEXT", + "GO_AHEAD", "GO_BACK", "FORGET", "RESUME", "STASH", "RETRIEVE", "IGNORE", + "REMEMBER", "ABSTAIN", "REINSTATE", "DISABLE", "ENABLE", "MANYFROM", + "GIVE_UP", "READ_OUT", "WRITE_IN", "PIN", "COME_FROM", "NEXTFROMLABEL", + "NEXTFROMEXPR", "NEXTFROMGERUND", "COMPUCOME", "GERUCOME", "PREPROC", + "WHILE", "TRY_AGAIN", "CREATE", "COMPUCREATE", "FROM", "MAYBE", "DO", + "PLEASE", "NOT", "ONCE", "AGAIN", "MESH", "NOSPOT", "ick_ONESPOT", + "ick_TWOSPOT", "ick_TAIL", "ick_HYBRID", "MINGLE", "SELECT", "UNKNOWNOP", + "SUB", "BY", "SLAT", "BACKSLAT", "NUMBER", "UNARY", "OHOHSEVEN", + "GERUND", "LABEL", "BADCHAR", "INTERSECTION", "SPLATTERED", "MESH32", + "C_AND", "C_OR", "C_XOR", "C_NOT", "C_LOGICALNOT", "C_LSHIFTBY", + "C_RSHIFTBY", "C_NOTEQUAL", "C_A", "C_PLUS", "C_MINUS", "C_TIMES", + "C_DIVIDEBY", "C_MODULUS", "C_GREATER", "C_LESS", "C_ISEQUAL", + "C_LOGICALAND", "C_LOGICALOR", "AND", "OR", "XOR", "FIN", "WHIRL", + "WHIRL2", "WHIRL3", "WHIRL4", "WHIRL5", "REV_AND", "REV_OR", "REV_XOR", + "REV_FIN", "REV_WHIRL", "REV_WHIRL2", "REV_WHIRL3", "REV_WHIRL4", + "REV_WHIRL5", "UNKNOWNID", "US_ID", "US_SCALAR", "US_ARRVAR", "US_ELEM", + "US_EXPR", "CLOSESPARK", "CLOSEEARS", "OPENSPARK", "OPENEARS", + "HIGHPREC", "UNARYPREC", "LOWPREC", "$accept", "program", "command", + "mtperform", "preproc", "please", "perform", "unknownstatement", + "unknownsif", "unknownsin", "unknownatom", "unknownaid", "gerunds", + "variable", "lvalue", "scalar2s", "scalar", "ick_array", "oparray", + "constant", "varlist", "initem", "inlist", "outitem", "outlist", + "byexpr", "subscr", "subscr1", "sublist", "sublist1", "osubscr", + "osubscr1", "unop", "expr", "notanlvalue", "limexpr", "preftype", + "lunambig", "limunambig", "nlunambig", "unambig", "eitherspark", + "eitherears", 0 +}; +#endif + +# ifdef YYPRINT +/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to + token YYLEX-NUM. */ +static const yytype_uint16 yytoknum[] = +{ + 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368 +}; +# endif + +/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ +static const yytype_uint8 yyr1[] = +{ + 0, 114, 115, 115, 116, 116, 116, 116, 116, 117, + 117, 117, 118, 118, 119, 119, 119, 119, 120, 120, + 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, + 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, + 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, + 120, 120, 120, 120, 121, 121, 121, 122, 122, 123, + 123, 124, 124, 124, 124, 125, 126, 126, 127, 127, + 128, 128, 129, 130, 130, 131, 131, 132, 132, 133, + 134, 134, 135, 135, 135, 136, 136, 137, 137, 137, + 137, 138, 138, 139, 139, 140, 140, 141, 142, 142, + 143, 143, 143, 144, 144, 145, 146, 147, 147, 147, + 147, 147, 147, 147, 148, 148, 148, 148, 148, 148, + 149, 149, 149, 149, 149, 149, 149, 150, 150, 150, + 151, 151, 151, 151, 151, 151, 152, 152, 153, 153, + 154, 154, 155, 155, 156, 156 +}; + +/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ +static const yytype_uint8 yyr2[] = +{ + 0, 2, 0, 2, 2, 3, 3, 4, 1, 1, + 2, 2, 1, 3, 1, 2, 1, 2, 3, 3, + 3, 2, 2, 2, 2, 2, 2, 2, 3, 3, + 4, 4, 2, 2, 2, 2, 2, 1, 1, 1, + 1, 1, 2, 2, 1, 2, 2, 2, 3, 2, + 3, 1, 1, 1, 1, 2, 1, 1, 2, 1, + 2, 1, 1, 1, 1, 1, 1, 3, 1, 1, + 1, 1, 2, 2, 2, 2, 2, 3, 3, 2, + 1, 3, 1, 1, 1, 3, 1, 1, 1, 1, + 1, 3, 1, 3, 1, 1, 3, 3, 2, 2, + 1, 1, 1, 1, 3, 3, 1, 1, 3, 3, + 3, 3, 1, 1, 1, 1, 3, 3, 3, 3, + 1, 3, 3, 3, 3, 1, 1, 1, 1, 1, + 1, 3, 4, 4, 3, 3, 1, 1, 1, 2, + 1, 2, 1, 1, 1, 1 +}; + +/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state + STATE-NUM when YYTABLE doesn't specify something else to do. Zero + means the default is an error. */ +static const yytype_uint8 yydefact[] = +{ + 2, 0, 1, 8, 16, 14, 0, 3, 0, 17, + 15, 0, 53, 38, 39, 0, 0, 0, 0, 0, + 0, 0, 0, 37, 0, 0, 0, 41, 44, 0, + 0, 40, 0, 0, 127, 128, 129, 0, 0, 0, + 0, 0, 52, 65, 143, 145, 142, 144, 4, 9, + 12, 51, 56, 54, 59, 0, 62, 64, 0, 130, + 61, 95, 115, 103, 63, 0, 138, 140, 114, 0, + 0, 0, 0, 6, 0, 137, 0, 112, 113, 22, + 136, 107, 23, 0, 0, 0, 0, 80, 68, 69, + 24, 25, 26, 27, 0, 0, 66, 32, 33, 0, + 87, 90, 89, 92, 35, 88, 82, 84, 86, 34, + 83, 0, 36, 45, 46, 42, 43, 106, 47, 62, + 64, 61, 49, 63, 0, 107, 79, 73, 74, 75, + 0, 76, 0, 137, 139, 5, 21, 10, 11, 0, + 60, 55, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 137, 125, 126, 0, 120, 0, 0, + 7, 141, 0, 0, 0, 0, 0, 28, 29, 0, + 0, 0, 0, 72, 48, 57, 50, 77, 78, 13, + 18, 119, 19, 94, 0, 0, 100, 96, 97, 101, + 102, 104, 105, 20, 131, 117, 116, 118, 0, 0, + 134, 0, 0, 0, 0, 135, 111, 109, 108, 110, + 81, 30, 31, 67, 91, 85, 58, 0, 0, 0, + 98, 99, 132, 124, 122, 121, 123, 133, 93, 102 +}; + +/* YYDEFGOTO[NTERM-NUM]. */ +static const yytype_int16 yydefgoto[] = +{ + -1, 1, 7, 48, 49, 8, 50, 51, 174, 52, + 53, 54, 98, 87, 55, 112, 75, 76, 58, 59, + 90, 108, 109, 103, 104, 182, 77, 61, 187, 188, + 78, 63, 122, 183, 64, 156, 65, 80, 67, 68, + 81, 70, 71 +}; + +/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing + STATE-NUM. */ +#define YYPACT_NINF -140 +static const yytype_int16 yypact[] = +{ + -140, 129, -140, -140, -31, -25, 6, -140, 290, -140, + -140, 362, -140, -140, -140, 438, 438, 248, 248, 248, + 248, 152, 102, -140, 207, 248, -27, -140, -140, 457, + 457, -140, 451, 438, -34, -32, -29, 84, 128, -17, + 432, 24, -140, -140, -140, -140, -140, -140, -140, 149, + 5, -51, 478, -140, -140, 48, 165, 9, 14, -140, + 66, -140, -140, -140, 69, 33, 8, -140, -140, 74, + 547, 553, 432, -140, -17, 41, 49, -140, -140, -140, + -140, 94, -140, -32, -29, 43, 53, -140, -140, -140, + 52, 52, 52, 52, 162, 83, -140, -140, 55, -34, + -140, 49, -140, 59, -140, -140, -140, 49, 67, -140, + -140, 77, -140, 55, -140, 55, -140, -140, -51, -15, + 49, -140, -140, -140, -51, 94, -140, -140, -140, -140, + 89, -140, 91, -140, 157, -140, -140, -140, -140, 432, + -140, -140, 438, 438, 438, 438, 438, 438, 95, 438, + 438, 438, 438, 71, -140, -140, 45, 167, 438, 28, + -140, -140, 438, 438, 438, 438, 248, -140, 55, 176, + 99, 207, 248, -140, -140, 472, 438, -140, -140, -140, + -140, -140, -140, 110, 125, 130, -140, -140, -140, -140, + 560, -140, -140, -140, -140, -140, -140, -140, 78, 438, + -140, 438, 438, 438, 104, -140, -140, -140, -140, -140, + -140, -140, 55, -140, -140, -140, -51, 438, 438, 438, + -140, -140, -140, -140, -140, -140, -140, -140, -140, -140 +}; + +/* YYPGOTO[NTERM-NUM]. */ +static const yytype_int16 yypgoto[] = +{ + -140, -140, -140, -5, -140, 185, 64, -28, -140, -140, + 155, -46, -10, 70, -140, -140, -8, 29, -63, -23, + 57, -140, 37, -140, 85, 38, 101, -41, -139, -131, + 218, -39, -40, 81, -30, 192, -140, 63, 171, -140, + 47, -140, -140 +}; + +/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If + positive, shift that token. If negative, reduce the rule which + number is the opposite. If zero, do what YYDEFACT says. + If YYTABLE_NINF, syntax error. */ +#define YYTABLE_NINF -142 +static const yytype_int16 yytable[] = +{ + 56, 102, 123, 56, 118, 140, 73, 191, 9, 88, + 88, 88, 88, 144, 10, 192, 100, 106, 111, 113, + 115, 126, 123, 127, 119, 34, 128, 35, 36, 151, + 136, 133, 56, -137, -137, 135, 139, 57, 143, 74, + 57, 165, 4, 5, 119, -137, 89, 89, 89, 89, + 43, 220, 142, 101, 107, 69, -136, -136, 69, 221, + 145, 120, 153, 153, 56, 146, 133, 160, -136, 57, + -71, 66, 140, 147, 66, 91, 92, 93, 175, 69, + 125, 120, 185, 185, 168, 176, 134, 69, 192, 148, + 44, 45, 46, 47, 162, 66, 79, 82, 129, 69, + 145, 57, 95, 66, 186, 186, 189, 189, 131, 60, + 114, 116, 60, 166, 124, 66, 170, 203, 169, 69, + 171, 161, 149, 150, 199, 105, 110, 185, 172, 2, + 3, 56, 173, 121, 117, 66, 205, 133, 133, 129, + 130, 60, 163, 164, 177, 123, 178, 216, 102, 186, + 194, 189, 200, 121, 117, 185, 185, 213, 88, 212, + 96, 97, 217, 100, 106, 4, 5, 119, 57, -70, + 140, 154, 154, 60, 184, 184, 218, 186, 186, 189, + 189, 219, 133, 131, 132, 222, 69, 94, 6, 137, + 138, 11, 190, 190, 34, 89, 35, 36, 37, 38, + 101, 107, 66, 179, 120, -141, -141, 141, 74, 215, + 133, 133, 227, -137, -137, 201, 202, -141, 143, 184, + 96, 167, 69, 180, 181, -137, 62, 117, 193, 62, + 195, 196, 197, 198, 96, 211, 210, 190, 66, 204, + 60, 157, 157, 206, 207, 208, 209, 184, 184, 99, + 62, 83, 84, 85, 86, 228, 214, 209, 62, 44, + 45, 46, 47, 159, 0, 229, 229, 0, 0, 0, + 62, 0, 105, 110, 0, 0, 121, 0, 0, 0, + 223, 0, 224, 225, 226, 0, 0, 0, 155, 155, + 62, 12, 83, 84, 85, 86, 0, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 0, 0, 0, + 23, 24, 25, 26, 27, 28, 29, 0, 30, 0, + 0, 0, 31, 32, 33, 0, 0, 0, 0, 0, + 0, 0, 34, 0, 35, 36, 37, 38, 0, 0, + 0, 0, 0, 0, 0, 0, 39, 40, 0, 41, + 42, 0, 0, 0, 0, 0, 0, 62, 0, 0, + 0, 0, 0, 12, 0, 0, 0, 0, 0, 13, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 0, + 0, 0, 23, 24, 25, 26, 27, 28, 29, 0, + 30, 43, 0, 62, 31, 32, 33, 44, 45, 46, + 47, 0, 0, 0, 34, 0, 35, 36, 37, 38, + 0, 0, 0, 0, 0, 0, 0, 0, 39, 72, + 0, 41, 42, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 12, 0, 0, 0, 0, 0, 13, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 0, + 0, 0, 23, 24, 25, 26, 27, 28, 29, 0, + 30, 0, 0, 43, 31, 32, 33, 0, 0, 44, + 45, 46, 47, 0, 34, 0, 35, 36, 37, 38, + 34, 0, 35, 36, 37, 38, 0, 0, 39, 0, + 0, 41, 42, 34, 74, 35, 36, 37, 38, 34, + 0, 35, 36, 37, 38, 0, 0, 39, 0, 0, + 0, 117, 0, 74, 34, 96, 35, 36, 37, 38, + 34, 0, 35, 36, 37, 38, 0, 0, 39, 0, + 0, 0, 0, 43, 39, 0, 0, 0, 0, 44, + 45, 46, 47, 0, 0, 44, 45, 46, 47, 0, + 0, 0, 43, 0, 0, 0, 0, 0, 44, 45, + 46, 47, 0, 0, 44, 45, 46, 47, 0, 0, + 0, 0, 0, 43, 0, 0, 0, 0, 0, 44, + 45, 46, 47, 0, 0, 44, 45, 46, 47, 34, + 0, 35, 36, 37, 38, 34, 0, 35, 36, 37, + 38, 0, 34, 152, 35, 36, 37, 38, 0, 158, + 0, 0, 0, 0, 0, 0, 74, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 44, 45, 46, 47, 0, 0, + 44, 45, 46, 47, 0, 0, 0, 0, 0, 46, + 47 +}; + +static const yytype_int16 yycheck[] = +{ + 8, 24, 32, 11, 32, 51, 11, 146, 39, 17, + 18, 19, 20, 4, 39, 146, 24, 25, 45, 29, + 30, 55, 52, 55, 32, 42, 55, 44, 45, 69, + 6, 39, 40, 48, 49, 40, 31, 8, 53, 56, + 11, 81, 36, 37, 52, 60, 17, 18, 19, 20, + 101, 190, 4, 24, 25, 8, 48, 49, 11, 190, + 51, 32, 70, 71, 72, 51, 74, 72, 60, 40, + 4, 8, 118, 4, 11, 18, 19, 20, 124, 32, + 33, 52, 145, 146, 94, 125, 39, 40, 219, 56, + 107, 108, 109, 110, 53, 32, 15, 16, 55, 52, + 51, 72, 21, 40, 145, 146, 145, 146, 55, 8, + 29, 30, 11, 61, 33, 52, 61, 157, 35, 72, + 61, 74, 48, 49, 53, 24, 25, 190, 61, 0, + 1, 139, 55, 32, 60, 72, 108, 145, 146, 55, + 56, 40, 48, 49, 55, 175, 55, 175, 171, 190, + 55, 190, 107, 52, 60, 218, 219, 58, 166, 169, + 58, 59, 52, 171, 172, 36, 37, 175, 139, 4, + 216, 70, 71, 72, 145, 146, 51, 218, 219, 218, + 219, 51, 190, 55, 56, 107, 139, 35, 59, 40, + 41, 6, 145, 146, 42, 166, 44, 45, 46, 47, + 171, 172, 139, 139, 175, 48, 49, 52, 56, 172, + 218, 219, 108, 48, 49, 48, 49, 60, 53, 190, + 58, 59, 175, 142, 143, 60, 8, 60, 147, 11, + 149, 150, 151, 152, 58, 59, 166, 190, 175, 158, + 139, 70, 71, 162, 163, 164, 165, 218, 219, 42, + 32, 44, 45, 46, 47, 217, 171, 176, 40, 107, + 108, 109, 110, 71, -1, 218, 219, -1, -1, -1, + 52, -1, 171, 172, -1, -1, 175, -1, -1, -1, + 199, -1, 201, 202, 203, -1, -1, -1, 70, 71, + 72, 1, 44, 45, 46, 47, -1, 7, 8, 9, + 10, 11, 12, 13, 14, 15, 16, -1, -1, -1, + 20, 21, 22, 23, 24, 25, 26, -1, 28, -1, + -1, -1, 32, 33, 34, -1, -1, -1, -1, -1, + -1, -1, 42, -1, 44, 45, 46, 47, -1, -1, + -1, -1, -1, -1, -1, -1, 56, 57, -1, 59, + 60, -1, -1, -1, -1, -1, -1, 139, -1, -1, + -1, -1, -1, 1, -1, -1, -1, -1, -1, 7, + 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, + -1, -1, 20, 21, 22, 23, 24, 25, 26, -1, + 28, 101, -1, 175, 32, 33, 34, 107, 108, 109, + 110, -1, -1, -1, 42, -1, 44, 45, 46, 47, + -1, -1, -1, -1, -1, -1, -1, -1, 56, 57, + -1, 59, 60, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 1, -1, -1, -1, -1, -1, 7, + 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, + -1, -1, 20, 21, 22, 23, 24, 25, 26, -1, + 28, -1, -1, 101, 32, 33, 34, -1, -1, 107, + 108, 109, 110, -1, 42, -1, 44, 45, 46, 47, + 42, -1, 44, 45, 46, 47, -1, -1, 56, -1, + -1, 59, 60, 42, 56, 44, 45, 46, 47, 42, + -1, 44, 45, 46, 47, -1, -1, 56, -1, -1, + -1, 60, -1, 56, 42, 58, 44, 45, 46, 47, + 42, -1, 44, 45, 46, 47, -1, -1, 56, -1, + -1, -1, -1, 101, 56, -1, -1, -1, -1, 107, + 108, 109, 110, -1, -1, 107, 108, 109, 110, -1, + -1, -1, 101, -1, -1, -1, -1, -1, 107, 108, + 109, 110, -1, -1, 107, 108, 109, 110, -1, -1, + -1, -1, -1, 101, -1, -1, -1, -1, -1, 107, + 108, 109, 110, -1, -1, 107, 108, 109, 110, 42, + -1, 44, 45, 46, 47, 42, -1, 44, 45, 46, + 47, -1, 42, 56, 44, 45, 46, 47, -1, 56, + -1, -1, -1, -1, -1, -1, 56, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 107, 108, 109, 110, -1, -1, + 107, 108, 109, 110, -1, -1, -1, -1, -1, 109, + 110 +}; + +/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing + symbol of state STATE-NUM. */ +static const yytype_uint8 yystos[] = +{ + 0, 115, 0, 1, 36, 37, 59, 116, 119, 39, + 39, 119, 1, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, + 28, 32, 33, 34, 42, 44, 45, 46, 47, 56, + 57, 59, 60, 101, 107, 108, 109, 110, 117, 118, + 120, 121, 123, 124, 125, 128, 130, 131, 132, 133, + 140, 141, 144, 145, 148, 150, 151, 152, 153, 154, + 155, 156, 57, 117, 56, 130, 131, 140, 144, 147, + 151, 154, 147, 44, 45, 46, 47, 127, 130, 131, + 134, 134, 134, 134, 35, 147, 58, 59, 126, 42, + 130, 131, 133, 137, 138, 140, 130, 131, 135, 136, + 140, 45, 129, 126, 147, 126, 147, 60, 121, 130, + 131, 140, 146, 148, 147, 154, 55, 55, 55, 55, + 56, 55, 56, 130, 154, 117, 6, 40, 41, 31, + 125, 124, 4, 53, 4, 51, 51, 4, 56, 48, + 49, 146, 56, 130, 140, 144, 149, 152, 56, 149, + 117, 154, 53, 48, 49, 146, 61, 59, 126, 35, + 61, 61, 61, 55, 122, 125, 146, 55, 55, 120, + 147, 147, 139, 147, 131, 132, 141, 142, 143, 145, + 154, 142, 143, 147, 55, 147, 147, 147, 147, 53, + 107, 48, 49, 146, 147, 108, 147, 147, 147, 147, + 127, 59, 126, 58, 138, 136, 121, 52, 51, 51, + 142, 143, 107, 147, 147, 147, 147, 108, 139, 154 +}; + +#define yyerrok (yyerrstatus = 0) +#define yyclearin (yychar = YYEMPTY) +#define YYEMPTY (-2) +#define YYEOF 0 + +#define YYACCEPT goto yyacceptlab +#define YYABORT goto yyabortlab +#define YYERROR goto yyerrorlab + + +/* Like YYERROR except do call yyerror. This remains here temporarily + to ease the transition to the new meaning of YYERROR, for GCC. + Once GCC version 2 has supplanted version 1, this can go. */ + +#define YYFAIL goto yyerrlab + +#define YYRECOVERING() (!!yyerrstatus) + +#define YYBACKUP(Token, Value) \ +do \ + if (yychar == YYEMPTY && yylen == 1) \ + { \ + yychar = (Token); \ + yylval = (Value); \ + yytoken = YYTRANSLATE (yychar); \ + YYPOPSTACK (1); \ + goto yybackup; \ + } \ + else \ + { \ + yyerror (YY_("syntax error: cannot back up")); \ + YYERROR; \ + } \ +while (YYID (0)) + + +#define YYTERROR 1 +#define YYERRCODE 256 + + +/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. + If N is 0, then set CURRENT to the empty location which ends + the previous symbol: RHS[0] (always defined). */ + +#define YYRHSLOC(Rhs, K) ((Rhs)[K]) +#ifndef YYLLOC_DEFAULT +# define YYLLOC_DEFAULT(Current, Rhs, N) \ + do \ + if (YYID (N)) \ + { \ + (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ + (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ + (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ + (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ + } \ + else \ + { \ + (Current).first_line = (Current).last_line = \ + YYRHSLOC (Rhs, 0).last_line; \ + (Current).first_column = (Current).last_column = \ + YYRHSLOC (Rhs, 0).last_column; \ + } \ + while (YYID (0)) +#endif + + +/* YY_LOCATION_PRINT -- Print the location on the stream. + This macro was not mandated originally: define only if we know + we won't break user code: when these are the locations we know. */ + +#ifndef YY_LOCATION_PRINT +# if YYLTYPE_IS_TRIVIAL +# define YY_LOCATION_PRINT(File, Loc) \ + fprintf (File, "%d.%d-%d.%d", \ + (Loc).first_line, (Loc).first_column, \ + (Loc).last_line, (Loc).last_column) +# else +# define YY_LOCATION_PRINT(File, Loc) ((void) 0) +# endif +#endif + + +/* YYLEX -- calling `yylex' with the right arguments. */ + +#ifdef YYLEX_PARAM +# define YYLEX yylex (YYLEX_PARAM) +#else +# define YYLEX yylex () +#endif + +/* Enable debugging if requested. */ +#if YYDEBUG + +# ifndef YYFPRINTF +# include /* INFRINGES ON USER NAME SPACE */ +# define YYFPRINTF fprintf +# endif + +# define YYDPRINTF(Args) \ +do { \ + if (yydebug) \ + YYFPRINTF Args; \ +} while (YYID (0)) + +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ +do { \ + if (yydebug) \ + { \ + YYFPRINTF (stderr, "%s ", Title); \ + yy_symbol_print (stderr, \ + Type, Value); \ + YYFPRINTF (stderr, "\n"); \ + } \ +} while (YYID (0)) + + +/*--------------------------------. +| Print this symbol on YYOUTPUT. | +`--------------------------------*/ + +/*ARGSUSED*/ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) +#else +static void +yy_symbol_value_print (yyoutput, yytype, yyvaluep) + FILE *yyoutput; + int yytype; + YYSTYPE const * const yyvaluep; +#endif +{ + if (!yyvaluep) + return; +# ifdef YYPRINT + if (yytype < YYNTOKENS) + YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); +# else + YYUSE (yyoutput); +# endif + switch (yytype) + { + default: + break; + } +} + + +/*--------------------------------. +| Print this symbol on YYOUTPUT. | +`--------------------------------*/ + +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) +#else +static void +yy_symbol_print (yyoutput, yytype, yyvaluep) + FILE *yyoutput; + int yytype; + YYSTYPE const * const yyvaluep; +#endif +{ + if (yytype < YYNTOKENS) + YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); + else + YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); + + yy_symbol_value_print (yyoutput, yytype, yyvaluep); + YYFPRINTF (yyoutput, ")"); +} + +/*------------------------------------------------------------------. +| yy_stack_print -- Print the state stack from its BOTTOM up to its | +| TOP (included). | +`------------------------------------------------------------------*/ + +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yy_stack_print (yytype_int16 *bottom, yytype_int16 *top) +#else +static void +yy_stack_print (bottom, top) + yytype_int16 *bottom; + yytype_int16 *top; +#endif +{ + YYFPRINTF (stderr, "Stack now"); + for (; bottom <= top; ++bottom) + YYFPRINTF (stderr, " %d", *bottom); + YYFPRINTF (stderr, "\n"); +} + +# define YY_STACK_PRINT(Bottom, Top) \ +do { \ + if (yydebug) \ + yy_stack_print ((Bottom), (Top)); \ +} while (YYID (0)) + + +/*------------------------------------------------. +| Report that the YYRULE is going to be reduced. | +`------------------------------------------------*/ + +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yy_reduce_print (YYSTYPE *yyvsp, int yyrule) +#else +static void +yy_reduce_print (yyvsp, yyrule) + YYSTYPE *yyvsp; + int yyrule; +#endif +{ + int yynrhs = yyr2[yyrule]; + int yyi; + unsigned long int yylno = yyrline[yyrule]; + YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", + yyrule - 1, yylno); + /* The symbols being reduced. */ + for (yyi = 0; yyi < yynrhs; yyi++) + { + fprintf (stderr, " $%d = ", yyi + 1); + yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], + &(yyvsp[(yyi + 1) - (yynrhs)]) + ); + fprintf (stderr, "\n"); + } +} + +# define YY_REDUCE_PRINT(Rule) \ +do { \ + if (yydebug) \ + yy_reduce_print (yyvsp, Rule); \ +} while (YYID (0)) + +/* Nonzero means print parse trace. It is left uninitialized so that + multiple parsers can coexist. */ +int yydebug; +#else /* !YYDEBUG */ +# define YYDPRINTF(Args) +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) +# define YY_STACK_PRINT(Bottom, Top) +# define YY_REDUCE_PRINT(Rule) +#endif /* !YYDEBUG */ + + +/* YYINITDEPTH -- initial size of the parser's stacks. */ +#ifndef YYINITDEPTH +# define YYINITDEPTH 200 +#endif + +/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only + if the built-in stack extension method is used). + + Do not make this value too large; the results are undefined if + YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) + evaluated with infinite-precision integer arithmetic. */ + +#ifndef YYMAXDEPTH +# define YYMAXDEPTH 10000 +#endif + + + +#if YYERROR_VERBOSE + +# ifndef yystrlen +# if defined __GLIBC__ && defined _STRING_H +# define yystrlen strlen +# else +/* Return the length of YYSTR. */ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static YYSIZE_T +yystrlen (const char *yystr) +#else +static YYSIZE_T +yystrlen (yystr) + const char *yystr; +#endif +{ + YYSIZE_T yylen; + for (yylen = 0; yystr[yylen]; yylen++) + continue; + return yylen; +} +# endif +# endif + +# ifndef yystpcpy +# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE +# define yystpcpy stpcpy +# else +/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in + YYDEST. */ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static char * +yystpcpy (char *yydest, const char *yysrc) +#else +static char * +yystpcpy (yydest, yysrc) + char *yydest; + const char *yysrc; +#endif +{ + char *yyd = yydest; + const char *yys = yysrc; + + while ((*yyd++ = *yys++) != '\0') + continue; + + return yyd - 1; +} +# endif +# endif + +# ifndef yytnamerr +/* Copy to YYRES the contents of YYSTR after stripping away unnecessary + quotes and backslashes, so that it's suitable for yyerror. The + heuristic is that double-quoting is unnecessary unless the string + contains an apostrophe, a comma, or backslash (other than + backslash-backslash). YYSTR is taken from yytname. If YYRES is + null, do not copy; instead, return the length of what the result + would have been. */ +static YYSIZE_T +yytnamerr (char *yyres, const char *yystr) +{ + if (*yystr == '"') + { + YYSIZE_T yyn = 0; + char const *yyp = yystr; + + for (;;) + switch (*++yyp) + { + case '\'': + case ',': + goto do_not_strip_quotes; + + case '\\': + if (*++yyp != '\\') + goto do_not_strip_quotes; + /* Fall through. */ + default: + if (yyres) + yyres[yyn] = *yyp; + yyn++; + break; + + case '"': + if (yyres) + yyres[yyn] = '\0'; + return yyn; + } + do_not_strip_quotes: ; + } + + if (! yyres) + return yystrlen (yystr); + + return yystpcpy (yyres, yystr) - yyres; +} +# endif + +/* Copy into YYRESULT an error message about the unexpected token + YYCHAR while in state YYSTATE. Return the number of bytes copied, + including the terminating null byte. If YYRESULT is null, do not + copy anything; just return the number of bytes that would be + copied. As a special case, return 0 if an ordinary "syntax error" + message will do. Return YYSIZE_MAXIMUM if overflow occurs during + size calculation. */ +static YYSIZE_T +yysyntax_error (char *yyresult, int yystate, int yychar) +{ + int yyn = yypact[yystate]; + + if (! (YYPACT_NINF < yyn && yyn <= YYLAST)) + return 0; + else + { + int yytype = YYTRANSLATE (yychar); + YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]); + YYSIZE_T yysize = yysize0; + YYSIZE_T yysize1; + int yysize_overflow = 0; + enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; + char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; + int yyx; + +# if 0 + /* This is so xgettext sees the translatable formats that are + constructed on the fly. */ + YY_("syntax error, unexpected %s"); + YY_("syntax error, unexpected %s, expecting %s"); + YY_("syntax error, unexpected %s, expecting %s or %s"); + YY_("syntax error, unexpected %s, expecting %s or %s or %s"); + YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"); +# endif + char *yyfmt; + char const *yyf; + static char const yyunexpected[] = "syntax error, unexpected %s"; + static char const yyexpecting[] = ", expecting %s"; + static char const yyor[] = " or %s"; + char yyformat[sizeof yyunexpected + + sizeof yyexpecting - 1 + + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2) + * (sizeof yyor - 1))]; + char const *yyprefix = yyexpecting; + + /* Start YYX at -YYN if negative to avoid negative indexes in + YYCHECK. */ + int yyxbegin = yyn < 0 ? -yyn : 0; + + /* Stay within bounds of both yycheck and yytname. */ + int yychecklim = YYLAST - yyn + 1; + int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; + int yycount = 1; + + yyarg[0] = yytname[yytype]; + yyfmt = yystpcpy (yyformat, yyunexpected); + + for (yyx = yyxbegin; yyx < yyxend; ++yyx) + if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) + { + if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) + { + yycount = 1; + yysize = yysize0; + yyformat[sizeof yyunexpected - 1] = '\0'; + break; + } + yyarg[yycount++] = yytname[yyx]; + yysize1 = yysize + yytnamerr (0, yytname[yyx]); + yysize_overflow |= (yysize1 < yysize); + yysize = yysize1; + yyfmt = yystpcpy (yyfmt, yyprefix); + yyprefix = yyor; + } + + yyf = YY_(yyformat); + yysize1 = yysize + yystrlen (yyf); + yysize_overflow |= (yysize1 < yysize); + yysize = yysize1; + + if (yysize_overflow) + return YYSIZE_MAXIMUM; + + if (yyresult) + { + /* Avoid sprintf, as that infringes on the user's name space. + Don't have undefined behavior even if the translation + produced a string with the wrong number of "%s"s. */ + char *yyp = yyresult; + int yyi = 0; + while ((*yyp = *yyf) != '\0') + { + if (*yyp == '%' && yyf[1] == 's' && yyi < yycount) + { + yyp += yytnamerr (yyp, yyarg[yyi++]); + yyf += 2; + } + else + { + yyp++; + yyf++; + } + } + } + return yysize; + } +} +#endif /* YYERROR_VERBOSE */ + + +/*-----------------------------------------------. +| Release the memory associated to this symbol. | +`-----------------------------------------------*/ + +/*ARGSUSED*/ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) +#else +static void +yydestruct (yymsg, yytype, yyvaluep) + const char *yymsg; + int yytype; + YYSTYPE *yyvaluep; +#endif +{ + YYUSE (yyvaluep); + + if (!yymsg) + yymsg = "Deleting"; + YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); + + switch (yytype) + { + + default: + break; + } +} + + +/* Prevent warnings from -Wmissing-prototypes. */ + +#ifdef YYPARSE_PARAM +#if defined __STDC__ || defined __cplusplus +int yyparse (void *YYPARSE_PARAM); +#else +int yyparse (); +#endif +#else /* ! YYPARSE_PARAM */ +#if defined __STDC__ || defined __cplusplus +int yyparse (void); +#else +int yyparse (); +#endif +#endif /* ! YYPARSE_PARAM */ + + + +/* The look-ahead symbol. */ +int yychar; + +/* The semantic value of the look-ahead symbol. */ +YYSTYPE yylval; + +/* Number of syntax errors so far. */ +int yynerrs; + + + +/*----------. +| yyparse. | +`----------*/ + +#ifdef YYPARSE_PARAM +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +int +yyparse (void *YYPARSE_PARAM) +#else +int +yyparse (YYPARSE_PARAM) + void *YYPARSE_PARAM; +#endif +#else /* ! YYPARSE_PARAM */ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +int +yyparse (void) +#else +int +yyparse () + +#endif +#endif +{ + + int yystate; + int yyn; + int yyresult; + /* Number of tokens to shift before error messages enabled. */ + int yyerrstatus; + /* Look-ahead token as an internal (translated) token number. */ + int yytoken = 0; +#if YYERROR_VERBOSE + /* Buffer for error messages, and its allocated size. */ + char yymsgbuf[128]; + char *yymsg = yymsgbuf; + YYSIZE_T yymsg_alloc = sizeof yymsgbuf; +#endif + + /* Three stacks and their tools: + `yyss': related to states, + `yyvs': related to semantic values, + `yyls': related to locations. + + Refer to the stacks thru separate pointers, to allow yyoverflow + to reallocate them elsewhere. */ + + /* The state stack. */ + yytype_int16 yyssa[YYINITDEPTH]; + yytype_int16 *yyss = yyssa; + yytype_int16 *yyssp; + + /* The semantic value stack. */ + YYSTYPE yyvsa[YYINITDEPTH]; + YYSTYPE *yyvs = yyvsa; + YYSTYPE *yyvsp; + + + +#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) + + YYSIZE_T yystacksize = YYINITDEPTH; + + /* The variables used to return semantic value and location from the + action routines. */ + YYSTYPE yyval; + + + /* The number of symbols on the RHS of the reduced rule. + Keep to zero when no symbol should be popped. */ + int yylen = 0; + + YYDPRINTF ((stderr, "Starting parse\n")); + + yystate = 0; + yyerrstatus = 0; + yynerrs = 0; + yychar = YYEMPTY; /* Cause a token to be read. */ + + /* Initialize stack pointers. + Waste one element of value and location stack + so that they stay on the same level as the state stack. + The wasted elements are never initialized. */ + + yyssp = yyss; + yyvsp = yyvs; + + goto yysetstate; + +/*------------------------------------------------------------. +| yynewstate -- Push a new state, which is found in yystate. | +`------------------------------------------------------------*/ + yynewstate: + /* In all cases, when you get here, the value and location stacks + have just been pushed. So pushing a state here evens the stacks. */ + yyssp++; + + yysetstate: + *yyssp = yystate; + + if (yyss + yystacksize - 1 <= yyssp) + { + /* Get the current used size of the three stacks, in elements. */ + YYSIZE_T yysize = yyssp - yyss + 1; + +#ifdef yyoverflow + { + /* Give user a chance to reallocate the stack. Use copies of + these so that the &'s don't force the real ones into + memory. */ + YYSTYPE *yyvs1 = yyvs; + yytype_int16 *yyss1 = yyss; + + + /* Each stack pointer address is followed by the size of the + data in use in that stack, in bytes. This used to be a + conditional around just the two extra args, but that might + be undefined if yyoverflow is a macro. */ + yyoverflow (YY_("memory exhausted"), + &yyss1, yysize * sizeof (*yyssp), + &yyvs1, yysize * sizeof (*yyvsp), + + &yystacksize); + + yyss = yyss1; + yyvs = yyvs1; + } +#else /* no yyoverflow */ +# ifndef YYSTACK_RELOCATE + goto yyexhaustedlab; +# else + /* Extend the stack our own way. */ + if (YYMAXDEPTH <= yystacksize) + goto yyexhaustedlab; + yystacksize *= 2; + if (YYMAXDEPTH < yystacksize) + yystacksize = YYMAXDEPTH; + + { + yytype_int16 *yyss1 = yyss; + union yyalloc *yyptr = + (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); + if (! yyptr) + goto yyexhaustedlab; + YYSTACK_RELOCATE (yyss); + YYSTACK_RELOCATE (yyvs); + +# undef YYSTACK_RELOCATE + if (yyss1 != yyssa) + YYSTACK_FREE (yyss1); + } +# endif +#endif /* no yyoverflow */ + + yyssp = yyss + yysize - 1; + yyvsp = yyvs + yysize - 1; + + + YYDPRINTF ((stderr, "Stack size increased to %lu\n", + (unsigned long int) yystacksize)); + + if (yyss + yystacksize - 1 <= yyssp) + YYABORT; + } + + YYDPRINTF ((stderr, "Entering state %d\n", yystate)); + + goto yybackup; + +/*-----------. +| yybackup. | +`-----------*/ +yybackup: + + /* Do appropriate processing given the current state. Read a + look-ahead token if we need one and don't already have one. */ + + /* First try to decide what to do without reference to look-ahead token. */ + yyn = yypact[yystate]; + if (yyn == YYPACT_NINF) + goto yydefault; + + /* Not known => get a look-ahead token if don't already have one. */ + + /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */ + if (yychar == YYEMPTY) + { + YYDPRINTF ((stderr, "Reading a token: ")); + yychar = YYLEX; + } + + if (yychar <= YYEOF) + { + yychar = yytoken = YYEOF; + YYDPRINTF ((stderr, "Now at end of input.\n")); + } + else + { + yytoken = YYTRANSLATE (yychar); + YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); + } + + /* If the proper action on seeing token YYTOKEN is to reduce or to + detect an error, take that action. */ + yyn += yytoken; + if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) + goto yydefault; + yyn = yytable[yyn]; + if (yyn <= 0) + { + if (yyn == 0 || yyn == YYTABLE_NINF) + goto yyerrlab; + yyn = -yyn; + goto yyreduce; + } + + if (yyn == YYFINAL) + YYACCEPT; + + /* Count tokens shifted since error; after three, turn off error + status. */ + if (yyerrstatus) + yyerrstatus--; + + /* Shift the look-ahead token. */ + YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); + + /* Discard the shifted token unless it is eof. */ + if (yychar != YYEOF) + yychar = YYEMPTY; + + yystate = yyn; + *++yyvsp = yylval; + + goto yynewstate; + + +/*-----------------------------------------------------------. +| yydefault -- do the default action for the current state. | +`-----------------------------------------------------------*/ +yydefault: + yyn = yydefact[yystate]; + if (yyn == 0) + goto yyerrlab; + goto yyreduce; + + +/*-----------------------------. +| yyreduce -- Do a reduction. | +`-----------------------------*/ +yyreduce: + /* yyn is the number of a rule to reduce with. */ + yylen = yyr2[yyn]; + + /* If YYLEN is nonzero, implement the default value of the action: + `$$ = $1'. + + Otherwise, the following line sets YYVAL to garbage. + This behavior is undocumented and Bison + users should not rely upon it. Assigning to YYVAL + unconditionally makes the parser a bit smaller, and it avoids a + GCC warning that YYVAL may be used uninitialized. */ + yyval = yyvsp[1-yylen]; + + + YY_REDUCE_PRINT (yyn); + switch (yyn) + { + case 4: +#line 182 "parser.y" + {(yyvsp[(2) - (2)].tuple)->label = 0; (yyvsp[(2) - (2)].tuple)->exechance = (yyvsp[(1) - (2)].numval) * 100;} + break; + + case 5: +#line 184 "parser.y" + {(yyvsp[(3) - (3)].tuple)->label = 0; (yyvsp[(3) - (3)].tuple)->exechance = (yyvsp[(1) - (3)].numval) * (yyvsp[(2) - (3)].numval);} + break; + + case 6: +#line 186 "parser.y" + {checklabel((yyvsp[(1) - (3)].numval)); (yyvsp[(3) - (3)].tuple)->label = (yyvsp[(1) - (3)].numval); (yyvsp[(3) - (3)].tuple)->exechance = (yyvsp[(2) - (3)].numval) * 100;} + break; + + case 7: +#line 188 "parser.y" + {checklabel((yyvsp[(1) - (4)].numval)); (yyvsp[(4) - (4)].tuple)->label = (yyvsp[(1) - (4)].numval); (yyvsp[(4) - (4)].tuple)->exechance = (yyvsp[(2) - (4)].numval) * (yyvsp[(3) - (4)].numval);} + break; + + case 8: +#line 190 "parser.y" + {/* AIS: catch errors which occur after the end of a statement + (highly likely when comments are being written, as the + start of them will be parsed as an UNKNOWN) */ + yyerrok; yyclearin; cacsofar=0; + if(prevtuple) {prevtuple->type=SPLATTERED; splat(0);} + else splat(1); /* this is the first statement */ + } + break; + + case 9: +#line 205 "parser.y" + {(yyvsp[(1) - (1)].tuple)->onceagainflag = onceagain_NORMAL; prevtuple = (yyval.tuple) = (yyvsp[(1) - (1)].tuple);} + break; + + case 10: +#line 207 "parser.y" + {NEWFANGLED {(yyvsp[(1) - (2)].tuple)->onceagainflag = onceagain_ONCE; + prevtuple = (yyval.tuple) = (yyvsp[(1) - (2)].tuple);}} + break; + + case 11: +#line 210 "parser.y" + {NEWFANGLED {(yyvsp[(1) - (2)].tuple)->onceagainflag = onceagain_AGAIN; + prevtuple = (yyval.tuple) = (yyvsp[(1) - (2)].tuple);}} + break; + + case 12: +#line 226 "parser.y" + {(yyval.tuple) = (yyvsp[(1) - (1)].tuple);} + break; + + case 13: +#line 228 "parser.y" + { + if(!multithread) ick_lose(IE405, iyylineno, (char*)NULL); + NEWFANGLED{ + /* (x) DO a WHILE b + is equivalent to + #11 (l0) DO REINSTATE (l3) + #10 (l1) DO COME FROM (l2) AGAIN + #9 DO b + #8 DO COME FROM (l0) + #7 DO NOTHING + #6 DO NOTHING + #5 (l2) DO NOTHING + #4 DO GIVE UP + #3 DO COME FROM (l0) + #2 (x) DO a + #1 (l3) DON'T ABSTAIN FROM (l1) AGAIN */ + tuple* temptuple; + TARGET(temptuple, COME_FROM, lineuid+2); + temptuple->label=lineuid+1; temptuple->preproc=1; /* #10 */ + TARGET(temptuple, COME_FROM, lineuid+0); temptuple->preproc=1; /* #8 */ + ACTION(temptuple, PREPROC, 0); temptuple->preproc=1; /* #7 */ + ACTION(temptuple, PREPROC, 0); temptuple->preproc=1; /* #6 */ + ACTION(temptuple, PREPROC, 0); + temptuple->label=lineuid+2; temptuple->preproc=1; /* #5 */ + ACTION(temptuple, GIVE_UP, 0); temptuple->preproc=1; /* #4 */ + TARGET(temptuple, COME_FROM, lineuid+0); temptuple->preproc=1; /* #3 */ + TARGET(temptuple, REINSTATE, lineuid+3); temptuple->setweave=1; + temptuple->label=lineuid+0; temptuple->preproc=1; /* #11 */ + TARGET(temptuple, ABSTAIN, lineuid+1); temptuple->label=lineuid+3; /* #1 */ + temptuple->preproc=1; temptuple->setweave=-1; temptuple->exechance=-100; + politesse += 3; /* Keep the politeness checker happy */ + ppinit(11); tupleswap(10,9); tupleswap(11,2); lineuid+=4; /* #2, #9 */ + tuples[ick_lineno-10].onceagainflag=onceagain_AGAIN; + tuples[ick_lineno-1].onceagainflag=onceagain_AGAIN; + (yyval.tuple)=&(tuples[ick_lineno-2]); +}} + break; + + case 14: +#line 266 "parser.y" + {GETLINENO; (yyval.numval) = 1;} + break; + + case 15: +#line 267 "parser.y" + {GETLINENO; (yyval.numval) = -1;} + break; + + case 16: +#line 268 "parser.y" + {NEWFANGLED {GETLINENO; (yyval.numval) = 101;}} + break; + + case 17: +#line 269 "parser.y" + {NEWFANGLED {GETLINENO; (yyval.numval) = -101;}} + break; + + case 18: +#line 273 "parser.y" + {ACTION((yyval.tuple), GETS, cons(GETS,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node)));} + break; + + case 19: +#line 274 "parser.y" + {ACTION((yyval.tuple), RESIZE, cons(RESIZE,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node)));} + break; + + case 20: +#line 276 "parser.y" + {/* AIS: This is for variableconstants, and an error otherwise.*/ + if(variableconstants) ACTION((yyval.tuple), GETS, cons(GETS,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node))) + else {yyerrok; yyclearin; (yyval.tuple)=splat(1);}} + break; + + case 21: +#line 279 "parser.y" + {TARGET((yyval.tuple), NEXT, (yyvsp[(1) - (2)].numval));} + break; + + case 22: +#line 280 "parser.y" + {ACTION((yyval.tuple), FORGET, (yyvsp[(2) - (2)].node));} + break; + + case 23: +#line 281 "parser.y" + {ACTION((yyval.tuple), RESUME, (yyvsp[(2) - (2)].node));} + break; + + case 24: +#line 282 "parser.y" + {ACTION((yyval.tuple), STASH, rlist);} + break; + + case 25: +#line 283 "parser.y" + {ACTION((yyval.tuple), RETRIEVE, rlist);} + break; + + case 26: +#line 284 "parser.y" + {ACTION((yyval.tuple), IGNORE, rlist);} + break; + + case 27: +#line 285 "parser.y" + {ACTION((yyval.tuple), REMEMBER, rlist);} + break; + + case 28: +#line 286 "parser.y" + {stbeginline=0; TARGET((yyval.tuple), ABSTAIN, (yyvsp[(3) - (3)].numval));} + break; + + case 29: +#line 287 "parser.y" + {ACTION((yyval.tuple), DISABLE, rlist);} + break; + + case 30: +#line 288 "parser.y" + {/* AIS */ NEWFANGLED {stbeginline=0; ACTARGET((yyval.tuple), FROM, (yyvsp[(2) - (4)].node), (yyvsp[(4) - (4)].numval));}} + break; + + case 31: +#line 289 "parser.y" + {/* AIS */ NEWFANGLED {(yyval.tuple) = newtuple(); (yyval.tuple)->type = MANYFROM; (yyval.tuple)->ick_lineno = thisline; \ + {node* tempnode=newnode(); (yyval.tuple)->u.node = tempnode; tempnode->lval=(yyvsp[(2) - (4)].node); tempnode->rval=rlist; tempnode->opcode=MANYFROM;}}} + break; + + case 32: +#line 291 "parser.y" + {stbeginline=0; TARGET((yyval.tuple), REINSTATE, (yyvsp[(2) - (2)].numval));} + break; + + case 33: +#line 292 "parser.y" + {ACTION((yyval.tuple), ENABLE, rlist);} + break; + + case 34: +#line 293 "parser.y" + {ACTION((yyval.tuple), WRITE_IN, (yyvsp[(2) - (2)].node));} + break; + + case 35: +#line 294 "parser.y" + {ACTION((yyval.tuple), READ_OUT, (yyvsp[(2) - (2)].node));} + break; + + case 36: +#line 295 "parser.y" + {ACTION((yyval.tuple), PIN, (yyvsp[(2) - (2)].node));} + break; + + case 37: +#line 296 "parser.y" + {ACTION((yyval.tuple), GIVE_UP, 0);} + break; + + case 38: +#line 297 "parser.y" + {/* AIS */ NEWFANGLED {ACTION((yyval.tuple), GO_AHEAD, 0);}} + break; + + case 39: +#line 298 "parser.y" + {/* AIS */ NEWFANGLED {ACTION((yyval.tuple), GO_BACK, 0);}} + break; + + case 40: +#line 299 "parser.y" + {/* AIS */ NEWFANGLED {ACTION((yyval.tuple),TRY_AGAIN,0);}} + break; + + case 41: +#line 300 "parser.y" + {/* AIS: Modified */ NEWFANGLED {TARGET((yyval.tuple),COME_FROM,(yyvsp[(1) - (1)].numval));}} + break; + + case 42: +#line 301 "parser.y" + {/* AIS: COME FROM gerund */ + NEWFANGLED{ACTION((yyval.tuple),GERUCOME,rlist); + compucomesused=1; gerucomesused=1;}} + break; + + case 43: +#line 304 "parser.y" + {/* AIS */NEWFANGLED {ACTION((yyval.tuple),COMPUCOME,(yyvsp[(2) - (2)].node)); + compucomesused=1;}} + break; + + case 44: +#line 307 "parser.y" + {NEWFANGLED {TARGET((yyval.tuple),NEXTFROMLABEL,(yyvsp[(1) - (1)].numval));} + nextfromsused=1;} + break; + + case 45: +#line 309 "parser.y" + {NEWFANGLED{ACTION((yyval.tuple),NEXTFROMGERUND,rlist); + compucomesused=1; gerucomesused=1;} + nextfromsused=1;} + break; + + case 46: +#line 312 "parser.y" + {NEWFANGLED {ACTION((yyval.tuple),NEXTFROMEXPR,(yyvsp[(2) - (2)].node)); + compucomesused=1; nextfromsused=1;}} + break; + + case 47: +#line 315 "parser.y" + {NEWFANGLED{ACTARGET((yyval.tuple),CREATE,(yyvsp[(2) - (2)].node),(yyvsp[(1) - (2)].numval)); cacsofar=0;}} + break; + + case 48: +#line 316 "parser.y" + {NEWFANGLED{ACTION((yyval.tuple),COMPUCREATE, + cons(INTERSECTION,(yyvsp[(2) - (3)].node),(yyvsp[(3) - (3)].node))); cacsofar=0;}} + break; + + case 49: +#line 319 "parser.y" + {NEWFANGLED{ACTARGET((yyval.tuple),CREATE,(yyvsp[(2) - (2)].node),(yyvsp[(1) - (2)].numval)); + cacsofar=0;}} + break; + + case 50: +#line 322 "parser.y" + {NEWFANGLED{ACTION((yyval.tuple),COMPUCREATE, + cons(INTERSECTION,(yyvsp[(2) - (3)].node),(yyvsp[(3) - (3)].node))); cacsofar=0;}} + break; + + case 51: +#line 325 "parser.y" + {NEWFANGLED {ACTION((yyval.tuple),UNKNOWN,(yyvsp[(1) - (1)].node)); cacsofar=0;}} + break; + + case 52: +#line 327 "parser.y" + {yyclearin; yyerrok; (yyval.tuple) = splat(1); cacsofar=0;} + break; + + case 53: +#line 328 "parser.y" + {yyclearin; yyerrok; (yyval.tuple) = splat(1); cacsofar=0;} + break; + + case 54: +#line 333 "parser.y" + {(yyval.node) = (yyvsp[(1) - (1)].node); intern(ick_TWOSPOT,cacsofar+++1601);} + break; + + case 55: +#line 334 "parser.y" + {(yyval.node)=cons(INTERSECTION,(yyvsp[(1) - (2)].node),(yyvsp[(2) - (2)].node)); + intern(ick_TWOSPOT,cacsofar+++1601);} + break; + + case 56: +#line 336 "parser.y" + {(yyval.node) = (yyvsp[(1) - (1)].node);} + break; + + case 57: +#line 339 "parser.y" + {(yyval.node) = (yyvsp[(1) - (1)].node);} + break; + + case 58: +#line 340 "parser.y" + {(yyval.node)=cons(INTERSECTION,(yyvsp[(1) - (2)].node),(yyvsp[(2) - (2)].node));} + break; + + case 59: +#line 342 "parser.y" + {(yyval.node) = (yyvsp[(1) - (1)].node);} + break; + + case 60: +#line 343 "parser.y" + {(yyval.node)=cons(INTERSECTION,(yyvsp[(1) - (2)].node),(yyvsp[(2) - (2)].node));} + break; + + case 61: +#line 348 "parser.y" + {(yyval.node)=cons(US_ELEM,0,(yyvsp[(1) - (1)].node)); + if(createsused){ + opoverused=1; if(!firstslat) + firstslat=(yyvsp[(1) - (1)].node); else + prevslat->nextslat=(yyvsp[(1) - (1)].node); + prevslat=(yyvsp[(1) - (1)].node); + (yyvsp[(1) - (1)].node)->nextslat=0;}} + break; + + case 62: +#line 355 "parser.y" + {(yyval.node)=cons(US_SCALAR,0,(yyvsp[(1) - (1)].node)); + if(createsused){ + opoverused=1; if(!firstslat) + firstslat=(yyvsp[(1) - (1)].node); else + prevslat->nextslat=(yyvsp[(1) - (1)].node); + prevslat=(yyvsp[(1) - (1)].node); + (yyvsp[(1) - (1)].node)->nextslat=0;}} + break; + + case 63: +#line 362 "parser.y" + {(yyval.node)=cons(US_EXPR,0,(yyvsp[(1) - (1)].node)); + if(createsused){ + opoverused=1; if(!firstslat) + firstslat=(yyvsp[(1) - (1)].node); else + prevslat->nextslat=(yyvsp[(1) - (1)].node); + prevslat=(yyvsp[(1) - (1)].node); + (yyvsp[(1) - (1)].node)->nextslat=0;}} + break; + + case 64: +#line 369 "parser.y" + {(yyval.node)=cons(US_ARRVAR,0,(yyvsp[(1) - (1)].node));} + break; + + case 65: +#line 372 "parser.y" + {(yyval.node)=newnode(); (yyval.node)->opcode=US_ID; (yyval.node)->constant=(yyvsp[(1) - (1)].numval);} + break; + + case 66: +#line 377 "parser.y" + {rlist = np = newnode(); np->constant = (yyvsp[(1) - (1)].numval);} + break; + + case 67: +#line 379 "parser.y" + { + np->rval = newnode(); + np = np->rval; + np->constant = (yyvsp[(3) - (3)].numval); + } + break; + + case 72: +#line 392 "parser.y" + { + (yyval.node) = newnode(); + (yyval.node)->opcode = ick_TWOSPOT; + (yyval.node)->constant = intern(ick_TWOSPOT, (yyvsp[(2) - (2)].numval)); + } + break; + + case 73: +#line 398 "parser.y" + { + (yyval.node) = newnode(); + (yyval.node)->opcode = ick_ONESPOT; + (yyval.node)->constant = intern(ick_ONESPOT, (yyvsp[(2) - (2)].numval)); + } + break; + + case 74: +#line 404 "parser.y" + { + (yyval.node) = newnode(); + (yyval.node)->opcode = ick_TWOSPOT; + (yyval.node)->constant = intern(ick_TWOSPOT, (yyvsp[(2) - (2)].numval)); + } + break; + + case 75: +#line 412 "parser.y" + { + (yyval.node) = newnode(); + (yyval.node)->opcode = ick_TAIL; + (yyval.node)->constant = intern(ick_TAIL, (yyvsp[(2) - (2)].numval)); + } + break; + + case 76: +#line 418 "parser.y" + { + (yyval.node) = newnode(); + (yyval.node)->opcode = ick_HYBRID; + (yyval.node)->constant = intern(ick_HYBRID, (yyvsp[(2) - (2)].numval)); + } + break; + + case 77: +#line 428 "parser.y" + { + (yyval.node) = newnode(); + (yyval.node)->opcode = (yyvsp[(2) - (3)].numval); + (yyval.node)->rval = newnode(); + (yyval.node)->rval->opcode = ick_TAIL; + (yyval.node)->rval->constant = intern(ick_TAIL, (yyvsp[(3) - (3)].numval)); + } + break; + + case 78: +#line 436 "parser.y" + { + (yyval.node) = newnode(); + (yyval.node)->opcode = (yyvsp[(2) - (3)].numval); + (yyval.node)->rval = newnode(); + (yyval.node)->rval->opcode = ick_HYBRID; + (yyval.node)->rval->constant = intern(ick_HYBRID, (yyvsp[(3) - (3)].numval)); + } + break; + + case 79: +#line 447 "parser.y" + { + /* enforce the 16-bit constant constraint */ + if ((unsigned int)(yyvsp[(2) - (2)].numval) > ick_Max_small) + ick_lose(IE017, iyylineno, (char *)NULL); + (yyval.node) = newnode(); + (yyval.node)->opcode = MESH; + if(variableconstants) /* AIS */ + (yyval.node)->constant = intern(MESH, (yyvsp[(2) - (2)].numval)); + else + (yyval.node)->constant = (yyvsp[(2) - (2)].numval); + } + break; + + case 80: +#line 461 "parser.y" + {rlist = np = (yyvsp[(1) - (1)].node);} + break; + + case 81: +#line 462 "parser.y" + {np = np->rval = (yyvsp[(3) - (3)].node); + /* newnode(); */ } + break; + + case 85: +#line 469 "parser.y" + {(yyval.node)=cons(INTERSECTION,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));} + break; + + case 86: +#line 470 "parser.y" + {(yyval.node)=cons(INTERSECTION,(yyvsp[(1) - (1)].node),0);} + break; + + case 91: +#line 476 "parser.y" + {(yyval.node)=cons(INTERSECTION,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));} + break; + + case 92: +#line 477 "parser.y" + {(yyval.node)=cons(INTERSECTION,(yyvsp[(1) - (1)].node),0);} + break; + + case 93: +#line 483 "parser.y" + {(yyval.node) = cons(BY, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} + break; + + case 94: +#line 484 "parser.y" + {(yyval.node) = cons(BY, (yyvsp[(1) - (1)].node), 0);} + break; + + case 95: +#line 488 "parser.y" + {(yyval.node) = (yyvsp[(1) - (1)].node);} + break; + + case 96: +#line 489 "parser.y" + {(yyval.node) = cons(SUB, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} + break; + + case 97: +#line 491 "parser.y" + {(yyval.node) = cons(SUB, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} + break; + + case 98: +#line 493 "parser.y" + {(yyval.node) = cons(INTERSECTION, (yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].node));} + break; + + case 99: +#line 494 "parser.y" + {(yyval.node) = cons(INTERSECTION, (yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].node));} + break; + + case 100: +#line 496 "parser.y" + {(yyval.node) = cons(INTERSECTION, (yyvsp[(1) - (1)].node), 0);} + break; + + case 101: +#line 497 "parser.y" + {(yyval.node) = cons(INTERSECTION, (yyvsp[(1) - (1)].node), 0);} + break; + + case 102: +#line 498 "parser.y" + {(yyval.node) = cons(INTERSECTION, (yyvsp[(1) - (1)].node), 0);} + break; + + case 103: +#line 502 "parser.y" + {(yyval.node) = (yyvsp[(1) - (1)].node);} + break; + + case 104: +#line 504 "parser.y" + {(yyval.node) = (yyvsp[(1) - (3)].node); (yyval.node)->rval = cons(SUB, (yyval.node)->rval, (yyvsp[(3) - (3)].node));} + break; + + case 105: +#line 507 "parser.y" + {(yyval.node) = (yyvsp[(1) - (3)].node); (yyval.node)->rval = cons(SUB, (yyval.node)->rval, (yyvsp[(3) - (3)].node));} + break; + + case 106: +#line 511 "parser.y" + {(yyval.node) = newnode(); (yyval.node)->opcode = BADCHAR; + (yyval.node)->constant = (yyvsp[(1) - (1)].numval);} + break; + + case 107: +#line 516 "parser.y" + {(yyval.node) = (yyvsp[(1) - (1)].node);} + break; + + case 108: +#line 519 "parser.y" + {(yyval.node) = cons(SELECT, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} + break; + + case 109: +#line 520 "parser.y" + {(yyval.node) = cons(MINGLE, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} + break; + + case 110: +#line 521 "parser.y" + {(yyval.node) = cons(UNKNOWNOP, (yyvsp[(2) - (3)].node), + cons(INTERSECTION, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node))); + if(useickec && createsused) { + if(!firstslat) firstslat=(yyvsp[(1) - (3)].node); + else prevslat->nextslat=(yyvsp[(1) - (3)].node); + (yyvsp[(1) - (3)].node)->nextslat=(yyvsp[(3) - (3)].node); prevslat=(yyvsp[(3) - (3)].node); + (yyvsp[(3) - (3)].node)->nextslat=0; opoverused=1; + intern(ick_TWOSPOT, 1601); + intern(ick_TWOSPOT, 1602); + intern(ick_TWOSPOT, 1603);}} + break; + + case 111: +#line 532 "parser.y" + {NEWFANGLED{(yyval.node) = cons(SLAT, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); + opoverused=1; if(!firstslat) + firstslat=(yyvsp[(3) - (3)].node); else + prevslat->nextslat=(yyvsp[(3) - (3)].node); prevslat=(yyvsp[(3) - (3)].node); + (yyvsp[(3) - (3)].node)->nextslat=0;}} + break; + + case 112: +#line 537 "parser.y" + {(yyval.node) = (yyvsp[(1) - (1)].node);} + break; + + case 113: +#line 538 "parser.y" + {(yyval.node) = (yyvsp[(1) - (1)].node);} + break; + + case 114: +#line 542 "parser.y" + {(yyval.node) = (yyvsp[(1) - (1)].node);} + break; + + case 115: +#line 543 "parser.y" + {(yyval.node) = (yyvsp[(1) - (1)].node);} + break; + + case 116: +#line 544 "parser.y" + {(yyval.node) = cons(SELECT, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} + break; + + case 117: +#line 545 "parser.y" + {(yyval.node) = cons(MINGLE, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} + break; + + case 118: +#line 546 "parser.y" + {(yyval.node) = cons(UNKNOWNOP, (yyvsp[(2) - (3)].node), + cons(INTERSECTION, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node))); + if(useickec && createsused) { + if(!firstslat) firstslat=(yyvsp[(1) - (3)].node); + else prevslat->nextslat=(yyvsp[(1) - (3)].node); + (yyvsp[(1) - (3)].node)->nextslat=(yyvsp[(3) - (3)].node); prevslat=(yyvsp[(3) - (3)].node); + (yyvsp[(3) - (3)].node)->nextslat=0; opoverused=1; + intern(ick_TWOSPOT, 1601); + intern(ick_TWOSPOT, 1602); + intern(ick_TWOSPOT, 1603);}} + break; + + case 119: +#line 556 "parser.y" + {NEWFANGLED{(yyval.node) = cons(SLAT, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); + opoverused=1; if(!firstslat) + firstslat=(yyvsp[(3) - (3)].node); else + prevslat->nextslat=(yyvsp[(3) - (3)].node); prevslat=(yyvsp[(3) - (3)].node); + (yyvsp[(3) - (3)].node)->nextslat=0;}} + break; + + case 120: +#line 564 "parser.y" + {(yyval.node) = (yyvsp[(1) - (1)].node);} + break; + + case 121: +#line 565 "parser.y" + {(yyval.node) = cons(SELECT, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} + break; + + case 122: +#line 566 "parser.y" + {(yyval.node) = cons(MINGLE, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} + break; + + case 123: +#line 567 "parser.y" + {(yyval.node) = cons(UNKNOWNOP, (yyvsp[(2) - (3)].node), + cons(INTERSECTION, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node))); + if(useickec && createsused) { + if(!firstslat) firstslat=(yyvsp[(1) - (3)].node); + else prevslat->nextslat=(yyvsp[(1) - (3)].node); + (yyvsp[(1) - (3)].node)->nextslat=(yyvsp[(3) - (3)].node); prevslat=(yyvsp[(3) - (3)].node); + (yyvsp[(3) - (3)].node)->nextslat=0; opoverused=1; + intern(ick_TWOSPOT, 1601); + intern(ick_TWOSPOT, 1602); + intern(ick_TWOSPOT, 1603);}} + break; + + case 124: +#line 577 "parser.y" + {NEWFANGLED{(yyval.node) = cons(SLAT, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); + opoverused=1; if(!firstslat) + firstslat=(yyvsp[(3) - (3)].node); else + prevslat->nextslat=(yyvsp[(3) - (3)].node); prevslat=(yyvsp[(3) - (3)].node); + (yyvsp[(3) - (3)].node)->nextslat=0;}} + break; + + case 125: +#line 582 "parser.y" + {(yyval.node) = (yyvsp[(1) - (1)].node);} + break; + + case 126: +#line 583 "parser.y" + {(yyval.node) = (yyvsp[(1) - (1)].node);} + break; + + case 127: +#line 587 "parser.y" + {(yyval.numval)=MESH; } + break; + + case 128: +#line 587 "parser.y" + {(yyval.numval)=ick_ONESPOT;} + break; + + case 129: +#line 587 "parser.y" + {(yyval.numval)=ick_TWOSPOT;} + break; + + case 130: +#line 592 "parser.y" + {(yyval.node) = (yyvsp[(1) - (1)].node);} + break; + + case 131: +#line 595 "parser.y" + { + (yyval.node) = newnode(); + (yyval.node)->opcode = (yyvsp[(2) - (3)].numval); + (yyval.node)->rval = newnode(); + (yyval.node)->rval->opcode = (yyvsp[(1) - (3)].numval); + if((yyvsp[(1) - (3)].numval) == MESH) { + /* enforce the 16-bit constant constraint */ + if ((unsigned int)(yyvsp[(3) - (3)].numval) > ick_Max_small) + ick_lose(IE017, iyylineno, (char *)NULL); + if(variableconstants) /* AIS, patched by JH */ + (yyval.node)->rval->constant = intern(MESH, (yyvsp[(3) - (3)].numval)); + else + (yyval.node)->rval->constant = (yyvsp[(3) - (3)].numval); + } + else { + (yyval.node)->rval->constant = intern((yyvsp[(1) - (3)].numval), (yyvsp[(3) - (3)].numval)); + } + } + break; + + case 132: +#line 617 "parser.y" + { + (yyval.node) = newnode(); + (yyval.node)->opcode = (yyvsp[(2) - (4)].numval); + (yyval.node)->rval = (yyvsp[(3) - (4)].node); + DESTACKSPARKEARS; + } + break; + + case 133: +#line 624 "parser.y" + { + (yyval.node) = newnode(); + (yyval.node)->opcode = (yyvsp[(2) - (4)].numval); + (yyval.node)->rval = (yyvsp[(3) - (4)].node); + DESTACKSPARKEARS; + } + break; + + case 134: +#line 632 "parser.y" + {(yyval.node) = (yyvsp[(2) - (3)].node); DESTACKSPARKEARS;} + break; + + case 135: +#line 633 "parser.y" + {(yyval.node) = (yyvsp[(2) - (3)].node); DESTACKSPARKEARS;} + break; + + case 136: +#line 636 "parser.y" + {(yyval.node) = (yyvsp[(1) - (1)].node);} + break; + + case 137: +#line 637 "parser.y" + {(yyval.node) = (yyvsp[(1) - (1)].node);} + break; + + case 138: +#line 640 "parser.y" + {(yyval.node) = (yyvsp[(1) - (1)].node);} + break; + + case 139: +#line 642 "parser.y" + {(yyval.node)=newnode(); (yyval.node)->opcode = (yyvsp[(1) - (2)].numval); (yyval.node)->rval = (yyvsp[(2) - (2)].node);} + break; + + case 140: +#line 651 "parser.y" + {(yyval.node) = (yyvsp[(1) - (1)].node);} + break; + + case 141: +#line 653 "parser.y" + {(yyval.node)=newnode(); (yyval.node)->opcode = (yyvsp[(1) - (2)].numval); (yyval.node)->rval = (yyvsp[(2) - (2)].node);} + break; + + +/* Line 1267 of yacc.c. */ +#line 2746 "parser.c" + default: break; + } + YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); + + YYPOPSTACK (yylen); + yylen = 0; + YY_STACK_PRINT (yyss, yyssp); + + *++yyvsp = yyval; + + + /* Now `shift' the result of the reduction. Determine what state + that goes to, based on the state we popped back to and the rule + number reduced by. */ + + yyn = yyr1[yyn]; + + yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; + if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) + yystate = yytable[yystate]; + else + yystate = yydefgoto[yyn - YYNTOKENS]; + + goto yynewstate; + + +/*------------------------------------. +| yyerrlab -- here on detecting error | +`------------------------------------*/ +yyerrlab: + /* If not already recovering from an error, report this error. */ + if (!yyerrstatus) + { + ++yynerrs; +#if ! YYERROR_VERBOSE + yyerror (YY_("syntax error")); +#else + { + YYSIZE_T yysize = yysyntax_error (0, yystate, yychar); + if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM) + { + YYSIZE_T yyalloc = 2 * yysize; + if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM)) + yyalloc = YYSTACK_ALLOC_MAXIMUM; + if (yymsg != yymsgbuf) + YYSTACK_FREE (yymsg); + yymsg = (char *) YYSTACK_ALLOC (yyalloc); + if (yymsg) + yymsg_alloc = yyalloc; + else + { + yymsg = yymsgbuf; + yymsg_alloc = sizeof yymsgbuf; + } + } + + if (0 < yysize && yysize <= yymsg_alloc) + { + (void) yysyntax_error (yymsg, yystate, yychar); + yyerror (yymsg); + } + else + { + yyerror (YY_("syntax error")); + if (yysize != 0) + goto yyexhaustedlab; + } + } +#endif + } + + + + if (yyerrstatus == 3) + { + /* If just tried and failed to reuse look-ahead token after an + error, discard it. */ + + if (yychar <= YYEOF) + { + /* Return failure if at end of input. */ + if (yychar == YYEOF) + YYABORT; + } + else + { + yydestruct ("Error: discarding", + yytoken, &yylval); + yychar = YYEMPTY; + } + } + + /* Else will try to reuse look-ahead token after shifting the error + token. */ + goto yyerrlab1; + + +/*---------------------------------------------------. +| yyerrorlab -- error raised explicitly by YYERROR. | +`---------------------------------------------------*/ +yyerrorlab: + + /* Pacify compilers like GCC when the user code never invokes + YYERROR and the label yyerrorlab therefore never appears in user + code. */ + if (/*CONSTCOND*/ 0) + goto yyerrorlab; + + /* Do not reclaim the symbols of the rule which action triggered + this YYERROR. */ + YYPOPSTACK (yylen); + yylen = 0; + YY_STACK_PRINT (yyss, yyssp); + yystate = *yyssp; + goto yyerrlab1; + + +/*-------------------------------------------------------------. +| yyerrlab1 -- common code for both syntax error and YYERROR. | +`-------------------------------------------------------------*/ +yyerrlab1: + yyerrstatus = 3; /* Each real token shifted decrements this. */ + + for (;;) + { + yyn = yypact[yystate]; + if (yyn != YYPACT_NINF) + { + yyn += YYTERROR; + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) + { + yyn = yytable[yyn]; + if (0 < yyn) + break; + } + } + + /* Pop the current state because it cannot handle the error token. */ + if (yyssp == yyss) + YYABORT; + + + yydestruct ("Error: popping", + yystos[yystate], yyvsp); + YYPOPSTACK (1); + yystate = *yyssp; + YY_STACK_PRINT (yyss, yyssp); + } + + if (yyn == YYFINAL) + YYACCEPT; + + *++yyvsp = yylval; + + + /* Shift the error token. */ + YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); + + yystate = yyn; + goto yynewstate; + + +/*-------------------------------------. +| yyacceptlab -- YYACCEPT comes here. | +`-------------------------------------*/ +yyacceptlab: + yyresult = 0; + goto yyreturn; + +/*-----------------------------------. +| yyabortlab -- YYABORT comes here. | +`-----------------------------------*/ +yyabortlab: + yyresult = 1; + goto yyreturn; + +#ifndef yyoverflow +/*-------------------------------------------------. +| yyexhaustedlab -- memory exhaustion comes here. | +`-------------------------------------------------*/ +yyexhaustedlab: + yyerror (YY_("memory exhausted")); + yyresult = 2; + /* Fall through. */ +#endif + +yyreturn: + if (yychar != YYEOF && yychar != YYEMPTY) + yydestruct ("Cleanup: discarding lookahead", + yytoken, &yylval); + /* Do not reclaim the symbols of the rule which action triggered + this YYABORT or YYACCEPT. */ + YYPOPSTACK (yylen); + YY_STACK_PRINT (yyss, yyssp); + while (yyssp != yyss) + { + yydestruct ("Cleanup: popping", + yystos[*yyssp], yyvsp); + YYPOPSTACK (1); + } +#ifndef yyoverflow + if (yyss != yyssa) + YYSTACK_FREE (yyss); +#endif +#if YYERROR_VERBOSE + if (yymsg != yymsgbuf) + YYSTACK_FREE (yymsg); +#endif + /* Make sure YYID is used. */ + return YYID (yyresult); +} + + +#line 664 "parser.y" + + +static tuple *splat(int gentuple) +/* try to recover from an invalid statement. */ +{ + tuple *sp; + int tok, i; + extern ick_bool re_send_token; + + /* + * The idea + * here is to skip to the ick_next DO, PLEASE or label, then unget that token. + * which we can do with a tricky flag on the lexer (re_send_token). + */ + + if(re_send_token == ick_TRUE) /* By AIS */ + { + /* We're still cleaning up from the previous error. */ + return prevtuple; + } + + /* fprintf(stderr,"attempting to splat at line %d....\n",iyylineno); */ + /* AIS: Set the flag to true the first time round, false for subsequent + iterations. That way, if the error was triggered on a DO or label, + we use that token as the start of the next statement. */ + for(i = 0,re_send_token = ick_TRUE;;i++,re_send_token = ick_FALSE) { + tok = lexer(); + if (!tok) + { + re_send_token = ick_TRUE; + tok = ' '; /* scanner must not see a NUL */ + break; + } + else if (tok == DO || tok == PLEASE || tok == LABEL + /* AIS */ || tok == MAYBE) { + re_send_token = ick_TRUE; + break; + } + } + /* + fprintf(stderr,"found %d on line %d after %d other tokens.\n", + tok,iyylineno,i); + */ + + /* generate a placeholder tuple for the text line */ + if(gentuple /* AIS */) {TARGET(sp, SPLATTERED, 0); prevtuple=sp;} + else sp=NULL; + + return(sp); +} + +/* parser.y ends here */ + diff --git a/prebuilt/parser.h b/prebuilt/parser.h new file mode 100644 index 0000000..6d1d3f1 --- /dev/null +++ b/prebuilt/parser.h @@ -0,0 +1,288 @@ +/* A Bison parser, made by GNU Bison 2.3. */ + +/* Skeleton interface for Bison's Yacc-like parsers in C + + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 + Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. */ + +/* As a special exception, you may create a larger work that contains + part or all of the Bison parser skeleton and distribute that work + under terms of your choice, so long as that work isn't itself a + parser generator using the skeleton or a modified version thereof + as a parser skeleton. Alternatively, if you modify or redistribute + the parser skeleton itself, you may (at your option) remove this + special exception, which will cause the skeleton and the resulting + Bison output files to be licensed under the GNU General Public + License without this special exception. + + This special exception was added by the Free Software Foundation in + version 2.2 of Bison. */ + +/* Tokens. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + /* Put the tokens into the symbol table, so that GDB and other debuggers + know about them. */ + enum yytokentype { + UNKNOWN = 258, + GETS = 259, + RESIZE = 260, + NEXT = 261, + GO_AHEAD = 262, + GO_BACK = 263, + FORGET = 264, + RESUME = 265, + STASH = 266, + RETRIEVE = 267, + IGNORE = 268, + REMEMBER = 269, + ABSTAIN = 270, + REINSTATE = 271, + DISABLE = 272, + ENABLE = 273, + MANYFROM = 274, + GIVE_UP = 275, + READ_OUT = 276, + WRITE_IN = 277, + PIN = 278, + COME_FROM = 279, + NEXTFROMLABEL = 280, + NEXTFROMEXPR = 281, + NEXTFROMGERUND = 282, + COMPUCOME = 283, + GERUCOME = 284, + PREPROC = 285, + WHILE = 286, + TRY_AGAIN = 287, + CREATE = 288, + COMPUCREATE = 289, + FROM = 290, + MAYBE = 291, + DO = 292, + PLEASE = 293, + NOT = 294, + ONCE = 295, + AGAIN = 296, + MESH = 297, + NOSPOT = 298, + ick_ONESPOT = 299, + ick_TWOSPOT = 300, + ick_TAIL = 301, + ick_HYBRID = 302, + MINGLE = 303, + SELECT = 304, + UNKNOWNOP = 305, + SUB = 306, + BY = 307, + SLAT = 308, + BACKSLAT = 309, + NUMBER = 310, + UNARY = 311, + OHOHSEVEN = 312, + GERUND = 313, + LABEL = 314, + BADCHAR = 315, + INTERSECTION = 316, + SPLATTERED = 317, + MESH32 = 318, + C_AND = 319, + C_OR = 320, + C_XOR = 321, + C_NOT = 322, + C_LOGICALNOT = 323, + C_LSHIFTBY = 324, + C_RSHIFTBY = 325, + C_NOTEQUAL = 326, + C_A = 327, + C_PLUS = 328, + C_MINUS = 329, + C_TIMES = 330, + C_DIVIDEBY = 331, + C_MODULUS = 332, + C_GREATER = 333, + C_LESS = 334, + C_ISEQUAL = 335, + C_LOGICALAND = 336, + C_LOGICALOR = 337, + AND = 338, + OR = 339, + XOR = 340, + FIN = 341, + WHIRL = 342, + WHIRL2 = 343, + WHIRL3 = 344, + WHIRL4 = 345, + WHIRL5 = 346, + REV_AND = 347, + REV_OR = 348, + REV_XOR = 349, + REV_FIN = 350, + REV_WHIRL = 351, + REV_WHIRL2 = 352, + REV_WHIRL3 = 353, + REV_WHIRL4 = 354, + REV_WHIRL5 = 355, + UNKNOWNID = 356, + US_ID = 357, + US_SCALAR = 358, + US_ARRVAR = 359, + US_ELEM = 360, + US_EXPR = 361, + CLOSESPARK = 362, + CLOSEEARS = 363, + OPENSPARK = 364, + OPENEARS = 365, + HIGHPREC = 366, + UNARYPREC = 367, + LOWPREC = 368 + }; +#endif +/* Tokens. */ +#define UNKNOWN 258 +#define GETS 259 +#define RESIZE 260 +#define NEXT 261 +#define GO_AHEAD 262 +#define GO_BACK 263 +#define FORGET 264 +#define RESUME 265 +#define STASH 266 +#define RETRIEVE 267 +#define IGNORE 268 +#define REMEMBER 269 +#define ABSTAIN 270 +#define REINSTATE 271 +#define DISABLE 272 +#define ENABLE 273 +#define MANYFROM 274 +#define GIVE_UP 275 +#define READ_OUT 276 +#define WRITE_IN 277 +#define PIN 278 +#define COME_FROM 279 +#define NEXTFROMLABEL 280 +#define NEXTFROMEXPR 281 +#define NEXTFROMGERUND 282 +#define COMPUCOME 283 +#define GERUCOME 284 +#define PREPROC 285 +#define WHILE 286 +#define TRY_AGAIN 287 +#define CREATE 288 +#define COMPUCREATE 289 +#define FROM 290 +#define MAYBE 291 +#define DO 292 +#define PLEASE 293 +#define NOT 294 +#define ONCE 295 +#define AGAIN 296 +#define MESH 297 +#define NOSPOT 298 +#define ick_ONESPOT 299 +#define ick_TWOSPOT 300 +#define ick_TAIL 301 +#define ick_HYBRID 302 +#define MINGLE 303 +#define SELECT 304 +#define UNKNOWNOP 305 +#define SUB 306 +#define BY 307 +#define SLAT 308 +#define BACKSLAT 309 +#define NUMBER 310 +#define UNARY 311 +#define OHOHSEVEN 312 +#define GERUND 313 +#define LABEL 314 +#define BADCHAR 315 +#define INTERSECTION 316 +#define SPLATTERED 317 +#define MESH32 318 +#define C_AND 319 +#define C_OR 320 +#define C_XOR 321 +#define C_NOT 322 +#define C_LOGICALNOT 323 +#define C_LSHIFTBY 324 +#define C_RSHIFTBY 325 +#define C_NOTEQUAL 326 +#define C_A 327 +#define C_PLUS 328 +#define C_MINUS 329 +#define C_TIMES 330 +#define C_DIVIDEBY 331 +#define C_MODULUS 332 +#define C_GREATER 333 +#define C_LESS 334 +#define C_ISEQUAL 335 +#define C_LOGICALAND 336 +#define C_LOGICALOR 337 +#define AND 338 +#define OR 339 +#define XOR 340 +#define FIN 341 +#define WHIRL 342 +#define WHIRL2 343 +#define WHIRL3 344 +#define WHIRL4 345 +#define WHIRL5 346 +#define REV_AND 347 +#define REV_OR 348 +#define REV_XOR 349 +#define REV_FIN 350 +#define REV_WHIRL 351 +#define REV_WHIRL2 352 +#define REV_WHIRL3 353 +#define REV_WHIRL4 354 +#define REV_WHIRL5 355 +#define UNKNOWNID 356 +#define US_ID 357 +#define US_SCALAR 358 +#define US_ARRVAR 359 +#define US_ELEM 360 +#define US_EXPR 361 +#define CLOSESPARK 362 +#define CLOSEEARS 363 +#define OPENSPARK 364 +#define OPENEARS 365 +#define HIGHPREC 366 +#define UNARYPREC 367 +#define LOWPREC 368 + + + + +#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED +typedef union YYSTYPE +#line 83 "parser.y" +{ + int numval; /* a numeric value */ + tuple *tuple; /* a code tuple */ + node *node; /* an expression-tree node */ +} +/* Line 1489 of yacc.c. */ +#line 281 "parser.h" + YYSTYPE; +# define yystype YYSTYPE /* obsolescent; will be withdrawn */ +# define YYSTYPE_IS_DECLARED 1 +# define YYSTYPE_IS_TRIVIAL 1 +#endif + +extern YYSTYPE yylval; + diff --git a/src/configh.in b/src/configh.in index 45abaf8..247fcfb 100644 --- a/src/configh.in +++ b/src/configh.in @@ -1,67 +1,127 @@ -/* configh.in. Input to config.sh. */ +/* src/configh.in. Generated from configure.ac by autoheader. */ -/* Define to empty if the keyword does not work. */ -#undef const +/* Extension to use on executable files. */ +#undef EXEEXT -/* Define as the return type of signal handlers (int or void). */ -#undef RETSIGTYPE +/* Define to 1 if you have the `clock_gettime' function. */ +#undef HAVE_CLOCK_GETTIME -/* Define if you have the ANSI C header files. */ -#undef STDC_HEADERS +/* Define to 1 if you have the `gethrtime' function. */ +#undef HAVE_GETHRTIME -/* Define if you can safely include both and . */ -#undef TIME_WITH_SYS_TIME +/* Define to 1 if you have the `gettimeofday' function. */ +#undef HAVE_GETTIMEOFDAY -/* Define if you have the gethrtime function. */ -#undef HAVE_GETHRTIME +/* Define to 1 if you have the header file. */ +#undef HAVE_INTTYPES_H -/* Define if you have the clock_gettime function. */ -#undef HAVE_CLOCK_GETTIME +/* Define to 1 if you have the header file. */ +#undef HAVE_MEMORY_H -/* Define if you have the gettimeofday function. */ -#undef HAVE_GETTIMEOFDAY +/* Define to 1 if you have the `snprintf' function. */ +#undef HAVE_SNPRINTF + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDARG_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDINT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDLIB_H -/* Define if you have the strdup function. */ +/* Define to 1 if you have the `strdup' function. */ #undef HAVE_STRDUP -/* Define if you have the strtol function. */ +/* Define to 1 if you have the header file. */ +#undef HAVE_STRINGS_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRING_H + +/* Define to 1 if you have the `strtol' function. */ #undef HAVE_STRTOL -/* Define if you have the strtoul function. */ +/* Define to 1 if you have the `strtoul' function. */ #undef HAVE_STRTOUL -/* Define if you have the snprintf function. */ -#undef HAVE_SNPRINTF +/* Define if #! works on your system. */ +#undef HAVE_SYS_INTERPRETER -/* Define if you have the asprintf function. */ -#undef HAVE_ASPRINTF +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_STAT_H -/* Define if you have the header file. */ +/* Define to 1 if you have the header file. */ #undef HAVE_SYS_TIME_H -/* Define if you have the header file. */ +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_TYPES_H + +/* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H -/* Define if you have the header file. */ -#undef HAVE_STDINT_H +/* Define if yyrestart() is necessary to yyparse a new file. */ +#undef NEED_YYRESTART -/* Define if you have the header file. */ -#undef HAVE_STDARG_H +/* Name of package */ +#undef PACKAGE -/* Define to the number of bytes in a long long, or 0 if not available. */ -#define SIZEOF_LONG_LONG_INT 0 +/* Define to the address where bug reports for this package should be sent. */ +#undef PACKAGE_BUGREPORT -/* Define to the number of bytes in a _Bool, or 0 if not available. */ -#define SIZEOF__BOOL 0 +/* Define to the full name of this package. */ +#undef PACKAGE_NAME -/* Define if sh is available. */ -#define HAVE_PROG_SH 1 +/* Define to the full name and version of this package. */ +#undef PACKAGE_STRING -/* Define if the #! notation works. */ -#undef HAVE_SYS_INTERPRETER +/* Define to the one symbol short name of this package. */ +#undef PACKAGE_TARNAME -/* Define as the extension of executables (including the . if needed). */ -#undef EXEEXT +/* Define to the version of this package. */ +#undef PACKAGE_VERSION -/* Define if lex defines yyrestart(). */ -#undef NEED_YYRESTART +/* Define as the return type of signal handlers (`int' or `void'). */ +#undef RETSIGTYPE + +/* The size of `long long int', as computed by sizeof. */ +#undef SIZEOF_LONG_LONG_INT + +/* The size of `_Bool', as computed by sizeof. */ +#undef SIZEOF__BOOL + +/* Define to 1 if you have the ANSI C header files. */ +#undef STDC_HEADERS + +/* Define to 1 if you can safely include both and . */ +#undef TIME_WITH_SYS_TIME + +/* Version number of package */ +#undef VERSION + +/* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a + `char[]'. */ +#undef YYTEXT_POINTER + +/* Define for Solaris 2.5.1 so the uint32_t typedef from , + , or is not used. If the typedef was allowed, the + #define below would cause a syntax error. */ +#undef _UINT32_T + +/* Define to empty if `const' does not conform to ANSI C. */ +#undef const + +/* Define to `unsigned int' if does not define. */ +#undef size_t + +/* Define to the type of an unsigned integer type of width exactly 16 bits if + such a type exists and the standard includes do not define it. */ +#undef uint16_t + +/* Define to the type of an unsigned integer type of width exactly 32 bits if + such a type exists and the standard includes do not define it. */ +#undef uint32_t + +/* Define to empty if the keyword `volatile' does not work. Warning: valid + code using `volatile' can become incorrect without. Disable with care. */ +#undef volatile -- 2.43.0