From d0ab9150f3cc356d4d21f230c12cd861bdd2eae3 Mon Sep 17 00:00:00 2001 From: Loic Dachary Date: Sat, 29 Jan 2000 01:06:10 +0000 Subject: [PATCH] 1/28/00 : loic Apply automake everywhere Keep configure scripts so that people are not *forced* to autoconf Keep sources generated by yacc so that compilation without yacc is possible. Source/LParse/cscanner.c: change lyacc.h into parser.h to please default yacc generation rules. Use AC_CONFIG_SUBDIRS in configure.in instead of hand made script. Update all relevant .cvsignore to include .deps Fixed missing ; line 136 Source/Swig/swig.h git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@164 626c5289-ae23-0410-ae9c-e8d60b6d4f22 --- .cvsignore | 5 +- CHANGES | 11 + Makefile.am | 63 + Makefile.common | 7 + Makefile.in | 468 +- Source/.cvsignore | 1 + Source/DOH/.cvsignore | 4 +- Source/DOH/Doh/.cvsignore | 1 + Source/DOH/Doh/Makefile.am | 5 + Source/DOH/Doh/Makefile.in | 354 +- Source/DOH/Include/.cvsignore | 1 + Source/DOH/Include/Makefile.am | 2 + Source/DOH/Include/Makefile.in | 223 + Source/DOH/Makefile.am | 5 + Source/DOH/Makefile.common | 5 + Source/DOH/Makefile.in | 348 +- Source/DOH/aclocal.m4 | 139 + Source/DOH/configure | 1579 ++++++ Source/DOH/configure.in | 8 +- Source/DOH/missing | 190 + Source/DOH/mkinstalldirs | 40 + Source/LParse/.cvsignore | 3 +- Source/LParse/Makefile.am | 12 + Source/LParse/Makefile.in | 362 +- Source/LParse/cscanner.c | 2 +- Source/LParse/parser.c | 4269 +++++++++++++++ Source/LParse/parser.h | 146 + Source/Makefile.am | 5 + Source/Makefile.in | 312 ++ Source/Modules1.1/.cvsignore | 2 +- Source/Modules1.1/Makefile.am | 15 + Source/Modules1.1/Makefile.in | 387 +- Source/Preprocessor/.cvsignore | 3 +- Source/Preprocessor/Makefile.am | 11 + Source/Preprocessor/Makefile.in | 353 +- Source/SWIG1.1/.cvsignore | 6 +- Source/SWIG1.1/Makefile.am | 26 + Source/SWIG1.1/Makefile.in | 447 +- Source/SWIG1.1/parser.cxx | 6557 +++++++++++++++++++++++ Source/SWIG1.1/parser.h | 147 + Source/SWIG1.1/{parser.y => parser.yxx} | 0 Source/Swig/.cvsignore | 2 +- Source/Swig/Makefile.am | 9 + Source/Swig/Makefile.in | 416 +- Source/Swig/swig.h | 2 +- aclocal.m4 | 139 + configure | 3051 +++++++++++ configure.in | 54 +- missing | 190 + mkinstalldirs | 40 + 50 files changed, 19913 insertions(+), 514 deletions(-) create mode 100644 Makefile.am create mode 100644 Makefile.common create mode 100644 Source/DOH/Doh/Makefile.am create mode 100644 Source/DOH/Include/.cvsignore create mode 100644 Source/DOH/Include/Makefile.am create mode 100644 Source/DOH/Include/Makefile.in create mode 100644 Source/DOH/Makefile.am create mode 100644 Source/DOH/Makefile.common create mode 100644 Source/DOH/aclocal.m4 create mode 100755 Source/DOH/configure create mode 100755 Source/DOH/missing create mode 100755 Source/DOH/mkinstalldirs create mode 100644 Source/LParse/Makefile.am create mode 100644 Source/LParse/parser.c create mode 100644 Source/LParse/parser.h create mode 100644 Source/Makefile.am create mode 100644 Source/Makefile.in create mode 100644 Source/Modules1.1/Makefile.am create mode 100644 Source/Preprocessor/Makefile.am create mode 100644 Source/SWIG1.1/Makefile.am create mode 100644 Source/SWIG1.1/parser.cxx create mode 100644 Source/SWIG1.1/parser.h rename Source/SWIG1.1/{parser.y => parser.yxx} (100%) create mode 100644 Source/Swig/Makefile.am create mode 100644 aclocal.m4 create mode 100755 configure create mode 100755 missing create mode 100755 mkinstalldirs diff --git a/.cvsignore b/.cvsignore index e275b02dc..c272f36c2 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1,4 +1,5 @@ -configure config.* +config.* Makefile swig -objs.tmp experiment +*.tar.gz + diff --git a/CHANGES b/CHANGES index 0f98cd244..08b7f5653 100644 --- a/CHANGES +++ b/CHANGES @@ -1,5 +1,16 @@ SWIG (Simplified Wrapper and Interface Generator) +1/28/00 : loic + Apply automake everywhere + Keep configure scripts so that people are not *forced* to autoconf + Keep sources generated by yacc so that compilation without yacc + is possible. + Source/LParse/cscanner.c: change lyacc.h into parser.h to please + default yacc generation rules. + Use AC_CONFIG_SUBDIRS in configure.in instead of hand made script. + Update all relevant .cvsignore to include .deps + Fixed missing ; line 136 Source/Swig/swig.h + 1/13/00 : beazley Fixed a number of minor end-of-file parsing problems in the preprocessor. diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 000000000..091e24467 --- /dev/null +++ b/Makefile.am @@ -0,0 +1,63 @@ +include $(top_srcdir)/Makefile.common + +EXTRA_DIST = Makefile.common LICENSE Lib Doc Examples + +SUBDIRS = Source + +all-local: + cp $(top_builddir)/Source/SWIG1.1/swig swig + +experiment: all + cp $(top_builddir)/Source/Experiment/experiment swig + +dist-hook: + find $(distdir) -depth -name CVS -print | xargs rm -fr + +SWIG_LIB = $(prefix)/lib/swig1.3 + +install-data-local: + @for i in $(SWIG_LIB) ; \ + do \ + if [ ! -d $$i ] ; then \ + mkdir $$i; \ + echo "Making directory $$i"; \ + chmod 755 $$i;\ + else true; \ + fi; \ + done; + @echo "Installing the SWIG library" +# cd $(SWIG_LIB); rm -rf * + @for i in $(SWIG_LIB)/tcl $(SWIG_LIB)/perl5 $(SWIG_LIB)/python $(SWIG_LIB)/guile ; \ + do \ + if [ ! -d $$i ] ; then \ + mkdir $$i; \ + echo "Making directory $$i"; \ + chmod 755 $$i;\ + else true; \ + fi; \ + done; + @cd $(top_srcdir)/Lib; for i in *.i *.swg; \ + do \ + echo "Installing Lib/$$i"; \ + $(INSTALL_DATA) $$i $(SWIG_LIB)/$$i; \ + done; + @cd $(top_srcdir)/Lib/tcl; for i in *.i *.swg; \ + do \ + echo "Installing Lib/tcl/$$i"; \ + $(INSTALL_DATA) $$i $(SWIG_LIB)/tcl/$$i; \ + done; + @cd $(top_srcdir)/Lib/perl5; for i in *.i *.swg Makefile.pl; \ + do \ + echo "Installing Lib/perl5/$$i"; \ + $(INSTALL_DATA) $$i $(SWIG_LIB)/perl5/$$i; \ + done; + @cd $(top_srcdir)/Lib/python; for i in *.i *.swg; \ + do \ + echo "Installing Lib/python/$$i"; \ + $(INSTALL_DATA) $$i $(SWIG_LIB)/python/$$i; \ + done; + @cd $(top_srcdir)/Lib/guile; for i in *.i *.swg; \ + do \ + echo "Installing Lib/guile/$$i"; \ + $(INSTALL_DATA) $$i $(SWIG_LIB)/guile/$$i; \ + done; diff --git a/Makefile.common b/Makefile.common new file mode 100644 index 000000000..bfbd86834 --- /dev/null +++ b/Makefile.common @@ -0,0 +1,7 @@ +AUTOMAKE_OPTIONS = foreign + +SWIG_INCLUDES = -I$(top_srcdir)/Source/DOH/Include \ + -I$(top_srcdir)/Source/SWILL/Include + +SWIG_LIBS = $(top_builddir)/Source/DOH/Doh/libdoh.a \ + $(top_builddir)/Source/SWILL/SWILL/libswill.a diff --git a/Makefile.in b/Makefile.in index e3fce4468..f2992cd7d 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1,114 +1,370 @@ -####################################################################### -# $Header$ -# Simplified Wrapper and Interface Generator (SWIG) -# -####################################################################### +# Makefile.in generated automatically by automake 1.4a from Makefile.am -prefix = @prefix@ -exec_prefix= @exec_prefix@ -srcdir = @ROOT_DIR@ +# Copyright (C) 1994, 1995-8, 1999 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. -SHELL = /bin/sh -CC = @CC@ -CXX = @CXX@ -LIBS = @LIBS@ +# 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. + + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = . + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_FLAG = +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +AR = @AR@ +AUTOCONF = @AUTOCONF@ +CC = @CC@ +CCSHARED = @CCSHARED@ +CXX = @CXX@ +LDSHARED = @LDSHARED@ +LIBC = @LIBC@ +LIBCRYPT = @LIBCRYPT@ +LIBM = @LIBM@ +MACHDEP = @MACHDEP@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +PACKAGE = @PACKAGE@ +PERL = @PERL@ +PERL5EXT = @PERL5EXT@ +PYINCLUDE = @PYINCLUDE@ +PYLIB = @PYLIB@ +PYLINK = @PYLINK@ +RANLIB = @RANLIB@ +ROOT_DIR = @ROOT_DIR@ +RPATH = @RPATH@ +SO = @SO@ +TCLINCLUDE = @TCLINCLUDE@ +TCLLIB = @TCLLIB@ +VERSION = @VERSION@ +XINCLUDES = @XINCLUDES@ +XLIBSW = @XLIBSW@ +YACC = @YACC@ +YFLAGS = @YFLAGS@ + +AUTOMAKE_OPTIONS = foreign + +SWIG_INCLUDES = -I$(top_srcdir)/Source/DOH/Include -I$(top_srcdir)/Source/SWILL/Include + + +SWIG_LIBS = $(top_builddir)/Source/DOH/Doh/libdoh.a $(top_builddir)/Source/SWILL/SWILL/libswill.a + + +EXTRA_DIST = Makefile.common LICENSE Lib Doc Examples + +SUBDIRS = Source SWIG_LIB = $(prefix)/lib/swig1.3 -BIN_DIR = $(exec_prefix)/bin -LIB_DIR = $(prefix)/lib +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_CLEAN_FILES = +DIST_COMMON = README Makefile.am Makefile.in aclocal.m4 configure \ +configure.in install-sh missing mkinstalldirs -GOAL := all -OBJS_FILE := $(srcdir)/objs.tmp -OBJS = `cat $(OBJS_FILE)` -MODULES := `ls Source/` -##################################################################### -# TARGET: swig -##################################################################### -swig: GOAL := all -swig: MODULES := SWIG1.1 Modules1.1 Swig Preprocessor -swig: _recurse DOH - $(CXX) $(OBJS) $(LIBS) -o swig +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) -##################################################################### -# TARGET: experiment -##################################################################### -experiment: GOAL := experiment -experiment: MODULES := Swig Preprocessor LParse Experiment Swim -experiment: _recurse DOH SWILL - $(CC) $(OBJS) $(LIBS) -o swig +TAR = gtar +GZIP_ENV = --best +all: all-redirect +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) $(top_srcdir)/Makefile.common + cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile -##################################################################### -# TARGET: clean -##################################################################### -clean: GOAL := clean -clean: _recurse - rm -f swig +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status -##################################################################### -# TARGET: nuke -##################################################################### -nuke: GOAL := nuke -nuke: clean _recurse - rm -f Makefile Makefile.template config.* +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.in + cd $(srcdir) && $(ACLOCAL) -##################################################################### -# TARGET: _recurse (UTILITY) -##################################################################### -# this target recurses through the directories in $(MODULES), executing -# $(MAKE) $(GOAL) in each one, with the variable OBJS_FILE set to -# the name of a file into which will be recorded the names of the -# relevant object files. See the "swig" target for an example. -_recurse: - @ORIG_DIR=`pwd`; \ - echo "" > $(OBJS_FILE); \ - for i in $(MODULES); \ - do \ - if [ -d Source/$$i -a -f Source/$$i/Makefile ]; then \ - (cd Source/$$i && $(MAKE) $(GOAL) OBJS_FILE=$(OBJS_FILE)) || exit 1; \ - cd $$ORIG_DIR ;\ - fi \ - done; +config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck +$(srcdir)/configure: @MAINTAINER_MODE_TRUE@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + cd $(srcdir) && $(AUTOCONF) -##################################################################### -# TARGET: DOH (an independent project) -##################################################################### -DOH: - cd Source/DOH; $(MAKE) - ls Source/DOH/Doh/*.o >> $(OBJS_FILE) +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. -##################################################################### -# TARGET: SWILL (an independent project) -##################################################################### -SWILL: - cd Source/SWILL; $(MAKE) - ls Source/SWILL/SWILL/*.o >> $(OBJS_FILE) +@SET_MAKE@ -##################################################################### -# TARGETS: install & friends -##################################################################### +all-recursive install-data-recursive install-exec-recursive \ +installdirs-recursive install-recursive uninstall-recursive \ +check-recursive installcheck-recursive info-recursive dvi-recursive: + @set fnord $(MAKEFLAGS); amf=$$2; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" -INSTALL = ./install-sh -c -INSTALL_DATA = ${INSTALL} -m 644 -INSTALL_PROGRAM= ${INSTALL} -m 755 +mostlyclean-recursive clean-recursive distclean-recursive \ +maintainer-clean-recursive: + @set fnord $(MAKEFLAGS); amf=$$2; \ + dot_seen=no; \ + rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ + rev="$$subdir $$rev"; \ + test "$$subdir" = "." && dot_seen=yes; \ + done; \ + test "$$dot_seen" = "no" && rev=". $$rev"; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done -install: install-main install-lib - @echo "Installation complete" +tags: TAGS -install-main: - @for i in $(LIB_DIR) $(BIN_DIR); \ - do \ - if [ ! -d $$i ] ; then \ - mkdir $$i; \ - echo "Making directory $$i"; \ - chmod 755 $$i;\ - else true; \ - fi; \ - done; - @echo "Installing $(BIN_DIR)/swig" - @$(INSTALL_PROGRAM) swig $(BIN_DIR)/swig +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) -install-lib: +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(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 + -rm -rf $(distdir) + GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; \ + cd $(distdir)/=build \ + && ../configure --srcdir=.. --prefix=$$dc_install_base \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) dist + -rm -rf $(distdir) + @banner="$(distdir).tar.gz is ready for distribution"; \ + dashes=`echo "$$banner" | sed s/./=/g`; \ + echo "$$dashes"; \ + echo "$$banner"; \ + echo "$$dashes" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +distdir: $(DISTFILES) + -rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) + here=`cd $(top_builddir) && pwd`; \ + top_distdir=`cd $(distdir) && pwd`; \ + distdir=`cd $(distdir) && pwd`; \ + cd $(top_srcdir) \ + && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --foreign Makefile + @for file in $(DISTFILES); do \ + d=$(srcdir); \ + if test -d $$d/$$file; then \ + cp -pr $$d/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ + fi; \ + done + for subdir in $(SUBDIRS); do \ + if test "$$subdir" = .; then :; else \ + test -d $(distdir)/$$subdir \ + || mkdir $(distdir)/$$subdir \ + || exit 1; \ + chmod 777 $(distdir)/$$subdir; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(distdir) distdir=../$(distdir)/$$subdir distdir) \ + || exit 1; \ + fi; \ + done + $(MAKE) $(AM_MAKEFLAGS) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-hook +info-am: +info: info-recursive +dvi-am: +dvi: dvi-recursive +check-am: all-am +check: check-recursive +installcheck-am: +installcheck: installcheck-recursive +install-exec-am: +install-exec: install-exec-recursive + +install-data-am: install-data-local +install-data: install-data-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am +install: install-recursive +uninstall-am: +uninstall: uninstall-recursive +all-am: Makefile all-local +all-redirect: all-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_STRIP_FLAG=-s install +installdirs: installdirs-recursive +installdirs-am: + + +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + +maintainer-clean-generic: +mostlyclean-am: mostlyclean-tags mostlyclean-generic + +mostlyclean: mostlyclean-recursive + +clean-am: clean-tags clean-generic mostlyclean-am + +clean: clean-recursive + +distclean-am: distclean-tags distclean-generic clean-am + +distclean: distclean-recursive + -rm -f config.status + +maintainer-clean-am: maintainer-clean-tags maintainer-clean-generic \ + distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +maintainer-clean: maintainer-clean-recursive + -rm -f config.status + +.PHONY: install-data-recursive uninstall-data-recursive \ +install-exec-recursive uninstall-exec-recursive installdirs-recursive \ +uninstalldirs-recursive all-recursive check-recursive \ +installcheck-recursive info-recursive dvi-recursive \ +mostlyclean-recursive distclean-recursive clean-recursive \ +maintainer-clean-recursive tags tags-recursive mostlyclean-tags \ +distclean-tags clean-tags maintainer-clean-tags distdir info-am info \ +dvi-am dvi check check-am installcheck-am installcheck install-exec-am \ +install-exec install-data-local install-data-am install-data install-am \ +install uninstall-am uninstall all-local all-redirect all-am all \ +installdirs-am installdirs mostlyclean-generic distclean-generic \ +clean-generic maintainer-clean-generic clean mostlyclean distclean \ +maintainer-clean + + +all-local: + cp $(top_builddir)/Source/SWIG1.1/swig swig + +experiment: all + cp $(top_builddir)/Source/Experiment/experiment swig + +dist-hook: + find $(distdir) -depth -name CVS -print | xargs rm -fr + +install-data-local: @for i in $(SWIG_LIB) ; \ do \ if [ ! -d $$i ] ; then \ @@ -129,28 +385,32 @@ install-lib: else true; \ fi; \ done; - @cd Lib; for i in *.i *.swg; \ + @cd $(top_srcdir)/Lib; for i in *.i *.swg; \ do \ echo "Installing Lib/$$i"; \ - ../$(INSTALL_DATA) $$i $(SWIG_LIB)/$$i; \ + $(INSTALL_DATA) $$i $(SWIG_LIB)/$$i; \ done; - @cd Lib/tcl; for i in *.i *.swg; \ + @cd $(top_srcdir)/Lib/tcl; for i in *.i *.swg; \ do \ echo "Installing Lib/tcl/$$i"; \ - ../../$(INSTALL_DATA) $$i $(SWIG_LIB)/tcl/$$i; \ + $(INSTALL_DATA) $$i $(SWIG_LIB)/tcl/$$i; \ done; - @cd Lib/perl5; for i in *.i *.swg Makefile.pl; \ + @cd $(top_srcdir)/Lib/perl5; for i in *.i *.swg Makefile.pl; \ do \ echo "Installing Lib/perl5/$$i"; \ - ../../$(INSTALL_DATA) $$i $(SWIG_LIB)/perl5/$$i; \ + $(INSTALL_DATA) $$i $(SWIG_LIB)/perl5/$$i; \ done; - @cd Lib/python; for i in *.i *.swg; \ + @cd $(top_srcdir)/Lib/python; for i in *.i *.swg; \ do \ echo "Installing Lib/python/$$i"; \ - ../../$(INSTALL_DATA) $$i $(SWIG_LIB)/python/$$i; \ + $(INSTALL_DATA) $$i $(SWIG_LIB)/python/$$i; \ done; - @cd Lib/guile; for i in *.i *.swg; \ + @cd $(top_srcdir)/Lib/guile; for i in *.i *.swg; \ do \ echo "Installing Lib/guile/$$i"; \ - ../../$(INSTALL_DATA) $$i $(SWIG_LIB)/guile/$$i; \ + $(INSTALL_DATA) $$i $(SWIG_LIB)/guile/$$i; \ done; + +# 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/Source/.cvsignore b/Source/.cvsignore index e69de29bb..f3c7a7c5d 100644 --- a/Source/.cvsignore +++ b/Source/.cvsignore @@ -0,0 +1 @@ +Makefile diff --git a/Source/DOH/.cvsignore b/Source/DOH/.cvsignore index f18050dd1..44e8c23bd 100644 --- a/Source/DOH/.cvsignore +++ b/Source/DOH/.cvsignore @@ -1,3 +1,3 @@ Makefile -y.tab.* -config.cache config.log config.status configure +config.* +*.tar.gz diff --git a/Source/DOH/Doh/.cvsignore b/Source/DOH/Doh/.cvsignore index 90c3f5e65..e2255e8a3 100644 --- a/Source/DOH/Doh/.cvsignore +++ b/Source/DOH/Doh/.cvsignore @@ -1,2 +1,3 @@ Makefile *.flc +.deps diff --git a/Source/DOH/Doh/Makefile.am b/Source/DOH/Doh/Makefile.am new file mode 100644 index 000000000..10515627a --- /dev/null +++ b/Source/DOH/Doh/Makefile.am @@ -0,0 +1,5 @@ +include $(top_srcdir)/Makefile.common + +lib_LIBRARIES = libdoh.a + +libdoh_a_SOURCES = callable.c void.c fio.c memory.c base.c file.c list.c hash.c string.c diff --git a/Source/DOH/Doh/Makefile.in b/Source/DOH/Doh/Makefile.in index 9c1c29e79..8061b7722 100644 --- a/Source/DOH/Doh/Makefile.in +++ b/Source/DOH/Doh/Makefile.in @@ -1,49 +1,329 @@ -####################################################################### -# $Header$ -# DOH -####################################################################### +# Makefile.in generated automatically by automake 1.4a from Makefile.am -#.KEEP_STATE: +# Copyright (C) 1994, 1995-8, 1999 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. -# Set your C++ compiler here. g++ works on most machines, -# but you might have to change it depending on your installation. -# -CC = @CC@ -prefix = @prefix@ +# 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. -# Comment out the following line if you're on an SGI or don't have ranlib! -RANLIB = @RANLIB@ -AR = @AR@ -######################################################################## -# Normally, you shouldn't have to change anything below this point # -######################################################################## -LIBOBJS = callable.o void.o fio.o memory.o base.o file.o list.o hash.o string.o +SHELL = @SHELL@ -LIBSRCS = callable.c void.c fio.c memory.c base.c file.c list.c hash.c string.c +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ -LIBHEADERS = ../Include/doh.h -LIB = ../libdoh.a -INCLUDE = -I../Include -CFLAGS = -DDOH_STRING_UPDATE_LINES -SHELL = /bin/sh +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include -# -# Rules for creation of a .o file from .cxx -.SUFFIXES: .c -.c.o: - $(CC) $(INCLUDE) $(CFLAGS) -c -o $*.o $< +DESTDIR = -all: $(LIB) +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ -$(LIB): $(LIBOBJS) - @echo "Building library" - $(AR) cr $(LIB) $(LIBOBJS) - $(RANLIB) $(LIB) +top_builddir = .. -clean:: - rm -f *.o ../libdoh.a -nuke:: - rm -f Makefile *~ #* core a.out +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_FLAG = +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +AR = @AR@ +CC = @CC@ +MACHDEP = @MACHDEP@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ + +AUTOMAKE_OPTIONS = foreign + +INCLUDES = -I$(top_srcdir)/Include + +DOH_LIBS = -L$(top_builddir)/Doh -ldoh + +lib_LIBRARIES = libdoh.a + +libdoh_a_SOURCES = callable.c void.c fio.c memory.c base.c file.c list.c hash.c string.c +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(lib_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +libdoh_a_LIBADD = +libdoh_a_OBJECTS = callable.o void.o fio.o memory.o base.o file.o \ +list.o hash.o string.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = gtar +GZIP_ENV = --best +DEP_FILES = .deps/base.P .deps/callable.P .deps/file.P .deps/fio.P \ +.deps/hash.P .deps/list.P .deps/memory.P .deps/string.P .deps/void.P +SOURCES = $(libdoh_a_SOURCES) +OBJECTS = $(libdoh_a_OBJECTS) + +all: all-redirect +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) $(top_srcdir)/Makefile.common + cd $(top_srcdir) && $(AUTOMAKE) --foreign Doh/Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + + +mostlyclean-libLIBRARIES: + +clean-libLIBRARIES: + -test -z "$(lib_LIBRARIES)" || rm -f $(lib_LIBRARIES) + +distclean-libLIBRARIES: + +maintainer-clean-libLIBRARIES: + +install-libLIBRARIES: $(lib_LIBRARIES) + @$(NORMAL_INSTALL) + $(mkinstalldirs) $(DESTDIR)$(libdir) + @list='$(lib_LIBRARIES)'; for p in $$list; do \ + if test -f $$p; then \ + echo " $(INSTALL_DATA) $$p $(DESTDIR)$(libdir)/$$p"; \ + $(INSTALL_DATA) $$p $(DESTDIR)$(libdir)/$$p; \ + else :; fi; \ + done + @$(POST_INSTALL) + @list='$(lib_LIBRARIES)'; for p in $$list; do \ + if test -f $$p; then \ + echo " $(RANLIB) $(DESTDIR)$(libdir)/$$p"; \ + $(RANLIB) $(DESTDIR)$(libdir)/$$p; \ + else :; fi; \ + done + +uninstall-libLIBRARIES: + @$(NORMAL_UNINSTALL) + list='$(lib_LIBRARIES)'; for p in $$list; do \ + rm -f $(DESTDIR)$(libdir)/$$p; \ + done + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +libdoh.a: $(libdoh_a_OBJECTS) $(libdoh_a_DEPENDENCIES) + -rm -f libdoh.a + $(AR) cru libdoh.a $(libdoh_a_OBJECTS) $(libdoh_a_LIBADD) + $(RANLIB) libdoh.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) + +subdir = Doh + +distdir: $(DISTFILES) + here=`cd $(top_builddir) && pwd`; \ + top_distdir=`cd $(top_distdir) && pwd`; \ + distdir=`cd $(distdir) && pwd`; \ + cd $(top_srcdir) \ + && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --foreign Doh/Makefile + @for file in $(DISTFILES); do \ + d=$(srcdir); \ + if test -d $$d/$$file; then \ + cp -pr $$d/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ + fi; \ + done + +DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :) + +-include $(DEP_FILES) + +mostlyclean-depend: + +clean-depend: + +distclean-depend: + -rm -rf .deps + +maintainer-clean-depend: + +%.o: %.c + @echo '$(COMPILE) -c $<'; \ + $(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-cp .deps/$(*F).pp .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm .deps/$(*F).pp + +%.lo: %.c + @echo '$(LTCOMPILE) -c $<'; \ + $(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \ + < .deps/$(*F).pp > .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm -f .deps/$(*F).pp +info-am: +info: info-am +dvi-am: +dvi: dvi-am +check-am: all-am +check: check-am +installcheck-am: +installcheck: installcheck-am +install-exec-am: install-libLIBRARIES +install-exec: install-exec-am + +install-data-am: +install-data: install-data-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am +install: install-am +uninstall-am: uninstall-libLIBRARIES +uninstall: uninstall-am +all-am: Makefile $(LIBRARIES) +all-redirect: all-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_STRIP_FLAG=-s install +installdirs: + $(mkinstalldirs) $(DESTDIR)$(libdir) + + +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + +maintainer-clean-generic: +mostlyclean-am: mostlyclean-libLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-depend mostlyclean-generic + +mostlyclean: mostlyclean-am + +clean-am: clean-libLIBRARIES clean-compile clean-tags clean-depend \ + clean-generic mostlyclean-am + +clean: clean-am + +distclean-am: distclean-libLIBRARIES distclean-compile distclean-tags \ + distclean-depend distclean-generic clean-am + +distclean: distclean-am + +maintainer-clean-am: maintainer-clean-libLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-depend maintainer-clean-generic \ + distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +maintainer-clean: maintainer-clean-am + +.PHONY: mostlyclean-libLIBRARIES distclean-libLIBRARIES \ +clean-libLIBRARIES maintainer-clean-libLIBRARIES uninstall-libLIBRARIES \ +install-libLIBRARIES mostlyclean-compile distclean-compile \ +clean-compile maintainer-clean-compile tags mostlyclean-tags \ +distclean-tags clean-tags maintainer-clean-tags distdir \ +mostlyclean-depend distclean-depend clean-depend \ +maintainer-clean-depend info-am info dvi-am dvi check check-am \ +installcheck-am installcheck install-exec-am install-exec \ +install-data-am install-data install-am install uninstall-am uninstall \ +all-redirect all-am all installdirs mostlyclean-generic \ +distclean-generic clean-generic maintainer-clean-generic clean \ +mostlyclean distclean maintainer-clean + + +# 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/Source/DOH/Include/.cvsignore b/Source/DOH/Include/.cvsignore new file mode 100644 index 000000000..f3c7a7c5d --- /dev/null +++ b/Source/DOH/Include/.cvsignore @@ -0,0 +1 @@ +Makefile diff --git a/Source/DOH/Include/Makefile.am b/Source/DOH/Include/Makefile.am new file mode 100644 index 000000000..10b3692c6 --- /dev/null +++ b/Source/DOH/Include/Makefile.am @@ -0,0 +1,2 @@ +noinst_HEADERS = dohint.h +include_HEADERS = doh.h diff --git a/Source/DOH/Include/Makefile.in b/Source/DOH/Include/Makefile.in new file mode 100644 index 000000000..c7f900c66 --- /dev/null +++ b/Source/DOH/Include/Makefile.in @@ -0,0 +1,223 @@ +# Makefile.in generated automatically by automake 1.4a from Makefile.am + +# Copyright (C) 1994, 1995-8, 1999 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. + +# 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. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = .. + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_FLAG = +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +AR = @AR@ +CC = @CC@ +MACHDEP = @MACHDEP@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ + +noinst_HEADERS = dohint.h +include_HEADERS = doh.h +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_CLEAN_FILES = +HEADERS = $(include_HEADERS) $(noinst_HEADERS) + +DIST_COMMON = Makefile.am Makefile.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = gtar +GZIP_ENV = --best +all: all-redirect +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --gnu Include/Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + + +install-includeHEADERS: $(include_HEADERS) + @$(NORMAL_INSTALL) + $(mkinstalldirs) $(DESTDIR)$(includedir) + @list='$(include_HEADERS)'; for p in $$list; do \ + if test -f "$$p"; then d= ; else d="$(srcdir)/"; fi; \ + echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/$$p"; \ + $(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/$$p; \ + done + +uninstall-includeHEADERS: + @$(NORMAL_UNINSTALL) + list='$(include_HEADERS)'; for p in $$list; do \ + rm -f $(DESTDIR)$(includedir)/$$p; \ + done + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) + +subdir = Include + +distdir: $(DISTFILES) + here=`cd $(top_builddir) && pwd`; \ + top_distdir=`cd $(top_distdir) && pwd`; \ + distdir=`cd $(distdir) && pwd`; \ + cd $(top_srcdir) \ + && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu Include/Makefile + @for file in $(DISTFILES); do \ + d=$(srcdir); \ + if test -d $$d/$$file; then \ + cp -pr $$d/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ + fi; \ + done +info-am: +info: info-am +dvi-am: +dvi: dvi-am +check-am: all-am +check: check-am +installcheck-am: +installcheck: installcheck-am +install-exec-am: +install-exec: install-exec-am + +install-data-am: install-includeHEADERS +install-data: install-data-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am +install: install-am +uninstall-am: uninstall-includeHEADERS +uninstall: uninstall-am +all-am: Makefile $(HEADERS) +all-redirect: all-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_STRIP_FLAG=-s install +installdirs: + $(mkinstalldirs) $(DESTDIR)$(includedir) + + +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + +maintainer-clean-generic: +mostlyclean-am: mostlyclean-tags mostlyclean-generic + +mostlyclean: mostlyclean-am + +clean-am: clean-tags clean-generic mostlyclean-am + +clean: clean-am + +distclean-am: distclean-tags distclean-generic clean-am + +distclean: distclean-am + +maintainer-clean-am: maintainer-clean-tags maintainer-clean-generic \ + distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +maintainer-clean: maintainer-clean-am + +.PHONY: uninstall-includeHEADERS install-includeHEADERS tags \ +mostlyclean-tags distclean-tags clean-tags maintainer-clean-tags \ +distdir info-am info dvi-am dvi check check-am installcheck-am \ +installcheck install-exec-am install-exec install-data-am install-data \ +install-am install uninstall-am uninstall all-redirect all-am all \ +installdirs mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +# 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/Source/DOH/Makefile.am b/Source/DOH/Makefile.am new file mode 100644 index 000000000..c37daf0a2 --- /dev/null +++ b/Source/DOH/Makefile.am @@ -0,0 +1,5 @@ +include $(top_srcdir)/Makefile.common + +EXTRA_DIST = Makefile.common + +SUBDIRS = Doh Example Include diff --git a/Source/DOH/Makefile.common b/Source/DOH/Makefile.common new file mode 100644 index 000000000..d7dd41a17 --- /dev/null +++ b/Source/DOH/Makefile.common @@ -0,0 +1,5 @@ +AUTOMAKE_OPTIONS = foreign + +INCLUDES = -I$(top_srcdir)/Include + +DOH_LIBS = -L$(top_builddir)/Doh -ldoh diff --git a/Source/DOH/Makefile.in b/Source/DOH/Makefile.in index 62ca86192..a0102a88f 100644 --- a/Source/DOH/Makefile.in +++ b/Source/DOH/Makefile.in @@ -1,29 +1,333 @@ -############################################################## -# Makefile -# -# DOH -############################################################## +# Makefile.in generated automatically by automake 1.4a from Makefile.am -prefix = @prefix@ -exec_prefix= @exec_prefix@ +# Copyright (C) 1994, 1995-8, 1999 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. -INCLUDE_DIR = $(prefix)/include -LIB_DIR = $(exec_prefix)/lib +# 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. -# Installer -INSTALL = ./install-sh -c -INSTALL_DATA = ${INSTALL} -m 644 -INSTALL_PROGRAM= ${INSTALL} -m 755 -all: - cd Doh; $(MAKE) +SHELL = @SHELL@ -install: - @echo "Installing $(LIB_DIR)/libdoh.a..." - @$(INSTALL_DATA) libdoh.a $(LIB_DIR)/libdoh.a - @echo "Installing $(INCLUDE_DIR)/doh.h..." - @$(INSTALL_DATA) Include/doh.h $(INCLUDE_DIR)/doh.h +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ -clean: - cd Doh; $(MAKE) clean +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = . + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_FLAG = +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +AR = @AR@ +CC = @CC@ +MACHDEP = @MACHDEP@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ + +AUTOMAKE_OPTIONS = foreign + +INCLUDES = -I$(top_srcdir)/Include + +DOH_LIBS = -L$(top_builddir)/Doh -ldoh + +EXTRA_DIST = Makefile.common + +SUBDIRS = Doh Example Include +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_CLEAN_FILES = +DIST_COMMON = README Makefile.am Makefile.in aclocal.m4 configure \ +configure.in install-sh missing mkinstalldirs + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = gtar +GZIP_ENV = --best +all: all-redirect +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) $(top_srcdir)/Makefile.common + cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.in + cd $(srcdir) && $(ACLOCAL) + +config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck +$(srcdir)/configure: @MAINTAINER_MODE_TRUE@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + cd $(srcdir) && $(AUTOCONF) + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. + +@SET_MAKE@ + +all-recursive install-data-recursive install-exec-recursive \ +installdirs-recursive install-recursive uninstall-recursive \ +check-recursive installcheck-recursive info-recursive dvi-recursive: + @set fnord $(MAKEFLAGS); amf=$$2; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +mostlyclean-recursive clean-recursive distclean-recursive \ +maintainer-clean-recursive: + @set fnord $(MAKEFLAGS); amf=$$2; \ + dot_seen=no; \ + rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ + rev="$$subdir $$rev"; \ + test "$$subdir" = "." && dot_seen=yes; \ + done; \ + test "$$dot_seen" = "no" && rev=". $$rev"; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(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 + -rm -rf $(distdir) + GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; \ + cd $(distdir)/=build \ + && ../configure --srcdir=.. --prefix=$$dc_install_base \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) dist + -rm -rf $(distdir) + @banner="$(distdir).tar.gz is ready for distribution"; \ + dashes=`echo "$$banner" | sed s/./=/g`; \ + echo "$$dashes"; \ + echo "$$banner"; \ + echo "$$dashes" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +distdir: $(DISTFILES) + -rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) + here=`cd $(top_builddir) && pwd`; \ + top_distdir=`cd $(distdir) && pwd`; \ + distdir=`cd $(distdir) && pwd`; \ + cd $(top_srcdir) \ + && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --foreign Makefile + @for file in $(DISTFILES); do \ + d=$(srcdir); \ + if test -d $$d/$$file; then \ + cp -pr $$d/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ + fi; \ + done + for subdir in $(SUBDIRS); do \ + if test "$$subdir" = .; then :; else \ + test -d $(distdir)/$$subdir \ + || mkdir $(distdir)/$$subdir \ + || exit 1; \ + chmod 777 $(distdir)/$$subdir; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(distdir) distdir=../$(distdir)/$$subdir distdir) \ + || exit 1; \ + fi; \ + done +info-am: +info: info-recursive +dvi-am: +dvi: dvi-recursive +check-am: all-am +check: check-recursive +installcheck-am: +installcheck: installcheck-recursive +install-exec-am: +install-exec: install-exec-recursive + +install-data-am: +install-data: install-data-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am +install: install-recursive +uninstall-am: +uninstall: uninstall-recursive +all-am: Makefile +all-redirect: all-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_STRIP_FLAG=-s install +installdirs: installdirs-recursive +installdirs-am: + + +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + +maintainer-clean-generic: +mostlyclean-am: mostlyclean-tags mostlyclean-generic + +mostlyclean: mostlyclean-recursive + +clean-am: clean-tags clean-generic mostlyclean-am + +clean: clean-recursive + +distclean-am: distclean-tags distclean-generic clean-am + +distclean: distclean-recursive + -rm -f config.status + +maintainer-clean-am: maintainer-clean-tags maintainer-clean-generic \ + distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +maintainer-clean: maintainer-clean-recursive + -rm -f config.status + +.PHONY: install-data-recursive uninstall-data-recursive \ +install-exec-recursive uninstall-exec-recursive installdirs-recursive \ +uninstalldirs-recursive all-recursive check-recursive \ +installcheck-recursive info-recursive dvi-recursive \ +mostlyclean-recursive distclean-recursive clean-recursive \ +maintainer-clean-recursive tags tags-recursive mostlyclean-tags \ +distclean-tags clean-tags maintainer-clean-tags distdir info-am info \ +dvi-am dvi check check-am installcheck-am installcheck install-exec-am \ +install-exec install-data-am install-data install-am install \ +uninstall-am uninstall all-redirect all-am all installdirs-am \ +installdirs mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +# 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/Source/DOH/aclocal.m4 b/Source/DOH/aclocal.m4 new file mode 100644 index 000000000..be186d2fe --- /dev/null +++ b/Source/DOH/aclocal.m4 @@ -0,0 +1,139 @@ +dnl aclocal.m4 generated automatically by aclocal 1.4a + +dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. + +# Do all the work for Automake. This macro actually does too much -- +# some checks are only needed if your package does certain things. +# But this isn't really a big deal. + +# serial 1 + +dnl Usage: +dnl AM_INIT_AUTOMAKE(package,version, [no-define]) + +AC_DEFUN(AM_INIT_AUTOMAKE, +[AC_REQUIRE([AC_PROG_INSTALL]) +dnl We require 2.13 because we rely on SHELL being computed by configure. +AC_PREREQ([2.13]) +PACKAGE=[$1] +AC_SUBST(PACKAGE) +VERSION=[$2] +AC_SUBST(VERSION) +dnl test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi +ifelse([$3],, +AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) +AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) +AC_REQUIRE([AM_SANITY_CHECK]) +AC_REQUIRE([AC_ARG_PROGRAM]) +dnl FIXME This is truly gross. +missing_dir=`cd $ac_aux_dir && pwd` +AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) +AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) +AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) +AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) +AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) +AC_REQUIRE([AC_PROG_MAKE_SET])]) + +# +# Check to make sure that the build environment is sane. +# + +AC_DEFUN(AM_SANITY_CHECK, +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "[$]*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "[$]*" != "X $srcdir/configure conftestfile" \ + && test "[$]*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "[$]2" = conftestfile + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +rm -f conftest* +AC_MSG_RESULT(yes)]) + +dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) +dnl The program must properly implement --version. +AC_DEFUN(AM_MISSING_PROG, +[AC_MSG_CHECKING(for working $2) +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if ($2 --version) < /dev/null > /dev/null 2>&1; then + $1=$2 + AC_MSG_RESULT(found) +else + $1="$3/missing $2" + AC_MSG_RESULT(missing) +fi +AC_SUBST($1)]) + +# Add --enable-maintainer-mode option to configure. +# From Jim Meyering + +# serial 1 + +AC_DEFUN(AM_MAINTAINER_MODE, +[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode is disabled by default + AC_ARG_ENABLE(maintainer-mode, +[ --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + USE_MAINTAINER_MODE=$enableval, + USE_MAINTAINER_MODE=no) + AC_MSG_RESULT($USE_MAINTAINER_MODE) + AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST(MAINT)dnl +] +) + +# Define a conditional. + +AC_DEFUN(AM_CONDITIONAL, +[AC_SUBST($1_TRUE) +AC_SUBST($1_FALSE) +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi]) + diff --git a/Source/DOH/configure b/Source/DOH/configure new file mode 100755 index 000000000..00ce0ff90 --- /dev/null +++ b/Source/DOH/configure @@ -0,0 +1,1579 @@ +#! /bin/sh + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.13 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: +ac_help="$ac_help + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer" + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +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=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -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 ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$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" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + 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) + # 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 << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$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" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + 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) + 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" ;; + + -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 ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.13" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + 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 "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=Include/doh.h + +# 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 its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + 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 + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +ac_exeext= +ac_objext=o +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + +ac_aux_dir= +for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:559: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 +echo "configure:612: checking whether build environment is sane" >&5 +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "$*" != "X $srcdir/configure conftestfile" \ + && test "$*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { echo "configure: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" 1>&2; exit 1; } + fi + + test "$2" = conftestfile + ) +then + # Ok. + : +else + { echo "configure: error: newly created file is older than distributed files! +Check your system clock" 1>&2; exit 1; } +fi +rm -f conftest* +echo "$ac_t""yes" 1>&6 +if test "$program_transform_name" = s,x,x,; then + program_transform_name= +else + # Double any \ or $. echo might interpret backslashes. + cat <<\EOF_SED > conftestsed +s,\\,\\\\,g; s,\$,$$,g +EOF_SED + program_transform_name="`echo $program_transform_name|sed -f conftestsed`" + rm -f conftestsed +fi +test "$program_prefix" != NONE && + program_transform_name="s,^,${program_prefix},; $program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" + +# sed with no file args requires a program. +test "$program_transform_name" = "" && program_transform_name="s,x,x," + +echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 +echo "configure:669: checking whether ${MAKE-make} sets \${MAKE}" >&5 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftestmake <<\EOF +all: + @echo 'ac_maketemp="${MAKE}"' +EOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftestmake +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$ac_t""yes" 1>&6 + SET_MAKE= +else + echo "$ac_t""no" 1>&6 + SET_MAKE="MAKE=${MAKE-make}" +fi + + + +PACKAGE=doh + +VERSION=1.0 + +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } +fi + + + +missing_dir=`cd $ac_aux_dir && pwd` +echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 +echo "configure:709: checking for working aclocal" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (aclocal --version) < /dev/null > /dev/null 2>&1; then + ACLOCAL=aclocal + echo "$ac_t""found" 1>&6 +else + ACLOCAL="$missing_dir/missing aclocal" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 +echo "configure:722: checking for working autoconf" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoconf --version) < /dev/null > /dev/null 2>&1; then + AUTOCONF=autoconf + echo "$ac_t""found" 1>&6 +else + AUTOCONF="$missing_dir/missing autoconf" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working automake""... $ac_c" 1>&6 +echo "configure:735: checking for working automake" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (automake --version) < /dev/null > /dev/null 2>&1; then + AUTOMAKE=automake + echo "$ac_t""found" 1>&6 +else + AUTOMAKE="$missing_dir/missing automake" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 +echo "configure:748: checking for working autoheader" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoheader --version) < /dev/null > /dev/null 2>&1; then + AUTOHEADER=autoheader + echo "$ac_t""found" 1>&6 +else + AUTOHEADER="$missing_dir/missing autoheader" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 +echo "configure:761: checking for working makeinfo" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (makeinfo --version) < /dev/null > /dev/null 2>&1; then + MAKEINFO=makeinfo + echo "$ac_t""found" 1>&6 +else + MAKEINFO="$missing_dir/missing makeinfo" + echo "$ac_t""missing" 1>&6 +fi + + + + +# Set name for machine-dependent library files + +echo $ac_n "checking MACHDEP""... $ac_c" 1>&6 +echo "configure:779: checking MACHDEP" >&5 +if test -z "$MACHDEP" +then + if test -f /usr/lib/NextStep/software_version; then + set X `hostinfo | grep 'NeXT Mach.*:' | \ + sed -e 's/://' -e 's/\./_/'` && \ + ac_sys_system=next && ac_sys_release=$4 + MACHDEP="$ac_sys_system$ac_sys_release$ac_sys_cpu" + else + ac_sys_system=`uname -s` + if test "$ac_sys_system" = "AIX" ; then + ac_sys_release=`uname -v` + else + ac_sys_release=`uname -r` + fi + ac_md_system=`echo $ac_sys_system | + tr -d '/ ' | tr '[A-Z]' '[a-z]'` + ac_md_release=`echo $ac_sys_release | + tr -d '/ ' | sed 's/\..*//'` + MACHDEP="$ac_md_system$ac_md_release" + fi + case MACHDEP in + '') MACHDEP=unknown;; + esac +fi +echo "$ac_t""$MACHDEP" 1>&6 + +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:809: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +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 $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:839: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_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 $# -gt 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 + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + if test -z "$CC"; then + case "`uname -s`" in + *win32* | *WIN32*) + # Extract the first word of "cl", so it can be a program name with args. +set dummy cl; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:890: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="cl" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + ;; + esac + fi + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 +echo "configure:922: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +cat > conftest.$ac_ext << EOF + +#line 933 "configure" +#include "confdefs.h" + +main(){return(0);} +EOF +if { (eval echo configure:938: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + ac_cv_prog_cc_works=yes + # If we can't run a trivial program, we are probably using a cross compiler. + if (./conftest; exit) 2>/dev/null; then + ac_cv_prog_cc_cross=no + else + ac_cv_prog_cc_cross=yes + fi +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + ac_cv_prog_cc_works=no +fi +rm -fr conftest* +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +echo "$ac_t""$ac_cv_prog_cc_works" 1>&6 +if test $ac_cv_prog_cc_works = no; then + { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } +fi +echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 +echo "configure:964: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 +cross_compiling=$ac_cv_prog_cc_cross + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:969: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +else + GCC= +fi + +ac_test_CFLAGS="${CFLAGS+set}" +ac_save_CFLAGS="$CFLAGS" +CFLAGS= +echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:997: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&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 + +# Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1031: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + +echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 +echo "configure:1060: checking whether to enable maintainer-specific portions of Makefiles" >&5 + # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then + enableval="$enable_maintainer_mode" + USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi + + echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6 + + +if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + MAINT=$MAINTAINER_MODE_TRUE + + + + +for ac_prog in ar aal +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 $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1089: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AR="$ac_prog" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +AR="$ac_cv_prog_AR" +if test -n "$AR"; then + echo "$ac_t""$AR" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +test -n "$AR" && break +done +test -n "$AR" || AR="ar" + + +echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 +echo "configure:1121: checking how to run the C preprocessor" >&5 +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then +if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + # This must be in double quotes, not single quotes, because CPP may get + # substituted into the Makefile and "${CC-cc}" will confuse make. + CPP="${CC-cc} -E" + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. + cat > conftest.$ac_ext < +Syntax Error +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:1142: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +if test -z "$ac_err"; then + : +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + CPP="${CC-cc} -E -traditional-cpp" + cat > conftest.$ac_ext < +Syntax Error +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:1159: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +if test -z "$ac_err"; then + : +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + CPP="${CC-cc} -nologo -E" + cat > conftest.$ac_ext < +Syntax Error +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:1176: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +if test -z "$ac_err"; then + : +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + CPP=/lib/cpp +fi +rm -f conftest* +fi +rm -f conftest* +fi +rm -f conftest* + ac_cv_prog_CPP="$CPP" +fi + CPP="$ac_cv_prog_CPP" +else + ac_cv_prog_CPP="$CPP" +fi +echo "$ac_t""$CPP" 1>&6 + +echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 +echo "configure:1201: checking for ANSI C header files" >&5 +if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +#include +#include +#include +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:1214: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +if test -z "$ac_err"; then + rm -rf conftest* + ac_cv_header_stdc=yes +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_header_stdc=no +fi +rm -f conftest* + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. +cat > conftest.$ac_ext < +EOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + egrep "memchr" >/dev/null 2>&1; then + : +else + rm -rf conftest* + 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 < +EOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + egrep "free" >/dev/null 2>&1; then + : +else + rm -rf conftest* + 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 < +#define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#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)) exit(2); +exit (0); } + +EOF +if { (eval echo configure:1281: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +then + : +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -fr conftest* + ac_cv_header_stdc=no +fi +rm -fr conftest* +fi + +fi +fi + +echo "$ac_t""$ac_cv_header_stdc" 1>&6 +if test $ac_cv_header_stdc = yes; then + cat >> confdefs.h <<\EOF +#define STDC_HEADERS 1 +EOF + +fi + + +trap '' 1 2 15 +cat > confcache <<\EOF +# 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. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# 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. +(set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +cat > conftest.defs <<\EOF +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g +s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g +s%\[%\\&%g +s%\]%\\&%g +s%\$%$$%g +EOF +DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` +rm -f conftest.defs + + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS </dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.13" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir +ac_given_INSTALL="$INSTALL" + +trap 'rm -fr `echo "Makefile Doh/Makefile Example/Makefile Include/Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS < conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@SHELL@%$SHELL%g +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@FFLAGS@%$FFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g +s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g +s%@INSTALL_DATA@%$INSTALL_DATA%g +s%@PACKAGE@%$PACKAGE%g +s%@VERSION@%$VERSION%g +s%@ACLOCAL@%$ACLOCAL%g +s%@AUTOCONF@%$AUTOCONF%g +s%@AUTOMAKE@%$AUTOMAKE%g +s%@AUTOHEADER@%$AUTOHEADER%g +s%@MAKEINFO@%$MAKEINFO%g +s%@SET_MAKE@%$SET_MAKE%g +s%@MACHDEP@%$MACHDEP%g +s%@CC@%$CC%g +s%@RANLIB@%$RANLIB%g +s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g +s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g +s%@MAINT@%$MAINT%g +s%@AR@%$AR%g +s%@CPP@%$CPP%g + +CEOF +EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +s%@INSTALL@%$INSTALL%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +EOF +cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF + +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + diff --git a/Source/DOH/configure.in b/Source/DOH/configure.in index 6fd2e4642..533c7c38a 100644 --- a/Source/DOH/configure.in +++ b/Source/DOH/configure.in @@ -1,6 +1,7 @@ dnl Process this file with autoconf to produce a configure script. AC_INIT(Include/doh.h) -AC_PREREQ(2.0) +AM_INIT_AUTOMAKE([doh], 1.0, nosubst) +AC_PREREQ(2.13) # Set name for machine-dependent library files AC_SUBST(MACHDEP) @@ -34,6 +35,9 @@ AC_MSG_RESULT($MACHDEP) AC_PROG_CC AC_PROG_RANLIB +dnl Initialize maintainer mode +AM_MAINTAINER_MODE + AC_SUBST(AR) AC_CHECK_PROGS(AR, ar aal, ar) @@ -41,4 +45,4 @@ dnl Checks for header files. AC_HEADER_STDC dnl Checks for library functions. -AC_OUTPUT(Makefile Doh/Makefile) +AC_OUTPUT(Makefile Doh/Makefile Example/Makefile Include/Makefile) diff --git a/Source/DOH/missing b/Source/DOH/missing new file mode 100755 index 000000000..7789652e8 --- /dev/null +++ b/Source/DOH/missing @@ -0,0 +1,190 @@ +#! /bin/sh +# Common stub for a few missing GNU programs while installing. +# Copyright (C) 1996, 1997 Free Software Foundation, Inc. +# Franc,ois 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., 59 Temple Place - Suite 330, Boston, MA +# 02111-1307, USA. + +if test $# -eq 0; then + echo 1>&2 "Try \`$0 --help' for more information" + exit 1 +fi + +case "$1" in + + -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 + +Supported PROGRAM values: + aclocal touch file \`aclocal.m4' + autoconf touch file \`configure' + autoheader touch file \`config.h.in' + 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 + lex create \`lex.yy.c', if possible, from existing .c + makeinfo touch the output file + yacc create \`y.tab.[ch]', if possible, from existing .[ch]" + ;; + + -v|--v|--ve|--ver|--vers|--versi|--versio|--version) + echo "missing - GNU libit 0.0" + ;; + + -*) + echo 1>&2 "$0: Unknown \`$1' option" + echo 1>&2 "Try \`$0 --help' for more information" + exit 1 + ;; + + aclocal) + echo 1>&2 "\ +WARNING: \`$1' is missing on your system. You should only need it if + you modified \`acinclude.m4' or \`configure.in'. 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 missing on your system. You should only need it if + you modified \`configure.in'. 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 missing on your system. You should only need it if + you modified \`acconfig.h' or \`configure.in'. 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.in` + 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 missing on your system. You should only need it if + you modified \`Makefile.am', \`acinclude.m4' or \`configure.in'. + 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 + ;; + + bison|yacc) + echo 1>&2 "\ +WARNING: \`$1' is missing on your system. 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 [ $# -ne 1 ]; then + eval LASTARG="\${$#}" + case "$LASTARG" in + *.y) + SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` + if [ -f "$SRCFILE" ]; then + cp "$SRCFILE" y.tab.c + fi + SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` + if [ -f "$SRCFILE" ]; then + cp "$SRCFILE" y.tab.h + fi + ;; + esac + fi + if [ ! -f y.tab.h ]; then + echo >y.tab.h + fi + if [ ! -f y.tab.c ]; then + echo 'main() { return 0; }' >y.tab.c + fi + ;; + + lex|flex) + echo 1>&2 "\ +WARNING: \`$1' is missing on your system. 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 [ $# -ne 1 ]; then + eval LASTARG="\${$#}" + case "$LASTARG" in + *.l) + SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` + if [ -f "$SRCFILE" ]; then + cp "$SRCFILE" lex.yy.c + fi + ;; + esac + fi + if [ ! -f lex.yy.c ]; then + echo 'main() { return 0; }' >lex.yy.c + fi + ;; + + makeinfo) + echo 1>&2 "\ +WARNING: \`$1' is missing on your system. 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." + file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` + if test -z "$file"; then + file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` + file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file` + fi + touch $file + ;; + + *) + echo 1>&2 "\ +WARNING: \`$1' is needed, and you do not seem to have it handy on your + system. 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 prerequirements 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 diff --git a/Source/DOH/mkinstalldirs b/Source/DOH/mkinstalldirs new file mode 100755 index 000000000..6b3b5fc5d --- /dev/null +++ b/Source/DOH/mkinstalldirs @@ -0,0 +1,40 @@ +#! /bin/sh +# mkinstalldirs --- make directory hierarchy +# Author: Noah Friedman +# Created: 1993-05-16 +# Public domain + +# $Id$ + +errstatus=0 + +for file +do + set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` + shift + + pathcomp= + for d + do + pathcomp="$pathcomp$d" + case "$pathcomp" in + -* ) pathcomp=./$pathcomp ;; + esac + + if test ! -d "$pathcomp"; then + echo "mkdir $pathcomp" + + mkdir "$pathcomp" || lasterr=$? + + if test ! -d "$pathcomp"; then + errstatus=$lasterr + fi + fi + + pathcomp="$pathcomp/" + done +done + +exit $errstatus + +# mkinstalldirs ends here diff --git a/Source/LParse/.cvsignore b/Source/LParse/.cvsignore index ac52900e1..bd5fe0696 100644 --- a/Source/LParse/.cvsignore +++ b/Source/LParse/.cvsignore @@ -1 +1,2 @@ -Makefile y.tab.* lyacc.h parser.c +Makefile +.deps diff --git a/Source/LParse/Makefile.am b/Source/LParse/Makefile.am new file mode 100644 index 000000000..c938294aa --- /dev/null +++ b/Source/LParse/Makefile.am @@ -0,0 +1,12 @@ +include $(top_srcdir)/Makefile.common + +INCLUDES = $(SWIG_INCLUDES) \ + -I$(top_srcdir)/Source/Swig \ + -I$(top_srcdir)/Source/Include \ + -I$(top_srcdir)/Source/Preprocessor + +noinst_LIBRARIES = liblparse.a + +liblparse_a_SOURCES = parser.y cscanner.c type.c + +noinst_HEADERS = lparse.h lyacc.h diff --git a/Source/LParse/Makefile.in b/Source/LParse/Makefile.in index 0e567cc92..e090e918f 100644 --- a/Source/LParse/Makefile.in +++ b/Source/LParse/Makefile.in @@ -1,41 +1,341 @@ -##################################################################### -# LParse -##################################################################### +# Makefile.in generated automatically by automake 1.4a from Makefile.am -CC = @CC@ -AR = @AR@ -RANLIB = @RANLIB@ -prefix = @prefix@ +# Copyright (C) 1994, 1995-8, 1999 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. + +# 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. + + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ exec_prefix = @exec_prefix@ -RPATH = @RPATH@ -SO = @SO@ -CCSHARED = @CCSHARED@ -LDSHARED = @LDSHARED@ -YACC = @YACC@ -INCLUDE = -I. -I../Swig -I../DOH/Include -I../Preprocessor +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include -SRCS = cscanner.c type.c -OBJS = parser.o cscanner.o type.o +DESTDIR = -.c.o: - $(CC) $(CCSHARED) $(INCLUDE) $(CFLAGS) -c -o $*.o $< +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ -##################################################################### -# TARGET: experiment -##################################################################### -# friendly to the toplevel makefile -experiment: $(OBJS) - for i in $(OBJS); do echo Source/LParse/$$i >> $(OBJS_FILE); done +top_builddir = ../.. -parser.o: parser.c - $(CC) $(CCSHARED) $(INCLUDE) $(CFLAGS) -c -o $*.o $< +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ -parser.c: parser.y - $(YACC) -d parser.y - @cp y.tab.h lyacc.h - @cp y.tab.c parser.c +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_FLAG = +transform = @program_transform_name@ -clean: - rm -f *.o *~ core *.so *.a y.tab* +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +AR = @AR@ +AUTOCONF = @AUTOCONF@ +CC = @CC@ +CCSHARED = @CCSHARED@ +CXX = @CXX@ +LDSHARED = @LDSHARED@ +LIBC = @LIBC@ +LIBCRYPT = @LIBCRYPT@ +LIBM = @LIBM@ +MACHDEP = @MACHDEP@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +PACKAGE = @PACKAGE@ +PERL = @PERL@ +PERL5EXT = @PERL5EXT@ +PYINCLUDE = @PYINCLUDE@ +PYLIB = @PYLIB@ +PYLINK = @PYLINK@ +RANLIB = @RANLIB@ +ROOT_DIR = @ROOT_DIR@ +RPATH = @RPATH@ +SO = @SO@ +TCLINCLUDE = @TCLINCLUDE@ +TCLLIB = @TCLLIB@ +VERSION = @VERSION@ +XINCLUDES = @XINCLUDES@ +XLIBSW = @XLIBSW@ +YACC = @YACC@ +YFLAGS = @YFLAGS@ +AUTOMAKE_OPTIONS = foreign + +SWIG_INCLUDES = -I$(top_srcdir)/Source/DOH/Include -I$(top_srcdir)/Source/SWILL/Include + + +SWIG_LIBS = $(top_builddir)/Source/DOH/Doh/libdoh.a $(top_builddir)/Source/SWILL/SWILL/libswill.a + + +INCLUDES = $(SWIG_INCLUDES) -I$(top_srcdir)/Source/Swig -I$(top_srcdir)/Source/Include -I$(top_srcdir)/Source/Preprocessor + + +noinst_LIBRARIES = liblparse.a + +liblparse_a_SOURCES = parser.y cscanner.c type.c + +noinst_HEADERS = lparse.h lyacc.h +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +liblparse_a_LIBADD = +liblparse_a_OBJECTS = parser.o cscanner.o type.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ +HEADERS = $(noinst_HEADERS) + +DIST_COMMON = Makefile.am Makefile.in parser.c + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = gtar +GZIP_ENV = --best +DEP_FILES = .deps/cscanner.P .deps/parser.P .deps/type.P +SOURCES = $(liblparse_a_SOURCES) +OBJECTS = $(liblparse_a_OBJECTS) + +all: all-redirect +.SUFFIXES: +.SUFFIXES: .S .c .o .s .y +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) $(top_srcdir)/Makefile.common + cd $(top_srcdir) && $(AUTOMAKE) --foreign Source/LParse/Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +liblparse.a: $(liblparse_a_OBJECTS) $(liblparse_a_DEPENDENCIES) + -rm -f liblparse.a + $(AR) cru liblparse.a $(liblparse_a_OBJECTS) $(liblparse_a_LIBADD) + $(RANLIB) liblparse.a +.y.c: + $(YACC) $(AM_YFLAGS) $(YFLAGS) $< && mv y.tab.c $*.c + if test -f y.tab.h; then \ + if cmp -s y.tab.h $*.h; then rm -f y.tab.h; else mv y.tab.h $*.h; fi; \ + else :; fi +parser.h: parser.c + + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) + +subdir = Source/LParse + +distdir: $(DISTFILES) + here=`cd $(top_builddir) && pwd`; \ + top_distdir=`cd $(top_distdir) && pwd`; \ + distdir=`cd $(distdir) && pwd`; \ + cd $(top_srcdir) \ + && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --foreign Source/LParse/Makefile + @for file in $(DISTFILES); do \ + d=$(srcdir); \ + if test -d $$d/$$file; then \ + cp -pr $$d/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ + fi; \ + done + +DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :) + +-include $(DEP_FILES) + +mostlyclean-depend: + +clean-depend: + +distclean-depend: + -rm -rf .deps + +maintainer-clean-depend: + +%.o: %.c + @echo '$(COMPILE) -c $<'; \ + $(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-cp .deps/$(*F).pp .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm .deps/$(*F).pp + +%.lo: %.c + @echo '$(LTCOMPILE) -c $<'; \ + $(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \ + < .deps/$(*F).pp > .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm -f .deps/$(*F).pp +info-am: +info: info-am +dvi-am: +dvi: dvi-am +check-am: all-am +check: check-am +installcheck-am: +installcheck: installcheck-am +install-exec-am: +install-exec: install-exec-am + +install-data-am: +install-data: install-data-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am +install: install-am +uninstall-am: +uninstall: uninstall-am +all-am: Makefile $(LIBRARIES) $(HEADERS) +all-redirect: all-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_STRIP_FLAG=-s install +installdirs: + + +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + +maintainer-clean-generic: + -test -z "parserhparserc" || rm -f parserh parserc +mostlyclean-am: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-depend mostlyclean-generic + +mostlyclean: mostlyclean-am + +clean-am: clean-noinstLIBRARIES clean-compile clean-tags clean-depend \ + clean-generic mostlyclean-am + +clean: clean-am + +distclean-am: distclean-noinstLIBRARIES distclean-compile \ + distclean-tags distclean-depend distclean-generic \ + clean-am + +distclean: distclean-am + +maintainer-clean-am: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-depend maintainer-clean-generic \ + distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +maintainer-clean: maintainer-clean-am + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir mostlyclean-depend \ +distclean-depend clean-depend maintainer-clean-depend info-am info \ +dvi-am dvi check check-am installcheck-am installcheck install-exec-am \ +install-exec install-data-am install-data install-am install \ +uninstall-am uninstall all-redirect all-am all installdirs \ +mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +# 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/Source/LParse/cscanner.c b/Source/LParse/cscanner.c index f907fde31..791f51433 100644 --- a/Source/LParse/cscanner.c +++ b/Source/LParse/cscanner.c @@ -15,7 +15,7 @@ static char cvsroot[] = "$Header$"; #define yylval lparse_yylval -#include "lyacc.h" +#include "parser.h" #include static int map[][2] = { diff --git a/Source/LParse/parser.c b/Source/LParse/parser.c new file mode 100644 index 000000000..4eb66b0e5 --- /dev/null +++ b/Source/LParse/parser.c @@ -0,0 +1,4269 @@ + +/* A Bison parser, made from parser.y + by GNU Bison version 1.27 + */ + +#define YYBISON 1 /* Identify Bison output. */ + +#define ID 257 +#define TYPE_TYPEDEF 258 +#define HBLOCK 259 +#define STRING 260 +#define NUM_INT 261 +#define NUM_FLOAT 262 +#define CHARCONST 263 +#define NUM_UNSIGNED 264 +#define NUM_LONG 265 +#define NUM_ULONG 266 +#define LPAREN 267 +#define RPAREN 268 +#define LBRACE 269 +#define RBRACE 270 +#define COMMA 271 +#define SEMI 272 +#define PERIOD 273 +#define LBRACKET 274 +#define RBRACKET 275 +#define EQUAL 276 +#define COLON 277 +#define POUND 278 +#define CONST 279 +#define DEFINED 280 +#define ENUM 281 +#define EXTERN 282 +#define SIZEOF 283 +#define STATIC 284 +#define STRUCT 285 +#define TYPEDEF 286 +#define UNION 287 +#define CLASS 288 +#define FRIEND 289 +#define OPERATOR 290 +#define PRIVATE 291 +#define PROTECTED 292 +#define PUBLIC 293 +#define TEMPLATE 294 +#define THROW 295 +#define VIRTUAL 296 +#define OC_INTERFACE 297 +#define OC_END 298 +#define OC_PUBLIC 299 +#define OC_PRIVATE 300 +#define OC_PROTECTED 301 +#define OC_CLASS 302 +#define OC_IMPLEMENT 303 +#define OC_PROTOCOL 304 +#define TYPE_INT 305 +#define TYPE_UNSIGNED 306 +#define TYPE_SHORT 307 +#define TYPE_LONG 308 +#define TYPE_FLOAT 309 +#define TYPE_DOUBLE 310 +#define TYPE_CHAR 311 +#define TYPE_VOID 312 +#define TYPE_SIGNED 313 +#define TYPE_BOOL 314 +#define ADDMETHODS 315 +#define ALPHA_MODE 316 +#define APPLY 317 +#define CHECKOUT 318 +#define CLEAR 319 +#define CONSTANT 320 +#define DOCONLY 321 +#define DOC_DISABLE 322 +#define DOC_ENABLE 323 +#define ECHO 324 +#define EXCEPT 325 +#define ILLEGAL 326 +#define IMPORT 327 +#define INCLUDE 328 +#define INIT 329 +#define INLINE 330 +#define LOCALSTYLE 331 +#define MACRO 332 +#define MODULE 333 +#define NAME 334 +#define NATIVE 335 +#define NEW 336 +#define PRAGMA 337 +#define RAW_MODE 338 +#define READONLY 339 +#define READWRITE 340 +#define RENAME 341 +#define SECTION 342 +#define STYLE 343 +#define SUBSECTION 344 +#define SUBSUBSECTION 345 +#define TEXT 346 +#define TITLE 347 +#define TYPE 348 +#define TYPEMAP 349 +#define USERDIRECTIVE 350 +#define WEXTERN 351 +#define WRAPPER 352 +#define LOR 353 +#define LAND 354 +#define EQUALTO 355 +#define NOTEQUAL 356 +#define GREATERTHAN 357 +#define LESSTHAN 358 +#define LTEQUAL 359 +#define GTEQUAL 360 +#define OR 361 +#define XOR 362 +#define AND 363 +#define LSHIFT 364 +#define RSHIFT 365 +#define PLUS 366 +#define MINUS 367 +#define STAR 368 +#define SLASH 369 +#define UMINUS 370 +#define NOT 371 +#define LNOT 372 +#define DCOLON 373 + +#line 1 "parser.y" + +/* ----------------------------------------------------------------------------- + * parser.y + * + * YACC grammar for Dave's lame C parser. Based loosely on the SWIG1.1 + * parser + * + * Author(s) : David Beazley (beazley@cs.uchicago.edu) + * + * Copyright (C) 1999-2000. The University of Chicago + * See the file LICENSE for information on usage and redistribution. + * ----------------------------------------------------------------------------- */ + +/* These defines are to move the bison generated functions into their own namespace */ + +#define yylex lparse_yylex +#define yyerror lparse_yyerror +#define yyparse lparse_yyparse +#define yylval lparse_yylval +#define yychar lparse_yychar +#define yynerrs lparse_yynerrs + +static char cvsroot[] = "$Header$"; + +extern int lparse_yylex(); +extern void LParse_strict_type(int); + +void yyerror (char *s); + +#include "lparse.h" +#include "preprocessor.h" + +#define CPLUS_PRIVATE 1 +#define CPLUS_PUBLIC 2 + +static DOH *top = 0; +static DOH *swig_rename = 0; +static LParseType *Active_typedef = 0; +static LParseType *Active_type = 0; +static DOH *Active_extern = 0; +static DOH *name_hash = 0; +static int NewObject = 0; +static int cplus_mode = CPLUS_PUBLIC; +static DOH *nested = 0; +static int Intype = 0; + +/* LParse_parse() - Main entry point to the C parser */ + DOH *LParse_parse(DOH *str) { + int yyparse(); + DOH *tp; + LParse_push(str); + top = NewHash(); + nested = NewList(); + Setattr(top, "tag", "IncludeFile"); + Setattr(top,"name", Getfile(str)); + name_hash = NewHash(); + tp = top; + yyparse(); + return tp; + } + + static void add_child(DOH *o) { + DOH *child; + assert(top); + + child = Getattr(top,"children"); + if (!child) { + child = NewList(); + Setattr(top,"children", child); + } + Setattr(o,"parent", top); + Append(child,o); + } + + static void apply_modifier(DOH *o) { + DOH *n; + if (swig_rename) { + Setattr(o,"rename",swig_rename); + } + n = Getattr(name_hash,Getattr(o,"name")); + if (n) { + Setattr(o,"rename",n); + } + if (NewObject) Setattr(o,"new",DohNone); + NewObject = 0; + swig_rename = 0; + } + + static DOH *new_node(char *tag, DOH *file, int line) { + DOH *o; + o = NewHash(); + Setattr(o,"tag",tag); + Setline(o,line); + Setfile(o,file); + add_child(o); + return o; + } + + static void dump_nested(DOH *name) { + int i; + for (i = 0; i < Len(nested); i++) { + DOH *code; + LParseType *t; + DOH *o = Getitem(nested,i); + code = Getattr(o,"code"); + Replace(code,"$classname",name,DOH_REPLACE_ANY); + t = (LParseType *) Getattr(o,"type"); + sprintf(t->name,"%s_%s",Char(name),Char(Getattr(o,"name"))); + o = new_node("HeaderBlock",Getfile(code),Getline(code)); + Setattr(o,"text",code); + o = new_node("MemberData",Getfile(code),Getline(code)); + Setattr(o,"name",Getattr(o,"name")); + Setattr(o,"type",t); + Seek(code,0,SEEK_SET); + /* Printf(stderr,"NESTED : %s\n", code); */ + LParse_push(code); + } + Clear(nested); + } + +#ifdef NEED_ALLOC +void *alloca(unsigned n) { + return((void *) malloc(n)); +} +#else +/* This redefinition is apparently needed on a number of machines */ +#undef alloca +#define alloca malloc +#endif + +/* Promote the type of arithmetic expressions */ +static int promote(int t1, int t2) { + + if ((t1 == LPARSE_T_ERROR) || (t2 == LPARSE_T_ERROR)) return LPARSE_T_ERROR; + if ((t1 == LPARSE_T_DOUBLE) || (t2 == LPARSE_T_DOUBLE)) return LPARSE_T_DOUBLE; + if ((t1 == LPARSE_T_FLOAT) || (t2 == LPARSE_T_FLOAT)) return LPARSE_T_FLOAT; + if ((t1 == LPARSE_T_ULONG) || (t2 == LPARSE_T_ULONG)) return LPARSE_T_ULONG; + if ((t1 == LPARSE_T_LONG) || (t2 == LPARSE_T_LONG)) return LPARSE_T_LONG; + if ((t1 == LPARSE_T_UINT) || (t2 == LPARSE_T_UINT)) return LPARSE_T_UINT; + if ((t1 == LPARSE_T_INT) || (t2 == LPARSE_T_INT)) return LPARSE_T_INT; + if ((t1 == LPARSE_T_USHORT) || (t2 == LPARSE_T_USHORT)) return LPARSE_T_SHORT; + if ((t1 == LPARSE_T_SHORT) || (t2 == LPARSE_T_SHORT)) return LPARSE_T_SHORT; + if ((t1 == LPARSE_T_UCHAR) || (t2 == LPARSE_T_UCHAR)) return LPARSE_T_UCHAR; + if ((t1 == LPARSE_T_CHAR) || (t2 == LPARSE_T_CHAR)) return LPARSE_T_INT; + if (t1 != t2) { + LParse_error(0,0,"Type mismatch in constant expression.\n"); + } + return t1; +} + +#line 152 "parser.y" +typedef union { + struct { + DOH *filename; + int line; + DOH *text; + int ivalue; + void *data; + } tok; + DOH *node; + LParseType *type; + struct { + DOH *id; + int is_pointer; + int is_reference; + } decl; + struct { + DOH *name; + DOH *value; + DOH *array; + } pname; + struct { + DOH *name; + DOH *array; + DOH *parms; + } tmname; +} YYSTYPE; +#include + +#ifndef __cplusplus +#ifndef __STDC__ +#define const +#endif +#endif + + + +#define YYFINAL 629 +#define YYFLAG -32768 +#define YYNTBASE 120 + +#define YYTRANSLATE(x) ((unsigned)(x) <= 373 ? yytranslate[x] : 225) + +static const char 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, 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, 114, 115, 116, + 117, 118, 119 +}; + +#if YYDEBUG != 0 +static const short yyprhs[] = { 0, + 0, 3, 5, 7, 9, 10, 15, 17, 19, 22, + 23, 34, 39, 44, 47, 50, 52, 54, 56, 58, + 60, 62, 64, 66, 71, 72, 79, 81, 83, 85, + 87, 89, 90, 97, 98, 102, 104, 107, 110, 113, + 115, 117, 121, 125, 129, 133, 136, 138, 141, 144, + 148, 153, 155, 158, 161, 163, 165, 167, 169, 178, + 185, 194, 201, 212, 221, 227, 231, 233, 235, 238, + 242, 244, 247, 251, 255, 258, 262, 265, 267, 271, + 273, 279, 282, 288, 291, 296, 304, 307, 309, 310, + 316, 318, 320, 322, 324, 326, 328, 329, 337, 342, + 343, 353, 361, 362, 371, 379, 381, 382, 389, 390, + 398, 400, 403, 405, 408, 410, 413, 415, 416, 425, + 426, 427, 439, 441, 443, 447, 449, 451, 455, 457, + 458, 465, 476, 488, 489, 497, 501, 505, 507, 509, + 511, 512, 521, 522, 523, 535, 536, 537, 547, 550, + 552, 554, 558, 560, 563, 567, 570, 574, 576, 578, + 580, 583, 584, 585, 593, 594, 598, 600, 607, 615, + 621, 628, 636, 637, 643, 648, 649, 655, 663, 666, + 669, 672, 674, 675, 683, 685, 689, 691, 693, 694, + 701, 702, 708, 710, 712, 714, 715, 721, 722, 729, + 732, 735, 737, 739, 741, 745, 749, 752, 754, 756, + 760, 763, 768, 773, 775, 776, 783, 786, 788, 792, + 794, 797, 801, 805, 814, 818, 821, 824, 826, 828, + 831, 835, 838, 840, 842, 845, 848, 851, 854, 858, + 863, 865, 867, 869, 872, 875, 877, 879, 881, 883, + 885, 888, 891, 894, 897, 900, 904, 907, 910, 912, + 915, 918, 920, 922, 924, 926, 928, 931, 934, 937, + 940, 943, 946, 948, 950, 952, 954, 957, 960, 962, + 964, 966, 969, 972, 974, 976, 978, 980, 982, 984, + 986, 988, 990, 992, 994, 996, 998, 1000, 1003, 1007, + 1011, 1015, 1019, 1023, 1027, 1031, 1035, 1039, 1042, 1045, + 1049, 1053, 1055 +}; + +static const short yyrhs[] = { 120, + 121, 0, 224, 0, 123, 0, 149, 0, 0, 15, + 122, 120, 16, 0, 18, 0, 1, 0, 79, 136, + 0, 0, 78, 3, 17, 6, 17, 7, 15, 124, + 120, 16, 0, 87, 3, 3, 18, 0, 66, 3, + 221, 18, 0, 70, 5, 0, 70, 6, 0, 125, + 0, 131, 0, 132, 0, 137, 0, 144, 0, 145, + 0, 128, 0, 147, 0, 94, 3, 223, 18, 0, + 0, 127, 6, 15, 126, 120, 16, 0, 74, 0, + 97, 0, 73, 0, 85, 0, 86, 0, 0, 80, + 13, 136, 14, 129, 121, 0, 0, 82, 130, 121, + 0, 5, 0, 98, 5, 0, 75, 5, 0, 76, + 5, 0, 69, 0, 68, 0, 93, 6, 134, 0, + 88, 6, 134, 0, 90, 6, 134, 0, 91, 6, + 134, 0, 92, 5, 0, 67, 0, 89, 133, 0, + 77, 133, 0, 3, 135, 134, 0, 134, 17, 3, + 135, 0, 224, 0, 22, 7, 0, 22, 6, 0, + 224, 0, 3, 0, 4, 0, 6, 0, 95, 13, + 3, 17, 138, 14, 139, 15, 0, 95, 13, 138, + 14, 139, 15, 0, 95, 13, 3, 17, 138, 14, + 139, 18, 0, 95, 13, 138, 14, 139, 18, 0, + 95, 13, 3, 17, 138, 14, 139, 22, 141, 18, + 0, 95, 13, 138, 14, 139, 22, 141, 18, 0, + 63, 141, 15, 139, 16, 0, 65, 139, 18, 0, + 3, 0, 25, 0, 141, 140, 0, 17, 141, 140, + 0, 224, 0, 214, 142, 0, 214, 211, 142, 0, + 214, 109, 142, 0, 3, 143, 0, 3, 212, 143, + 0, 212, 143, 0, 143, 0, 13, 205, 14, 0, + 224, 0, 71, 13, 3, 14, 15, 0, 71, 15, + 0, 71, 13, 3, 14, 18, 0, 71, 18, 0, + 83, 3, 146, 18, 0, 83, 13, 3, 14, 3, + 146, 18, 0, 22, 221, 0, 224, 0, 0, 81, + 15, 148, 120, 16, 0, 150, 0, 152, 0, 161, + 0, 168, 0, 172, 0, 30, 0, 0, 158, 214, + 210, 213, 209, 151, 155, 0, 158, 215, 13, 114, + 0, 0, 158, 214, 210, 13, 205, 14, 160, 153, + 155, 0, 158, 214, 210, 13, 205, 14, 159, 0, + 0, 158, 210, 13, 205, 14, 160, 154, 155, 0, + 76, 214, 210, 13, 205, 14, 159, 0, 18, 0, + 0, 17, 210, 213, 209, 156, 155, 0, 0, 17, + 210, 13, 205, 14, 157, 155, 0, 28, 0, 28, + 6, 0, 224, 0, 160, 15, 0, 25, 0, 41, + 13, 0, 224, 0, 0, 158, 27, 165, 15, 162, + 166, 16, 18, 0, 0, 0, 32, 27, 165, 15, + 163, 166, 16, 3, 164, 171, 18, 0, 3, 0, + 224, 0, 166, 17, 167, 0, 167, 0, 3, 0, + 3, 22, 222, 0, 224, 0, 0, 32, 214, 210, + 169, 171, 18, 0, 32, 214, 13, 114, 208, 14, + 13, 205, 14, 18, 0, 32, 214, 211, 13, 114, + 208, 14, 13, 205, 14, 18, 0, 0, 32, 214, + 210, 212, 170, 171, 18, 0, 17, 210, 171, 0, + 17, 210, 212, 0, 224, 0, 173, 0, 203, 0, + 0, 158, 220, 3, 179, 15, 174, 183, 16, 0, + 0, 0, 32, 220, 3, 179, 15, 175, 183, 16, + 210, 176, 171, 0, 0, 0, 32, 220, 15, 177, + 183, 16, 210, 178, 171, 0, 23, 180, 0, 224, + 0, 181, 0, 180, 17, 181, 0, 3, 0, 42, + 3, 0, 42, 182, 3, 0, 182, 3, 0, 182, + 42, 3, 0, 39, 0, 37, 0, 38, 0, 187, + 183, 0, 0, 0, 61, 15, 184, 183, 16, 185, + 183, 0, 0, 1, 186, 183, 0, 224, 0, 214, + 210, 13, 205, 14, 197, 0, 42, 214, 210, 13, + 205, 14, 197, 0, 3, 13, 205, 14, 199, 0, + 117, 3, 13, 205, 14, 197, 0, 42, 117, 3, + 13, 205, 14, 197, 0, 0, 214, 210, 209, 188, + 194, 0, 214, 210, 212, 209, 0, 0, 30, 214, + 210, 189, 194, 0, 30, 214, 210, 13, 205, 14, + 197, 0, 39, 23, 0, 37, 23, 0, 38, 23, + 0, 128, 0, 0, 27, 165, 15, 190, 166, 16, + 18, 0, 35, 0, 214, 198, 36, 0, 168, 0, + 145, 0, 0, 220, 3, 15, 191, 193, 18, 0, + 0, 220, 15, 192, 210, 18, 0, 210, 0, 224, + 0, 18, 0, 0, 17, 210, 209, 195, 194, 0, + 0, 17, 210, 212, 209, 196, 194, 0, 160, 18, + 0, 160, 15, 0, 211, 0, 109, 0, 224, 0, + 160, 200, 18, 0, 160, 200, 15, 0, 23, 201, + 0, 224, 0, 202, 0, 201, 17, 202, 0, 3, + 13, 0, 158, 220, 3, 18, 0, 158, 214, 210, + 119, 0, 40, 0, 0, 61, 3, 15, 204, 183, + 16, 0, 207, 206, 0, 224, 0, 17, 207, 206, + 0, 224, 0, 214, 208, 0, 214, 211, 208, 0, + 214, 109, 208, 0, 214, 13, 211, 208, 14, 13, + 205, 14, 0, 19, 19, 19, 0, 3, 209, 0, + 3, 212, 0, 212, 0, 224, 0, 22, 221, 0, + 22, 109, 3, 0, 22, 15, 0, 224, 0, 3, + 0, 211, 3, 0, 109, 3, 0, 114, 224, 0, + 114, 211, 0, 20, 21, 213, 0, 20, 222, 21, + 213, 0, 212, 0, 224, 0, 51, 0, 53, 219, + 0, 54, 219, 0, 57, 0, 60, 0, 55, 0, + 56, 0, 58, 0, 59, 217, 0, 52, 218, 0, + 3, 216, 0, 25, 214, 0, 220, 3, 0, 3, + 119, 3, 0, 119, 3, 0, 27, 3, 0, 51, + 0, 53, 219, 0, 54, 219, 0, 57, 0, 60, + 0, 55, 0, 56, 0, 58, 0, 59, 217, 0, + 52, 218, 0, 4, 216, 0, 25, 214, 0, 220, + 3, 0, 27, 3, 0, 104, 0, 224, 0, 224, + 0, 51, 0, 53, 219, 0, 54, 219, 0, 57, + 0, 224, 0, 51, 0, 53, 219, 0, 54, 219, + 0, 57, 0, 51, 0, 224, 0, 34, 0, 31, + 0, 33, 0, 222, 0, 6, 0, 7, 0, 8, + 0, 10, 0, 11, 0, 12, 0, 9, 0, 29, + 13, 0, 222, 112, 222, 0, 222, 113, 222, 0, + 222, 114, 222, 0, 222, 115, 222, 0, 222, 109, + 222, 0, 222, 107, 222, 0, 222, 108, 222, 0, + 222, 110, 222, 0, 222, 111, 222, 0, 113, 222, + 0, 117, 222, 0, 13, 222, 14, 0, 223, 17, + 3, 0, 224, 0, 0 +}; + +#endif + +#if YYDEBUG != 0 +static const short yyrline[] = { 0, + 233, 234, 237, 238, 239, 242, 245, 246, 252, 257, + 260, 265, 266, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 298, 302, 307, 308, 309, 314, + 315, 316, 316, 317, 317, 322, 326, 330, 334, 347, + 350, 356, 364, 371, 378, 386, 392, 397, 404, 411, + 421, 428, 433, 436, 439, 444, 445, 446, 452, 469, + 486, 501, 515, 533, 550, 560, 567, 570, 576, 582, + 586, 589, 601, 614, 630, 635, 640, 645, 652, 655, + 663, 672, 680, 687, 693, 698, 706, 709, 717, 720, + 729, 730, 731, 732, 733, 734, 739, 759, 763, 772, + 786, 790, 810, 825, 829, 847, 848, 866, 867, 880, + 883, 887, 891, 897, 900, 901, 902, 907, 912, 921, + 926, 937, 942, 943, 946, 947, 950, 955, 960, 963, + 971, 975, 991, 1008, 1018, 1021, 1033, 1044, 1052, 1053, + 1056, 1073, 1082, 1099, 1124, 1128, 1138, 1158, 1161, 1164, + 1169, 1173, 1180, 1184, 1188, 1196, 1204, 1214, 1215, 1216, + 1219, 1220, 1223, 1225, 1226, 1229, 1230, 1233, 1246, 1260, + 1272, 1282, 1294, 1305, 1307, 1326, 1337, 1341, 1356, 1360, + 1364, 1366, 1368, 1373, 1381, 1386, 1391, 1395, 1411, 1413, + 1439, 1441, 1466, 1467, 1470, 1471, 1482, 1483, 1498, 1501, + 1504, 1509, 1510, 1511, 1516, 1517, 1520, 1521, 1524, 1525, + 1528, 1532, 1541, 1546, 1552, 1557, 1568, 1572, 1575, 1579, + 1582, 1593, 1606, 1620, 1630, 1639, 1644, 1649, 1654, 1661, + 1662, 1667, 1672, 1680, 1684, 1689, 1696, 1697, 1700, 1705, + 1711, 1714, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, + 1728, 1735, 1742, 1755, 1759, 1763, 1769, 1774, 1783, 1784, + 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1798, 1805, 1814, + 1818, 1822, 1830, 1833, 1837, 1838, 1842, 1846, 1850, 1857, + 1858, 1862, 1866, 1870, 1875, 1876, 1879, 1880, 1881, 1888, + 1891, 1897, 1901, 1905, 1909, 1913, 1917, 1922, 1952, 1957, + 1962, 1967, 1972, 1980, 1989, 1998, 2007, 2016, 2021, 2029, + 2036, 2039, 2044 +}; +#endif + + +#if YYDEBUG != 0 || defined (YYERROR_VERBOSE) + +static const char * const yytname[] = { "$","error","$undefined.","ID","TYPE_TYPEDEF", +"HBLOCK","STRING","NUM_INT","NUM_FLOAT","CHARCONST","NUM_UNSIGNED","NUM_LONG", +"NUM_ULONG","LPAREN","RPAREN","LBRACE","RBRACE","COMMA","SEMI","PERIOD","LBRACKET", +"RBRACKET","EQUAL","COLON","POUND","CONST","DEFINED","ENUM","EXTERN","SIZEOF", +"STATIC","STRUCT","TYPEDEF","UNION","CLASS","FRIEND","OPERATOR","PRIVATE","PROTECTED", +"PUBLIC","TEMPLATE","THROW","VIRTUAL","OC_INTERFACE","OC_END","OC_PUBLIC","OC_PRIVATE", +"OC_PROTECTED","OC_CLASS","OC_IMPLEMENT","OC_PROTOCOL","TYPE_INT","TYPE_UNSIGNED", +"TYPE_SHORT","TYPE_LONG","TYPE_FLOAT","TYPE_DOUBLE","TYPE_CHAR","TYPE_VOID", +"TYPE_SIGNED","TYPE_BOOL","ADDMETHODS","ALPHA_MODE","APPLY","CHECKOUT","CLEAR", +"CONSTANT","DOCONLY","DOC_DISABLE","DOC_ENABLE","ECHO","EXCEPT","ILLEGAL","IMPORT", +"INCLUDE","INIT","INLINE","LOCALSTYLE","MACRO","MODULE","NAME","NATIVE","NEW", +"PRAGMA","RAW_MODE","READONLY","READWRITE","RENAME","SECTION","STYLE","SUBSECTION", +"SUBSUBSECTION","TEXT","TITLE","TYPE","TYPEMAP","USERDIRECTIVE","WEXTERN","WRAPPER", +"LOR","LAND","EQUALTO","NOTEQUAL","GREATERTHAN","LESSTHAN","LTEQUAL","GTEQUAL", +"OR","XOR","AND","LSHIFT","RSHIFT","PLUS","MINUS","STAR","SLASH","UMINUS","NOT", +"LNOT","DCOLON","interface","statement","@1","swig_directive","@2","file_include", +"@3","file_include_type","modifier_directive","@4","@5","code_block","doc_directive", +"stylelist","styletail","stylearg","idstring","typemap_directive","tm_method", +"tm_list","tm_tail","tm_parm","tm_name","tm_args","except_directive","pragma_directive", +"pragma_arg","native_directive","@6","c_declaration","variable_decl","@7","function_decl", +"@8","@9","stail","@10","@11","extern_spec","func_end","cpp_const","enum_decl", +"@12","@13","@14","ename","enumlist","edecl","typedef_decl","@15","@16","typedeflist", +"cpp_decl","cpp_class","@17","@18","@19","@20","@21","inherit","base_list","base_specifier", +"access_specifier","cpp_members","@22","@23","@24","cpp_member","@25","@26", +"@27","@28","@29","nested_decl","cpp_tail","@30","@31","cpp_end","type_extra", +"ctor_end","ctor_initializer","mem_initializer_list","mem_initializer","cpp_other", +"@32","parms","ptail","parm","pname","def_args","declaration","stars","array", +"array2","type","strict_type","template_decl","opt_signed","opt_unsigned","opt_int", +"cpptype","definetype","expr","idlist","empty", NULL +}; +#endif + +static const short yyr1[] = { 0, + 120, 120, 121, 121, 122, 121, 121, 121, 123, 124, + 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, + 123, 123, 123, 123, 126, 125, 127, 127, 127, 128, + 128, 129, 128, 130, 128, 131, 131, 131, 131, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 133, + 134, 134, 135, 135, 135, 136, 136, 136, 137, 137, + 137, 137, 137, 137, 137, 137, 138, 138, 139, 140, + 140, 141, 141, 141, 142, 142, 142, 142, 143, 143, + 144, 144, 144, 144, 145, 145, 146, 146, 148, 147, + 149, 149, 149, 149, 149, 149, 151, 150, 150, 153, + 152, 152, 154, 152, 152, 155, 156, 155, 157, 155, + 158, 158, 158, 159, 160, 160, 160, 162, 161, 163, + 164, 161, 165, 165, 166, 166, 167, 167, 167, 169, + 168, 168, 168, 170, 168, 171, 171, 171, 172, 172, + 174, 173, 175, 176, 173, 177, 178, 173, 179, 179, + 180, 180, 181, 181, 181, 181, 181, 182, 182, 182, + 183, 184, 185, 183, 186, 183, 183, 187, 187, 187, + 187, 187, 188, 187, 187, 189, 187, 187, 187, 187, + 187, 187, 190, 187, 187, 187, 187, 187, 191, 187, + 192, 187, 193, 193, 194, 195, 194, 196, 194, 197, + 197, 198, 198, 198, 199, 199, 200, 200, 201, 201, + 202, 203, 203, 203, 204, 203, 205, 205, 206, 206, + 207, 207, 207, 207, 207, 208, 208, 208, 208, 209, + 209, 209, 209, 210, 210, 210, 211, 211, 212, 212, + 213, 213, 214, 214, 214, 214, 214, 214, 214, 214, + 214, 214, 214, 214, 214, 214, 214, 214, 215, 215, + 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, + 215, 215, 216, 216, 217, 217, 217, 217, 217, 218, + 218, 218, 218, 218, 219, 219, 220, 220, 220, 221, + 221, 222, 222, 222, 222, 222, 222, 222, 222, 222, + 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, + 223, 223, 224 +}; + +static const short yyr2[] = { 0, + 2, 1, 1, 1, 0, 4, 1, 1, 2, 0, + 10, 4, 4, 2, 2, 1, 1, 1, 1, 1, + 1, 1, 1, 4, 0, 6, 1, 1, 1, 1, + 1, 0, 6, 0, 3, 1, 2, 2, 2, 1, + 1, 3, 3, 3, 3, 2, 1, 2, 2, 3, + 4, 1, 2, 2, 1, 1, 1, 1, 8, 6, + 8, 6, 10, 8, 5, 3, 1, 1, 2, 3, + 1, 2, 3, 3, 2, 3, 2, 1, 3, 1, + 5, 2, 5, 2, 4, 7, 2, 1, 0, 5, + 1, 1, 1, 1, 1, 1, 0, 7, 4, 0, + 9, 7, 0, 8, 7, 1, 0, 6, 0, 7, + 1, 2, 1, 2, 1, 2, 1, 0, 8, 0, + 0, 11, 1, 1, 3, 1, 1, 3, 1, 0, + 6, 10, 11, 0, 7, 3, 3, 1, 1, 1, + 0, 8, 0, 0, 11, 0, 0, 9, 2, 1, + 1, 3, 1, 2, 3, 2, 3, 1, 1, 1, + 2, 0, 0, 7, 0, 3, 1, 6, 7, 5, + 6, 7, 0, 5, 4, 0, 5, 7, 2, 2, + 2, 1, 0, 7, 1, 3, 1, 1, 0, 6, + 0, 5, 1, 1, 1, 0, 5, 0, 6, 2, + 2, 1, 1, 1, 3, 3, 2, 1, 1, 3, + 2, 4, 4, 1, 0, 6, 2, 1, 3, 1, + 2, 3, 3, 8, 3, 2, 2, 1, 1, 2, + 3, 2, 1, 1, 2, 2, 2, 2, 3, 4, + 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, + 2, 2, 2, 2, 2, 3, 2, 2, 1, 2, + 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, + 2, 2, 1, 1, 1, 1, 2, 2, 1, 1, + 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 2, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 2, 2, 3, + 3, 1, 0 +}; + +static const short yydefact[] = { 313, + 0, 2, 8, 36, 5, 7, 111, 96, 0, 214, + 0, 0, 0, 0, 47, 41, 40, 0, 0, 29, + 27, 0, 0, 0, 0, 0, 0, 0, 34, 0, + 30, 31, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 28, 0, 1, 3, 16, 0, 22, 17, 18, + 19, 20, 21, 23, 4, 91, 92, 0, 93, 94, + 95, 139, 140, 113, 313, 112, 313, 0, 313, 288, + 289, 287, 243, 313, 313, 313, 248, 249, 246, 250, + 313, 247, 0, 0, 0, 0, 0, 0, 313, 0, + 0, 313, 0, 14, 15, 0, 82, 84, 38, 39, + 0, 313, 49, 0, 56, 57, 58, 9, 0, 89, + 0, 313, 0, 0, 313, 48, 313, 313, 46, 313, + 313, 0, 37, 0, 313, 313, 0, 313, 243, 313, + 313, 313, 248, 249, 246, 250, 313, 247, 0, 313, + 0, 0, 0, 0, 0, 0, 273, 0, 253, 274, + 254, 258, 0, 124, 281, 313, 313, 284, 252, 280, + 285, 244, 286, 245, 276, 313, 313, 279, 251, 275, + 257, 234, 0, 130, 0, 255, 146, 215, 258, 0, + 313, 313, 0, 313, 72, 78, 313, 313, 80, 255, + 66, 0, 69, 71, 291, 292, 293, 297, 294, 295, + 296, 0, 0, 0, 0, 0, 290, 0, 0, 0, + 313, 55, 0, 0, 313, 35, 0, 0, 88, 0, + 0, 43, 52, 44, 45, 42, 0, 312, 67, 68, + 0, 25, 269, 254, 258, 0, 252, 244, 245, 251, + 236, 238, 237, 313, 235, 313, 0, 255, 6, 256, + 120, 282, 283, 277, 278, 313, 313, 134, 0, 0, + 0, 150, 0, 0, 0, 75, 313, 0, 0, 313, + 313, 218, 313, 0, 74, 73, 77, 313, 0, 298, + 308, 309, 13, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 313, 54, 53, 50, 0, 32, 0, + 87, 85, 0, 12, 0, 0, 24, 0, 0, 313, + 118, 0, 313, 213, 241, 313, 242, 99, 212, 0, + 313, 313, 0, 228, 229, 0, 0, 138, 313, 313, + 153, 159, 160, 158, 0, 149, 151, 0, 143, 165, + 313, 313, 0, 0, 185, 0, 0, 0, 0, 0, + 0, 182, 188, 187, 0, 0, 313, 0, 167, 0, + 65, 76, 0, 79, 0, 217, 220, 0, 313, 221, + 313, 239, 313, 70, 310, 304, 305, 303, 306, 307, + 299, 300, 301, 302, 81, 83, 0, 0, 0, 90, + 313, 313, 311, 67, 0, 0, 0, 313, 313, 0, + 0, 97, 233, 141, 127, 0, 126, 129, 226, 227, + 0, 313, 131, 0, 0, 154, 0, 0, 156, 0, + 0, 0, 313, 0, 0, 180, 181, 179, 0, 0, + 162, 0, 0, 161, 203, 0, 313, 202, 204, 255, + 191, 216, 225, 313, 313, 223, 222, 240, 313, 0, + 33, 0, 51, 0, 60, 62, 0, 26, 0, 115, + 0, 103, 117, 313, 232, 0, 230, 0, 0, 0, + 0, 313, 313, 136, 137, 135, 0, 155, 152, 157, + 0, 166, 0, 183, 176, 0, 0, 0, 313, 147, + 186, 313, 173, 313, 189, 0, 219, 0, 105, 0, + 10, 86, 0, 0, 0, 116, 0, 102, 100, 231, + 0, 106, 98, 0, 128, 121, 125, 0, 313, 0, + 313, 313, 313, 0, 313, 313, 0, 0, 313, 0, + 0, 175, 313, 0, 0, 114, 313, 59, 61, 0, + 64, 119, 104, 0, 313, 142, 313, 0, 0, 144, + 313, 170, 0, 0, 0, 195, 177, 0, 0, 163, + 313, 148, 313, 174, 0, 193, 194, 192, 313, 0, + 0, 101, 313, 313, 0, 132, 0, 313, 0, 0, + 208, 0, 313, 313, 313, 313, 0, 0, 171, 168, + 190, 0, 11, 63, 0, 107, 122, 133, 145, 0, + 207, 209, 206, 205, 184, 178, 196, 313, 172, 169, + 164, 201, 200, 224, 109, 0, 211, 0, 0, 198, + 0, 108, 210, 197, 0, 110, 199, 0, 0 +}; + +static const short yydefgoto[] = { 1, + 44, 65, 45, 537, 46, 310, 47, 352, 389, 111, + 49, 50, 103, 222, 211, 108, 51, 231, 91, 193, + 92, 185, 186, 52, 353, 218, 54, 215, 55, 56, + 468, 57, 544, 507, 513, 616, 621, 58, 499, 588, + 59, 398, 321, 547, 153, 406, 407, 354, 257, 329, + 327, 61, 62, 469, 421, 578, 263, 529, 261, 336, + 337, 338, 355, 488, 587, 422, 356, 531, 524, 522, + 533, 496, 565, 557, 619, 625, 589, 436, 552, 580, + 601, 602, 63, 264, 269, 366, 270, 323, 402, 141, + 142, 324, 316, 271, 144, 149, 169, 159, 162, 90, + 206, 207, 227, 272 +}; + +static const short yypact[] = {-32768, + 591,-32768,-32768,-32768,-32768,-32768, 4,-32768, 1378,-32768, + 25, 1414, 1414, 56,-32768,-32768,-32768, 174, 274,-32768, +-32768, 18, 1263, 61, 65, 311, 35, 75,-32768, 159, +-32768,-32768, 107, 113, 61, 121, 130, 169, 183, 213, + 205,-32768, 194,-32768,-32768,-32768, 241,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1227,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768, -16, 1414, 248,-32768, +-32768,-32768,-32768, 186, 211, 211,-32768,-32768,-32768,-32768, + 286,-32768, 278, 39, 51, 283, 315, 308, 24, 325, + 259, 331, 196,-32768,-32768, 352,-32768,-32768,-32768,-32768, + 38, 310,-32768, 351,-32768,-32768,-32768,-32768, 311,-32768, + 1091, 350, 376, 385,-32768,-32768,-32768,-32768,-32768,-32768, +-32768, 28,-32768, 375, 45, 289, 1414, 397, 392, 186, + 211, 211, 393, 394, 398, 412, 286, 413, 407, 317, + 419, 430, 38, 421, 433, 693,-32768, 435,-32768,-32768, +-32768, 424, 425,-32768,-32768, 211, 211,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768, 211, 211,-32768,-32768,-32768, +-32768,-32768, 333, 423, 162, 62,-32768,-32768,-32768, 1414, + 201, 1332, 221, 43,-32768,-32768, 43, 444,-32768,-32768, +-32768, 1414,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768, 406, 447, 406, 406, 449, 252, 451, 450, 262, +-32768,-32768, 456, 454,-32768,-32768, 196, 455,-32768, 460, + 457, 461,-32768, 461, 461, 461, 336,-32768, 462,-32768, + 463,-32768,-32768, 467, 182, 466, 469, 471, 472, 473, +-32768,-32768,-32768, 1332,-32768, 42, 373, 178,-32768,-32768, +-32768,-32768,-32768,-32768,-32768, 27, 474,-32768, 379, 216, + 477,-32768, 1190, 1190, 479,-32768, 444, 487, 482, 490, + 30,-32768, 423, 445,-32768,-32768,-32768, 331, 727,-32768, +-32768,-32768,-32768, 406, 406, 406, 406, 406, 406, 406, + 406, 406, 153, 1332,-32768,-32768, 461, 501,-32768, 793, +-32768,-32768, 517,-32768, 522, 523,-32768, 36, 1414,-32768, +-32768, 513, 1332,-32768,-32768, 506,-32768,-32768,-32768, 515, + 529, 277, 520,-32768,-32768, 38, 518,-32768, 474, 27, +-32768,-32768,-32768,-32768, 257, 521,-32768, 15,-32768,-32768, + 59, 248, 1414, 1414,-32768, 512, 516, 525, 1342, 526, + 537,-32768,-32768,-32768, 527, 1190, 46, 81,-32768, 528, +-32768,-32768, 530,-32768, 1332,-32768,-32768, 317, 27,-32768, + 27,-32768, 423,-32768,-32768, 826, 389, 340, 189, 189, + 263, 263,-32768,-32768,-32768,-32768, 532, 543, 1091,-32768, + 350, 310,-32768,-32768, 548, 83, 893, 529, -3, 550, + 626,-32768,-32768,-32768, 544, 365,-32768,-32768,-32768,-32768, + 552, 271,-32768, 549, 554,-32768, 566, 216,-32768, 568, + 1190, 1190, 1332, 557, 38,-32768,-32768,-32768, 570, 38, +-32768, 563, 38,-32768, 407, 541, 239, 430,-32768, 573, +-32768,-32768,-32768, 490, 27,-32768,-32768,-32768, -3, 575, +-32768, 579,-32768, 1414,-32768,-32768, 1414,-32768, 368,-32768, + 580,-32768,-32768, -3,-32768, 578,-32768, 369, 1190, 406, + 595, 529, 1332,-32768,-32768,-32768, 586,-32768,-32768,-32768, + 584,-32768, 588,-32768, 590, 597, 598, 1190, 1332,-32768, +-32768, 1332,-32768, 506,-32768, 38,-32768, 599,-32768, 602, +-32768,-32768, 223, 594, 608,-32768, 369,-32768, 602,-32768, + 38,-32768,-32768, 604, 252,-32768,-32768, 613, 1332, 38, + -3, 529, 1332, 378, 1332, 1332, 612, 615, 474, 616, + 378,-32768, 38, 622, 640,-32768,-32768,-32768,-32768, 1414, +-32768,-32768,-32768, 369, 207,-32768, 474, 645, 661,-32768, + 664,-32768, 387, 676, 38,-32768,-32768, 677, 678,-32768, + -3,-32768, -3,-32768, 675,-32768,-32768,-32768, 1332, 993, + 681,-32768, 1332, 506, 683,-32768, 684, 474, 700, 318, +-32768, 686, -3, 277, -3, -3, 1190, 329,-32768,-32768, +-32768, 692,-32768,-32768, 698,-32768,-32768,-32768,-32768, 694, + 696,-32768,-32768,-32768,-32768,-32768,-32768, 506,-32768,-32768, +-32768,-32768,-32768,-32768,-32768, 369,-32768, 700, 378,-32768, + 369,-32768,-32768,-32768, 378,-32768,-32768, 714,-32768 +}; + +static const short yypgoto[] = { -61, + -104,-32768,-32768,-32768,-32768,-32768,-32768, 5,-32768,-32768, +-32768,-32768, 680, -38, 324, 610,-32768, 409, -175, 452, + -9, 165, -82,-32768, 12, 337,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768, -471,-32768,-32768,-32768, 258, -378, +-32768,-32768,-32768,-32768, -119, -381, 260, 31,-32768,-32768, + -303,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 481,-32768, + 313, 399, -252,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768, -512,-32768,-32768, -373,-32768,-32768,-32768, +-32768, 118,-32768,-32768, -199, 293, 377, -247, -302, -50, + -49, -87, -265, 2,-32768, 614, 601, 625, 448, 20, + -201, 225,-32768, 0 +}; + + +#define YYLAST 1533 + + +static const short yytable[] = { 2, + 64, 188, 88, 146, 265, 48, 216, 372, 236, 66, + 84, 360, 53, 89, 89, 301, 459, 419, 564, 409, + 462, 460, 99, 370, 101, 414, 181, 86, 85, 322, + 229, 60, 322, 174, 175, 543, 182, 461, 394, 187, + 172, 172, 368, 183, 312, 181, 183, 109, 172, 183, + 209, 173, 230, 176, 313, 182, 420, -234, 93, 143, + 230, 183, 183, 102, 2, 177, 150, 104, 154, 151, + 500, 423, 572, 160, 163, 163, -313, 145, 224, 225, + 170, 226, 415, 440, 260, 509, 258, 147, 189, 110, + 242, 194, 246, 267, 387, 441, 188, 455, 266, 188, + 456, 212, 148, 434, 457, 277, 624, 448, 474, 114, + 64, 219, 627, 400, 223, 48, 223, 223, 115, 223, + 228, 446, 53, 447, 150, 150, 117, 154, 234, 160, + 163, 163, 184, 396, 493, 118, 170, 140, 369, 243, + 553, 60, 551, 140, 622, 64, 139, 139, 147, 626, + 48, 140, 140, 300, 435, 163, 163, 53, 315, 140, + 314, 112, 147, 148, 245, 163, 163, 385, 481, 482, + 386, 113, 297, 119, 259, 262, 60, 148, 94, 95, + 189, 89, 278, 189, 362, 315, 189, 189, 120, 590, + -271, 532, -313, 89, -272, 319, -123, 498, 123, 467, + 260, 195, 196, 197, 198, 199, 200, 201, 202, 606, + 223, 609, 610, 182, 2, 121, 514, 122, 331, 573, + 183, 371, 424, 483, 203, 562, 183, 196, 197, 198, + 199, 200, 201, 202, 410, 527, 155, 538, 156, 157, + 539, 273, 158, 575, 540, 317, 124, 262, 397, 203, + 152, 492, 332, 333, 334, 325, 328, 335, 183, 416, + 401, 161, 359, 359, 357, 357, 189, 295, 296, 367, + 325, 596, 317, 518, 599, 412, 191, 194, 503, 574, + 171, 607, 358, 358, 451, 315, 96, 326, 97, 528, + 183, 98, 530, 332, 333, 334, 183, 178, 401, 64, + 289, 290, 291, 292, 48, 620, 437, 438, 204, 2, + 89, 53, 205, 105, 106, 403, 107, 179, 445, 549, + 408, 403, 180, 554, 475, 558, 559, 190, 328, 325, + 60, 210, 603, 204, 611, 604, 165, 205, 166, 167, + 150, 154, 168, 612, 425, 84, 613, 192, 275, 494, + 430, 276, 306, 307, 208, 359, 439, 357, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 213, 325, 592, + 325, 217, 317, 595, 485, 358, 291, 292, 220, 487, + 471, 472, 490, 505, 472, 511, 512, 221, 64, 232, + 219, 212, 147, 48, 555, 556, 64, 408, 463, 235, + 53, 48, 582, 472, -259, -264, -265, 274, 53, 241, + -262, 328, 196, 197, 198, 199, 200, 201, 202, 60, + 359, 359, 357, 357, -266, -263, 279, 60, 281, 282, + 140, 244, 245, 247, 203, 248, 403, 250, -123, 251, + 358, 358, 183, 367, 325, 534, 256, 504, 463, 287, + 288, 289, 290, 291, 292, 89, 182, 315, 89, 280, + 545, 298, 294, 463, 293, 373, 283, 299, 359, 550, + 357, 408, 302, 303, 304, 570, 309, 305, 308, -270, + 311, -268, 566, -260, -261, -267, 318, 359, 358, 357, + 326, 339, 330, 403, 361, 364, 608, 286, 287, 288, + 289, 290, 291, 292, 584, 363, 365, 358, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 388, 204, 391, + 463, 408, 205, 164, 392, 393, 399, 401, 328, 404, + 571, 405, 567, 411, 426, 413, 2, 418, 427, 432, + 431, 89, 433, 442, 317, 449, 328, 428, 443, 450, + 581, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 463, 454, 463, 464, 473, 470, 476, 477, 478, 64, + 480, 484, 486, 403, 48, 489, 491, 328, 238, 239, + 510, 53, 463, 403, 463, 463, 359, 495, 357, 501, + 628, 3, 506, -313, -313, 4, 502, 516, 519, 520, + 60, 521, 523, 252, 253, 5, 358, 403, 6, 525, + 526, 541, 535, 254, 255, -313, 536, -313, 7, 546, + 8, -313, 9, -313, -313, 542, 548, 560, 561, 563, + 10, 195, 196, 197, 198, 199, 200, 201, 202, 568, + 465, -313, -313, -313, -313, -313, -313, -313, -313, -313, + -313, 11, 569, 12, 203, 13, 14, 15, 16, 17, + 18, 19, 576, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 577, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 579, 42, 43, 583, + 585, 586, 591, 3, 515, -313, -313, 4, 594, -313, + 597, 598, 600, 605, -313, 614, 617, 5, 249, -313, + 6, 615, 618, 629, 116, 453, 395, -313, 214, -313, + 7, 508, 8, -313, 9, -313, -313, 452, 320, 374, + 479, 517, 10, 417, 466, 623, 497, 240, 204, 233, + 375, 444, 205, -313, -313, -313, -313, -313, -313, -313, + -313, -313, -313, 11, 237, 12, 0, 13, 14, 15, + 16, 17, 18, 19, 0, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 0, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 0, 42, + 43, 0, 0, 3, 0, -313, -313, 4, 0, 0, + 0, -313, 0, 0, 0, 0, -313, 5, 390, 0, + 6, -313, 0, 0, 0, 0, 0, -313, 0, -313, + 7, 0, 8, -313, 9, -313, -313, 0, 0, 0, + 0, 0, 10, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 0, -313, -313, -313, -313, -313, -313, -313, + -313, -313, -313, 11, 0, 12, 0, 13, 14, 15, + 16, 17, 18, 19, 0, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 0, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 0, 42, + 43, 0, 0, 3, 0, -313, -313, 4, 0, 0, + 0, -313, 0, 0, 0, 0, -313, 5, 458, 0, + 6, -313, 0, 0, 0, 0, 0, -313, 0, -313, + 7, 0, 8, -313, 9, -313, -313, 0, 0, 0, + 0, 0, 10, 285, 286, 287, 288, 289, 290, 291, + 292, 0, 0, -313, -313, -313, -313, -313, -313, -313, + -313, -313, -313, 11, 0, 12, 0, 13, 14, 15, + 16, 17, 18, 19, 0, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 0, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 0, 42, + 43, 0, 0, 3, 0, -313, -313, 4, 0, 0, + 0, -313, 0, 0, 0, 0, -313, 5, 593, 0, + 6, -313, 0, 0, 0, 0, 0, -313, 0, -313, + 7, 0, 8, -313, 9, -313, -313, 0, 0, 0, + 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, -313, -313, -313, -313, -313, -313, -313, + -313, -313, -313, 11, 0, 12, 0, 13, 14, 15, + 16, 17, 18, 19, 0, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 0, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 0, 42, + 43, 3, 0, -313, -313, 4, 0, 0, 0, 0, + 0, -313, 0, 0, 0, 5, -313, 0, 6, 0, + 0, -313, 0, 0, 0, -313, 0, -313, 7, 0, + 8, -313, 9, -313, -313, 0, 0, 0, 0, 0, + 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, -313, -313, -313, -313, -313, -313, -313, -313, -313, + -313, 11, 0, 12, 0, 13, 14, 15, 16, 17, + 18, 19, 0, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 0, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 0, 42, 43, 0, + 340, 0, 341, 0, 0, 0, 0, 0, 0, -313, + 0, 0, 0, 0, -313, -313, 0, 0, 0, -313, + 0, 0, 0, 0, 68, 0, 342, 0, 0, 343, + 70, 344, 71, 72, 345, 0, 346, 347, 348, 125, + 126, 349, 0, 0, 0, 0, 0, 0, 0, 0, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 350, 127, 0, 128, 0, 0, 0, 70, 0, 71, + 72, 0, 0, 0, 0, 67, 0, 100, 0, 27, + 0, 29, 30, 0, 31, 32, 0, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 68, 0, 87, + 0, 0, 0, 70, 0, 71, 72, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 351, 0, 83, 0, + 0, 0, 0, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 67, 139, 0, 0, 0, 0, + 140, 0, 0, 0, 67, 83, 0, 0, 0, 0, + 268, 0, 0, 0, 0, 0, 68, 0, 87, 0, + 0, 0, 70, 0, 71, 72, 68, 0, 87, 0, + 0, 0, 70, 0, 71, 72, 0, 0, 0, 0, + 67, 83, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 68, 0, 69, 0, 0, 0, 70, 0, + 71, 72, 0, 0, 0, 0, 67, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 68, 0, + 87, 0, 0, 0, 70, 0, 71, 72, 0, 0, + 83, 0, 0, 0, 0, 0, 0, 0, 429, 0, + 83, 0, 0, 0, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 83, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 83 +}; + +static const short yycheck[] = { 0, + 1, 89, 12, 65, 180, 1, 111, 273, 128, 6, + 9, 264, 1, 12, 13, 217, 398, 3, 531, 322, + 399, 25, 5, 271, 23, 329, 3, 3, 9, 3, + 3, 1, 3, 84, 84, 507, 13, 41, 3, 89, + 3, 3, 13, 20, 244, 3, 20, 13, 3, 20, + 101, 13, 25, 3, 13, 13, 42, 13, 3, 58, + 25, 20, 20, 3, 65, 15, 67, 3, 69, 68, + 449, 13, 544, 74, 75, 76, 15, 58, 117, 118, + 81, 120, 330, 3, 23, 464, 174, 104, 89, 15, + 140, 92, 143, 181, 294, 15, 184, 15, 181, 187, + 18, 102, 119, 356, 22, 188, 619, 373, 412, 3, + 111, 112, 625, 313, 115, 111, 117, 118, 6, 120, + 121, 369, 111, 371, 125, 126, 6, 128, 127, 130, + 131, 132, 109, 309, 437, 6, 137, 114, 109, 140, + 522, 111, 521, 114, 616, 146, 109, 109, 104, 621, + 146, 114, 114, 215, 109, 156, 157, 146, 246, 114, + 119, 3, 104, 119, 3, 166, 167, 15, 421, 422, + 18, 13, 211, 5, 13, 176, 146, 119, 5, 6, + 181, 180, 192, 184, 267, 273, 187, 188, 6, 563, + 13, 494, 15, 192, 13, 18, 15, 445, 5, 401, + 23, 6, 7, 8, 9, 10, 11, 12, 13, 583, + 211, 585, 586, 13, 215, 3, 469, 13, 3, 13, + 20, 271, 342, 423, 29, 529, 20, 7, 8, 9, + 10, 11, 12, 13, 322, 488, 51, 15, 53, 54, + 18, 21, 57, 547, 22, 246, 6, 248, 310, 29, + 3, 13, 37, 38, 39, 256, 257, 42, 20, 3, + 22, 51, 263, 264, 263, 264, 267, 6, 7, 270, + 271, 574, 273, 473, 578, 326, 18, 278, 454, 545, + 3, 584, 263, 264, 389, 373, 13, 17, 15, 489, + 20, 18, 492, 37, 38, 39, 20, 15, 22, 300, + 112, 113, 114, 115, 300, 608, 357, 357, 113, 310, + 309, 300, 117, 3, 4, 316, 6, 3, 368, 519, + 321, 322, 15, 523, 412, 525, 526, 3, 329, 330, + 300, 22, 15, 113, 587, 18, 51, 117, 53, 54, + 341, 342, 57, 15, 343, 344, 18, 17, 184, 437, + 349, 187, 17, 18, 3, 356, 357, 356, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 17, 369, 569, + 371, 22, 373, 573, 425, 356, 114, 115, 3, 430, + 16, 17, 433, 16, 17, 17, 18, 3, 389, 15, + 391, 392, 104, 389, 17, 18, 397, 398, 399, 3, + 389, 397, 16, 17, 13, 13, 13, 183, 397, 3, + 13, 412, 7, 8, 9, 10, 11, 12, 13, 389, + 421, 422, 421, 422, 13, 13, 202, 397, 204, 205, + 114, 13, 3, 13, 29, 3, 437, 3, 15, 15, + 421, 422, 20, 444, 445, 496, 114, 457, 449, 110, + 111, 112, 113, 114, 115, 454, 13, 545, 457, 13, + 511, 6, 13, 464, 14, 21, 18, 14, 469, 520, + 469, 472, 18, 14, 18, 537, 14, 17, 17, 13, + 15, 13, 533, 13, 13, 13, 114, 488, 469, 488, + 17, 15, 114, 494, 16, 14, 584, 109, 110, 111, + 112, 113, 114, 115, 555, 19, 17, 488, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 17, 113, 3, + 521, 522, 117, 76, 3, 3, 14, 22, 529, 15, + 540, 3, 533, 14, 23, 18, 537, 17, 23, 3, + 15, 540, 16, 16, 545, 14, 547, 23, 19, 7, + 551, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 561, 14, 563, 14, 13, 22, 18, 14, 3, 570, + 3, 15, 3, 574, 570, 13, 36, 578, 131, 132, + 3, 570, 583, 584, 585, 586, 587, 15, 587, 15, + 0, 1, 13, 3, 4, 5, 18, 3, 13, 16, + 570, 14, 13, 156, 157, 15, 587, 608, 18, 13, + 13, 18, 14, 166, 167, 25, 15, 27, 28, 16, + 30, 31, 32, 33, 34, 18, 14, 16, 14, 14, + 40, 6, 7, 8, 9, 10, 11, 12, 13, 18, + 15, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 13, 63, 29, 65, 66, 67, 68, 69, + 70, 71, 18, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 14, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 23, 97, 98, 14, + 14, 14, 18, 1, 470, 3, 4, 5, 18, 109, + 18, 18, 3, 18, 114, 14, 13, 15, 16, 119, + 18, 14, 17, 0, 35, 392, 308, 25, 109, 27, + 28, 464, 30, 31, 32, 33, 34, 391, 248, 278, + 418, 472, 40, 335, 109, 618, 444, 137, 113, 126, + 14, 365, 117, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 130, 63, -1, 65, 66, 67, + 68, 69, 70, 71, -1, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, + 98, -1, -1, 1, -1, 3, 4, 5, -1, -1, + -1, 109, -1, -1, -1, -1, 114, 15, 16, -1, + 18, 119, -1, -1, -1, -1, -1, 25, -1, 27, + 28, -1, 30, 31, 32, 33, 34, -1, -1, -1, + -1, -1, 40, 107, 108, 109, 110, 111, 112, 113, + 114, 115, -1, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, -1, 63, -1, 65, 66, 67, + 68, 69, 70, 71, -1, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, + 98, -1, -1, 1, -1, 3, 4, 5, -1, -1, + -1, 109, -1, -1, -1, -1, 114, 15, 16, -1, + 18, 119, -1, -1, -1, -1, -1, 25, -1, 27, + 28, -1, 30, 31, 32, 33, 34, -1, -1, -1, + -1, -1, 40, 108, 109, 110, 111, 112, 113, 114, + 115, -1, -1, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, -1, 63, -1, 65, 66, 67, + 68, 69, 70, 71, -1, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, + 98, -1, -1, 1, -1, 3, 4, 5, -1, -1, + -1, 109, -1, -1, -1, -1, 114, 15, 16, -1, + 18, 119, -1, -1, -1, -1, -1, 25, -1, 27, + 28, -1, 30, 31, 32, 33, 34, -1, -1, -1, + -1, -1, 40, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, -1, 63, -1, 65, 66, 67, + 68, 69, 70, 71, -1, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, + 98, 1, -1, 3, 4, 5, -1, -1, -1, -1, + -1, 109, -1, -1, -1, 15, 114, -1, 18, -1, + -1, 119, -1, -1, -1, 25, -1, 27, 28, -1, + 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, + 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, -1, 63, -1, 65, 66, 67, 68, 69, + 70, 71, -1, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, -1, 97, 98, -1, + 1, -1, 3, -1, -1, -1, -1, -1, -1, 109, + -1, -1, -1, -1, 114, 16, -1, -1, -1, 119, + -1, -1, -1, -1, 25, -1, 27, -1, -1, 30, + 31, 32, 33, 34, 35, -1, 37, 38, 39, 3, + 4, 42, -1, -1, -1, -1, -1, -1, -1, -1, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 25, -1, 27, -1, -1, -1, 31, -1, 33, + 34, -1, -1, -1, -1, 3, -1, 5, -1, 80, + -1, 82, 83, -1, 85, 86, -1, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 25, -1, 27, + -1, -1, -1, 31, -1, 33, 34, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 117, -1, 119, -1, + -1, -1, -1, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 3, 109, -1, -1, -1, -1, + 114, -1, -1, -1, 3, 119, -1, -1, -1, -1, + 19, -1, -1, -1, -1, -1, 25, -1, 27, -1, + -1, -1, 31, -1, 33, 34, 25, -1, 27, -1, + -1, -1, 31, -1, 33, 34, -1, -1, -1, -1, + 3, 119, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 25, -1, 27, -1, -1, -1, 31, -1, + 33, 34, -1, -1, -1, -1, 3, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 25, -1, + 27, -1, -1, -1, 31, -1, 33, 34, -1, -1, + 119, -1, -1, -1, -1, -1, -1, -1, 117, -1, + 119, -1, -1, -1, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 119, -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, 119 +}; +/* -*-C-*- Note some compilers choke on comments on `#line' lines. */ +#line 3 "/usr/lib/bison.simple" +/* This file comes from bison-1.27. */ + +/* Skeleton output parser for bison, + Copyright (C) 1984, 1989, 1990 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., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +/* As a special exception, when this file is copied by Bison into a + Bison output file, you may use that output file without restriction. + This special exception was added by the Free Software Foundation + in version 1.24 of Bison. */ + +/* This is the parser code that is written into each bison parser + when the %semantic_parser declaration is not specified in the grammar. + It was written by Richard Stallman by simplifying the hairy parser + used when %semantic_parser is specified. */ + +#ifndef YYSTACK_USE_ALLOCA +#ifdef alloca +#define YYSTACK_USE_ALLOCA +#else /* alloca not defined */ +#ifdef __GNUC__ +#define YYSTACK_USE_ALLOCA +#define alloca __builtin_alloca +#else /* not GNU C. */ +#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386)) +#define YYSTACK_USE_ALLOCA +#include +#else /* not sparc */ +/* We think this test detects Watcom and Microsoft C. */ +/* This used to test MSDOS, but that is a bad idea + since that symbol is in the user namespace. */ +#if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__) +#if 0 /* No need for malloc.h, which pollutes the namespace; + instead, just don't use alloca. */ +#include +#endif +#else /* not MSDOS, or __TURBOC__ */ +#if defined(_AIX) +/* I don't know what this was needed for, but it pollutes the namespace. + So I turned it off. rms, 2 May 1997. */ +/* #include */ + #pragma alloca +#define YYSTACK_USE_ALLOCA +#else /* not MSDOS, or __TURBOC__, or _AIX */ +#if 0 +#ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up, + and on HPUX 10. Eventually we can turn this on. */ +#define YYSTACK_USE_ALLOCA +#define alloca __builtin_alloca +#endif /* __hpux */ +#endif +#endif /* not _AIX */ +#endif /* not MSDOS, or __TURBOC__ */ +#endif /* not sparc */ +#endif /* not GNU C */ +#endif /* alloca not defined */ +#endif /* YYSTACK_USE_ALLOCA not defined */ + +#ifdef YYSTACK_USE_ALLOCA +#define YYSTACK_ALLOC alloca +#else +#define YYSTACK_ALLOC malloc +#endif + +/* Note: there must be only one dollar sign in this file. + It is replaced by the list of actions, each action + as one case of the switch. */ + +#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 yyerrlab1 +/* 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); \ + yychar1 = YYTRANSLATE (yychar); \ + YYPOPSTACK; \ + goto yybackup; \ + } \ + else \ + { yyerror ("syntax error: cannot back up"); YYERROR; } \ +while (0) + +#define YYTERROR 1 +#define YYERRCODE 256 + +#ifndef YYPURE +#define YYLEX yylex() +#endif + +#ifdef YYPURE +#ifdef YYLSP_NEEDED +#ifdef YYLEX_PARAM +#define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM) +#else +#define YYLEX yylex(&yylval, &yylloc) +#endif +#else /* not YYLSP_NEEDED */ +#ifdef YYLEX_PARAM +#define YYLEX yylex(&yylval, YYLEX_PARAM) +#else +#define YYLEX yylex(&yylval) +#endif +#endif /* not YYLSP_NEEDED */ +#endif + +/* If nonreentrant, generate the variables here */ + +#ifndef YYPURE + +int yychar; /* the lookahead symbol */ +YYSTYPE yylval; /* the semantic value of the */ + /* lookahead symbol */ + +#ifdef YYLSP_NEEDED +YYLTYPE yylloc; /* location data for the lookahead */ + /* symbol */ +#endif + +int yynerrs; /* number of parse errors so far */ +#endif /* not YYPURE */ + +#if YYDEBUG != 0 +int yydebug; /* nonzero means print parse trace */ +/* Since this is uninitialized, it does not stop multiple parsers + from coexisting. */ +#endif + +/* YYINITDEPTH indicates the initial size of the parser's stacks */ + +#ifndef YYINITDEPTH +#define YYINITDEPTH 200 +#endif + +/* YYMAXDEPTH is the maximum size the stacks can grow to + (effective only if the built-in stack extension method is used). */ + +#if YYMAXDEPTH == 0 +#undef YYMAXDEPTH +#endif + +#ifndef YYMAXDEPTH +#define YYMAXDEPTH 10000 +#endif + +/* Define __yy_memcpy. Note that the size argument + should be passed with type unsigned int, because that is what the non-GCC + definitions require. With GCC, __builtin_memcpy takes an arg + of type size_t, but it can handle unsigned int. */ + +#if __GNUC__ > 1 /* GNU C and GNU C++ define this. */ +#define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT) +#else /* not GNU C or C++ */ +#ifndef __cplusplus + +/* This is the most reliable way to avoid incompatibilities + in available built-in functions on various systems. */ +static void +__yy_memcpy (to, from, count) + char *to; + char *from; + unsigned int count; +{ + register char *f = from; + register char *t = to; + register int i = count; + + while (i-- > 0) + *t++ = *f++; +} + +#else /* __cplusplus */ + +/* This is the most reliable way to avoid incompatibilities + in available built-in functions on various systems. */ +static void +__yy_memcpy (char *to, char *from, unsigned int count) +{ + register char *t = to; + register char *f = from; + register int i = count; + + while (i-- > 0) + *t++ = *f++; +} + +#endif +#endif + +#line 216 "/usr/lib/bison.simple" + +/* The user can define YYPARSE_PARAM as the name of an argument to be passed + into yyparse. The argument should have type void *. + It should actually point to an object. + Grammar actions can access the variable by casting it + to the proper pointer type. */ + +#ifdef YYPARSE_PARAM +#ifdef __cplusplus +#define YYPARSE_PARAM_ARG void *YYPARSE_PARAM +#define YYPARSE_PARAM_DECL +#else /* not __cplusplus */ +#define YYPARSE_PARAM_ARG YYPARSE_PARAM +#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM; +#endif /* not __cplusplus */ +#else /* not YYPARSE_PARAM */ +#define YYPARSE_PARAM_ARG +#define YYPARSE_PARAM_DECL +#endif /* not YYPARSE_PARAM */ + +/* Prevent warning if -Wstrict-prototypes. */ +#ifdef __GNUC__ +#ifdef YYPARSE_PARAM +int yyparse (void *); +#else +int yyparse (void); +#endif +#endif + +int +yyparse(YYPARSE_PARAM_ARG) + YYPARSE_PARAM_DECL +{ + register int yystate; + register int yyn; + register short *yyssp; + register YYSTYPE *yyvsp; + int yyerrstatus; /* number of tokens to shift before error messages enabled */ + int yychar1 = 0; /* lookahead token as an internal (translated) token number */ + + short yyssa[YYINITDEPTH]; /* the state stack */ + YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */ + + short *yyss = yyssa; /* refer to the stacks thru separate pointers */ + YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */ + +#ifdef YYLSP_NEEDED + YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */ + YYLTYPE *yyls = yylsa; + YYLTYPE *yylsp; + +#define YYPOPSTACK (yyvsp--, yyssp--, yylsp--) +#else +#define YYPOPSTACK (yyvsp--, yyssp--) +#endif + + int yystacksize = YYINITDEPTH; + int yyfree_stacks = 0; + +#ifdef YYPURE + int yychar; + YYSTYPE yylval; + int yynerrs; +#ifdef YYLSP_NEEDED + YYLTYPE yylloc; +#endif +#endif + + YYSTYPE yyval; /* the variable used to return */ + /* semantic values from the action */ + /* routines */ + + int yylen; + +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Starting parse\n"); +#endif + + 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 - 1; + yyvsp = yyvs; +#ifdef YYLSP_NEEDED + yylsp = yyls; +#endif + +/* Push a new state, which is found in yystate . */ +/* In all cases, when you get here, the value and location stacks + have just been pushed. so pushing a state here evens the stacks. */ +yynewstate: + + *++yyssp = yystate; + + if (yyssp >= yyss + yystacksize - 1) + { + /* 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; + short *yyss1 = yyss; +#ifdef YYLSP_NEEDED + YYLTYPE *yyls1 = yyls; +#endif + + /* Get the current used size of the three stacks, in elements. */ + int size = yyssp - yyss + 1; + +#ifdef yyoverflow + /* Each stack pointer address is followed by the size of + the data in use in that stack, in bytes. */ +#ifdef YYLSP_NEEDED + /* This used to be a conditional around just the two extra args, + but that might be undefined if yyoverflow is a macro. */ + yyoverflow("parser stack overflow", + &yyss1, size * sizeof (*yyssp), + &yyvs1, size * sizeof (*yyvsp), + &yyls1, size * sizeof (*yylsp), + &yystacksize); +#else + yyoverflow("parser stack overflow", + &yyss1, size * sizeof (*yyssp), + &yyvs1, size * sizeof (*yyvsp), + &yystacksize); +#endif + + yyss = yyss1; yyvs = yyvs1; +#ifdef YYLSP_NEEDED + yyls = yyls1; +#endif +#else /* no yyoverflow */ + /* Extend the stack our own way. */ + if (yystacksize >= YYMAXDEPTH) + { + yyerror("parser stack overflow"); + if (yyfree_stacks) + { + free (yyss); + free (yyvs); +#ifdef YYLSP_NEEDED + free (yyls); +#endif + } + return 2; + } + yystacksize *= 2; + if (yystacksize > YYMAXDEPTH) + yystacksize = YYMAXDEPTH; +#ifndef YYSTACK_USE_ALLOCA + yyfree_stacks = 1; +#endif + yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp)); + __yy_memcpy ((char *)yyss, (char *)yyss1, + size * (unsigned int) sizeof (*yyssp)); + yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp)); + __yy_memcpy ((char *)yyvs, (char *)yyvs1, + size * (unsigned int) sizeof (*yyvsp)); +#ifdef YYLSP_NEEDED + yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp)); + __yy_memcpy ((char *)yyls, (char *)yyls1, + size * (unsigned int) sizeof (*yylsp)); +#endif +#endif /* no yyoverflow */ + + yyssp = yyss + size - 1; + yyvsp = yyvs + size - 1; +#ifdef YYLSP_NEEDED + yylsp = yyls + size - 1; +#endif + +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Stack size increased to %d\n", yystacksize); +#endif + + if (yyssp >= yyss + yystacksize - 1) + YYABORT; + } + +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Entering state %d\n", yystate); +#endif + + goto yybackup; + yybackup: + +/* Do appropriate processing given the current state. */ +/* Read a lookahead token if we need one and don't already have one. */ +/* yyresume: */ + + /* First try to decide what to do without reference to lookahead token. */ + + yyn = yypact[yystate]; + if (yyn == YYFLAG) + goto yydefault; + + /* Not known => get a lookahead token if don't already have one. */ + + /* yychar is either YYEMPTY or YYEOF + or a valid token in external form. */ + + if (yychar == YYEMPTY) + { +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Reading a token: "); +#endif + yychar = YYLEX; + } + + /* Convert token to internal form (in yychar1) for indexing tables with */ + + if (yychar <= 0) /* This means end of input. */ + { + yychar1 = 0; + yychar = YYEOF; /* Don't call YYLEX any more */ + +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Now at end of input.\n"); +#endif + } + else + { + yychar1 = YYTRANSLATE(yychar); + +#if YYDEBUG != 0 + if (yydebug) + { + fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]); + /* Give the individual parser a way to print the precise meaning + of a token, for further debugging info. */ +#ifdef YYPRINT + YYPRINT (stderr, yychar, yylval); +#endif + fprintf (stderr, ")\n"); + } +#endif + } + + yyn += yychar1; + if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1) + goto yydefault; + + yyn = yytable[yyn]; + + /* yyn is what to do for this token type in this state. + Negative => reduce, -yyn is rule number. + Positive => shift, yyn is new state. + New state is final state => don't bother to shift, + just return success. + 0, or most negative number => error. */ + + if (yyn < 0) + { + if (yyn == YYFLAG) + goto yyerrlab; + yyn = -yyn; + goto yyreduce; + } + else if (yyn == 0) + goto yyerrlab; + + if (yyn == YYFINAL) + YYACCEPT; + + /* Shift the lookahead token. */ + +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]); +#endif + + /* Discard the token being shifted unless it is eof. */ + if (yychar != YYEOF) + yychar = YYEMPTY; + + *++yyvsp = yylval; +#ifdef YYLSP_NEEDED + *++yylsp = yylloc; +#endif + + /* count tokens shifted since error; after three, turn off error status. */ + if (yyerrstatus) yyerrstatus--; + + yystate = yyn; + goto yynewstate; + +/* Do the default action for the current state. */ +yydefault: + + yyn = yydefact[yystate]; + if (yyn == 0) + goto yyerrlab; + +/* Do a reduction. yyn is the number of a rule to reduce with. */ +yyreduce: + yylen = yyr2[yyn]; + if (yylen > 0) + yyval = yyvsp[1-yylen]; /* implement default value of the action */ + +#if YYDEBUG != 0 + if (yydebug) + { + int i; + + fprintf (stderr, "Reducing via rule %d (line %d), ", + yyn, yyrline[yyn]); + + /* Print the symbols being reduced, and their result. */ + for (i = yyprhs[yyn]; yyrhs[i] > 0; i++) + fprintf (stderr, "%s ", yytname[yyrhs[i]]); + fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]); + } +#endif + + + switch (yyn) { + +case 1: +#line 233 "parser.y" +{ ; + break;} +case 2: +#line 234 "parser.y" +{ ; + break;} +case 3: +#line 237 "parser.y" +{ Intype = 0; ; + break;} +case 4: +#line 238 "parser.y" +{ Intype = 0; ; + break;} +case 5: +#line 239 "parser.y" +{ + DOH *o = new_node("Scope",yyvsp[0].tok.filename,yyvsp[0].tok.line); + top = o; + ; + break;} +case 6: +#line 242 "parser.y" +{ + top = Getattr(top,"parent"); + ; + break;} +case 7: +#line 245 "parser.y" +{ ; + break;} +case 8: +#line 246 "parser.y" +{ ; + break;} +case 9: +#line 252 "parser.y" +{ + if (!Getattr(top,"module")) { + Setattr(top,"module",yyvsp[0].tok.text); + } + ; + break;} +case 10: +#line 257 "parser.y" +{ + LParse_macro_location(yyvsp[-5].tok.text,yyvsp[-6].tok.filename,yyvsp[-6].tok.line); + LParse_set_location(yyvsp[-3].tok.text, atoi(Char(yyvsp[-1].tok.text))-1); + ; + break;} +case 11: +#line 260 "parser.y" +{ + LParse_macro_location(0,0,0); + LParse_set_location(yyvsp[-3].tok.filename,yyvsp[-3].tok.line-1); + ; + break;} +case 12: +#line 265 "parser.y" +{ Setattr(name_hash,yyvsp[-2].tok.text,yyvsp[-1].tok.text); ; + break;} +case 13: +#line 266 "parser.y" +{ + DOH *o = new_node("Constant",yyvsp[-2].tok.filename, yyvsp[-2].tok.line); + Setattr(o,"name",yyvsp[-2].tok.text); + Setattr(o,"value",yyvsp[-1].tok.text); + SetInt(o,"type",yyvsp[-1].tok.ivalue); + apply_modifier(o); + ; + break;} +case 14: +#line 273 "parser.y" +{ Printf(stderr,"%s\n", yyvsp[0].tok.text); ; + break;} +case 15: +#line 274 "parser.y" +{ Printf(stderr,"%s\n", yyvsp[0].tok.text); ; + break;} +case 24: +#line 283 "parser.y" +{ + DOH *l; + LParseType *t; + int i; + Insert(yyvsp[-1].node,0,yyvsp[-2].tok.text); + for (i = 0; i < Len(yyvsp[-1].node); i++) { + l = Getitem(yyvsp[-1].node,i); + t = NewLParseType(LPARSE_T_USER); + LParse_typedef_add(t,l); + } + ; + break;} +case 25: +#line 298 "parser.y" +{ + Setattr(yyvsp[-2].node,"name",yyvsp[-1].tok.text); + top = yyvsp[-2].node; + LParse_set_location(yyvsp[-1].tok.text,0); + ; + break;} +case 26: +#line 302 "parser.y" +{ + top = Getattr(top,"parent"); + LParse_set_location(yyvsp[-3].tok.filename,yyvsp[-3].tok.line + 1); + ; + break;} +case 27: +#line 307 "parser.y" +{ yyval.node = new_node("IncludeFile",yyvsp[0].tok.filename,yyvsp[0].tok.line); ; + break;} +case 28: +#line 308 "parser.y" +{ yyval.node = new_node("ExternFile",yyvsp[0].tok.filename,yyvsp[0].tok.line); ; + break;} +case 29: +#line 309 "parser.y" +{ yyval.node = new_node("ImportFile", yyvsp[0].tok.filename,yyvsp[0].tok.line); ; + break;} +case 30: +#line 314 "parser.y" +{ new_node("ReadOnly",yyvsp[0].tok.filename, yyvsp[0].tok.line); ; + break;} +case 31: +#line 315 "parser.y" +{ new_node("ReadWrite",yyvsp[0].tok.filename,yyvsp[0].tok.line); ; + break;} +case 32: +#line 316 "parser.y" +{ swig_rename = Copy(yyvsp[-1].tok.text); ; + break;} +case 33: +#line 316 "parser.y" +{ swig_rename = 0; ; + break;} +case 34: +#line 317 "parser.y" +{ NewObject = 1; ; + break;} +case 35: +#line 317 "parser.y" +{ NewObject = 0; ; + break;} +case 36: +#line 322 "parser.y" +{ + DOH *o = new_node("HeaderBlock",yyvsp[0].tok.filename,yyvsp[0].tok.line); + Setattr(o,"text", yyvsp[0].tok.text); + ; + break;} +case 37: +#line 326 "parser.y" +{ + DOH *o = new_node("WrapperBlock",yyvsp[0].tok.filename,yyvsp[0].tok.line); + Setattr(o,"text",yyvsp[0].tok.text); + ; + break;} +case 38: +#line 330 "parser.y" +{ + DOH *o = new_node("InitBlock",yyvsp[0].tok.filename,yyvsp[0].tok.line); + Setattr(o,"text",yyvsp[0].tok.text); + ; + break;} +case 39: +#line 334 "parser.y" +{ + DOH *pp; + DOH *o = new_node("HeaderBlock",yyvsp[0].tok.filename,yyvsp[0].tok.line); + Setattr(o,"text", yyvsp[0].tok.text); + Seek(yyvsp[0].tok.text,0,SEEK_SET); + pp = Preprocessor_parse(yyvsp[0].tok.text); + Seek(pp,0,SEEK_SET); + LParse_push(pp); + ; + break;} +case 40: +#line 347 "parser.y" +{ + new_node("DocEnable",yyvsp[0].tok.filename,yyvsp[0].tok.line); + ; + break;} +case 41: +#line 350 "parser.y" +{ + new_node("DocDisable",yyvsp[0].tok.filename,yyvsp[0].tok.line); + ; + break;} +case 42: +#line 356 "parser.y" +{ + DOH *o = new_node("Title",yyvsp[-2].tok.filename,yyvsp[-2].tok.line); + Setattr(o,"text",yyvsp[-1].tok.text); + Setattr(o,"parms",yyvsp[0].node); + ; + break;} +case 43: +#line 364 "parser.y" +{ + DOH *o = new_node("Section",yyvsp[-2].tok.filename,yyvsp[-2].tok.line); + Setattr(o,"text",yyvsp[-2].tok.text); + Setattr(o,"parms",yyvsp[0].node); + ; + break;} +case 44: +#line 371 "parser.y" +{ + DOH *o = new_node("SubSection",yyvsp[-2].tok.filename,yyvsp[-2].tok.line); + Setattr(o,"text",yyvsp[-2].tok.text); + Setattr(o,"parms",yyvsp[0].node); + ; + break;} +case 45: +#line 378 "parser.y" +{ + DOH *o = new_node("SubSubSection",yyvsp[-2].tok.filename,yyvsp[-2].tok.line); + Setattr(o,"text",yyvsp[-2].tok.text); + Setattr(o,"parms",yyvsp[0].node); + ; + break;} +case 46: +#line 386 "parser.y" +{ + DOH *o = new_node("Text",yyvsp[-1].tok.filename,yyvsp[-1].tok.line); + Setattr(o,"text",yyvsp[0].tok.text); + ; + break;} +case 47: +#line 392 "parser.y" +{ ; + break;} +case 48: +#line 397 "parser.y" +{ + DOH *o = new_node("Style",yyvsp[-1].tok.filename,yyvsp[-1].tok.line); + Setattr(o,"parms",yyvsp[0].node); + ; + break;} +case 49: +#line 404 "parser.y" +{ + DOH *o = new_node("LocalStyle",yyvsp[-1].tok.filename,yyvsp[-1].tok.line); + Setattr(o,"parms",yyvsp[0].node); + ; + break;} +case 50: +#line 411 "parser.y" +{ + DOH *o; + o = NewHash(); + Setattr(o,"name",yyvsp[-2].tok.text); + Setattr(o,"value",yyvsp[-1].tok.text); + Insert(yyvsp[0].node,0,o); + yyval.node = yyvsp[0].node; + ; + break;} +case 51: +#line 421 "parser.y" +{ + DOH *o; + yyval.node = yyvsp[-3].node; + o = NewHash(); + Setattr(o,"name",yyvsp[-1].tok.text); + Setattr(o,"value",yyvsp[0].tok.text); + ; + break;} +case 52: +#line 428 "parser.y" +{ + yyval.node = NewList(); + ; + break;} +case 53: +#line 433 "parser.y" +{ + yyval.tok = yyvsp[0].tok; + ; + break;} +case 54: +#line 436 "parser.y" +{ + yyval.tok = yyvsp[0].tok; + ; + break;} +case 55: +#line 439 "parser.y" +{ + yyval.tok.text = 0; + ; + break;} +case 56: +#line 444 "parser.y" +{ yyval.tok = yyvsp[0].tok; ; + break;} +case 57: +#line 445 "parser.y" +{ yyval.tok = yyvsp[0].tok; ; + break;} +case 58: +#line 446 "parser.y" +{ yyval.tok = yyvsp[0].tok; ; + break;} +case 59: +#line 452 "parser.y" +{ + DOH *o, *t, *l; + int i; + t = LParse_skip_balanced('{','}'); + for (i = 0; i < Len(yyvsp[-1].node); i++) { + l = Getitem(yyvsp[-1].node,i); + o = new_node("Typemap",yyvsp[-7].tok.filename, yyvsp[-7].tok.line); + Setattr(o,"lang",yyvsp[-5].tok.text); + Setattr(o,"method",yyvsp[-3].tok.text); + Setattr(o,"code",t); + Setattr(o,"name",Getattr(l,"name")); + Setattr(o,"type",Getattr(l,"type")); + Setattr(o,"parms",Getattr(l,"parms")); + } + ; + break;} +case 60: +#line 469 "parser.y" +{ + DOH *o, *t, *l; + int i; + t = LParse_skip_balanced('{','}'); + for (i = 0; i < Len(yyvsp[-1].node); i++) { + l = Getitem(yyvsp[-1].node,i); + o = new_node("Typemap",yyvsp[-5].tok.filename, yyvsp[-5].tok.line); + Setattr(o,"method",yyvsp[-3].tok.text); + Setattr(o,"code",t); + Setattr(o,"name",Getattr(l,"name")); + Setattr(o,"type",Getattr(l,"type")); + Setattr(o,"parms",Getattr(l,"parms")); + } + ; + break;} +case 61: +#line 486 "parser.y" +{ + DOH *o, *l; + int i; + for (i = 0; i < Len(yyvsp[-1].node); i++) { + l = Getitem(yyvsp[-1].node,i); + o = new_node("TypemapClear",yyvsp[-7].tok.filename, yyvsp[-7].tok.line); + Setattr(o,"lang",yyvsp[-5].tok.text); + Setattr(o,"method",yyvsp[-3].tok.text); + Setattr(o,"name",Getattr(l,"name")); + Setattr(o,"type",Getattr(l,"type")); + } + ; + break;} +case 62: +#line 501 "parser.y" +{ + DOH *o, *l; + int i; + for (i = 0; i < Len(yyvsp[-1].node); i++) { + l = Getitem(yyvsp[-1].node,i); + o = new_node("TypemapClear",yyvsp[-5].tok.filename, yyvsp[-5].tok.line); + Setattr(o,"method",yyvsp[-3].tok.text); + Setattr(o,"name",Getattr(l,"name")); + Setattr(o,"type",Getattr(l,"type")); + } + ; + break;} +case 63: +#line 515 "parser.y" +{ + DOH *o, *l; + int i; + for (i = 0; i < Len(yyvsp[-3].node); i++) { + l = Getitem(yyvsp[-3].node,i); + o = new_node("TypemapCopy",yyvsp[-9].tok.filename, yyvsp[-9].tok.line); + Setattr(o,"method", yyvsp[-5].tok.text); + Setattr(o,"lang", yyvsp[-7].tok.text); + Setattr(o,"name", Getattr(l,"name")); + Setattr(o,"type", Getattr(l,"type")); + Setattr(o,"parms",Getattr(l,"parms")); + Setattr(o,"srcname",Getattr(yyvsp[-1].node,"name")); + Setattr(o,"srctype",Getattr(yyvsp[-1].node,"type")); + } + ; + break;} +case 64: +#line 533 "parser.y" +{ + DOH *o, *l; + int i; + for (i = 0; i < Len(yyvsp[-3].node); i++) { + l = Getitem(yyvsp[-3].node,i); + o = new_node("TypemapCopy",yyvsp[-7].tok.filename, yyvsp[-7].tok.line); + Setattr(o,"method", yyvsp[-5].tok.text); + Setattr(o,"name", Getattr(l,"name")); + Setattr(o,"type", Getattr(l,"type")); + Setattr(o,"parms",Getattr(l,"parms")); + Setattr(o,"srcname",Getattr(yyvsp[-1].node,"name")); + Setattr(o,"srctype",Getattr(yyvsp[-1].node,"type")); + } + ; + break;} +case 65: +#line 550 "parser.y" +{ + DOH *o; + o = new_node("Apply",yyvsp[-4].tok.filename, yyvsp[-4].tok.line); + Setattr(o,"name",Getattr(yyvsp[-3].node,"name")); + Setattr(o,"type",Getattr(yyvsp[-3].node,"type")); + Setattr(o,"parms",yyvsp[-1].node); + ; + break;} +case 66: +#line 560 "parser.y" +{ + DOH *o; + o = new_node("ClearApply",yyvsp[-2].tok.filename, yyvsp[-2].tok.line); + Setattr(o,"parms",yyvsp[-1].node); + ; + break;} +case 67: +#line 567 "parser.y" +{ + yyval.tok = yyvsp[0].tok; + ; + break;} +case 68: +#line 570 "parser.y" +{ + yyval.tok.text = NewString("const"); + ; + break;} +case 69: +#line 576 "parser.y" +{ + Append(yyvsp[0].node,yyvsp[-1].node); + yyval.node = yyvsp[0].node; + ; + break;} +case 70: +#line 582 "parser.y" +{ + Append(yyvsp[-1].node,yyvsp[0].node); + yyval.node = yyvsp[0].node; + ; + break;} +case 71: +#line 586 "parser.y" +{ yyval.node = NewList(); ; + break;} +case 72: +#line 589 "parser.y" +{ + yyval.node = NewHash(); + if (yyvsp[0].tmname.array) { + yyvsp[-1].type->is_pointer++; + yyvsp[-1].type->arraystr = Swig_copy_string(Char(yyvsp[0].tmname.array)); + } + Setattr(yyval.node,"type",yyvsp[-1].type); + if (yyvsp[0].tmname.name) + Setattr(yyval.node,"name",yyvsp[0].tmname.name); + if (yyvsp[0].tmname.parms) + Setattr(yyval.node,"parms",yyvsp[0].tmname.parms); + ; + break;} +case 73: +#line 601 "parser.y" +{ + yyval.node = NewHash(); + yyvsp[-2].type->is_pointer += yyvsp[-1].tok.ivalue; + if (yyvsp[0].tmname.array) { + yyvsp[-2].type->is_pointer++; + yyvsp[-2].type->arraystr = Swig_copy_string(Char(yyvsp[0].tmname.array)); + } + Setattr(yyval.node,"type",yyvsp[-2].type); + if (yyvsp[0].tmname.name) + Setattr(yyval.node,"name",yyvsp[0].tmname.name); + if (yyvsp[0].tmname.parms) + Setattr(yyval.node,"parms",yyvsp[0].tmname.parms); + ; + break;} +case 74: +#line 614 "parser.y" +{ + yyval.node = NewHash(); + yyvsp[-2].type->is_reference = 1; + yyvsp[-2].type->is_pointer++; + if (yyvsp[0].tmname.array) { + yyvsp[-2].type->is_pointer++; + yyvsp[-2].type->arraystr = Swig_copy_string(Char(yyvsp[0].tmname.array)); + } + Setattr(yyval.node,"type",yyvsp[-2].type); + if (yyvsp[0].tmname.name) + Setattr(yyval.node,"name",yyvsp[0].tmname.name); + if (yyvsp[0].tmname.parms) + Setattr(yyval.node,"parms",yyvsp[0].tmname.parms); + ; + break;} +case 75: +#line 630 "parser.y" +{ + yyval.tmname.parms = yyvsp[0].node; + yyval.tmname.name = yyvsp[-1].tok.text; + yyval.tmname.array = 0; + ; + break;} +case 76: +#line 635 "parser.y" +{ + yyval.tmname.name = yyvsp[-2].tok.text; + yyval.tmname.array = yyvsp[-1].tok.text; + yyval.tmname.parms = yyvsp[0].node; + ; + break;} +case 77: +#line 640 "parser.y" +{ + yyval.tmname.name = 0; + yyval.tmname.array = yyvsp[-1].tok.text; + yyval.tmname.parms = yyvsp[0].node; + ; + break;} +case 78: +#line 645 "parser.y" +{ + yyval.tmname.name = 0; + yyval.tmname.array = 0; + yyval.tmname.parms = yyvsp[0].node; + ; + break;} +case 79: +#line 652 "parser.y" +{ + yyval.node = yyvsp[-1].node; + ; + break;} +case 80: +#line 655 "parser.y" +{ + yyval.node = 0; + ; + break;} +case 81: +#line 663 "parser.y" +{ + DOH *o, *t; + t = LParse_skip_balanced('{','}'); + o = new_node("Exception",yyvsp[-4].tok.filename,yyvsp[-4].tok.line); + Setattr(o,"lang",yyvsp[-2].tok.text); + Setattr(o,"code",t); + ; + break;} +case 82: +#line 672 "parser.y" +{ + DOH *o, *t; + t = LParse_skip_balanced('{','}'); + o = new_node("Exception",yyvsp[-1].tok.filename,yyvsp[-1].tok.line); + Setattr(o,"code",t); + ; + break;} +case 83: +#line 680 "parser.y" +{ + DOH *o; + o = new_node("ExceptionClear",yyvsp[-4].tok.filename,yyvsp[-4].tok.line); + Setattr(o,"lang",yyvsp[-2].tok.text); + ; + break;} +case 84: +#line 687 "parser.y" +{ + new_node("ExceptionClear",yyvsp[-1].tok.filename,yyvsp[-1].tok.line); + ; + break;} +case 85: +#line 693 "parser.y" +{ + DOH *o = new_node("Pragma",yyvsp[-3].tok.filename,yyvsp[-3].tok.line); + Setattr(o,"name",yyvsp[-2].tok.text); + Setattr(o,"value",yyvsp[-1].tok.text); + ; + break;} +case 86: +#line 698 "parser.y" +{ + DOH *o = new_node("Pragma",yyvsp[-6].tok.filename,yyvsp[-6].tok.line); + Setattr(o,"name",yyvsp[-2].tok.text); + Setattr(o,"lang",yyvsp[-4].tok.text); + Setattr(o,"value",yyvsp[-1].tok.text); + ; + break;} +case 87: +#line 706 "parser.y" +{ + yyval.tok.text = yyvsp[0].tok.text; + ; + break;} +case 88: +#line 709 "parser.y" +{ + yyval.tok.text = 0; + ; + break;} +case 89: +#line 717 "parser.y" +{ + DOH *o = new_node("Native",yyvsp[-1].tok.filename,yyvsp[-1].tok.line); + top = o; + ; + break;} +case 90: +#line 720 "parser.y" +{ + top = Getattr(top,"parent"); + ; + break;} +case 96: +#line 734 "parser.y" +{ LParse_skip_decl(); ; + break;} +case 97: +#line 739 "parser.y" +{ + DOH *o; + Active_type = (LParseType *) Copy(yyvsp[-3].type); + Active_extern = yyvsp[-4].tok.text; + yyvsp[-3].type->is_pointer += yyvsp[-2].decl.is_pointer; + if (yyvsp[-1].tok.text) { + yyvsp[-3].type->is_pointer++; + yyvsp[-3].type->arraystr = Swig_copy_string(Char(yyvsp[-1].tok.text)); + } + yyvsp[-3].type->is_reference = yyvsp[-2].decl.is_reference; + o = new_node("Variable", Getfile(yyvsp[-2].decl.id),Getline(yyvsp[-2].decl.id)); + Setattr(o,"name",yyvsp[-2].decl.id); + Setattr(o,"type",yyvsp[-3].type); + if (yyvsp[-4].tok.ivalue) { + Setattr(o,"extern",yyvsp[-4].tok.text); + } + if (yyvsp[0].tok.text) + Setattr(o,"value",yyvsp[0].tok.text); + + apply_modifier(o); + ; + break;} +case 98: +#line 759 "parser.y" +{ ; + break;} +case 99: +#line 763 "parser.y" +{ + LParse_error(yyvsp[-1].tok.filename,yyvsp[-1].tok.line,"Pointer to function not currently supported.\n"); + LParse_skip_decl(); + ; + break;} +case 100: +#line 772 "parser.y" +{ + DOH *o; + Active_type = (LParseType *) Copy(yyvsp[-5].type); + Active_extern = yyvsp[-6].tok.text; + yyvsp[-5].type->is_pointer += yyvsp[-4].decl.is_pointer; + yyvsp[-5].type->is_reference = yyvsp[-4].decl.is_reference; + o = new_node("Function",Getfile(yyvsp[-4].decl.id),Getline(yyvsp[-4].decl.id)); + Setattr(o,"name",yyvsp[-4].decl.id); + Setattr(o,"type",yyvsp[-5].type); + Setattr(o,"parms",yyvsp[-2].node); + if (yyvsp[-6].tok.ivalue) { + Setattr(o,"extern", yyvsp[-6].tok.text); + } + apply_modifier(o); + ; + break;} +case 101: +#line 786 "parser.y" +{ ; + break;} +case 102: +#line 790 "parser.y" +{ + DOH *o; + Active_type = (LParseType *) Copy(yyvsp[-5].type); + Active_extern = yyvsp[-6].tok.text; + yyvsp[-5].type->is_pointer += yyvsp[-4].decl.is_pointer; + yyvsp[-5].type->is_reference = yyvsp[-4].decl.is_reference; + o = new_node("Function",Getfile(yyvsp[-4].decl.id),Getline(yyvsp[-4].decl.id)); + Setattr(o,"name",yyvsp[-4].decl.id); + Setattr(o,"type",yyvsp[-5].type); + Setattr(o,"parms",yyvsp[-2].node); + if (yyvsp[-6].tok.ivalue) { + Setattr(o,"extern", yyvsp[-6].tok.text); + } + if (yyvsp[0].tok.text) + Setattr(o,"code",yyvsp[0].tok.text); + apply_modifier(o); + ; + break;} +case 103: +#line 810 "parser.y" +{ + DOH *o; + LParseType *t = NewLParseType(LPARSE_T_INT); + Active_type = (LParseType *) Copy(t); + Active_extern = yyvsp[-5].tok.text; + t->is_pointer += yyvsp[-4].decl.is_pointer; + t->is_reference = yyvsp[-4].decl.is_reference; + o = new_node("Function", Getfile(yyvsp[-4].decl.id),Getline(yyvsp[-4].decl.id)); + Setattr(o,"name",yyvsp[-4].decl.id); + Setattr(o,"type",t); + Setattr(o,"parms",yyvsp[-2].node); + if (yyvsp[-5].tok.ivalue) { + Setattr(o,"extern", yyvsp[-5].tok.text); + } + apply_modifier(o); + ; + break;} +case 104: +#line 825 "parser.y" +{ ; + break;} +case 105: +#line 829 "parser.y" +{ + DOH *o; + yyvsp[-5].type->is_pointer += yyvsp[-4].decl.is_pointer; + yyvsp[-5].type->is_reference = yyvsp[-4].decl.is_reference; + o = new_node("Function",Getfile(yyvsp[-4].decl.id),Getline(yyvsp[-4].decl.id)); + Setattr(o,"name",yyvsp[-4].decl.id); + Setattr(o,"type",yyvsp[-5].type); + Setattr(o,"parms",yyvsp[-2].node); + Setattr(o,"inline",NewString("")); + if (yyvsp[0].tok.text) { + Setattr(o,"code",yyvsp[0].tok.text); + } + apply_modifier(o); + ; + break;} +case 106: +#line 847 "parser.y" +{ ; + break;} +case 107: +#line 848 "parser.y" +{ + DOH *o; + LParseType *t = (LParseType *) Copy(Active_type); + t->is_pointer += yyvsp[-2].decl.is_pointer; + if (yyvsp[-1].tok.text) { + t->is_pointer++; + t->arraystr = Swig_copy_string(Char(yyvsp[-1].tok.text)); + } + t->is_reference = yyvsp[-2].decl.is_reference; + o = new_node("Variable", Getfile(yyvsp[-2].decl.id),Getline(yyvsp[-2].decl.id)); + Setattr(o,"name",yyvsp[-2].decl.id); + Setattr(o,"type",t); + if (Active_extern) { + Setattr(o,"extern",Active_extern); + } + if (yyvsp[0].tok.text) + Setattr(o,"value",yyvsp[0].tok.text); + apply_modifier(o); + ; + break;} +case 108: +#line 866 "parser.y" +{ ; + break;} +case 109: +#line 867 "parser.y" +{ + DOH *o; + LParseType *t = (LParseType *) Copy(Active_type); + t->is_pointer += yyvsp[-3].decl.is_pointer; + t->is_reference = yyvsp[-3].decl.is_reference; + o = new_node("Function", Getfile(yyvsp[-3].decl.id), Getline(yyvsp[-3].decl.id)); + Setattr(o,"name",yyvsp[-3].decl.id); + Setattr(o,"parms",yyvsp[-1].node); + Setattr(o,"type", t); + if (Active_extern) { + Setattr(o,"extern",Active_extern); + } + apply_modifier(o); + ; + break;} +case 110: +#line 880 "parser.y" +{ ; + break;} +case 111: +#line 883 "parser.y" +{ + yyval.tok.ivalue = 1; + yyval.tok.text = NewString(""); + ; + break;} +case 112: +#line 887 "parser.y" +{ + yyval.tok.ivalue = 1; + yyval.tok.text = yyvsp[0].tok.text; + ; + break;} +case 113: +#line 891 "parser.y" +{ + yyval.tok.ivalue = 0; + yyval.tok.text = 0; + ; + break;} +case 114: +#line 897 "parser.y" +{ yyval.tok.text = LParse_skip_balanced('{','}'); ; + break;} +case 115: +#line 900 "parser.y" +{; + break;} +case 116: +#line 901 "parser.y" +{ LParse_skip_balanced('(',')'); ; + break;} +case 117: +#line 902 "parser.y" +{; + break;} +case 118: +#line 907 "parser.y" +{ + DOH *o; + o = new_node("Enumeration",yyvsp[-2].tok.filename,yyvsp[-2].tok.line); + Setattr(o,"name",yyvsp[-2].tok.text); + top = o; + ; + break;} +case 119: +#line 912 "parser.y" +{ + LParseType *t; + top = Getattr(top,"parent"); + t = NewLParseType(LPARSE_T_ENUM); + LParse_typedef_add(t,yyvsp[-5].tok.text); + ; + break;} +case 120: +#line 921 "parser.y" +{ + DOH *o; + o = new_node("Enumeration",yyvsp[-2].tok.filename,yyvsp[-2].tok.line); + Setattr(o,"name",yyvsp[-1].tok.text); + top = o; + ; + break;} +case 121: +#line 926 "parser.y" +{ + LParseType *t; + DOH *o2; + top = Getattr(top,"parent"); + t = NewLParseType(LPARSE_T_ENUM); + Active_typedef = (LParseType *) Copy(t); + LParse_typedef_add(t,yyvsp[-5].tok.text); + LParse_typedef_add(t,yyvsp[0].tok.text); + o2 = new_node("Typedef",yyvsp[-7].tok.filename,yyvsp[-7].tok.line); + Setattr(o2,"name",yyvsp[0].tok.text); + Setattr(o2,"type",Copy(t)); + ; + break;} +case 122: +#line 937 "parser.y" +{ ; + break;} +case 123: +#line 942 "parser.y" +{ yyval.tok = yyvsp[0].tok; ; + break;} +case 124: +#line 943 "parser.y" +{ yyval.tok.text = NewString(""); ; + break;} +case 125: +#line 946 "parser.y" +{; + break;} +case 126: +#line 947 "parser.y" +{; + break;} +case 127: +#line 950 "parser.y" +{ + DOH *o = new_node("EnumValue",yyvsp[0].tok.filename,yyvsp[0].tok.line); + Setattr(o,"name",yyvsp[0].tok.text); + Setattr(o,"value",yyvsp[0].tok.text); + ; + break;} +case 128: +#line 955 "parser.y" +{ + DOH *o = new_node("EnumValue",yyvsp[-2].tok.filename,yyvsp[-2].tok.line); + Setattr(o,"name",yyvsp[-2].tok.text); + Setattr(o,"value",yyvsp[-2].tok.text); + ; + break;} +case 129: +#line 960 "parser.y" +{ ; + break;} +case 130: +#line 963 "parser.y" +{ + DOH *o; + Active_typedef = (LParseType *) Copy(yyvsp[-1].type); + yyvsp[-1].type->is_pointer += yyvsp[0].decl.is_pointer; + LParse_typedef_add(yyvsp[-1].type,yyvsp[0].decl.id); + o = new_node("Typedef", yyvsp[-2].tok.filename, yyvsp[-2].tok.line); + Setattr(o,"name", yyvsp[0].decl.id); + Setattr(o,"type", Copy(yyvsp[-1].type)); + ; + break;} +case 131: +#line 971 "parser.y" +{ ; + break;} +case 132: +#line 975 "parser.y" +{ + DOH *o; + LParseType *rt; + rt = NewLParseType(LPARSE_T_FUNCTION); + rt->is_pointer = 1; + strcpy(rt->name,""); + LParse_typedef_add(rt,yyvsp[-5].pname.name); + o = new_node("Typedef", yyvsp[-9].tok.filename, yyvsp[-9].tok.line); + Setattr(o,"name", yyvsp[-5].pname.name); + Setattr(o,"type", Copy(rt)); + Setattr(o,"rettype",yyvsp[-8].type); + Setattr(o,"parms", yyvsp[-2].node); + ; + break;} +case 133: +#line 991 "parser.y" +{ + DOH *o; + LParseType *rt; + rt = NewLParseType(LPARSE_T_FUNCTION); + rt->is_pointer = 1; + strcpy(rt->name,""); + yyvsp[-9].type->is_pointer += yyvsp[-8].tok.ivalue; + LParse_typedef_add(rt,yyvsp[-5].pname.name); + o = new_node("Typedef", yyvsp[-10].tok.filename, yyvsp[-10].tok.line); + Setattr(o,"name", yyvsp[-5].pname.name); + Setattr(o,"type", Copy(rt)); + Setattr(o,"parms", yyvsp[-2].node); + Setattr(o,"rettype", yyvsp[-9].type); + ; + break;} +case 134: +#line 1008 "parser.y" +{ + DOH *o; + Active_typedef = (LParseType *) Copy(yyvsp[-2].type); + yyvsp[-2].type->is_pointer += yyvsp[-1].decl.is_pointer; + yyvsp[-2].type->is_pointer++; + yyvsp[-2].type->arraystr = Swig_copy_string(Char(yyvsp[0].tok.text)); + LParse_typedef_add(yyvsp[-2].type,yyvsp[-1].decl.id); + o = new_node("Typedef", yyvsp[-3].tok.filename, yyvsp[-3].tok.line); + Setattr(o,"name", yyvsp[-1].decl.id); + Setattr(o,"type", Copy(yyvsp[-2].type)); + ; + break;} +case 135: +#line 1018 "parser.y" +{ ; + break;} +case 136: +#line 1021 "parser.y" +{ + if (Active_typedef) { + DOH *o; + LParseType *t; + t = (LParseType *) Copy(Active_typedef); + t->is_pointer += yyvsp[-1].decl.is_pointer; + LParse_typedef_add(t,yyvsp[-1].decl.id); + o = new_node("Typedef", Getfile(yyvsp[-1].decl.id), Getline(yyvsp[-1].decl.id)); + Setattr(o,"name", yyvsp[-1].decl.id); + Setattr(o,"type", t); + } + ; + break;} +case 137: +#line 1033 "parser.y" +{ + DOH *o; + LParseType *t; + t = (LParseType *) Copy(Active_typedef); + t->is_pointer += yyvsp[-1].decl.is_pointer + 1; + t->arraystr = Swig_copy_string(Char(yyvsp[0].tok.text)); + LParse_typedef_add(t,yyvsp[-1].decl.id); + o = new_node("Typedef", Getfile(yyvsp[-1].decl.id), Getline(yyvsp[-1].decl.id)); + Setattr(o,"name", yyvsp[-1].decl.id); + Setattr(o,"type", t); + ; + break;} +case 139: +#line 1052 "parser.y" +{ ; + break;} +case 140: +#line 1053 "parser.y" +{ ; + break;} +case 141: +#line 1056 "parser.y" +{ + LParseType *t; + DOH *o = new_node("Class",yyvsp[-2].tok.filename,yyvsp[-2].tok.line); + Setattr(o,"name",yyvsp[-2].tok.text); + Setattr(o,"bases",yyvsp[-1].node); + Setattr(o,"type",yyvsp[-3].tok.text); + apply_modifier(o); + t = NewLParseType(LPARSE_T_USER); + strcpy(t->name,Char(yyvsp[-2].tok.text)); + LParse_typedef_add(t,yyvsp[-2].tok.text); + LParse_new_scope(0); + if (Cmp(yyvsp[-3].tok.text,"class") == 0) { + cplus_mode = CPLUS_PRIVATE; + } else { + cplus_mode = CPLUS_PUBLIC; + } + top = o; + ; + break;} +case 142: +#line 1073 "parser.y" +{ + dump_nested(yyvsp[-5].tok.text); + Setattr(top,"scope",LParse_collapse_scope(yyvsp[-5].tok.text)); + top = Getattr(top,"parent"); + cplus_mode = CPLUS_PUBLIC; + ; + break;} +case 143: +#line 1082 "parser.y" +{ + LParseType *t; + DOH *o = new_node("Class",yyvsp[-2].tok.filename,yyvsp[-2].tok.line); + Setattr(o,"name",yyvsp[-2].tok.text); + Setattr(o,"bases",yyvsp[-1].node); + Setattr(o,"type",yyvsp[-3].tok.text); + apply_modifier(o); + t = NewLParseType(LPARSE_T_USER); + strcpy(t->name,Char(yyvsp[-2].tok.text)); + LParse_typedef_add(t,yyvsp[-2].tok.text); + LParse_new_scope(0); + if (Cmp(yyvsp[-3].tok.text,"class") == 0) { + cplus_mode = CPLUS_PRIVATE; + } else { + cplus_mode = CPLUS_PUBLIC; + } + top = o; + ; + break;} +case 144: +#line 1099 "parser.y" +{ + DOH *o2; + Active_typedef = NewLParseType(LPARSE_T_USER); + sprintf(Active_typedef->name,"%s %s", Char(yyvsp[-7].tok.text),Char(yyvsp[-6].tok.text)); + Active_typedef->is_pointer = 0; + Active_typedef->implicit_ptr = 0; + /* Create dump nested class code */ + if (yyvsp[0].decl.is_pointer > 0) { + dump_nested(yyvsp[-6].tok.text); + } else { + dump_nested(yyvsp[0].decl.id); + } + Setattr(top,"scope",LParse_collapse_scope(yyvsp[-6].tok.text)); + o2 = top; + top = Getattr(top,"parent"); + /* Create a typedef in global scope */ + if (yyvsp[0].decl.is_pointer == 0) { + LParse_typedef_add((LParseType *) Copy(Active_typedef), yyvsp[0].decl.id); + Setattr(o2,"typedef",yyvsp[0].decl.id); + } else { + LParseType *t = (LParseType *) Copy(Active_typedef); + t->is_pointer += yyvsp[0].decl.is_pointer; + LParse_typedef_add(t,yyvsp[0].decl.id); + } + cplus_mode = CPLUS_PUBLIC; + ; + break;} +case 145: +#line 1124 "parser.y" +{ ; + break;} +case 146: +#line 1128 "parser.y" +{ + DOH *o = new_node("Class",yyvsp[-2].tok.filename,yyvsp[-2].tok.line); + Setattr(o,"type",yyvsp[-1].tok.text); + LParse_new_scope(0); + if (Cmp(yyvsp[-1].tok.text,"class") == 0) { + cplus_mode = CPLUS_PRIVATE; + } else { + cplus_mode = CPLUS_PUBLIC; + } + top = o; + ; + break;} +case 147: +#line 1138 "parser.y" +{ + if (yyvsp[0].decl.is_pointer > 0) { + LParse_error(yyvsp[-6].tok.filename,yyvsp[-6].tok.line,"typedef %s {} *%s not supported correctly. Will be ignored.\n", yyvsp[-5].tok.text, yyvsp[0].decl.id); + Setattr(top,"error",DohNone); + top = Getattr(top,"parent"); + } else { + /* Create a datatype for correctly processing the typedef */ + Active_typedef = NewLParseType(LPARSE_T_USER); + sprintf(Active_typedef->name,"%s",Char(yyvsp[0].decl.id)); + if (yyvsp[0].decl.is_pointer == 0) { + dump_nested(yyvsp[0].decl.id); + } + Setattr(top,"name",yyvsp[0].decl.id); + apply_modifier(top); + Setattr(top,"typedef",yyvsp[0].decl.id); + Setattr(top,"scope",LParse_collapse_scope(0)); + top = Getattr(top,"parent"); + LParse_typedef_add((LParseType *) Copy(Active_typedef),yyvsp[0].decl.id); + } + cplus_mode = CPLUS_PUBLIC; + ; + break;} +case 148: +#line 1158 "parser.y" +{ ; + break;} +case 149: +#line 1161 "parser.y" +{ + yyval.node = yyvsp[0].node; + ; + break;} +case 150: +#line 1164 "parser.y" +{ + yyval.node = 0; + ; + break;} +case 151: +#line 1169 "parser.y" +{ + yyval.node = NewList(); + Append(yyval.node,yyvsp[0].tok.text); + ; + break;} +case 152: +#line 1173 "parser.y" +{ + yyval.node = yyvsp[-2].node; + if (yyvsp[0].tok.text) + Append(yyval.node,yyvsp[0].tok.text); + ; + break;} +case 153: +#line 1180 "parser.y" +{ + LParse_error(yyvsp[0].tok.filename,yyvsp[0].tok.line,"No access specifier given for base class %s (ignored).\n", yyvsp[0].tok.text); + yyval.tok.text = 0; + ; + break;} +case 154: +#line 1184 "parser.y" +{ + LParse_error(yyvsp[0].tok.filename,yyvsp[0].tok.line,"No access specifier given for base class %s (ignored).\n", yyvsp[0].tok.text); + yyval.tok.text = 0; + ; + break;} +case 155: +#line 1188 "parser.y" +{ + if (Cmp(yyvsp[-1].tok.text,"public") == 0) { + yyval.tok = yyvsp[0].tok; + } else { + LParse_error(yyvsp[0].tok.filename,yyvsp[0].tok.line,"%s inheritance not supported (ignored).\n", yyvsp[-1].tok.text); + yyval.tok.text = 0; + } + ; + break;} +case 156: +#line 1196 "parser.y" +{ + if (Cmp(yyvsp[-1].tok.text,"public") == 0) { + yyval.tok = yyvsp[0].tok; + } else { + LParse_error(yyvsp[0].tok.filename,yyvsp[0].tok.line,"%s inheritance not supported (ignored).\n", yyvsp[-1].tok.text); + yyval.tok.text = 0; + } + ; + break;} +case 157: +#line 1204 "parser.y" +{ + if (Cmp(yyvsp[-2].tok.text,"public") == 0) { + yyval.tok = yyvsp[0].tok; + } else { + yyval.tok.text = 0; + LParse_error(yyvsp[0].tok.filename,yyvsp[0].tok.line,"%s inheritance not supported (ignored).\n", yyvsp[-2].tok.text); + } + ; + break;} +case 158: +#line 1214 "parser.y" +{ yyval.tok.text = NewString("public"); ; + break;} +case 159: +#line 1215 "parser.y" +{ yyval.tok.text = NewString("private"); ; + break;} +case 160: +#line 1216 "parser.y" +{ yyval.tok.text = NewString("protected"); ; + break;} +case 161: +#line 1219 "parser.y" +{; + break;} +case 162: +#line 1220 "parser.y" +{ + DOH *o = new_node("AddMethods",yyvsp[-1].tok.filename,yyvsp[-1].tok.line); + top = o; + ; + break;} +case 163: +#line 1223 "parser.y" +{ + top = Getattr(top,"parent"); + ; + break;} +case 164: +#line 1225 "parser.y" +{ ; + break;} +case 165: +#line 1226 "parser.y" +{ + LParse_error(0,0,"Syntax error in class definition.\n"); + LParse_skip_decl(); + ; + break;} +case 166: +#line 1229 "parser.y" +{ ; + break;} +case 167: +#line 1230 "parser.y" +{ ; + break;} +case 168: +#line 1233 "parser.y" +{ + if (cplus_mode == CPLUS_PUBLIC) { + DOH *o = new_node("MemberFunction",yyvsp[-3].tok.filename,yyvsp[-3].tok.line); + Setattr(o,"name",yyvsp[-4].decl.id); + yyvsp[-5].type->is_pointer += yyvsp[-4].decl.is_pointer; + yyvsp[-5].type->is_reference = yyvsp[-4].decl.is_reference; + Setattr(o,"type",yyvsp[-5].type); + Setattr(o,"parms",yyvsp[-2].node); + Setattr(o,"code",yyvsp[0].tok.text); + apply_modifier(o); + } + ; + break;} +case 169: +#line 1246 "parser.y" +{ + if (cplus_mode == CPLUS_PUBLIC) { + DOH *o = new_node("MemberFunction",yyvsp[-3].tok.filename,yyvsp[-3].tok.line); + Setattr(o,"name",yyvsp[-4].decl.id); + yyvsp[-5].type->is_pointer += yyvsp[-4].decl.is_pointer; + yyvsp[-5].type->is_reference = yyvsp[-4].decl.is_reference; + Setattr(o,"type",yyvsp[-5].type); + Setattr(o,"parms",yyvsp[-2].node); + Setattr(o,"code",yyvsp[0].tok.text); + apply_modifier(o); + } + ; + break;} +case 170: +#line 1260 "parser.y" +{ + if (cplus_mode == CPLUS_PUBLIC) { + DOH *o = new_node("Constructor", yyvsp[-3].tok.filename, yyvsp[-3].tok.line); + Setattr(o,"name",yyvsp[-4].tok.text); + Setattr(o,"parms",yyvsp[-2].node); + Setattr(o,"code",yyvsp[0].tok.text); + apply_modifier(o); + } + ; + break;} +case 171: +#line 1272 "parser.y" +{ + if (cplus_mode == CPLUS_PUBLIC) { + DOH *o = new_node("Destructor",yyvsp[-4].tok.filename,yyvsp[-4].tok.line); + Setattr(o,"name",yyvsp[-5].tok.text); + Setattr(o,"parms",yyvsp[-2].node); + Setattr(o,"code",yyvsp[0].tok.text); + apply_modifier(o); + } + ; + break;} +case 172: +#line 1282 "parser.y" +{ + if (cplus_mode == CPLUS_PUBLIC) { + DOH *o = new_node("Destructor",yyvsp[-4].tok.filename,yyvsp[-4].tok.line); + Setattr(o,"name",yyvsp[-5].tok.text); + Setattr(o,"parms",yyvsp[-2].node); + Setattr(o,"code",yyvsp[0].tok.text); + apply_modifier(o); + } + ; + break;} +case 173: +#line 1294 "parser.y" +{ + if (cplus_mode == CPLUS_PUBLIC) { + DOH *o = new_node("MemberData",Getfile(yyvsp[-1].decl.id),Getline(yyvsp[-1].decl.id)); + Active_type = (LParseType *) Copy(yyvsp[-2].type); + yyvsp[-2].type->is_pointer += yyvsp[-1].decl.is_pointer; + yyvsp[-2].type->is_reference = yyvsp[-1].decl.is_reference; + Setattr(o,"name",yyvsp[-1].decl.id); + Setattr(o,"type",yyvsp[-2].type); + Setattr(o,"value",yyvsp[0].tok.text); + apply_modifier(o); + } + ; + break;} +case 174: +#line 1305 "parser.y" +{ ; + break;} +case 175: +#line 1307 "parser.y" +{ + if (cplus_mode == CPLUS_PUBLIC) { + DOH *o = new_node("MemberData",Getfile(yyvsp[-2].decl.id),Getline(yyvsp[-2].decl.id)); + Active_type = (LParseType *) Copy(yyvsp[-3].type); + yyvsp[-3].type->is_pointer += yyvsp[-2].decl.is_pointer; + yyvsp[-3].type->is_reference = yyvsp[-2].decl.is_reference; + if (yyvsp[-1].tok.text) { + yyvsp[-3].type->arraystr = Swig_copy_string(Char(yyvsp[-1].tok.text)); + yyvsp[-3].type->is_pointer++; + } + Setattr(o,"name",yyvsp[-2].decl.id); + Setattr(o,"type",yyvsp[-3].type); + Setattr(o,"value",yyvsp[-1].tok.text); + apply_modifier(o); + } + ; + break;} +case 176: +#line 1326 "parser.y" +{ + if (cplus_mode == CPLUS_PUBLIC) { + DOH *o; + Active_type = (LParseType *) Copy(yyvsp[-1].type); + yyvsp[-1].type->is_pointer += yyvsp[0].decl.is_pointer; + yyvsp[-1].type->is_reference = yyvsp[0].decl.is_reference; + o = new_node("StaticMemberData",yyvsp[-2].tok.filename, yyvsp[-2].tok.line); + Setattr(o,"name",yyvsp[0].decl.id); + Setattr(o,"type",yyvsp[-1].type); + apply_modifier(o); + } + ; + break;} +case 177: +#line 1337 "parser.y" +{ ; + break;} +case 178: +#line 1341 "parser.y" +{ + if (cplus_mode == CPLUS_PUBLIC) { + DOH *o = new_node("StaticMemberFunction",yyvsp[-6].tok.filename,yyvsp[-6].tok.line); + yyvsp[-5].type->is_pointer += yyvsp[-4].decl.is_pointer; + yyvsp[-5].type->is_reference = yyvsp[-4].decl.is_reference; + Setattr(o,"name",yyvsp[-4].decl.id); + apply_modifier(o); + Setattr(o,"type",yyvsp[-5].type); + Setattr(o,"parms",yyvsp[-2].node); + Setattr(o,"code",yyvsp[0].tok.text); + } + ; + break;} +case 179: +#line 1356 "parser.y" +{ cplus_mode = CPLUS_PUBLIC; ; + break;} +case 180: +#line 1360 "parser.y" +{ cplus_mode = CPLUS_PRIVATE; ; + break;} +case 181: +#line 1364 "parser.y" +{ cplus_mode = CPLUS_PRIVATE; ; + break;} +case 182: +#line 1366 "parser.y" +{ ; + break;} +case 183: +#line 1368 "parser.y" +{ + DOH *o; + o = new_node("Enumeration",yyvsp[-1].tok.filename,yyvsp[-1].tok.line); + Setattr(o,"name",yyvsp[-1].tok.text); + top = o; + ; + break;} +case 184: +#line 1373 "parser.y" +{ + LParseType *t; + top = Getattr(top,"parent"); + t = NewLParseType(LPARSE_T_ENUM); + LParse_typedef_add(t,yyvsp[-4].tok.text); + ; + break;} +case 185: +#line 1381 "parser.y" +{ + LParse_skip_decl(); + ; + break;} +case 186: +#line 1386 "parser.y" +{ + LParse_skip_decl(); + ; + break;} +case 187: +#line 1391 "parser.y" +{ ; + break;} +case 188: +#line 1395 "parser.y" +{ ; + break;} +case 189: +#line 1411 "parser.y" +{ + yyvsp[0].tok.text = LParse_skip_balanced('{','}'); + ; + break;} +case 190: +#line 1413 "parser.y" +{ + if (cplus_mode == CPLUS_PUBLIC) { + LParseType *t = NewLParseType(LPARSE_T_USER); + strcpy(t->name,Char(yyvsp[-4].tok.text)); + LParse_typedef_add(t,yyvsp[-4].tok.text); + if (yyvsp[-1].decl.id) { + if (Cmp(yyvsp[-5].tok.text,"class") == 0) { + LParse_error(yyvsp[-4].tok.filename,yyvsp[-4].tok.line,"Nested classes not currently supported (ignored).\n"); + /* Generate some code for a new class */ + } else { + DOH *s; + DOH *n = NewHash(); + s = NewString(""); + Printf(s,"typedef %s %s $classname_%s;\n", yyvsp[-5].tok.text,yyvsp[-3].tok.text,yyvsp[-1].decl.id); + Setattr(n,"code",s); + Setattr(n,"name",yyvsp[-1].decl.id); + t = (LParseType *) Copy(t); + t->is_pointer = yyvsp[-1].decl.is_pointer; + t->is_reference = yyvsp[-1].decl.is_reference; + Setattr(n,"type",t); + Append(nested,n); + } + } + } + ; + break;} +case 191: +#line 1439 "parser.y" +{ + yyvsp[0].tok.text = LParse_skip_balanced('{','}'); + ; + break;} +case 192: +#line 1441 "parser.y" +{ + if (cplus_mode == CPLUS_PUBLIC) { + if (yyvsp[-1].decl.id) { + if (Cmp(yyvsp[-4].tok.text,"class") == 0) { + LParse_error(yyvsp[-3].tok.filename,yyvsp[-3].tok.line, "Nested classes not currently supported (ignored).\n"); + /* Generate some code for a new class */ + } else { + DOH *s; + LParseType *t; + DOH *n = NewHash(); + s = NewString(""); + Printf(s,"typedef %s %s $classname_%s;\n", yyvsp[-4].tok.text,yyvsp[-3].tok.text,yyvsp[-1].decl.id); + Setattr(n,"code",s); + Setattr(n,"name",yyvsp[-1].decl.id); + t = NewLParseType(LPARSE_T_USER); + t->is_pointer = yyvsp[-1].decl.is_pointer; + t->is_reference = yyvsp[-1].decl.is_reference; + Setattr(n,"type",t); + Append(nested,n); + } + } + } + ; + break;} +case 193: +#line 1466 "parser.y" +{ yyval.decl = yyvsp[0].decl;; + break;} +case 194: +#line 1467 "parser.y" +{ yyval.decl.id = 0; ; + break;} +case 195: +#line 1470 "parser.y" +{ ; + break;} +case 196: +#line 1471 "parser.y" +{ + if (cplus_mode == CPLUS_PUBLIC) { + DOH *o = new_node("MemberData",yyvsp[-2].tok.filename,yyvsp[-2].tok.line); + LParseType *t = (LParseType *) Copy(Active_type); + t->is_pointer += yyvsp[-1].decl.is_pointer; + t->is_reference = yyvsp[-1].decl.is_reference; + Setattr(o,"name", yyvsp[-1].decl.id); + Setattr(o,"type",t); + Setattr(o,"value",yyvsp[0].tok.text); + apply_modifier(o); + } + ; + break;} +case 197: +#line 1482 "parser.y" +{ ; + break;} +case 198: +#line 1483 "parser.y" +{ + if (cplus_mode == CPLUS_PUBLIC) { + DOH *o = new_node("MemberData",yyvsp[-3].tok.filename,yyvsp[-3].tok.line); + LParseType *t = (LParseType *) Copy(Active_type); + t->is_pointer += yyvsp[-2].decl.is_pointer; + t->is_reference = yyvsp[-2].decl.is_reference; + if (yyvsp[-1].tok.text) { + t->arraystr = Swig_copy_string(Char(yyvsp[-1].tok.text)); + t->is_pointer++; + } + Setattr(o,"name",yyvsp[-2].decl.id); + Setattr(o,"type",t); + Setattr(o,"value",yyvsp[-1].tok.text); + apply_modifier(o); + } + ; + break;} +case 199: +#line 1498 "parser.y" +{ ; + break;} +case 200: +#line 1501 "parser.y" +{ + yyval.tok.text = 0; + ; + break;} +case 201: +#line 1504 "parser.y" +{ + yyval.tok.text = LParse_skip_balanced('{','}'); + ; + break;} +case 202: +#line 1509 "parser.y" +{; + break;} +case 203: +#line 1510 "parser.y" +{; + break;} +case 204: +#line 1511 "parser.y" +{; + break;} +case 205: +#line 1516 "parser.y" +{ yyval.tok.text = 0; ; + break;} +case 206: +#line 1517 "parser.y" +{ yyval.tok.text = LParse_skip_balanced('{','}'); ; + break;} +case 207: +#line 1520 "parser.y" +{; + break;} +case 208: +#line 1521 "parser.y" +{; + break;} +case 209: +#line 1524 "parser.y" +{ ; + break;} +case 210: +#line 1525 "parser.y" +{ ; + break;} +case 211: +#line 1528 "parser.y" +{ LParse_skip_balanced('(',')'); ; + break;} +case 212: +#line 1534 "parser.y" +{ + DOH *o = new_node("ClassDecl",yyvsp[0].tok.filename,yyvsp[0].tok.line); + Setattr(o,"name",yyvsp[-1].tok.text); + ; + break;} +case 213: +#line 1541 "parser.y" +{ + LParse_skip_decl(); + ; + break;} +case 214: +#line 1546 "parser.y" +{ + LParse_skip_decl(); + ; + break;} +case 215: +#line 1552 "parser.y" +{ + DOH *o = new_node("AddMethods",yyvsp[0].tok.filename, yyvsp[0].tok.line); + Setattr(o,"name",yyvsp[-1].tok.text); + cplus_mode = CPLUS_PUBLIC; + top = o; + ; + break;} +case 216: +#line 1557 "parser.y" +{ + top = Getattr(top,"parent"); + ; + break;} +case 217: +#line 1568 "parser.y" +{ + Insert(yyvsp[0].node,0,yyvsp[-1].node); + yyval.node = yyvsp[0].node; + ; + break;} +case 218: +#line 1572 "parser.y" +{ yyval.node = NewList(); ; + break;} +case 219: +#line 1575 "parser.y" +{ + Insert(yyvsp[0].node,0,yyvsp[-1].node); + yyval.node = yyvsp[0].node; + ; + break;} +case 220: +#line 1579 "parser.y" +{ yyval.node = NewList(); ; + break;} +case 221: +#line 1582 "parser.y" +{ + yyval.node = NewHash(); + Setattr(yyval.node,"name",yyvsp[0].pname.name); + if (yyvsp[0].pname.array) { + yyvsp[-1].type->is_pointer++; + yyvsp[-1].type->arraystr = Swig_copy_string(Char(yyvsp[0].pname.array)); + } + if (yyvsp[0].pname.value) + Setattr(yyval.node,"value",yyvsp[0].pname.value); + Setattr(yyval.node,"type",yyvsp[-1].type); + ; + break;} +case 222: +#line 1593 "parser.y" +{ + yyval.node = NewHash(); + Setattr(yyval.node,"name",yyvsp[0].pname.name); + yyvsp[-2].type->is_pointer += yyvsp[-1].tok.ivalue; + if (yyvsp[0].pname.array) { + yyvsp[-2].type->is_pointer++; + yyvsp[-2].type->arraystr = Swig_copy_string(Char(yyvsp[0].pname.array)); + } + if (yyvsp[0].pname.value) { + Setattr(yyval.node,"value",yyvsp[0].pname.value); + } + Setattr(yyval.node,"type",yyvsp[-2].type); + ; + break;} +case 223: +#line 1606 "parser.y" +{ + yyval.node = NewHash(); + yyvsp[-2].type->is_reference = 1; + yyvsp[-2].type->is_pointer++; + Setattr(yyval.node,"name",yyvsp[0].pname.name); + if (yyvsp[0].pname.array) { + yyvsp[-2].type->is_pointer++; + yyvsp[-2].type->arraystr = Swig_copy_string(Char(yyvsp[0].pname.array)); + } + if (yyvsp[0].pname.value) { + Setattr(yyval.node,"value",yyvsp[0].pname.value); + } + Setattr(yyval.node,"type",yyvsp[-2].type); + ; + break;} +case 224: +#line 1620 "parser.y" +{ + yyval.node = NewHash(); + yyvsp[-7].type->type = LPARSE_T_FUNCTION; + yyvsp[-7].type->is_pointer += yyvsp[-5].tok.ivalue; + strcpy(yyvsp[-7].type->name,""); + Setattr(yyval.node,"name",yyvsp[-4].pname.name); + if (yyvsp[-4].pname.value) + Setattr(yyval.node,"value",yyvsp[-4].pname.value); + Setattr(yyval.node,"type",yyvsp[-7].type); + ; + break;} +case 225: +#line 1630 "parser.y" +{ + LParseType *t; + yyval.node = NewHash(); + Setattr(yyval.node,"name","..."); + t = NewLParseType(LPARSE_T_VARARGS); + Setattr(yyval.node,"type",t); + ; + break;} +case 226: +#line 1639 "parser.y" +{ + yyval.pname.name = yyvsp[-1].tok.text; + yyval.pname.value = yyvsp[0].tok.text; + yyval.pname.array = 0; + ; + break;} +case 227: +#line 1644 "parser.y" +{ + yyval.pname.name = yyvsp[-1].tok.text; + yyval.pname.value = 0; + yyval.pname.array = yyvsp[0].tok.text; + ; + break;} +case 228: +#line 1649 "parser.y" +{ + yyval.pname.name = NewString(""); + yyval.pname.value = 0; + yyval.pname.array = yyvsp[0].tok.text; + ; + break;} +case 229: +#line 1654 "parser.y" +{ + yyval.pname.name = NewString(""); + yyval.pname.value = 0; + yyval.pname.array = 0; + ; + break;} +case 230: +#line 1661 "parser.y" +{ yyval.tok = yyvsp[0].tok; ; + break;} +case 231: +#line 1662 "parser.y" +{ + yyval.tok.text = NewString(""); + Printf(yyval.tok.text,"&%s",yyvsp[0].tok.text); + yyval.tok.ivalue = LPARSE_T_USER; + ; + break;} +case 232: +#line 1667 "parser.y" +{ + LParse_skip_balanced('{','}'); + yyval.tok.text = 0; + yyval.tok.ivalue = 0; + ; + break;} +case 233: +#line 1672 "parser.y" +{ + yyval.tok.text = 0; + yyval.tok.ivalue = 0; + ; + break;} +case 234: +#line 1680 "parser.y" +{ yyval.decl.id = yyvsp[0].tok.text; + yyval.decl.is_pointer = 0; + yyval.decl.is_reference = 0; + ; + break;} +case 235: +#line 1684 "parser.y" +{ + yyval.decl.id = yyvsp[0].tok.text; + yyval.decl.is_pointer = yyvsp[-1].tok.ivalue; + yyval.decl.is_reference = 0; + ; + break;} +case 236: +#line 1689 "parser.y" +{ + yyval.decl.id = yyvsp[0].tok.text; + yyval.decl.is_pointer = 1; + yyval.decl.is_reference = 1; + ; + break;} +case 237: +#line 1696 "parser.y" +{ yyval.tok.ivalue = 1; ; + break;} +case 238: +#line 1697 "parser.y" +{ yyval.tok.ivalue = yyvsp[0].tok.ivalue + 1;; + break;} +case 239: +#line 1700 "parser.y" +{ + yyval.tok.ivalue = yyvsp[0].tok.ivalue + 1; + yyval.tok.text = NewString("[]"); + Append(yyval.tok.text,yyvsp[0].tok.text); + ; + break;} +case 240: +#line 1705 "parser.y" +{ + yyval.tok.ivalue = yyvsp[0].tok.ivalue + 1; + yyval.tok.text = NewString(""); + Printf(yyval.tok.text,"[%s]",yyvsp[-2].tok.text); + ; + break;} +case 241: +#line 1711 "parser.y" +{ + yyval.tok = yyvsp[0].tok; + ; + break;} +case 242: +#line 1714 "parser.y" +{ yyval.tok.ivalue = 0; + yyval.tok.text = 0; + ; + break;} +case 243: +#line 1720 "parser.y" +{ yyval.type = NewLParseType(LPARSE_T_INT); ; + break;} +case 244: +#line 1721 "parser.y" +{ yyval.type = NewLParseType(LPARSE_T_SHORT); ; + break;} +case 245: +#line 1722 "parser.y" +{ yyval.type = NewLParseType(LPARSE_T_LONG); ; + break;} +case 246: +#line 1723 "parser.y" +{ yyval.type = NewLParseType(LPARSE_T_CHAR); ; + break;} +case 247: +#line 1724 "parser.y" +{ yyval.type = NewLParseType(LPARSE_T_BOOL); ; + break;} +case 248: +#line 1725 "parser.y" +{ yyval.type = NewLParseType(LPARSE_T_FLOAT); ; + break;} +case 249: +#line 1726 "parser.y" +{ yyval.type = NewLParseType(LPARSE_T_DOUBLE); ; + break;} +case 250: +#line 1727 "parser.y" +{ yyval.type = NewLParseType(LPARSE_T_VOID); ; + break;} +case 251: +#line 1728 "parser.y" +{ + if (yyvsp[0].type) yyval.type = yyvsp[0].type; + else { + yyval.type = NewLParseType(LPARSE_T_INT); + strcpy(yyval.type->name,"signed"); + } + ; + break;} +case 252: +#line 1735 "parser.y" +{ + if (yyvsp[0].type) yyval.type = yyvsp[0].type; + else { + yyval.type = NewLParseType(LPARSE_T_UINT); + strcpy(yyval.type->name,"unsigned"); + } + ; + break;} +case 253: +#line 1742 "parser.y" +{ + yyval.type = NewLParseType(LPARSE_T_USER); + if (yyvsp[0].tok.text) { + sprintf(yyval.type->name,"%s%s",Char(yyvsp[-1].tok.text),Char(yyvsp[0].tok.text)); + } else { + sprintf(yyval.type->name,"%s",Char(yyvsp[-1].tok.text)); + } + if (!LParse_typedef_check(yyvsp[-1].tok.text)) { + LParse_error(Getfile(yyvsp[-1].tok.text), Getline(yyvsp[-1].tok.text), "Warning: '%s' used as a typename, but not defined as a type.\n", yyvsp[-1].tok.text); + } + + LParse_typedef_resolve(yyval.type,0); + ; + break;} +case 254: +#line 1755 "parser.y" +{ + yyval.type = yyvsp[0].type; + yyval.type->qualifier = Swig_copy_string("const"); + ; + break;} +case 255: +#line 1759 "parser.y" +{ + yyval.type = NewLParseType(LPARSE_T_USER); + sprintf(yyval.type->name,"%s %s",Char(yyvsp[-1].tok.text), Char(yyvsp[0].tok.text)); + ; + break;} +case 256: +#line 1763 "parser.y" +{ + yyval.type = NewLParseType(LPARSE_T_USER); + sprintf(yyval.type->name,"%s::%s",Char(yyvsp[-2].tok.text),Char(yyvsp[0].tok.text)); + LParse_typedef_resolve(yyval.type,0); + ; + break;} +case 257: +#line 1769 "parser.y" +{ + yyval.type = NewLParseType(LPARSE_T_USER); + sprintf(yyval.type->name,"%s", Char(yyvsp[0].tok.text)); + LParse_typedef_resolve(yyval.type,1); + ; + break;} +case 258: +#line 1774 "parser.y" +{ + yyval.type = NewLParseType(LPARSE_T_ENUM); + sprintf(yyval.type->name,"enum %s", Char(yyvsp[0].tok.text)); + /* LParse_typedef_resolve($$,1);*/ + /* $$->typedef_resolve(1); */ + ; + break;} +case 259: +#line 1783 "parser.y" +{ yyval.type = NewLParseType(LPARSE_T_INT); ; + break;} +case 260: +#line 1784 "parser.y" +{ yyval.type = NewLParseType(LPARSE_T_SHORT); ; + break;} +case 261: +#line 1785 "parser.y" +{ yyval.type = NewLParseType(LPARSE_T_LONG); ; + break;} +case 262: +#line 1786 "parser.y" +{ yyval.type = NewLParseType(LPARSE_T_CHAR); ; + break;} +case 263: +#line 1787 "parser.y" +{ yyval.type = NewLParseType(LPARSE_T_BOOL); ; + break;} +case 264: +#line 1788 "parser.y" +{ yyval.type = NewLParseType(LPARSE_T_FLOAT); ; + break;} +case 265: +#line 1789 "parser.y" +{ yyval.type = NewLParseType(LPARSE_T_DOUBLE); ; + break;} +case 266: +#line 1790 "parser.y" +{ yyval.type = NewLParseType(LPARSE_T_VOID); ; + break;} +case 267: +#line 1791 "parser.y" +{ + if (yyvsp[0].type) yyval.type = yyvsp[0].type; + else { + yyval.type = NewLParseType(LPARSE_T_INT); + strcpy(yyval.type->name,"signed"); + } + ; + break;} +case 268: +#line 1798 "parser.y" +{ + if (yyvsp[0].type) yyval.type = yyvsp[0].type; + else { + yyval.type = NewLParseType(LPARSE_T_UINT); + strcpy(yyval.type->name,"unsigned"); + } + ; + break;} +case 269: +#line 1805 "parser.y" +{ + yyval.type = NewLParseType(LPARSE_T_USER); + if (yyvsp[0].tok.text) { + sprintf(yyval.type->name,"%s%s",Char(yyvsp[-1].tok.text),Char(yyvsp[0].tok.text)); + } else { + sprintf(yyval.type->name,"%s",Char(yyvsp[-1].tok.text)); + } + LParse_typedef_resolve(yyval.type,0); + ; + break;} +case 270: +#line 1814 "parser.y" +{ + yyval.type = yyvsp[0].type; + yyval.type->qualifier = Swig_copy_string("const"); + ; + break;} +case 271: +#line 1818 "parser.y" +{ + yyval.type = NewLParseType(LPARSE_T_USER); + sprintf(yyval.type->name,"%s %s",Char(yyvsp[-1].tok.text), Char(yyvsp[0].tok.text)); + ; + break;} +case 272: +#line 1822 "parser.y" +{ + yyval.type = NewLParseType(LPARSE_T_ENUM); + sprintf(yyval.type->name,"enum %s", Char(yyvsp[0].tok.text)); + /* LParse_typedef_resolve($$,1);*/ + /* $$->typedef_resolve(1); */ + ; + break;} +case 273: +#line 1830 "parser.y" +{ + yyval.tok.text = LParse_skip_balanced('<','>'); + ; + break;} +case 274: +#line 1833 "parser.y" +{ yyval.tok.text = 0; ; + break;} +case 275: +#line 1837 "parser.y" +{ yyval.type = 0; ; + break;} +case 276: +#line 1838 "parser.y" +{ + yyval.type = NewLParseType(LPARSE_T_INT); + strcpy(yyval.type->name,"signed int"); + ; + break;} +case 277: +#line 1842 "parser.y" +{ + yyval.type = NewLParseType(LPARSE_T_SHORT); + strcpy(yyval.type->name,"signed short"); + ; + break;} +case 278: +#line 1846 "parser.y" +{ + yyval.type = NewLParseType(LPARSE_T_LONG); + strcpy(yyval.type->name,"signed long"); + ; + break;} +case 279: +#line 1850 "parser.y" +{ + yyval.type = NewLParseType(LPARSE_T_SCHAR); + ; + break;} +case 280: +#line 1857 "parser.y" +{ yyval.type = 0;; + break;} +case 281: +#line 1858 "parser.y" +{ + yyval.type = NewLParseType(LPARSE_T_UINT); + strcpy(yyval.type->name,"unsigned int"); + ; + break;} +case 282: +#line 1862 "parser.y" +{ + yyval.type = NewLParseType(LPARSE_T_USHORT); + strcpy(yyval.type->name,"unsigned short"); + ; + break;} +case 283: +#line 1866 "parser.y" +{ + yyval.type = NewLParseType(LPARSE_T_ULONG); + strcpy(yyval.type->name, "unsigned long"); + ; + break;} +case 284: +#line 1870 "parser.y" +{ + yyval.type = NewLParseType(LPARSE_T_UCHAR); + ; + break;} +case 285: +#line 1875 "parser.y" +{ ; + break;} +case 286: +#line 1876 "parser.y" +{ ; + break;} +case 287: +#line 1879 "parser.y" +{ yyval.tok = yyvsp[0].tok; ; + break;} +case 288: +#line 1880 "parser.y" +{ yyval.tok = yyvsp[0].tok; ; + break;} +case 289: +#line 1881 "parser.y" +{ yyval.tok = yyvsp[0].tok; ; + break;} +case 290: +#line 1888 "parser.y" +{ + yyval.tok = yyvsp[0].tok; + ; + break;} +case 291: +#line 1891 "parser.y" +{ + yyval.tok.text = yyvsp[0].tok.text; + yyval.tok.ivalue = LPARSE_T_STRING; + ; + break;} +case 292: +#line 1897 "parser.y" +{ + yyval.tok.text = yyvsp[0].tok.text; + yyval.tok.ivalue = LPARSE_T_INT; + ; + break;} +case 293: +#line 1901 "parser.y" +{ + yyval.tok.text = yyvsp[0].tok.text; + yyval.tok.ivalue = LPARSE_T_DOUBLE; + ; + break;} +case 294: +#line 1905 "parser.y" +{ + yyval.tok.text = yyvsp[0].tok.text; + yyval.tok.ivalue = LPARSE_T_UINT; + ; + break;} +case 295: +#line 1909 "parser.y" +{ + yyval.tok.text = yyvsp[0].tok.text; + yyval.tok.ivalue = LPARSE_T_LONG; + ; + break;} +case 296: +#line 1913 "parser.y" +{ + yyval.tok.text = yyvsp[0].tok.text; + yyval.tok.ivalue = LPARSE_T_ULONG; + ; + break;} +case 297: +#line 1917 "parser.y" +{ + yyval.tok.text = NewString(""); + Printf(yyval.tok.text,"\'%s\'", yyvsp[0].tok.text); + yyval.tok.ivalue = LPARSE_T_CHAR; + ; + break;} +case 298: +#line 1922 "parser.y" +{ + yyval.tok.text = NewString("sizeof("); + Append(yyval.tok.text,LParse_skip_balanced('(',')')); + yyval.tok.ivalue = LPARSE_T_INT; + ; + break;} +case 299: +#line 1952 "parser.y" +{ + yyval.tok.text = NewString(""); + Printf(yyval.tok.text,"%s+%s", yyvsp[-2].tok.text,yyvsp[0].tok.text); + yyval.tok.ivalue = promote(yyvsp[-2].tok.ivalue,yyvsp[0].tok.ivalue); + ; + break;} +case 300: +#line 1957 "parser.y" +{ + yyval.tok.text = NewString(""); + Printf(yyval.tok.text,"%s-%s", yyvsp[-2].tok.text,yyvsp[0].tok.text); + yyval.tok.ivalue = promote(yyvsp[-2].tok.ivalue,yyvsp[0].tok.ivalue); + ; + break;} +case 301: +#line 1962 "parser.y" +{ + yyval.tok.text = NewString(""); + Printf(yyval.tok.text,"%s*%s", yyvsp[-2].tok.text,yyvsp[0].tok.text); + yyval.tok.ivalue = promote(yyvsp[-2].tok.ivalue,yyvsp[0].tok.ivalue); + ; + break;} +case 302: +#line 1967 "parser.y" +{ + yyval.tok.text = NewString(""); + Printf(yyval.tok.text,"%s/%s", yyvsp[-2].tok.text,yyvsp[0].tok.text); + yyval.tok.ivalue = promote(yyvsp[-2].tok.ivalue,yyvsp[0].tok.ivalue); + ; + break;} +case 303: +#line 1972 "parser.y" +{ + yyval.tok.text = NewString(""); + Printf(yyval.tok.text,"%s&%s", yyvsp[-2].tok.text,yyvsp[0].tok.text); + yyval.tok.ivalue = promote(yyvsp[-2].tok.ivalue,yyvsp[0].tok.ivalue); + if ((yyvsp[-2].tok.ivalue == LPARSE_T_DOUBLE) || (yyvsp[0].tok.ivalue == LPARSE_T_DOUBLE)) { + LParse_error(yyvsp[-1].tok.filename,yyvsp[-1].tok.line,"Type error in constant expression (expecting integers).\n"); + } + ; + break;} +case 304: +#line 1980 "parser.y" +{ + yyval.tok.text = NewString(""); + Printf(yyval.tok.text,"%s|%s", yyvsp[-2].tok.text,yyvsp[0].tok.text); + yyval.tok.ivalue = promote(yyvsp[-2].tok.ivalue,yyvsp[0].tok.ivalue); + if ((yyvsp[-2].tok.ivalue == LPARSE_T_DOUBLE) || (yyvsp[0].tok.ivalue == LPARSE_T_DOUBLE)) { + LParse_error(yyvsp[-1].tok.filename,yyvsp[-1].tok.line,"Type error in constant expression (expecting integers).\n"); + } + yyval.tok.ivalue = LPARSE_T_INT; + ; + break;} +case 305: +#line 1989 "parser.y" +{ + yyval.tok.text = NewString(""); + Printf(yyval.tok.text,"%s^%s", yyvsp[-2].tok.text,yyvsp[0].tok.text); + yyval.tok.ivalue = promote(yyvsp[-2].tok.ivalue,yyvsp[0].tok.ivalue); + if ((yyvsp[-2].tok.ivalue == LPARSE_T_DOUBLE) || (yyvsp[0].tok.ivalue == LPARSE_T_DOUBLE)) { + LParse_error(yyvsp[-1].tok.filename,yyvsp[-1].tok.line,"Type error in constant expression (expecting integers).\n"); + } + yyval.tok.ivalue = LPARSE_T_INT; + ; + break;} +case 306: +#line 1998 "parser.y" +{ + yyval.tok.text = NewString(""); + Printf(yyval.tok.text,"%s<<%s", yyvsp[-2].tok.text,yyvsp[0].tok.text); + yyval.tok.ivalue = promote(yyvsp[-2].tok.ivalue,yyvsp[0].tok.ivalue); + if ((yyvsp[-2].tok.ivalue == LPARSE_T_DOUBLE) || (yyvsp[0].tok.ivalue == LPARSE_T_DOUBLE)) { + LParse_error(yyvsp[-1].tok.filename,yyvsp[-1].tok.line,"Type error in constant expression (expecting integers).\n"); + } + yyval.tok.ivalue = LPARSE_T_INT; + ; + break;} +case 307: +#line 2007 "parser.y" +{ + yyval.tok.text = NewString(""); + Printf(yyval.tok.text,"%s>>%s", yyvsp[-2].tok.text,yyvsp[0].tok.text); + yyval.tok.ivalue = promote(yyvsp[-2].tok.ivalue,yyvsp[0].tok.ivalue); + if ((yyvsp[-2].tok.ivalue == LPARSE_T_DOUBLE) || (yyvsp[0].tok.ivalue == LPARSE_T_DOUBLE)) { + LParse_error(yyvsp[-1].tok.filename,yyvsp[-1].tok.line,"Type error in constant expression (expecting integers).\n"); + } + yyval.tok.ivalue = LPARSE_T_INT; + ; + break;} +case 308: +#line 2016 "parser.y" +{ + yyval.tok.text = NewString(""); + Printf(yyval.tok.text,"-%s", yyvsp[0].tok.text); + yyval.tok.ivalue = yyvsp[0].tok.ivalue; + ; + break;} +case 309: +#line 2021 "parser.y" +{ + yyval.tok.text = NewString(""); + Printf(yyval.tok.text,"~%s", yyvsp[0].tok.text); + if (yyvsp[0].tok.ivalue == LPARSE_T_DOUBLE) { + LParse_error(yyvsp[0].tok.filename,yyvsp[0].tok.line,"Type error in constant expression (expecting integers).\n"); + } + yyval.tok.ivalue = yyvsp[0].tok.ivalue; + ; + break;} +case 310: +#line 2029 "parser.y" +{ + yyval.tok.text = NewString(""); + Printf(yyval.tok.text,"(%s)", yyvsp[-1].tok.text); + yyval.tok.ivalue = yyvsp[-1].tok.ivalue; + ; + break;} +case 311: +#line 2036 "parser.y" +{ + Append(yyval.node,yyvsp[0].tok.text); + ; + break;} +case 312: +#line 2039 "parser.y" +{ + yyval.node = NewList(); + ; + break;} +} + /* the action file gets copied in in place of this dollarsign */ +#line 542 "/usr/lib/bison.simple" + + yyvsp -= yylen; + yyssp -= yylen; +#ifdef YYLSP_NEEDED + yylsp -= yylen; +#endif + +#if YYDEBUG != 0 + if (yydebug) + { + short *ssp1 = yyss - 1; + fprintf (stderr, "state stack now"); + while (ssp1 != yyssp) + fprintf (stderr, " %d", *++ssp1); + fprintf (stderr, "\n"); + } +#endif + + *++yyvsp = yyval; + +#ifdef YYLSP_NEEDED + yylsp++; + if (yylen == 0) + { + yylsp->first_line = yylloc.first_line; + yylsp->first_column = yylloc.first_column; + yylsp->last_line = (yylsp-1)->last_line; + yylsp->last_column = (yylsp-1)->last_column; + yylsp->text = 0; + } + else + { + yylsp->last_line = (yylsp+yylen-1)->last_line; + yylsp->last_column = (yylsp+yylen-1)->last_column; + } +#endif + + /* 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 - YYNTBASE] + *yyssp; + if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp) + yystate = yytable[yystate]; + else + yystate = yydefgoto[yyn - YYNTBASE]; + + goto yynewstate; + +yyerrlab: /* here on detecting error */ + + if (! yyerrstatus) + /* If not already recovering from an error, report this error. */ + { + ++yynerrs; + +#ifdef YYERROR_VERBOSE + yyn = yypact[yystate]; + + if (yyn > YYFLAG && yyn < YYLAST) + { + int size = 0; + char *msg; + int x, count; + + count = 0; + /* Start X at -yyn if nec to avoid negative indexes in yycheck. */ + for (x = (yyn < 0 ? -yyn : 0); + x < (sizeof(yytname) / sizeof(char *)); x++) + if (yycheck[x + yyn] == x) + size += strlen(yytname[x]) + 15, count++; + msg = (char *) malloc(size + 15); + if (msg != 0) + { + strcpy(msg, "parse error"); + + if (count < 5) + { + count = 0; + for (x = (yyn < 0 ? -yyn : 0); + x < (sizeof(yytname) / sizeof(char *)); x++) + if (yycheck[x + yyn] == x) + { + strcat(msg, count == 0 ? ", expecting `" : " or `"); + strcat(msg, yytname[x]); + strcat(msg, "'"); + count++; + } + } + yyerror(msg); + free(msg); + } + else + yyerror ("parse error; also virtual memory exceeded"); + } + else +#endif /* YYERROR_VERBOSE */ + yyerror("parse error"); + } + + goto yyerrlab1; +yyerrlab1: /* here on error raised explicitly by an action */ + + if (yyerrstatus == 3) + { + /* if just tried and failed to reuse lookahead token after an error, discard it. */ + + /* return failure if at end of input */ + if (yychar == YYEOF) + YYABORT; + +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]); +#endif + + yychar = YYEMPTY; + } + + /* Else will try to reuse lookahead token + after shifting the error token. */ + + yyerrstatus = 3; /* Each real token shifted decrements this */ + + goto yyerrhandle; + +yyerrdefault: /* current state does not do anything special for the error token. */ + +#if 0 + /* This is wrong; only states that explicitly want error tokens + should shift them. */ + yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/ + if (yyn) goto yydefault; +#endif + +yyerrpop: /* pop the current state because it cannot handle the error token */ + + if (yyssp == yyss) YYABORT; + yyvsp--; + yystate = *--yyssp; +#ifdef YYLSP_NEEDED + yylsp--; +#endif + +#if YYDEBUG != 0 + if (yydebug) + { + short *ssp1 = yyss - 1; + fprintf (stderr, "Error: state stack now"); + while (ssp1 != yyssp) + fprintf (stderr, " %d", *++ssp1); + fprintf (stderr, "\n"); + } +#endif + +yyerrhandle: + + yyn = yypact[yystate]; + if (yyn == YYFLAG) + goto yyerrdefault; + + yyn += YYTERROR; + if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR) + goto yyerrdefault; + + yyn = yytable[yyn]; + if (yyn < 0) + { + if (yyn == YYFLAG) + goto yyerrpop; + yyn = -yyn; + goto yyreduce; + } + else if (yyn == 0) + goto yyerrpop; + + if (yyn == YYFINAL) + YYACCEPT; + +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Shifting error token, "); +#endif + + *++yyvsp = yylval; +#ifdef YYLSP_NEEDED + *++yylsp = yylloc; +#endif + + yystate = yyn; + goto yynewstate; + + yyacceptlab: + /* YYACCEPT comes here. */ + if (yyfree_stacks) + { + free (yyss); + free (yyvs); +#ifdef YYLSP_NEEDED + free (yyls); +#endif + } + return 0; + + yyabortlab: + /* YYABORT comes here. */ + if (yyfree_stacks) + { + free (yyss); + free (yyvs); +#ifdef YYLSP_NEEDED + free (yyls); +#endif + } + return 1; +} +#line 2046 "parser.y" + +void lparse_error_recover() { + int c; + c = yylex(); + while ((c > 0) && (c != SEMI)) + c = yylex(); +} + +/* Called by the parser (yyparse) when an error is found.*/ +void yyerror (char *e) { + if (Intype == 0) { + LParse_error(0,0,"Syntax error. Perhaps you need to specify a typename.\n"); + } else { + LParse_error(0,0,"Syntax error.\n", e); + } +} + + + + + + + + + + + diff --git a/Source/LParse/parser.h b/Source/LParse/parser.h new file mode 100644 index 000000000..1ffde33d2 --- /dev/null +++ b/Source/LParse/parser.h @@ -0,0 +1,146 @@ +typedef union { + struct { + DOH *filename; + int line; + DOH *text; + int ivalue; + void *data; + } tok; + DOH *node; + LParseType *type; + struct { + DOH *id; + int is_pointer; + int is_reference; + } decl; + struct { + DOH *name; + DOH *value; + DOH *array; + } pname; + struct { + DOH *name; + DOH *array; + DOH *parms; + } tmname; +} YYSTYPE; +#define ID 257 +#define TYPE_TYPEDEF 258 +#define HBLOCK 259 +#define STRING 260 +#define NUM_INT 261 +#define NUM_FLOAT 262 +#define CHARCONST 263 +#define NUM_UNSIGNED 264 +#define NUM_LONG 265 +#define NUM_ULONG 266 +#define LPAREN 267 +#define RPAREN 268 +#define LBRACE 269 +#define RBRACE 270 +#define COMMA 271 +#define SEMI 272 +#define PERIOD 273 +#define LBRACKET 274 +#define RBRACKET 275 +#define EQUAL 276 +#define COLON 277 +#define POUND 278 +#define CONST 279 +#define DEFINED 280 +#define ENUM 281 +#define EXTERN 282 +#define SIZEOF 283 +#define STATIC 284 +#define STRUCT 285 +#define TYPEDEF 286 +#define UNION 287 +#define CLASS 288 +#define FRIEND 289 +#define OPERATOR 290 +#define PRIVATE 291 +#define PROTECTED 292 +#define PUBLIC 293 +#define TEMPLATE 294 +#define THROW 295 +#define VIRTUAL 296 +#define OC_INTERFACE 297 +#define OC_END 298 +#define OC_PUBLIC 299 +#define OC_PRIVATE 300 +#define OC_PROTECTED 301 +#define OC_CLASS 302 +#define OC_IMPLEMENT 303 +#define OC_PROTOCOL 304 +#define TYPE_INT 305 +#define TYPE_UNSIGNED 306 +#define TYPE_SHORT 307 +#define TYPE_LONG 308 +#define TYPE_FLOAT 309 +#define TYPE_DOUBLE 310 +#define TYPE_CHAR 311 +#define TYPE_VOID 312 +#define TYPE_SIGNED 313 +#define TYPE_BOOL 314 +#define ADDMETHODS 315 +#define ALPHA_MODE 316 +#define APPLY 317 +#define CHECKOUT 318 +#define CLEAR 319 +#define CONSTANT 320 +#define DOCONLY 321 +#define DOC_DISABLE 322 +#define DOC_ENABLE 323 +#define ECHO 324 +#define EXCEPT 325 +#define ILLEGAL 326 +#define IMPORT 327 +#define INCLUDE 328 +#define INIT 329 +#define INLINE 330 +#define LOCALSTYLE 331 +#define MACRO 332 +#define MODULE 333 +#define NAME 334 +#define NATIVE 335 +#define NEW 336 +#define PRAGMA 337 +#define RAW_MODE 338 +#define READONLY 339 +#define READWRITE 340 +#define RENAME 341 +#define SECTION 342 +#define STYLE 343 +#define SUBSECTION 344 +#define SUBSUBSECTION 345 +#define TEXT 346 +#define TITLE 347 +#define TYPE 348 +#define TYPEMAP 349 +#define USERDIRECTIVE 350 +#define WEXTERN 351 +#define WRAPPER 352 +#define LOR 353 +#define LAND 354 +#define EQUALTO 355 +#define NOTEQUAL 356 +#define GREATERTHAN 357 +#define LESSTHAN 358 +#define LTEQUAL 359 +#define GTEQUAL 360 +#define OR 361 +#define XOR 362 +#define AND 363 +#define LSHIFT 364 +#define RSHIFT 365 +#define PLUS 366 +#define MINUS 367 +#define STAR 368 +#define SLASH 369 +#define UMINUS 370 +#define NOT 371 +#define LNOT 372 +#define DCOLON 373 + + +extern YYSTYPE yylval; diff --git a/Source/Makefile.am b/Source/Makefile.am new file mode 100644 index 000000000..7dfffd0b2 --- /dev/null +++ b/Source/Makefile.am @@ -0,0 +1,5 @@ +include $(top_srcdir)/Makefile.common + +EXTRA_DIST = Include + +SUBDIRS = DOH SWILL Modules1.1 Swig Preprocessor SWIG1.1 LParse Experiment Swim diff --git a/Source/Makefile.in b/Source/Makefile.in new file mode 100644 index 000000000..31ef084aa --- /dev/null +++ b/Source/Makefile.in @@ -0,0 +1,312 @@ +# Makefile.in generated automatically by automake 1.4a from Makefile.am + +# Copyright (C) 1994, 1995-8, 1999 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. + +# 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. + + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = .. + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_FLAG = +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +AR = @AR@ +AUTOCONF = @AUTOCONF@ +CC = @CC@ +CCSHARED = @CCSHARED@ +CXX = @CXX@ +LDSHARED = @LDSHARED@ +LIBC = @LIBC@ +LIBCRYPT = @LIBCRYPT@ +LIBM = @LIBM@ +MACHDEP = @MACHDEP@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +PACKAGE = @PACKAGE@ +PERL = @PERL@ +PERL5EXT = @PERL5EXT@ +PYINCLUDE = @PYINCLUDE@ +PYLIB = @PYLIB@ +PYLINK = @PYLINK@ +RANLIB = @RANLIB@ +ROOT_DIR = @ROOT_DIR@ +RPATH = @RPATH@ +SO = @SO@ +TCLINCLUDE = @TCLINCLUDE@ +TCLLIB = @TCLLIB@ +VERSION = @VERSION@ +XINCLUDES = @XINCLUDES@ +XLIBSW = @XLIBSW@ +YACC = @YACC@ +YFLAGS = @YFLAGS@ + +AUTOMAKE_OPTIONS = foreign + +SWIG_INCLUDES = -I$(top_srcdir)/Source/DOH/Include -I$(top_srcdir)/Source/SWILL/Include + + +SWIG_LIBS = $(top_builddir)/Source/DOH/Doh/libdoh.a $(top_builddir)/Source/SWILL/SWILL/libswill.a + + +EXTRA_DIST = Include + +SUBDIRS = DOH SWILL Modules1.1 Swig Preprocessor SWIG1.1 LParse Experiment Swim +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_CLEAN_FILES = +DIST_COMMON = Makefile.am Makefile.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = gtar +GZIP_ENV = --best +all: all-redirect +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) $(top_srcdir)/Makefile.common + cd $(top_srcdir) && $(AUTOMAKE) --foreign Source/Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. + +@SET_MAKE@ + +all-recursive install-data-recursive install-exec-recursive \ +installdirs-recursive install-recursive uninstall-recursive \ +check-recursive installcheck-recursive info-recursive dvi-recursive: + @set fnord $(MAKEFLAGS); amf=$$2; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +mostlyclean-recursive clean-recursive distclean-recursive \ +maintainer-clean-recursive: + @set fnord $(MAKEFLAGS); amf=$$2; \ + dot_seen=no; \ + rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ + rev="$$subdir $$rev"; \ + test "$$subdir" = "." && dot_seen=yes; \ + done; \ + test "$$dot_seen" = "no" && rev=". $$rev"; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) + +subdir = Source + +distdir: $(DISTFILES) + here=`cd $(top_builddir) && pwd`; \ + top_distdir=`cd $(top_distdir) && pwd`; \ + distdir=`cd $(distdir) && pwd`; \ + cd $(top_srcdir) \ + && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --foreign Source/Makefile + @for file in $(DISTFILES); do \ + d=$(srcdir); \ + if test -d $$d/$$file; then \ + cp -pr $$d/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ + fi; \ + done + for subdir in $(SUBDIRS); do \ + if test "$$subdir" = .; then :; else \ + test -d $(distdir)/$$subdir \ + || mkdir $(distdir)/$$subdir \ + || exit 1; \ + chmod 777 $(distdir)/$$subdir; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(top_distdir) distdir=../$(distdir)/$$subdir distdir) \ + || exit 1; \ + fi; \ + done +info-am: +info: info-recursive +dvi-am: +dvi: dvi-recursive +check-am: all-am +check: check-recursive +installcheck-am: +installcheck: installcheck-recursive +install-exec-am: +install-exec: install-exec-recursive + +install-data-am: +install-data: install-data-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am +install: install-recursive +uninstall-am: +uninstall: uninstall-recursive +all-am: Makefile +all-redirect: all-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_STRIP_FLAG=-s install +installdirs: installdirs-recursive +installdirs-am: + + +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + +maintainer-clean-generic: +mostlyclean-am: mostlyclean-tags mostlyclean-generic + +mostlyclean: mostlyclean-recursive + +clean-am: clean-tags clean-generic mostlyclean-am + +clean: clean-recursive + +distclean-am: distclean-tags distclean-generic clean-am + +distclean: distclean-recursive + +maintainer-clean-am: maintainer-clean-tags maintainer-clean-generic \ + distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +maintainer-clean: maintainer-clean-recursive + +.PHONY: install-data-recursive uninstall-data-recursive \ +install-exec-recursive uninstall-exec-recursive installdirs-recursive \ +uninstalldirs-recursive all-recursive check-recursive \ +installcheck-recursive info-recursive dvi-recursive \ +mostlyclean-recursive distclean-recursive clean-recursive \ +maintainer-clean-recursive tags tags-recursive mostlyclean-tags \ +distclean-tags clean-tags maintainer-clean-tags distdir info-am info \ +dvi-am dvi check check-am installcheck-am installcheck install-exec-am \ +install-exec install-data-am install-data install-am install \ +uninstall-am uninstall all-redirect all-am all installdirs-am \ +installdirs mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +# 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/Source/Modules1.1/.cvsignore b/Source/Modules1.1/.cvsignore index 2ee5b3e29..bd5fe0696 100644 --- a/Source/Modules1.1/.cvsignore +++ b/Source/Modules1.1/.cvsignore @@ -1,2 +1,2 @@ Makefile -y.tab.* +.deps diff --git a/Source/Modules1.1/Makefile.am b/Source/Modules1.1/Makefile.am new file mode 100644 index 000000000..57b35f0ad --- /dev/null +++ b/Source/Modules1.1/Makefile.am @@ -0,0 +1,15 @@ +include $(top_srcdir)/Makefile.common + +SWIG_LIB = $(prefix)/lib/swig1.3 + +INCLUDES = -I$(top_srcdir)/Source/SWIG1.1 \ + -I$(top_srcdir)/Source/Include \ + -DSWIG_LIB='"$(SWIG_LIB)"' \ + -DSWIG_CC='"$(CC)"' + +noinst_LIBRARIES = libmodules.a + +libmodules_a_SOURCES = ascii.cxx guile.cxx html.cxx java.cxx perl5.cxx pycpp.cxx \ + python.cxx swigmain.cxx tcl8.cxx + +noinst_HEADERS = ascii.h guile.h html.h java.h nodoc.h perl5.h python.h tcl8.h wrap.h diff --git a/Source/Modules1.1/Makefile.in b/Source/Modules1.1/Makefile.in index 737e1ffa8..8e6b6c918 100644 --- a/Source/Modules1.1/Makefile.in +++ b/Source/Modules1.1/Makefile.in @@ -1,63 +1,360 @@ -####################################################################### -# $Header$ -# Simplified Wrapper and Interface Generator (SWIG) -# -####################################################################### +# Makefile.in generated automatically by automake 1.4a from Makefile.am -#.KEEP_STATE: +# Copyright (C) 1994, 1995-8, 1999 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. +# 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. + + + +SHELL = @SHELL@ srcdir = @srcdir@ +top_srcdir = @top_srcdir@ VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ -# Set your C++ compiler here. g++ works on most machines, -# but you might have to change it depending on your installation. -# -CC = @CXX@ +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include -# -# Set the prefix below to indicate where you want SWIG to install its -# files. Normally this is /usr/local -# +DESTDIR = -prefix = @prefix@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = ../.. + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_FLAG = +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +AR = @AR@ +AUTOCONF = @AUTOCONF@ +CC = @CC@ +CCSHARED = @CCSHARED@ +CXX = @CXX@ +LDSHARED = @LDSHARED@ +LIBC = @LIBC@ +LIBCRYPT = @LIBCRYPT@ +LIBM = @LIBM@ +MACHDEP = @MACHDEP@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +PACKAGE = @PACKAGE@ +PERL = @PERL@ +PERL5EXT = @PERL5EXT@ +PYINCLUDE = @PYINCLUDE@ +PYLIB = @PYLIB@ +PYLINK = @PYLINK@ +RANLIB = @RANLIB@ +ROOT_DIR = @ROOT_DIR@ +RPATH = @RPATH@ +SO = @SO@ +TCLINCLUDE = @TCLINCLUDE@ +TCLLIB = @TCLLIB@ +VERSION = @VERSION@ +XINCLUDES = @XINCLUDES@ +XLIBSW = @XLIBSW@ +YACC = @YACC@ +YFLAGS = @YFLAGS@ + +AUTOMAKE_OPTIONS = foreign + +SWIG_INCLUDES = -I$(top_srcdir)/Source/DOH/Include -I$(top_srcdir)/Source/SWILL/Include + + +SWIG_LIBS = $(top_builddir)/Source/DOH/Doh/libdoh.a $(top_builddir)/Source/SWILL/SWILL/libswill.a -# Location of the SWIG library. Is normally put in /usr/local/lib/swig_lib -# The SWIG library contains configuration files and library modules -# so you should install it someplace where it can be easily accessed. SWIG_LIB = $(prefix)/lib/swig1.3 -######################################################################## -# Normally, you shouldn't have to change anything below this point # -######################################################################## +INCLUDES = -I$(top_srcdir)/Source/SWIG1.1 -I$(top_srcdir)/Source/Include -DSWIG_LIB='"$(SWIG_LIB)"' -DSWIG_CC='"$(CC)"' -WRAPOBJS = swigmain.o tcl8.o perl5.o python.o pycpp.o guile.o java.o ascii.o html.o -WRAPSRCS = swigmain.cxx tcl8.cxx perl5.cxx python.cxx pycpp.cxx guile.cxx java.cxx ascii.cxx html.cxx -TARGET = ../swig -CFLAGS = @CFLAGS@ -DSWIG_LIB='"$(SWIG_LIB)"' -DSWIG_CC='"$(CC)"' @DEFS@ -INCLUDE = -I../Include -I../SWIG1.1 -SHELL = /bin/sh +noinst_LIBRARIES = libmodules.a -# -# -# -# Rules for creation of a .o file from .cxx -.SUFFIXES: .cxx -.cxx.o: - $(CC) $(INCLUDE) $(CFLAGS) -c -o $*.o $< +libmodules_a_SOURCES = ascii.cxx guile.cxx html.cxx java.cxx perl5.cxx pycpp.cxx python.cxx swigmain.cxx tcl8.cxx -##################################################################### -# TARGET: swig -##################################################################### -# friendly to the toplevel makefile -all: swig -swig: $(WRAPOBJS) - for i in $(WRAPOBJS); do echo Source/Modules1.1/$$i >> $(OBJS_FILE); done -clean:: - rm -f *.o *~ +noinst_HEADERS = ascii.h guile.h html.h java.h nodoc.h perl5.h python.h tcl8.h wrap.h +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) -nuke:: - rm -f Makefile *~ #* core a.out + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +libmodules_a_LIBADD = +libmodules_a_OBJECTS = ascii.o guile.o html.o java.o perl5.o pycpp.o \ +python.o swigmain.o tcl8.o +CXXFLAGS = @CXXFLAGS@ +CXXCOMPILE = $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +CXXLD = $(CXX) +CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@ +HEADERS = $(noinst_HEADERS) + +DIST_COMMON = Makefile.am Makefile.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = gtar +GZIP_ENV = --best +DEP_FILES = .deps/ascii.P .deps/guile.P .deps/html.P .deps/java.P \ +.deps/perl5.P .deps/pycpp.P .deps/python.P .deps/swigmain.P \ +.deps/tcl8.P +SOURCES = $(libmodules_a_SOURCES) +OBJECTS = $(libmodules_a_OBJECTS) + +all: all-redirect +.SUFFIXES: +.SUFFIXES: .S .c .cxx .o .s +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) $(top_srcdir)/Makefile.common + cd $(top_srcdir) && $(AUTOMAKE) --foreign Source/Modules1.1/Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +libmodules.a: $(libmodules_a_OBJECTS) $(libmodules_a_DEPENDENCIES) + -rm -f libmodules.a + $(AR) cru libmodules.a $(libmodules_a_OBJECTS) $(libmodules_a_LIBADD) + $(RANLIB) libmodules.a +.cxx.o: + $(CXXCOMPILE) -c $< + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) + +subdir = Source/Modules1.1 + +distdir: $(DISTFILES) + here=`cd $(top_builddir) && pwd`; \ + top_distdir=`cd $(top_distdir) && pwd`; \ + distdir=`cd $(distdir) && pwd`; \ + cd $(top_srcdir) \ + && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --foreign Source/Modules1.1/Makefile + @for file in $(DISTFILES); do \ + d=$(srcdir); \ + if test -d $$d/$$file; then \ + cp -pr $$d/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ + fi; \ + done + +DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :) + +-include $(DEP_FILES) + +mostlyclean-depend: + +clean-depend: + +distclean-depend: + -rm -rf .deps + +maintainer-clean-depend: + +%.o: %.c + @echo '$(COMPILE) -c $<'; \ + $(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-cp .deps/$(*F).pp .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm .deps/$(*F).pp + +%.lo: %.c + @echo '$(LTCOMPILE) -c $<'; \ + $(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \ + < .deps/$(*F).pp > .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm -f .deps/$(*F).pp + +%.o: %.cxx + @echo '$(CXXCOMPILE) -c $<'; \ + $(CXXCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-cp .deps/$(*F).pp .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm .deps/$(*F).pp + +%.lo: %.cxx + @echo '$(LTCXXCOMPILE) -c $<'; \ + $(LTCXXCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \ + < .deps/$(*F).pp > .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm -f .deps/$(*F).pp +info-am: +info: info-am +dvi-am: +dvi: dvi-am +check-am: all-am +check: check-am +installcheck-am: +installcheck: installcheck-am +install-exec-am: +install-exec: install-exec-am + +install-data-am: +install-data: install-data-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am +install: install-am +uninstall-am: +uninstall: uninstall-am +all-am: Makefile $(LIBRARIES) $(HEADERS) +all-redirect: all-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_STRIP_FLAG=-s install +installdirs: + + +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + +maintainer-clean-generic: +mostlyclean-am: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-depend mostlyclean-generic + +mostlyclean: mostlyclean-am + +clean-am: clean-noinstLIBRARIES clean-compile clean-tags clean-depend \ + clean-generic mostlyclean-am + +clean: clean-am + +distclean-am: distclean-noinstLIBRARIES distclean-compile \ + distclean-tags distclean-depend distclean-generic \ + clean-am + +distclean: distclean-am + +maintainer-clean-am: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-depend maintainer-clean-generic \ + distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +maintainer-clean: maintainer-clean-am + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir mostlyclean-depend \ +distclean-depend clean-depend maintainer-clean-depend info-am info \ +dvi-am dvi check check-am installcheck-am installcheck install-exec-am \ +install-exec install-data-am install-data install-am install \ +uninstall-am uninstall all-redirect all-am all installdirs \ +mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +# 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/Source/Preprocessor/.cvsignore b/Source/Preprocessor/.cvsignore index 2ee5b3e29..04384f1f7 100644 --- a/Source/Preprocessor/.cvsignore +++ b/Source/Preprocessor/.cvsignore @@ -1,2 +1,3 @@ Makefile -y.tab.* +.deps + diff --git a/Source/Preprocessor/Makefile.am b/Source/Preprocessor/Makefile.am new file mode 100644 index 000000000..6acbc9ef5 --- /dev/null +++ b/Source/Preprocessor/Makefile.am @@ -0,0 +1,11 @@ +include $(top_srcdir)/Makefile.common + +INCLUDES = $(SWIG_INCLUDES) \ + -I$(top_srcdir)/Source/Swig \ + -I$(top_srcdir)/Source/Include + +noinst_LIBRARIES = libpreprocessor.a + +libpreprocessor_a_SOURCES = expr.c cpp.c + +noinst_HEADERS = preprocessor.h diff --git a/Source/Preprocessor/Makefile.in b/Source/Preprocessor/Makefile.in index efb2512be..2c0204ed9 100644 --- a/Source/Preprocessor/Makefile.in +++ b/Source/Preprocessor/Makefile.in @@ -1,36 +1,333 @@ -# Generated automatically from Makefile.in by configure. +# Makefile.in generated automatically by automake 1.4a from Makefile.am -CC = @CC@ -AR = @AR@ -RANLIB = @RANLIB@ -prefix = @prefix@ +# Copyright (C) 1994, 1995-8, 1999 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. + +# 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. + + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ exec_prefix = @exec_prefix@ -RPATH = @RPATH@ -SO = @SO@ -CCSHARED = @CCSHARED@ -LDSHARED = @LDSHARED@ -INCLUDE = -I. -I../Swig -I../DOH/Include -SRCS = expr.c cpp.c -OBJS = expr.o cpp.o +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include -.c.o: - $(CC) $(CCSHARED) $(INCLUDE) $(CFLAGS) -c -o $*.o $< +DESTDIR = -##################################################################### -# TARGET: swig -##################################################################### -# friendly to the toplevel makefile -all: swig -swig: $(OBJS) - for i in $(OBJS); do echo Source/Preprocessor/$$i >> $(OBJS_FILE); done +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ -clean: - rm -f *.o *~ core *.so *.a +top_builddir = ../.. -###################################################################### -# TARGET: experiment -##################################################################### -# same as swig -experiment: swig +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_FLAG = +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +AR = @AR@ +AUTOCONF = @AUTOCONF@ +CC = @CC@ +CCSHARED = @CCSHARED@ +CXX = @CXX@ +LDSHARED = @LDSHARED@ +LIBC = @LIBC@ +LIBCRYPT = @LIBCRYPT@ +LIBM = @LIBM@ +MACHDEP = @MACHDEP@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +PACKAGE = @PACKAGE@ +PERL = @PERL@ +PERL5EXT = @PERL5EXT@ +PYINCLUDE = @PYINCLUDE@ +PYLIB = @PYLIB@ +PYLINK = @PYLINK@ +RANLIB = @RANLIB@ +ROOT_DIR = @ROOT_DIR@ +RPATH = @RPATH@ +SO = @SO@ +TCLINCLUDE = @TCLINCLUDE@ +TCLLIB = @TCLLIB@ +VERSION = @VERSION@ +XINCLUDES = @XINCLUDES@ +XLIBSW = @XLIBSW@ +YACC = @YACC@ +YFLAGS = @YFLAGS@ + +AUTOMAKE_OPTIONS = foreign + +SWIG_INCLUDES = -I$(top_srcdir)/Source/DOH/Include -I$(top_srcdir)/Source/SWILL/Include + + +SWIG_LIBS = $(top_builddir)/Source/DOH/Doh/libdoh.a $(top_builddir)/Source/SWILL/SWILL/libswill.a + + +INCLUDES = $(SWIG_INCLUDES) -I$(top_srcdir)/Source/Swig -I$(top_srcdir)/Source/Include + + +noinst_LIBRARIES = libpreprocessor.a + +libpreprocessor_a_SOURCES = expr.c cpp.c + +noinst_HEADERS = preprocessor.h +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +libpreprocessor_a_LIBADD = +libpreprocessor_a_OBJECTS = expr.o cpp.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ +HEADERS = $(noinst_HEADERS) + +DIST_COMMON = Makefile.am Makefile.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = gtar +GZIP_ENV = --best +DEP_FILES = .deps/cpp.P .deps/expr.P +SOURCES = $(libpreprocessor_a_SOURCES) +OBJECTS = $(libpreprocessor_a_OBJECTS) + +all: all-redirect +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) $(top_srcdir)/Makefile.common + cd $(top_srcdir) && $(AUTOMAKE) --foreign Source/Preprocessor/Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +libpreprocessor.a: $(libpreprocessor_a_OBJECTS) $(libpreprocessor_a_DEPENDENCIES) + -rm -f libpreprocessor.a + $(AR) cru libpreprocessor.a $(libpreprocessor_a_OBJECTS) $(libpreprocessor_a_LIBADD) + $(RANLIB) libpreprocessor.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) + +subdir = Source/Preprocessor + +distdir: $(DISTFILES) + here=`cd $(top_builddir) && pwd`; \ + top_distdir=`cd $(top_distdir) && pwd`; \ + distdir=`cd $(distdir) && pwd`; \ + cd $(top_srcdir) \ + && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --foreign Source/Preprocessor/Makefile + @for file in $(DISTFILES); do \ + d=$(srcdir); \ + if test -d $$d/$$file; then \ + cp -pr $$d/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ + fi; \ + done + +DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :) + +-include $(DEP_FILES) + +mostlyclean-depend: + +clean-depend: + +distclean-depend: + -rm -rf .deps + +maintainer-clean-depend: + +%.o: %.c + @echo '$(COMPILE) -c $<'; \ + $(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-cp .deps/$(*F).pp .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm .deps/$(*F).pp + +%.lo: %.c + @echo '$(LTCOMPILE) -c $<'; \ + $(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \ + < .deps/$(*F).pp > .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm -f .deps/$(*F).pp +info-am: +info: info-am +dvi-am: +dvi: dvi-am +check-am: all-am +check: check-am +installcheck-am: +installcheck: installcheck-am +install-exec-am: +install-exec: install-exec-am + +install-data-am: +install-data: install-data-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am +install: install-am +uninstall-am: +uninstall: uninstall-am +all-am: Makefile $(LIBRARIES) $(HEADERS) +all-redirect: all-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_STRIP_FLAG=-s install +installdirs: + + +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + +maintainer-clean-generic: +mostlyclean-am: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-depend mostlyclean-generic + +mostlyclean: mostlyclean-am + +clean-am: clean-noinstLIBRARIES clean-compile clean-tags clean-depend \ + clean-generic mostlyclean-am + +clean: clean-am + +distclean-am: distclean-noinstLIBRARIES distclean-compile \ + distclean-tags distclean-depend distclean-generic \ + clean-am + +distclean: distclean-am + +maintainer-clean-am: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-depend maintainer-clean-generic \ + distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +maintainer-clean: maintainer-clean-am + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir mostlyclean-depend \ +distclean-depend clean-depend maintainer-clean-depend info-am info \ +dvi-am dvi check check-am installcheck-am installcheck install-exec-am \ +install-exec install-data-am install-data install-am install \ +uninstall-am uninstall all-redirect all-am all installdirs \ +mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +# 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/Source/SWIG1.1/.cvsignore b/Source/SWIG1.1/.cvsignore index 9d1579efc..fd51bef46 100644 --- a/Source/SWIG1.1/.cvsignore +++ b/Source/SWIG1.1/.cvsignore @@ -1,6 +1,4 @@ Makefile -y.tab.* -parser.h -parser.cxx - *.flc +.deps +swig diff --git a/Source/SWIG1.1/Makefile.am b/Source/SWIG1.1/Makefile.am new file mode 100644 index 000000000..33b16695b --- /dev/null +++ b/Source/SWIG1.1/Makefile.am @@ -0,0 +1,26 @@ +include $(top_srcdir)/Makefile.common + +SWIG_LIB = $(prefix)/lib/swig1.3 + +INCLUDES = $(SWIG_INCLUDES) \ + -I$(top_srcdir)/Source/Swig \ + -I$(top_srcdir)/Source/Include \ + -I$(top_srcdir)/Source/Preprocessor \ + -I$(top_srcdir)/Source/Modules1.1 \ + -DSWIG_LIB='"$(SWIG_LIB)"' \ + -DSWIG_CC='"$(CC)"' + +SWIG1_LIBS = $(SWIG_LIBS) \ + $(top_builddir)/Source/Swig/libswig.a \ + $(top_builddir)/Source/Preprocessor/libpreprocessor.a \ + $(top_builddir)/Source/Modules1.1/libmodules.a + +bin_PROGRAMS = swig + +swig_SOURCES = parser.yxx main.cxx scanner.cxx symbol.cxx include.cxx types.cxx parms.cxx emit.cxx \ + newdoc.cxx cplus.cxx lang.cxx hash.cxx \ + sstring.cxx wrapfunc.cxx comment.cxx typemap.cxx naming.cxx +swig_LDADD = $(SWIG1_LIBS) $(SWIG1_LIBS) +swig_DEPENDENCIES = $(SWIG1_LIBS) + +noinst_HEADERS = internal.h parser.h swig11.h diff --git a/Source/SWIG1.1/Makefile.in b/Source/SWIG1.1/Makefile.in index 81aebf5c7..0ee2b38f6 100644 --- a/Source/SWIG1.1/Makefile.in +++ b/Source/SWIG1.1/Makefile.in @@ -1,101 +1,390 @@ -####################################################################### -# $Header$ -####################################################################### +# Makefile.in generated automatically by automake 1.4a from Makefile.am -#.KEEP_STATE: +# Copyright (C) 1994, 1995-8, 1999 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. +# 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. + + + +SHELL = @SHELL@ srcdir = @srcdir@ +top_srcdir = @top_srcdir@ VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ -# Set your C++ compiler here. g++ works on most machines, -# but you might have to change it depending on your installation. -# -CC = @CXX@ +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include -# -# Set the prefix below to indicate where you want SWIG to install its -# files. Normally this is /usr/local -# +DESTDIR = -prefix = @prefix@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = ../.. + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_FLAG = +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +AR = @AR@ +AUTOCONF = @AUTOCONF@ +CC = @CC@ +CCSHARED = @CCSHARED@ +CXX = @CXX@ +LDSHARED = @LDSHARED@ +LIBC = @LIBC@ +LIBCRYPT = @LIBCRYPT@ +LIBM = @LIBM@ +MACHDEP = @MACHDEP@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +PACKAGE = @PACKAGE@ +PERL = @PERL@ +PERL5EXT = @PERL5EXT@ +PYINCLUDE = @PYINCLUDE@ +PYLIB = @PYLIB@ +PYLINK = @PYLINK@ +RANLIB = @RANLIB@ +ROOT_DIR = @ROOT_DIR@ +RPATH = @RPATH@ +SO = @SO@ +TCLINCLUDE = @TCLINCLUDE@ +TCLLIB = @TCLLIB@ +VERSION = @VERSION@ +XINCLUDES = @XINCLUDES@ +XLIBSW = @XLIBSW@ +YACC = @YACC@ +YFLAGS = @YFLAGS@ + +AUTOMAKE_OPTIONS = foreign + +SWIG_INCLUDES = -I$(top_srcdir)/Source/DOH/Include -I$(top_srcdir)/Source/SWILL/Include + + +SWIG_LIBS = $(top_builddir)/Source/DOH/Doh/libdoh.a $(top_builddir)/Source/SWILL/SWILL/libswill.a -# Location of the SWIG library. Is normally put in /usr/local/lib/swig_lib -# The SWIG library contains configuration files and library modules -# so you should install it someplace where it can be easily accessed. SWIG_LIB = $(prefix)/lib/swig1.3 -# YACC parser. Use bison by default. if this doesn't work, switch -# it over to yacc. If that still doesn't work, let me know... - -YACC = @YACC@ - -# Comment out the following line if you're on an SGI or don't have ranlib! -RANLIB = @RANLIB@ -AR = @AR@ - -######################################################################## -# Normally, you shouldn't have to change anything below this point # -######################################################################## - -LIBOBJS = main.o scanner.o symbol.o types.o include.o parms.o emit.o newdoc.o \ - cplus.o lang.o hash.o sstring.o wrapfunc.o comment.o \ - typemap.o naming.o - -LIBSRCS = main.cxx scanner.cxx symbol.cxx include.cxx types.cxx parms.cxx emit.cxx \ - newdoc.cxx cplus.cxx lang.cxx hash.cxx \ - sstring.cxx wrapfunc.cxx comment.cxx typemap.cxx naming.cxx - -PARSER = parser.y -INCLUDE = -I../Include -I. -I../Swig -I../Preprocessor -I../DOH/Include -CFLAGS = @CFLAGS@ -DSWIG_LIB='"$(SWIG_LIB)"' -DSWIG_CC='"$(CC)"' @DEFS@ -SHELL = /bin/sh - -OBJS = parser.o $(LIBOBJS) - -# -# -# -# Rules for creation of a .o file from .cxx -.SUFFIXES: .cxx -.cxx.o: - $(CC) $(INCLUDE) $(CFLAGS) -c -o $*.o $< - -##################################################################### -# TARGET: swig -##################################################################### -# friendly to the toplevel makefile -all: swig -swig: $(OBJS) - for i in $(OBJS); do echo Source/SWIG1.1/$$i >> $(OBJS_FILE); done - -parser.o: parser.cxx $(LIBHEADERS) - $(CC) $(INCLUDE) $(CFLAGS) parser.cxx -c -o parser.o - -parser.cxx: $(PARSER) - $(YACC) @YACCFLAGS@ - @cp y.tab.h parser.h - @cp y.tab.c parser.cxx - -parser:: - @cp y.tab.c.bison parser.cxx - @cp y.tab.h.bison parser.h - @cp y.tab.h.bison y.tab.h - $(CC) $(CFLAGS) parser.cxx -c -o parser.o - -clean:: - rm -f *.o libswig.a y.tab.c y.tab.h - -nuke:: - rm -f Makefile *~ #* core a.out +INCLUDES = $(SWIG_INCLUDES) -I$(top_srcdir)/Source/Swig -I$(top_srcdir)/Source/Include -I$(top_srcdir)/Source/Preprocessor -I$(top_srcdir)/Source/Modules1.1 -DSWIG_LIB='"$(SWIG_LIB)"' -DSWIG_CC='"$(CC)"' +SWIG1_LIBS = $(SWIG_LIBS) $(top_builddir)/Source/Swig/libswig.a $(top_builddir)/Source/Preprocessor/libpreprocessor.a $(top_builddir)/Source/Modules1.1/libmodules.a +bin_PROGRAMS = swig + +swig_SOURCES = parser.yxx main.cxx scanner.cxx symbol.cxx include.cxx types.cxx parms.cxx emit.cxx newdoc.cxx cplus.cxx lang.cxx hash.cxx sstring.cxx wrapfunc.cxx comment.cxx typemap.cxx naming.cxx + +swig_LDADD = $(SWIG1_LIBS) $(SWIG1_LIBS) +swig_DEPENDENCIES = $(SWIG1_LIBS) + +noinst_HEADERS = internal.h parser.h swig11.h +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_CLEAN_FILES = +PROGRAMS = $(bin_PROGRAMS) +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +swig_OBJECTS = parser.o main.o scanner.o symbol.o include.o types.o \ +parms.o emit.o newdoc.o cplus.o lang.o hash.o sstring.o wrapfunc.o \ +comment.o typemap.o naming.o +swig_LDFLAGS = +CXXFLAGS = @CXXFLAGS@ +CXXCOMPILE = $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +CXXLD = $(CXX) +CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@ +HEADERS = $(noinst_HEADERS) + +DIST_COMMON = Makefile.am Makefile.in parser.cxx +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = gtar +GZIP_ENV = --best +DEP_FILES = .deps/comment.P .deps/cplus.P .deps/emit.P .deps/hash.P \ +.deps/include.P .deps/lang.P .deps/main.P .deps/naming.P .deps/newdoc.P \ +.deps/parms.P .deps/parser.P .deps/scanner.P .deps/sstring.P \ +.deps/symbol.P .deps/typemap.P .deps/types.P .deps/wrapfunc.P +SOURCES = $(swig_SOURCES) +OBJECTS = $(swig_OBJECTS) + +all: all-redirect +.SUFFIXES: +.SUFFIXES: .S .c .cxx .o .s .yxx +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) $(top_srcdir)/Makefile.common + cd $(top_srcdir) && $(AUTOMAKE) --foreign Source/SWIG1.1/Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status +mostlyclean-binPROGRAMS: + +clean-binPROGRAMS: + -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) + +distclean-binPROGRAMS: + +maintainer-clean-binPROGRAMS: + +install-binPROGRAMS: $(bin_PROGRAMS) + @$(NORMAL_INSTALL) + $(mkinstalldirs) $(DESTDIR)$(bindir) + @list='$(bin_PROGRAMS)'; for p in $$list; do \ + if test -f $$p; then \ + echo " $(INSTALL_PROGRAM) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \ + $(INSTALL_PROGRAM) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ + else :; fi; \ + done + +uninstall-binPROGRAMS: + @$(NORMAL_UNINSTALL) + list='$(bin_PROGRAMS)'; for p in $$list; do \ + rm -f $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ + done + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +swig: $(swig_OBJECTS) $(swig_DEPENDENCIES) + @rm -f swig + $(CXXLINK) $(swig_LDFLAGS) $(swig_OBJECTS) $(swig_LDADD) $(LIBS) +.cxx.o: + $(CXXCOMPILE) -c $< +.yxx.cxx: + $(YACC) $(AM_YFLAGS) $(YFLAGS) $< && mv y.tab.c $*.cxx + if test -f y.tab.h; then \ + if cmp -s y.tab.h $*.h; then rm -f y.tab.h; else mv y.tab.h $*.h; fi; \ + else :; fi +parser.hxx: parser.cxx + + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) + +subdir = Source/SWIG1.1 + +distdir: $(DISTFILES) + here=`cd $(top_builddir) && pwd`; \ + top_distdir=`cd $(top_distdir) && pwd`; \ + distdir=`cd $(distdir) && pwd`; \ + cd $(top_srcdir) \ + && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --foreign Source/SWIG1.1/Makefile + @for file in $(DISTFILES); do \ + d=$(srcdir); \ + if test -d $$d/$$file; then \ + cp -pr $$d/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ + fi; \ + done + +DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :) + +-include $(DEP_FILES) + +mostlyclean-depend: + +clean-depend: + +distclean-depend: + -rm -rf .deps + +maintainer-clean-depend: + +%.o: %.c + @echo '$(COMPILE) -c $<'; \ + $(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-cp .deps/$(*F).pp .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm .deps/$(*F).pp + +%.lo: %.c + @echo '$(LTCOMPILE) -c $<'; \ + $(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \ + < .deps/$(*F).pp > .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm -f .deps/$(*F).pp + +%.o: %.cxx + @echo '$(CXXCOMPILE) -c $<'; \ + $(CXXCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-cp .deps/$(*F).pp .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm .deps/$(*F).pp + +%.lo: %.cxx + @echo '$(LTCXXCOMPILE) -c $<'; \ + $(LTCXXCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \ + < .deps/$(*F).pp > .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm -f .deps/$(*F).pp +info-am: +info: info-am +dvi-am: +dvi: dvi-am +check-am: all-am +check: check-am +installcheck-am: +installcheck: installcheck-am +install-exec-am: install-binPROGRAMS +install-exec: install-exec-am + +install-data-am: +install-data: install-data-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am +install: install-am +uninstall-am: uninstall-binPROGRAMS +uninstall: uninstall-am +all-am: Makefile $(PROGRAMS) $(HEADERS) +all-redirect: all-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_STRIP_FLAG=-s install +installdirs: + $(mkinstalldirs) $(DESTDIR)$(bindir) + + +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + +maintainer-clean-generic: + -test -z "parserhxxparsercxx" || rm -f parserhxx parsercxx +mostlyclean-am: mostlyclean-binPROGRAMS mostlyclean-compile \ + mostlyclean-tags mostlyclean-depend mostlyclean-generic + +mostlyclean: mostlyclean-am + +clean-am: clean-binPROGRAMS clean-compile clean-tags clean-depend \ + clean-generic mostlyclean-am + +clean: clean-am + +distclean-am: distclean-binPROGRAMS distclean-compile distclean-tags \ + distclean-depend distclean-generic clean-am + +distclean: distclean-am + +maintainer-clean-am: maintainer-clean-binPROGRAMS \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-depend maintainer-clean-generic \ + distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +maintainer-clean: maintainer-clean-am + +.PHONY: mostlyclean-binPROGRAMS distclean-binPROGRAMS clean-binPROGRAMS \ +maintainer-clean-binPROGRAMS uninstall-binPROGRAMS install-binPROGRAMS \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir mostlyclean-depend \ +distclean-depend clean-depend maintainer-clean-depend info-am info \ +dvi-am dvi check check-am installcheck-am installcheck install-exec-am \ +install-exec install-data-am install-data install-am install \ +uninstall-am uninstall all-redirect all-am all installdirs \ +mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +# 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/Source/SWIG1.1/parser.cxx b/Source/SWIG1.1/parser.cxx new file mode 100644 index 000000000..1b32a6bc5 --- /dev/null +++ b/Source/SWIG1.1/parser.cxx @@ -0,0 +1,6557 @@ + +/* A Bison parser, made from parser.yxx + by GNU Bison version 1.27 + */ + +#define YYBISON 1 /* Identify Bison output. */ + +#define ID 257 +#define HBLOCK 258 +#define WRAPPER 259 +#define POUND 260 +#define STRING 261 +#define INCLUDE 262 +#define IMPORT 263 +#define WEXTERN 264 +#define SWIGMACRO 265 +#define NUM_INT 266 +#define NUM_FLOAT 267 +#define CHARCONST 268 +#define NUM_UNSIGNED 269 +#define NUM_LONG 270 +#define NUM_ULONG 271 +#define TYPEDEF 272 +#define TYPE_INT 273 +#define TYPE_UNSIGNED 274 +#define TYPE_SHORT 275 +#define TYPE_LONG 276 +#define TYPE_FLOAT 277 +#define TYPE_DOUBLE 278 +#define TYPE_CHAR 279 +#define TYPE_VOID 280 +#define TYPE_SIGNED 281 +#define TYPE_BOOL 282 +#define TYPE_TYPEDEF 283 +#define LPAREN 284 +#define RPAREN 285 +#define COMMA 286 +#define SEMI 287 +#define EXTERN 288 +#define INIT 289 +#define LBRACE 290 +#define RBRACE 291 +#define DEFINE 292 +#define PERIOD 293 +#define CONST 294 +#define STRUCT 295 +#define UNION 296 +#define EQUAL 297 +#define SIZEOF 298 +#define MODULE 299 +#define LBRACKET 300 +#define RBRACKET 301 +#define ILLEGAL 302 +#define CONSTANT 303 +#define READONLY 304 +#define READWRITE 305 +#define NAME 306 +#define RENAME 307 +#define ADDMETHODS 308 +#define PRAGMA 309 +#define CVALUE 310 +#define COUT 311 +#define ENUM 312 +#define ENDDEF 313 +#define MACRO 314 +#define CLASS 315 +#define PRIVATE 316 +#define PUBLIC 317 +#define PROTECTED 318 +#define COLON 319 +#define STATIC 320 +#define VIRTUAL 321 +#define FRIEND 322 +#define OPERATOR 323 +#define THROW 324 +#define TEMPLATE 325 +#define NATIVE 326 +#define INLINE 327 +#define RAW_MODE 328 +#define ALPHA_MODE 329 +#define TEXT 330 +#define DOC_DISABLE 331 +#define DOC_ENABLE 332 +#define STYLE 333 +#define LOCALSTYLE 334 +#define TYPEMAP 335 +#define EXCEPT 336 +#define ECHO 337 +#define NEW 338 +#define APPLY 339 +#define CLEAR 340 +#define DOCONLY 341 +#define TITLE 342 +#define SECTION 343 +#define SUBSECTION 344 +#define SUBSUBSECTION 345 +#define LESSTHAN 346 +#define GREATERTHAN 347 +#define USERDIRECTIVE 348 +#define OC_INTERFACE 349 +#define OC_END 350 +#define OC_PUBLIC 351 +#define OC_PRIVATE 352 +#define OC_PROTECTED 353 +#define OC_CLASS 354 +#define OC_IMPLEMENT 355 +#define OC_PROTOCOL 356 +#define OR 357 +#define XOR 358 +#define AND 359 +#define LSHIFT 360 +#define RSHIFT 361 +#define PLUS 362 +#define MINUS 363 +#define STAR 364 +#define SLASH 365 +#define UMINUS 366 +#define NOT 367 +#define LNOT 368 +#define DCOLON 369 + +#line 1 "parser.yxx" + +/******************************************************************************* + * Simplified Wrapper and Interface Generator (SWIG) + * + * Author : David Beazley + * + * Department of Computer Science + * University of Chicago + * 1100 E 58th Street + * Chicago, IL 60637 + * beazley@cs.uchicago.edu + * + * Please read the file LICENSE for the copyright and terms by which SWIG + * can be used and distributed. + *******************************************************************************/ +/*********************************************************************** + * $Header$ + * + * parser.y + * + * YACC parser for parsing function declarations. + * + * *** DISCLAIMER *** + * + * This is the most ugly, incredibly henious, and completely unintelligible + * file in SWIG. While it started out simple, it has grown into a + * monster that is almost unmaintainable. A complete parser rewrite is + * currently in progress that should make this file about 1/4 the size + * that it is now. Needless to say, don't modify this file or even look + * at it for that matter! + ***********************************************************************/ + +#define yylex yylex + +static char cvsroot[] = "$Header$"; + +extern "C" int yylex(); +void yyerror (char *s); + +extern int line_number; +extern int start_line; +extern void skip_brace(void); +extern void skip_define(void); +extern void skip_decl(void); +extern int skip_cond(int); +extern void skip_to_end(void); +extern void skip_template(void); +extern void scanner_check_typedef(void); +extern void scanner_ignore_typedef(void); +extern void scanner_clear_start(void); +extern void start_inline(char *, int); +extern void format_string(char *); +extern void swig_pragma(char *, char *); + +#include "internal.h" + +#ifdef NEED_ALLOC +void *alloca(unsigned n) { + return((void *) malloc(n)); +} +#else +// This redefinition is apparently needed on a number of machines, +// particularly HPUX +#undef alloca +#define alloca malloc +#endif + +// Initialization flags. These indicate whether or not certain +// features have been initialized. These were added to allow +// interface files without the block (required in previous +// versions). + +static int module_init = 0; /* Indicates whether the %module name was given */ +static int title_init = 0; /* Indicates whether %title directive has been given */ +static int doc_init = 0; + +static int lang_init = 0; /* Indicates if the language has been initialized */ + +static int i; + int Error = 0; +static char temp_name[128]; +static DataType *temp_typeptr, temp_type; +static char yy_rename[256]; +static int Rename_true = 0; +static DataType *Active_type = 0; // Used to support variable lists +static int Active_extern = 0; // Whether or not list is external +static int Active_static = 0; +static DataType *Active_typedef = 0; // Used for typedef lists +static int InArray = 0; // Used when an array declaration is found +static int in_then = 0; +static int in_else = 0; +static int allow = 1; // Used during conditional compilation +static int doc_scope = 0; // Documentation scoping +static String ArrayString; // Array type attached to parameter names +static String ArrayBackup; // Array backup string +static char *DefArg = 0; // Default argument hack +static char *ConstChar = 0; // Used to store raw character constants +static ParmList *tm_parm = 0; // Parameter list used to hold typemap parameters +static Hash name_hash; // Hash table containing renamings + char *objc_construct = "new"; // Objective-C constructor + char *objc_destruct = "free"; // Objective-C destructor + +/* Some macros for building constants */ + +#define E_BINARY(TARGET, SRC1, SRC2, OP) \ + TARGET = new char[strlen(SRC1) + strlen(SRC2) +strlen(OP)+1];\ + sprintf(TARGET,"%s%s%s",SRC1,OP,SRC2); + +/* C++ modes */ + +#define CPLUS_PUBLIC 1 +#define CPLUS_PRIVATE 2 +#define CPLUS_PROTECTED 3 + +int cplus_mode; + +// Declarations of some functions for handling C++ + +extern void cplus_open_class(char *name, char *rname, char *ctype); +extern void cplus_member_func(char *, char *, DataType *, ParmList *, int); +extern void cplus_constructor(char *, char *, ParmList *); +extern void cplus_destructor(char *, char *); +extern void cplus_variable(char *, char *, DataType *); +extern void cplus_static_func(char *, char *, DataType *, ParmList *); +extern void cplus_declare_const(char *, char *, DataType *, char *); +extern void cplus_class_close(char *); +extern void cplus_inherit(int, char **); +extern void cplus_cleanup(void); +extern void cplus_static_var(char *, char *, DataType *); +extern void cplus_register_type(char *); +extern void cplus_register_scope(Hash *); +extern void cplus_inherit_scope(int, char **); +extern void cplus_add_pragma(char *, char *, char *); +extern DocEntry *cplus_set_class(char *); +extern void cplus_unset_class(); +extern void cplus_abort(); + +// ---------------------------------------------------------------------- +// static init_language() +// +// Initialize the target language. +// Does nothing if this function has already been called. +// ---------------------------------------------------------------------- + +static void init_language() { + if (!lang_init) { + lang->initialize(); + + // Initialize the documentation system + + if (!doctitle) { + doctitle = new DocTitle(title,0); + } + if (!doc_init) + doctitle->usage = title; + + doc_stack[0] = doctitle; + doc_stack_top = 0; + + int oldignore = IgnoreDoc; + IgnoreDoc = 1; + IgnoreDoc = oldignore; + } + lang_init = 1; + title_init = 1; +} + +// ---------------------------------------------------------------------- +// int promote(int t1, int t2) +// +// Promote types (for constant expressions) +// ---------------------------------------------------------------------- + +int promote(int t1, int t2) { + + if ((t1 == T_ERROR) || (t2 == T_ERROR)) return T_ERROR; + if ((t1 == T_DOUBLE) || (t2 == T_DOUBLE)) return T_DOUBLE; + if ((t1 == T_FLOAT) || (t2 == T_FLOAT)) return T_FLOAT; + if ((t1 == T_ULONG) || (t2 == T_ULONG)) return T_ULONG; + if ((t1 == T_LONG) || (t2 == T_LONG)) return T_LONG; + if ((t1 == T_UINT) || (t2 == T_UINT)) return T_UINT; + if ((t1 == T_INT) || (t2 == T_INT)) return T_INT; + if ((t1 == T_USHORT) || (t2 == T_USHORT)) return T_SHORT; + if ((t1 == T_SHORT) || (t2 == T_SHORT)) return T_SHORT; + if ((t1 == T_UCHAR) || (t2 == T_UCHAR)) return T_UCHAR; + if (t1 != t2) { + fprintf(stderr,"%s : Line %d. Type mismatch in constant expression\n", + input_file, line_number); + FatalError(); + } + return t1; +} + +/* Generate the scripting name of an object. Takes %name directive into + account among other things */ + +static char *make_name(char *name) { + // Check to see if the name is in the hash + char *nn = (char *) name_hash.lookup(name); + if (nn) return nn; // Yep, return it. + + if (Rename_true) { + Rename_true = 0; + return yy_rename; + } else { + // Now check to see if the name contains a $ + if (strchr(name,'$')) { + static String temp; + temp = ""; + temp << name; + temp.replace("$","_S_"); + return temp; + } else { + return name; + } + } +} + +/* Return the parent of a documentation entry. If wrapping externally, this is 0 */ + +static DocEntry *doc_parent() { + if (!WrapExtern) + return doc_stack[doc_stack_top]; + else + return 0; +} + +// ---------------------------------------------------------------------- +// create_function(int ext, char *name, DataType *t, ParmList *l) +// +// Creates a function and manages documentation creation. Really +// only used internally to the parser. +// ---------------------------------------------------------------------- + +void create_function(int ext, char *name, DataType *t, ParmList *l) { + if (Active_static) return; // Static declaration. Ignore + + init_language(); + if (WrapExtern) return; // External wrapper file. Ignore + + char *iname = make_name(name); + + // Check if symbol already exists + + if (add_symbol(iname, t, (char *) 0)) { + fprintf(stderr,"%s : Line %d. Function %s multiply defined (2nd definition ignored).\n", + input_file, line_number, iname); + } else { + Stat_func++; + if (Verbose) { + fprintf(stderr,"Wrapping function : "); + emit_extern_func(name, t, l, 0, stderr); + } + + // If extern, make an extern declaration in the SWIG wrapper file + + if (ext) + emit_extern_func(name, t, l, ext, f_header); + else if (ForceExtern) { + emit_extern_func(name, t, l, 1, f_header); + } + + // If this function has been declared inline, produce a function + + doc_entry = new DocDecl(iname,doc_stack[doc_stack_top]); + lang->create_function(name, iname, t, l); + l->check_defined(); + t->check_defined(); + } + scanner_clear_start(); +} + +// ------------------------------------------------------------------- +// create_variable(int ext, char *name, DataType *t) +// +// Create a link to a global variable. +// ------------------------------------------------------------------- + +void create_variable(int ext, char *name, DataType *t) { + + if (WrapExtern) return; // External wrapper file. Ignore + int oldstatus = Status; + + if (Active_static) return; // If static ignore + + init_language(); + + char *iname = make_name(name); + if (add_symbol(iname, t, (char *) 0)) { + fprintf(stderr,"%s : Line %d. Variable %s multiply defined (2nd definition ignored).\n", + input_file, line_number, iname); + } else { + Stat_var++; + if (Verbose) { + fprintf(stderr,"Wrapping variable : "); + emit_extern_var(name, t, 0, stderr); + } + + // If externed, output an external declaration + + if (ext) + emit_extern_var(name, t, ext, f_header); + else if (ForceExtern) { + emit_extern_var(name, t, 1, f_header); + } + + // If variable datatype is read-only, we'll force it to be readonly + if (t->status & STAT_READONLY) Status = Status | STAT_READONLY; + + // Now dump it out + doc_entry = new DocDecl(iname,doc_stack[doc_stack_top]); + lang->link_variable(name, iname, t); + t->check_defined(); + Status = oldstatus; + } + scanner_clear_start(); +} + +// ------------------------------------------------------------------ +// create_constant(char *name, DataType *type, char *value) +// +// Creates a new constant. +// ------------------------------------------------------------------- + +void create_constant(char *name, DataType *type, char *value) { + + if (Active_static) return; + if (WrapExtern) return; // External wrapper file. Ignore + init_language(); + + if (Rename_true) { + fprintf(stderr,"%s : Line %d. %%name directive ignored with #define\n", + input_file, line_number); + Rename_true = 0; + } + + if ((type->type == T_CHAR) && (!type->is_pointer)) + type->is_pointer++; + + if (!value) value = copy_string(name); + sprintf(temp_name,"const:%s", name); + if (add_symbol(temp_name, type, value)) { + fprintf(stderr,"%s : Line %d. Constant %s multiply defined. (2nd definition ignored)\n", + input_file, line_number, name); + } else { + // Update symbols value if already defined. + update_symbol(name, type, value); + + if (!WrapExtern) { // Only wrap the constant if not in %extern mode + Stat_const++; + if (Verbose) + fprintf(stderr,"Creating constant %s = %s\n", name, value); + + doc_entry = new DocDecl(name,doc_stack[doc_stack_top]); + lang->declare_const(name, name, type, value); + type->check_defined(); + } + } + scanner_clear_start(); +} + + +/* Print out array brackets */ +void print_array() { + int i; + for (i = 0; i < InArray; i++) + fprintf(stderr,"[]"); +} + +// Structures for handling code fragments built for nested classes + +struct Nested { + String code; // Associated code fragment + int line; // line number where it starts + char *name; // Name associated with this nested class + DataType *type; // Datatype associated with the name + Nested *next; // Next code fragment in list +}; + +// Some internal variables for saving nested class information + +static Nested *nested_list = 0; + +// Add a function to the nested list + +static void add_nested(Nested *n) { + Nested *n1; + if (!nested_list) nested_list = n; + else { + n1 = nested_list; + while (n1->next) n1 = n1->next; + n1->next = n; + } +} + +// Dump all of the nested class declarations to the inline processor +// However. We need to do a few name replacements and other munging +// first. This function must be called before closing a class! + +static void dump_nested(char *parent) { + Nested *n,*n1; + n = nested_list; + int oldstatus = Status; + + Status = STAT_READONLY; + while (n) { + // Token replace the name of the parent class + n->code.replace("$classname",parent); + + // Fix up the name of the datatype (for building typedefs and other stuff) + sprintf(n->type->name,"%s_%s",parent,n->name); + + // Add the appropriate declaration to the C++ processor + doc_entry = new DocDecl(n->name,doc_stack[doc_stack_top]); + cplus_variable(n->name,(char *) 0, n->type); + + // Dump the code to the scanner + if (Verbose) + fprintf(stderr,"Splitting from %s : (line %d) \n%s\n", parent,n->line, n->code.get()); + + fprintf(f_header,"\n%s\n", n->code.get()); + start_inline(n->code.get(),n->line); + + n1 = n->next; + delete n; + n = n1; + } + nested_list = 0; + Status = oldstatus; +} + + +#line 440 "parser.yxx" +typedef union { + char *id; + struct Declaration { + char *id; + int is_pointer; + int is_reference; + } decl; + struct InitList { + char **names; + int count; + } ilist; + struct DocList { + char **names; + char **values; + int count; + } dlist; + struct Define { + char *id; + int type; + } dtype; + struct { + char *filename; + int line; + int flag; + } loc; + DataType *type; + Parm *p; + TMParm *tmparm; + ParmList *pl; + int ivalue; +} YYSTYPE; +#include + +#ifndef __cplusplus +#ifndef __STDC__ +#define const +#endif +#endif + + + +#define YYFINAL 895 +#define YYFLAG -32768 +#define YYNTBASE 116 + +#define YYTRANSLATE(x) ((unsigned)(x) <= 369 ? yytranslate[x] : 251) + +static const char 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, 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, 114, 115 +}; + +#if YYDEBUG != 0 +static const short yyprhs[] = { 0, + 0, 1, 4, 7, 9, 10, 17, 18, 25, 26, + 33, 34, 45, 47, 48, 56, 61, 62, 70, 75, + 76, 86, 94, 95, 104, 112, 120, 121, 131, 133, + 135, 140, 145, 146, 150, 151, 157, 165, 177, 181, + 185, 189, 193, 195, 197, 199, 202, 204, 206, 209, + 212, 215, 218, 221, 223, 227, 231, 236, 237, 246, + 247, 248, 259, 268, 275, 284, 291, 302, 311, 317, + 321, 327, 330, 336, 339, 341, 343, 345, 347, 353, + 355, 358, 361, 363, 365, 367, 368, 374, 385, 397, + 398, 405, 409, 413, 415, 423, 427, 434, 436, 437, + 444, 445, 454, 456, 458, 461, 464, 467, 469, 473, + 475, 477, 480, 483, 487, 491, 500, 504, 507, 510, + 512, 514, 517, 521, 524, 527, 529, 531, 533, 536, + 538, 540, 543, 546, 549, 552, 556, 561, 563, 565, + 567, 570, 573, 575, 577, 579, 581, 583, 586, 589, + 592, 595, 598, 601, 605, 608, 611, 613, 616, 619, + 621, 623, 625, 627, 629, 632, 635, 638, 641, 644, + 646, 648, 651, 654, 656, 658, 660, 663, 666, 668, + 670, 672, 673, 676, 678, 680, 684, 686, 688, 690, + 694, 696, 698, 699, 704, 706, 708, 710, 712, 714, + 716, 718, 720, 725, 730, 732, 736, 740, 744, 748, + 752, 756, 760, 764, 768, 772, 775, 778, 782, 784, + 786, 787, 796, 797, 798, 810, 811, 812, 822, 827, + 837, 844, 850, 852, 853, 860, 863, 866, 868, 871, + 872, 873, 881, 882, 886, 888, 895, 903, 909, 916, + 923, 924, 930, 935, 936, 942, 950, 953, 956, 959, + 964, 965, 969, 970, 978, 980, 982, 984, 988, 990, + 992, 996, 1003, 1004, 1011, 1012, 1018, 1022, 1026, 1030, + 1034, 1036, 1038, 1040, 1042, 1044, 1046, 1048, 1050, 1051, + 1057, 1058, 1065, 1068, 1071, 1074, 1079, 1082, 1086, 1088, + 1090, 1094, 1100, 1108, 1110, 1113, 1115, 1117, 1121, 1123, + 1126, 1130, 1133, 1137, 1139, 1141, 1143, 1145, 1147, 1149, + 1151, 1156, 1158, 1162, 1166, 1169, 1171, 1173, 1177, 1182, + 1186, 1188, 1192, 1193, 1203, 1204, 1214, 1216, 1218, 1223, + 1227, 1230, 1232, 1234, 1237, 1238, 1242, 1243, 1247, 1248, + 1252, 1253, 1257, 1259, 1263, 1266, 1270, 1271, 1278, 1282, + 1287, 1289, 1292, 1293, 1299, 1300, 1307, 1308, 1312, 1314, + 1320, 1326, 1328, 1330, 1334, 1339, 1341, 1345, 1347, 1352, + 1354, 1356, 1359, 1363, 1368, 1370, 1373, 1376, 1378, 1380, + 1382, 1385, 1389, 1391, 1394, 1398, 1402, 1411, 1414, 1415, + 1420, 1421, 1425, 1427, 1431, 1433, 1439, 1442, 1445, 1448, + 1451 +}; + +static const short yyrhs[] = { -1, + 117, 118, 0, 118, 119, 0, 250, 0, 0, 8, + 7, 36, 120, 118, 37, 0, 0, 10, 7, 36, + 121, 118, 37, 0, 0, 9, 7, 36, 122, 118, + 37, 0, 0, 11, 3, 32, 7, 32, 12, 36, + 123, 118, 37, 0, 6, 0, 0, 143, 157, 153, + 156, 150, 124, 140, 0, 143, 158, 30, 110, 0, + 0, 66, 157, 153, 156, 150, 125, 140, 0, 66, + 158, 30, 110, 0, 0, 143, 157, 153, 30, 145, + 31, 207, 126, 140, 0, 143, 157, 153, 30, 145, + 31, 144, 0, 0, 143, 153, 30, 145, 31, 207, + 127, 140, 0, 66, 157, 153, 30, 145, 31, 144, + 0, 73, 157, 153, 30, 145, 31, 144, 0, 0, + 66, 157, 153, 30, 145, 31, 207, 128, 140, 0, + 50, 0, 51, 0, 52, 30, 3, 31, 0, 53, + 3, 3, 33, 0, 0, 84, 129, 119, 0, 0, + 52, 30, 31, 130, 171, 0, 72, 30, 3, 31, + 143, 3, 33, 0, 72, 30, 3, 31, 143, 157, + 153, 30, 145, 31, 33, 0, 88, 7, 238, 0, + 89, 7, 238, 0, 90, 7, 238, 0, 91, 7, + 238, 0, 75, 0, 74, 0, 134, 0, 76, 4, + 0, 135, 0, 4, 0, 5, 4, 0, 35, 4, + 0, 73, 4, 0, 83, 4, 0, 83, 7, 0, + 87, 0, 35, 3, 164, 0, 45, 3, 164, 0, + 49, 3, 162, 33, 0, 0, 143, 58, 165, 36, + 131, 166, 37, 33, 0, 0, 0, 18, 58, 165, + 36, 132, 166, 37, 3, 133, 138, 0, 81, 30, + 3, 32, 240, 31, 241, 36, 0, 81, 30, 240, + 31, 241, 36, 0, 81, 30, 3, 32, 240, 31, + 241, 33, 0, 81, 30, 240, 31, 241, 33, 0, + 81, 30, 3, 32, 240, 31, 241, 43, 243, 33, + 0, 81, 30, 240, 31, 241, 43, 243, 33, 0, + 85, 243, 36, 241, 37, 0, 86, 241, 33, 0, + 82, 30, 3, 31, 36, 0, 82, 36, 0, 82, + 30, 3, 31, 33, 0, 82, 33, 0, 33, 0, + 171, 0, 213, 0, 1, 0, 34, 7, 36, 118, + 37, 0, 139, 0, 79, 237, 0, 80, 237, 0, + 248, 0, 77, 0, 78, 0, 0, 18, 157, 153, + 136, 138, 0, 18, 157, 30, 110, 149, 31, 30, + 145, 31, 33, 0, 18, 157, 154, 30, 110, 149, + 31, 30, 145, 31, 33, 0, 0, 18, 157, 153, + 155, 137, 138, 0, 32, 153, 138, 0, 32, 153, + 155, 0, 250, 0, 55, 30, 3, 32, 3, 239, + 31, 0, 55, 3, 239, 0, 55, 30, 3, 31, + 3, 239, 0, 33, 0, 0, 32, 153, 156, 150, + 141, 140, 0, 0, 32, 153, 30, 145, 31, 207, + 142, 140, 0, 34, 0, 250, 0, 34, 7, 0, + 207, 36, 0, 147, 146, 0, 250, 0, 32, 147, + 146, 0, 250, 0, 148, 0, 152, 148, 0, 157, + 149, 0, 157, 154, 149, 0, 157, 105, 149, 0, + 157, 30, 154, 149, 31, 30, 145, 31, 0, 39, + 39, 39, 0, 3, 150, 0, 3, 155, 0, 155, + 0, 250, 0, 43, 162, 0, 43, 105, 3, 0, + 43, 36, 0, 65, 12, 0, 250, 0, 56, 0, + 57, 0, 152, 151, 0, 151, 0, 3, 0, 154, + 3, 0, 105, 3, 0, 110, 250, 0, 110, 154, + 0, 46, 47, 156, 0, 46, 170, 47, 156, 0, + 155, 0, 250, 0, 19, 0, 21, 161, 0, 22, + 161, 0, 25, 0, 28, 0, 23, 0, 24, 0, + 26, 0, 27, 159, 0, 20, 160, 0, 29, 217, + 0, 3, 217, 0, 40, 157, 0, 206, 3, 0, + 3, 115, 3, 0, 115, 3, 0, 58, 3, 0, + 19, 0, 21, 161, 0, 22, 161, 0, 25, 0, + 28, 0, 23, 0, 24, 0, 26, 0, 27, 159, + 0, 20, 160, 0, 29, 217, 0, 40, 157, 0, + 206, 3, 0, 250, 0, 19, 0, 21, 161, 0, + 22, 161, 0, 25, 0, 250, 0, 19, 0, 21, + 161, 0, 22, 161, 0, 25, 0, 19, 0, 250, + 0, 0, 163, 170, 0, 7, 0, 14, 0, 164, + 32, 3, 0, 250, 0, 3, 0, 250, 0, 166, + 32, 167, 0, 167, 0, 3, 0, 0, 3, 43, + 168, 169, 0, 250, 0, 170, 0, 14, 0, 12, + 0, 13, 0, 15, 0, 16, 0, 17, 0, 44, + 30, 157, 31, 0, 30, 158, 31, 170, 0, 3, + 0, 3, 115, 3, 0, 170, 108, 170, 0, 170, + 109, 170, 0, 170, 110, 170, 0, 170, 111, 170, + 0, 170, 105, 170, 0, 170, 103, 170, 0, 170, + 104, 170, 0, 170, 106, 170, 0, 170, 107, 170, + 0, 109, 170, 0, 113, 170, 0, 30, 170, 31, + 0, 172, 0, 178, 0, 0, 143, 206, 3, 202, + 36, 173, 181, 37, 0, 0, 0, 18, 206, 3, + 202, 36, 174, 181, 37, 153, 175, 138, 0, 0, + 0, 18, 206, 36, 176, 181, 37, 153, 177, 138, + 0, 143, 206, 3, 33, 0, 143, 157, 153, 115, + 3, 30, 145, 31, 33, 0, 143, 157, 153, 115, + 3, 33, 0, 143, 157, 153, 115, 69, 0, 71, + 0, 0, 54, 3, 36, 179, 180, 37, 0, 185, + 181, 0, 231, 227, 0, 250, 0, 185, 181, 0, + 0, 0, 54, 36, 182, 181, 37, 183, 181, 0, + 0, 1, 184, 181, 0, 250, 0, 157, 153, 30, + 145, 31, 198, 0, 67, 157, 153, 30, 145, 31, + 199, 0, 3, 30, 145, 31, 208, 0, 113, 3, + 30, 145, 31, 198, 0, 67, 113, 3, 30, 31, + 198, 0, 0, 157, 153, 150, 186, 195, 0, 157, + 153, 155, 150, 0, 0, 66, 157, 153, 187, 195, + 0, 66, 157, 153, 30, 145, 31, 198, 0, 63, + 65, 0, 62, 65, 0, 64, 65, 0, 52, 30, + 3, 31, 0, 0, 84, 188, 185, 0, 0, 58, + 165, 36, 189, 200, 37, 33, 0, 50, 0, 51, + 0, 68, 0, 157, 194, 69, 0, 135, 0, 190, + 0, 55, 3, 239, 0, 55, 30, 3, 31, 3, + 239, 0, 0, 206, 3, 36, 191, 193, 33, 0, + 0, 206, 36, 192, 153, 33, 0, 206, 3, 33, + 0, 157, 154, 30, 0, 158, 30, 110, 0, 3, + 30, 110, 0, 134, 0, 33, 0, 153, 0, 250, + 0, 154, 0, 105, 0, 250, 0, 33, 0, 0, + 32, 153, 150, 196, 195, 0, 0, 32, 153, 155, + 150, 197, 195, 0, 207, 33, 0, 207, 36, 0, + 207, 33, 0, 207, 43, 162, 33, 0, 207, 36, + 0, 200, 32, 201, 0, 201, 0, 3, 0, 3, + 43, 169, 0, 52, 30, 3, 31, 3, 0, 52, + 30, 3, 31, 3, 43, 169, 0, 250, 0, 65, + 203, 0, 250, 0, 204, 0, 203, 32, 204, 0, + 3, 0, 67, 3, 0, 67, 205, 3, 0, 205, + 3, 0, 205, 67, 3, 0, 63, 0, 62, 0, + 64, 0, 61, 0, 41, 0, 42, 0, 40, 0, + 70, 30, 145, 31, 0, 250, 0, 207, 209, 33, + 0, 207, 209, 36, 0, 65, 210, 0, 250, 0, + 211, 0, 210, 32, 211, 0, 3, 30, 212, 31, + 0, 3, 30, 31, 0, 170, 0, 212, 32, 170, + 0, 0, 95, 3, 216, 214, 36, 218, 37, 227, + 96, 0, 0, 95, 3, 30, 3, 31, 217, 215, + 227, 96, 0, 101, 0, 102, 0, 100, 3, 164, + 33, 0, 65, 3, 217, 0, 217, 250, 0, 92, + 0, 250, 0, 223, 218, 0, 0, 97, 219, 218, + 0, 0, 98, 220, 218, 0, 0, 99, 221, 218, + 0, 0, 1, 222, 218, 0, 250, 0, 224, 226, + 33, 0, 157, 153, 0, 157, 153, 155, 0, 0, + 52, 30, 3, 31, 225, 224, 0, 32, 153, 226, + 0, 32, 153, 155, 226, 0, 250, 0, 231, 227, + 0, 0, 54, 36, 228, 227, 37, 0, 0, 52, + 30, 3, 31, 229, 227, 0, 0, 1, 230, 227, + 0, 250, 0, 109, 233, 3, 235, 232, 0, 108, + 233, 3, 235, 232, 0, 33, 0, 36, 0, 30, + 157, 31, 0, 30, 157, 154, 31, 0, 250, 0, + 30, 147, 31, 0, 250, 0, 235, 236, 234, 3, + 0, 250, 0, 65, 0, 3, 65, 0, 3, 239, + 238, 0, 238, 32, 3, 239, 0, 250, 0, 43, + 12, 0, 43, 7, 0, 250, 0, 3, 0, 40, + 0, 243, 242, 0, 32, 243, 242, 0, 250, 0, + 157, 244, 0, 157, 154, 244, 0, 157, 105, 244, + 0, 157, 30, 154, 244, 31, 30, 145, 31, 0, + 3, 247, 0, 0, 3, 155, 245, 247, 0, 0, + 155, 246, 247, 0, 247, 0, 30, 145, 31, 0, + 250, 0, 94, 30, 145, 31, 249, 0, 94, 249, + 0, 3, 33, 0, 7, 33, 0, 36, 37, 0, + 0 +}; + +#endif + +#if YYDEBUG != 0 +static const short yyrline[] = { 0, + 529, 538, 548, 552, 556, 561, 568, 575, 583, 591, + 597, 602, 609, 618, 643, 647, 655, 661, 667, 676, + 686, 690, 701, 708, 712, 727, 748, 755, 761, 767, + 772, 778, 787, 789, 795, 799, 805, 817, 838, 886, + 916, 952, 989, 997, 1005, 1009, 1018, 1022, 1033, 1043, + 1052, 1062, 1068, 1075, 1081, 1101, 1115, 1132, 1132, 1145, + 1145, 1153, 1163, 1176, 1195, 1207, 1225, 1240, 1261, 1272, + 1289, 1296, 1303, 1308, 1314, 1315, 1316, 1317, 1335, 1339, + 1343, 1359, 1372, 1378, 1390, 1407, 1417, 1421, 1441, 1463, + 1477, 1490, 1500, 1511, 1514, 1522, 1526, 1534, 1535, 1561, + 1562, 1572, 1575, 1576, 1577, 1589, 1598, 1604, 1607, 1612, + 1615, 1620, 1635, 1661, 1680, 1692, 1703, 1713, 1722, 1727, + 1733, 1740, 1741, 1747, 1751, 1753, 1756, 1757, 1760, 1763, + 1770, 1774, 1779, 1789, 1790, 1794, 1798, 1805, 1808, 1816, + 1819, 1822, 1825, 1828, 1831, 1834, 1837, 1840, 1844, 1848, + 1859, 1874, 1879, 1884, 1893, 1899, 1909, 1912, 1915, 1918, + 1921, 1924, 1927, 1930, 1933, 1937, 1941, 1945, 1950, 1959, + 1962, 1968, 1974, 1980, 1990, 1993, 1999, 2005, 2011, 2019, + 2020, 2023, 2023, 2029, 2036, 2048, 2054, 2064, 2065, 2071, + 2072, 2076, 2081, 2081, 2088, 2091, 2103, 2114, 2118, 2122, + 2126, 2130, 2134, 2139, 2144, 2156, 2163, 2169, 2175, 2182, + 2189, 2200, 2212, 2224, 2236, 2248, 2255, 2265, 2276, 2277, + 2280, 2314, 2351, 2385, 2448, 2452, 2475, 2511, 2514, 2527, + 2548, 2568, 2576, 2584, 2594, 2602, 2603, 2604, 2607, 2608, + 2610, 2612, 2613, 2623, 2624, 2627, 2651, 2674, 2695, 2715, + 2735, 2786, 2788, 2819, 2838, 2842, 2862, 2873, 2884, 2895, + 2903, 2905, 2910, 2910, 2928, 2933, 2939, 2947, 2955, 2959, + 2964, 2967, 2990, 2991, 3016, 3017, 3041, 3048, 3053, 3058, + 3063, 3064, 3067, 3068, 3071, 3072, 3073, 3076, 3077, 3101, + 3102, 3127, 3130, 3133, 3136, 3137, 3138, 3141, 3142, 3145, + 3160, 3176, 3191, 3205, 3208, 3211, 3217, 3230, 3239, 3244, + 3249, 3258, 3267, 3278, 3279, 3280, 3284, 3285, 3286, 3289, + 3290, 3291, 3296, 3299, 3302, 3303, 3306, 3307, 3310, 3311, + 3314, 3315, 3323, 3339, 3356, 3367, 3372, 3373, 3374, 3389, + 3390, 3394, 3400, 3405, 3406, 3408, 3409, 3411, 3412, 3414, + 3415, 3428, 3429, 3432, 3439, 3461, 3483, 3486, 3488, 3508, + 3530, 3533, 3534, 3536, 3539, 3542, 3543, 3556, 3557, 3560, + 3580, 3601, 3602, 3605, 3608, 3612, 3620, 3624, 3632, 3638, + 3643, 3644, 3655, 3665, 3672, 3679, 3682, 3685, 3695, 3698, + 3703, 3709, 3713, 3716, 3729, 3743, 3756, 3771, 3775, 3778, + 3784, 3787, 3794, 3800, 3803, 3810, 3811, 3814, 3815, 3816, + 3848 +}; +#endif + + +#if YYDEBUG != 0 || defined (YYERROR_VERBOSE) + +static const char * const yytname[] = { "$","error","$undefined.","ID","HBLOCK", +"WRAPPER","POUND","STRING","INCLUDE","IMPORT","WEXTERN","SWIGMACRO","NUM_INT", +"NUM_FLOAT","CHARCONST","NUM_UNSIGNED","NUM_LONG","NUM_ULONG","TYPEDEF","TYPE_INT", +"TYPE_UNSIGNED","TYPE_SHORT","TYPE_LONG","TYPE_FLOAT","TYPE_DOUBLE","TYPE_CHAR", +"TYPE_VOID","TYPE_SIGNED","TYPE_BOOL","TYPE_TYPEDEF","LPAREN","RPAREN","COMMA", +"SEMI","EXTERN","INIT","LBRACE","RBRACE","DEFINE","PERIOD","CONST","STRUCT", +"UNION","EQUAL","SIZEOF","MODULE","LBRACKET","RBRACKET","ILLEGAL","CONSTANT", +"READONLY","READWRITE","NAME","RENAME","ADDMETHODS","PRAGMA","CVALUE","COUT", +"ENUM","ENDDEF","MACRO","CLASS","PRIVATE","PUBLIC","PROTECTED","COLON","STATIC", +"VIRTUAL","FRIEND","OPERATOR","THROW","TEMPLATE","NATIVE","INLINE","RAW_MODE", +"ALPHA_MODE","TEXT","DOC_DISABLE","DOC_ENABLE","STYLE","LOCALSTYLE","TYPEMAP", +"EXCEPT","ECHO","NEW","APPLY","CLEAR","DOCONLY","TITLE","SECTION","SUBSECTION", +"SUBSUBSECTION","LESSTHAN","GREATERTHAN","USERDIRECTIVE","OC_INTERFACE","OC_END", +"OC_PUBLIC","OC_PRIVATE","OC_PROTECTED","OC_CLASS","OC_IMPLEMENT","OC_PROTOCOL", +"OR","XOR","AND","LSHIFT","RSHIFT","PLUS","MINUS","STAR","SLASH","UMINUS","NOT", +"LNOT","DCOLON","program","@1","command","statement","@2","@3","@4","@5","@6", +"@7","@8","@9","@10","@11","@12","@13","@14","@15","doc_enable","typedef_decl", +"@16","@17","typedeflist","pragma","stail","@18","@19","extern","func_end","parms", +"ptail","parm","parm_type","pname","def_args","parm_specifier","parm_specifier_list", +"declaration","stars","array","array2","type","strict_type","opt_signed","opt_unsigned", +"opt_int","definetype","@20","initlist","ename","enumlist","edecl","@21","etype", +"expr","cpp","cpp_class","@22","@23","@24","@25","@26","cpp_other","@27","added_members", +"cpp_members","@28","@29","@30","cpp_member","@31","@32","@33","@34","cpp_pragma", +"@35","@36","nested_decl","type_extra","cpp_tail","@37","@38","cpp_end","cpp_vend", +"cpp_enumlist","cpp_edecl","inherit","base_list","base_specifier","access_specifier", +"cpptype","cpp_const","ctor_end","ctor_initializer","mem_initializer_list","mem_initializer", +"expr_list","objective_c","@39","@40","objc_inherit","objc_protolist","objc_data", +"@41","@42","@43","@44","objc_vars","objc_var","@45","objc_vartail","objc_methods", +"@46","@47","@48","objc_method","objc_end","objc_ret_type","objc_arg_type","objc_args", +"objc_separator","stylelist","styletail","stylearg","tm_method","tm_list","tm_tail", +"typemap_parm","typemap_name","@49","@50","typemap_args","user_directive","uservalue", +"empty", NULL +}; +#endif + +static const short yyr1[] = { 0, + 117, 116, 118, 118, 120, 119, 121, 119, 122, 119, + 123, 119, 119, 124, 119, 119, 125, 119, 119, 126, + 119, 119, 127, 119, 119, 119, 128, 119, 119, 119, + 119, 119, 129, 119, 130, 119, 119, 119, 119, 119, + 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, + 119, 119, 119, 119, 119, 119, 119, 131, 119, 132, + 133, 119, 119, 119, 119, 119, 119, 119, 119, 119, + 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, + 119, 119, 119, 134, 134, 136, 135, 135, 135, 137, + 135, 138, 138, 138, 139, 139, 139, 140, 141, 140, + 142, 140, 143, 143, 143, 144, 145, 145, 146, 146, + 147, 147, 148, 148, 148, 148, 148, 149, 149, 149, + 149, 150, 150, 150, 150, 150, 151, 151, 152, 152, + 153, 153, 153, 154, 154, 155, 155, 156, 156, 157, + 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, + 157, 157, 157, 157, 157, 157, 158, 158, 158, 158, + 158, 158, 158, 158, 158, 158, 158, 158, 158, 159, + 159, 159, 159, 159, 160, 160, 160, 160, 160, 161, + 161, 163, 162, 162, 162, 164, 164, 165, 165, 166, + 166, 167, 168, 167, 167, 169, 169, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 171, 171, + 173, 172, 174, 175, 172, 176, 177, 172, 178, 178, + 178, 178, 178, 179, 178, 180, 180, 180, 181, 182, + 183, 181, 184, 181, 181, 185, 185, 185, 185, 185, + 186, 185, 185, 187, 185, 185, 185, 185, 185, 185, + 188, 185, 189, 185, 185, 185, 185, 185, 185, 185, + 190, 190, 191, 190, 192, 190, 190, 190, 190, 190, + 190, 190, 193, 193, 194, 194, 194, 195, 196, 195, + 197, 195, 198, 198, 199, 199, 199, 200, 200, 201, + 201, 201, 201, 201, 202, 202, 203, 203, 204, 204, + 204, 204, 204, 205, 205, 205, 206, 206, 206, 207, + 207, 207, 208, 208, 209, 209, 210, 210, 211, 211, + 212, 212, 214, 213, 215, 213, 213, 213, 213, 216, + 216, 217, 217, 218, 219, 218, 220, 218, 221, 218, + 222, 218, 218, 223, 224, 224, 225, 224, 226, 226, + 226, 227, 228, 227, 229, 227, 230, 227, 227, 231, + 231, 232, 232, 233, 233, 233, 234, 234, 235, 235, + 236, 236, 237, 238, 238, 239, 239, 239, 240, 240, + 241, 242, 242, 243, 243, 243, 243, 244, 245, 244, + 246, 244, 244, 247, 247, 248, 248, 249, 249, 249, + 250 +}; + +static const short yyr2[] = { 0, + 0, 2, 2, 1, 0, 6, 0, 6, 0, 6, + 0, 10, 1, 0, 7, 4, 0, 7, 4, 0, + 9, 7, 0, 8, 7, 7, 0, 9, 1, 1, + 4, 4, 0, 3, 0, 5, 7, 11, 3, 3, + 3, 3, 1, 1, 1, 2, 1, 1, 2, 2, + 2, 2, 2, 1, 3, 3, 4, 0, 8, 0, + 0, 10, 8, 6, 8, 6, 10, 8, 5, 3, + 5, 2, 5, 2, 1, 1, 1, 1, 5, 1, + 2, 2, 1, 1, 1, 0, 5, 10, 11, 0, + 6, 3, 3, 1, 7, 3, 6, 1, 0, 6, + 0, 8, 1, 1, 2, 2, 2, 1, 3, 1, + 1, 2, 2, 3, 3, 8, 3, 2, 2, 1, + 1, 2, 3, 2, 2, 1, 1, 1, 2, 1, + 1, 2, 2, 2, 2, 3, 4, 1, 1, 1, + 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, + 2, 2, 2, 3, 2, 2, 1, 2, 2, 1, + 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, + 1, 2, 2, 1, 1, 1, 2, 2, 1, 1, + 1, 0, 2, 1, 1, 3, 1, 1, 1, 3, + 1, 1, 0, 4, 1, 1, 1, 1, 1, 1, + 1, 1, 4, 4, 1, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 2, 2, 3, 1, 1, + 0, 8, 0, 0, 11, 0, 0, 9, 4, 9, + 6, 5, 1, 0, 6, 2, 2, 1, 2, 0, + 0, 7, 0, 3, 1, 6, 7, 5, 6, 6, + 0, 5, 4, 0, 5, 7, 2, 2, 2, 4, + 0, 3, 0, 7, 1, 1, 1, 3, 1, 1, + 3, 6, 0, 6, 0, 5, 3, 3, 3, 3, + 1, 1, 1, 1, 1, 1, 1, 1, 0, 5, + 0, 6, 2, 2, 2, 4, 2, 3, 1, 1, + 3, 5, 7, 1, 2, 1, 1, 3, 1, 2, + 3, 2, 3, 1, 1, 1, 1, 1, 1, 1, + 4, 1, 3, 3, 2, 1, 1, 3, 4, 3, + 1, 3, 0, 9, 0, 9, 1, 1, 4, 3, + 2, 1, 1, 2, 0, 3, 0, 3, 0, 3, + 0, 3, 1, 3, 2, 3, 0, 6, 3, 4, + 1, 2, 0, 5, 0, 6, 0, 3, 1, 5, + 5, 1, 1, 3, 4, 1, 3, 1, 4, 1, + 1, 2, 3, 4, 1, 2, 2, 1, 1, 1, + 2, 3, 1, 2, 3, 3, 8, 2, 0, 4, + 0, 3, 1, 3, 1, 5, 2, 2, 2, 2, + 0 +}; + +static const short yydefact[] = { 1, + 411, 0, 4, 78, 48, 0, 13, 0, 0, 0, + 0, 0, 75, 103, 0, 0, 0, 29, 30, 0, + 0, 0, 0, 0, 233, 0, 0, 44, 43, 0, + 84, 85, 0, 0, 0, 0, 0, 33, 0, 0, + 54, 0, 0, 0, 0, 0, 0, 0, 337, 338, + 3, 45, 47, 80, 0, 76, 219, 220, 77, 83, + 104, 49, 0, 0, 0, 0, 411, 140, 411, 411, + 411, 145, 146, 143, 147, 411, 144, 411, 0, 318, + 319, 411, 317, 0, 0, 0, 105, 411, 50, 411, + 182, 0, 0, 0, 411, 0, 140, 411, 411, 411, + 145, 146, 143, 147, 411, 144, 411, 0, 0, 0, + 0, 0, 0, 51, 0, 0, 46, 411, 81, 82, + 0, 0, 74, 72, 52, 53, 0, 411, 0, 0, + 411, 411, 411, 411, 411, 0, 0, 411, 0, 407, + 411, 411, 411, 411, 0, 411, 0, 0, 0, 0, + 0, 5, 9, 7, 0, 342, 0, 151, 343, 176, + 411, 411, 179, 149, 175, 180, 141, 181, 142, 171, + 411, 411, 174, 148, 170, 150, 152, 156, 0, 189, + 155, 131, 0, 86, 0, 153, 226, 411, 55, 187, + 56, 184, 185, 0, 0, 0, 35, 0, 234, 0, + 96, 388, 0, 149, 141, 142, 148, 150, 152, 156, + 411, 0, 153, 0, 0, 153, 411, 389, 390, 0, + 0, 34, 411, 411, 0, 411, 411, 401, 394, 403, + 405, 0, 70, 0, 391, 393, 39, 385, 40, 41, + 42, 408, 409, 0, 127, 128, 0, 411, 111, 130, + 0, 411, 108, 410, 0, 0, 333, 411, 0, 0, + 133, 135, 134, 411, 132, 411, 0, 153, 411, 411, + 411, 0, 154, 177, 178, 172, 173, 60, 411, 411, + 90, 0, 0, 0, 306, 0, 0, 0, 57, 205, + 198, 199, 200, 201, 202, 0, 0, 0, 0, 183, + 31, 411, 32, 411, 387, 386, 0, 0, 411, 138, + 411, 139, 19, 411, 411, 383, 0, 0, 0, 411, + 399, 398, 0, 411, 411, 0, 396, 395, 411, 0, + 411, 0, 0, 0, 0, 107, 110, 112, 129, 411, + 0, 411, 113, 411, 120, 121, 0, 411, 0, 341, + 339, 58, 0, 411, 0, 411, 16, 229, 0, 0, + 0, 0, 0, 411, 0, 0, 87, 94, 411, 411, + 309, 315, 314, 316, 0, 305, 307, 0, 223, 243, + 411, 0, 282, 265, 266, 0, 0, 0, 411, 0, + 0, 0, 0, 0, 267, 261, 0, 281, 269, 411, + 0, 0, 0, 270, 0, 245, 79, 186, 0, 157, + 411, 411, 411, 162, 163, 160, 164, 411, 161, 411, + 0, 0, 0, 0, 0, 216, 217, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 103, 0, 36, + 411, 411, 0, 0, 0, 238, 411, 411, 0, 182, + 0, 17, 126, 0, 0, 389, 0, 0, 73, 71, + 411, 404, 0, 136, 411, 402, 69, 392, 411, 117, + 406, 411, 118, 119, 411, 115, 114, 411, 340, 0, + 411, 411, 0, 0, 232, 14, 221, 6, 10, 8, + 0, 192, 0, 191, 195, 0, 411, 91, 0, 310, + 0, 0, 312, 0, 0, 0, 411, 0, 240, 411, + 0, 0, 258, 257, 259, 0, 0, 0, 0, 0, + 286, 411, 285, 0, 287, 0, 0, 239, 153, 275, + 206, 166, 158, 159, 165, 167, 168, 0, 218, 169, + 0, 212, 213, 211, 214, 215, 207, 208, 209, 210, + 0, 105, 0, 0, 0, 0, 376, 0, 235, 236, + 367, 0, 0, 237, 0, 369, 97, 0, 411, 124, + 0, 122, 125, 0, 411, 0, 411, 0, 66, 64, + 0, 400, 0, 137, 384, 109, 0, 335, 351, 0, + 345, 347, 349, 0, 0, 0, 411, 353, 0, 320, + 0, 23, 322, 411, 411, 231, 0, 0, 11, 193, + 411, 0, 411, 92, 93, 0, 311, 308, 313, 0, + 244, 280, 0, 0, 0, 271, 0, 263, 254, 0, + 0, 262, 411, 411, 251, 411, 278, 268, 279, 227, + 277, 273, 0, 204, 203, 411, 0, 153, 0, 411, + 411, 0, 0, 363, 362, 95, 25, 27, 123, 0, + 98, 18, 37, 0, 26, 0, 0, 0, 411, 0, + 0, 0, 0, 0, 0, 0, 355, 0, 344, 0, + 0, 361, 0, 411, 0, 22, 20, 0, 15, 0, + 411, 0, 190, 61, 0, 411, 0, 411, 260, 0, + 0, 411, 411, 0, 0, 411, 0, 0, 0, 253, + 411, 411, 0, 374, 0, 0, 380, 0, 368, 0, + 0, 106, 0, 411, 411, 65, 63, 0, 68, 0, + 411, 0, 352, 0, 346, 348, 350, 356, 0, 411, + 354, 59, 0, 24, 0, 0, 222, 0, 197, 194, + 196, 411, 0, 0, 224, 411, 248, 241, 411, 300, + 0, 0, 299, 304, 0, 0, 288, 255, 411, 0, + 411, 411, 252, 228, 283, 0, 284, 276, 375, 0, + 372, 373, 381, 371, 411, 370, 365, 0, 28, 411, + 411, 0, 0, 397, 0, 336, 357, 334, 411, 359, + 321, 21, 230, 12, 62, 88, 0, 411, 0, 0, + 326, 0, 272, 0, 0, 411, 0, 411, 411, 250, + 0, 411, 249, 246, 274, 382, 0, 0, 378, 0, + 364, 0, 99, 0, 67, 116, 0, 360, 89, 225, + 0, 325, 327, 323, 324, 242, 301, 0, 298, 264, + 256, 289, 411, 293, 294, 247, 0, 0, 379, 366, + 411, 0, 38, 358, 0, 0, 0, 0, 291, 295, + 297, 182, 377, 101, 100, 330, 331, 0, 328, 302, + 290, 0, 0, 0, 329, 0, 0, 292, 296, 102, + 332, 303, 0, 0, 0 +}; + +static const short yydefgoto[] = { 893, + 1, 2, 51, 269, 271, 270, 691, 607, 574, 745, + 685, 723, 127, 302, 481, 364, 752, 398, 399, 280, + 369, 367, 54, 662, 862, 884, 55, 657, 323, 336, + 248, 249, 343, 452, 250, 251, 147, 148, 345, 311, + 252, 401, 174, 164, 167, 194, 195, 189, 179, 493, + 494, 692, 750, 751, 56, 57, 608, 505, 808, 286, + 711, 58, 304, 443, 402, 625, 812, 506, 403, 709, + 704, 519, 702, 404, 712, 643, 776, 524, 768, 868, + 882, 820, 856, 762, 763, 284, 376, 377, 378, 116, + 821, 757, 810, 842, 843, 878, 59, 349, 671, 257, + 158, 595, 674, 675, 676, 672, 596, 597, 837, 681, + 564, 721, 830, 652, 565, 784, 556, 828, 716, 785, + 119, 237, 201, 220, 130, 235, 131, 229, 461, 329, + 230, 60, 140, 253 +}; + +static const short yypact[] = {-32768, +-32768, 1038,-32768,-32768,-32768, 118,-32768, 140, 202, 227, + 286, 2228,-32768, 289, 345, 347, 355,-32768,-32768, 99, + 372, 393, 32, 2255,-32768, 335, 2114,-32768,-32768, 424, +-32768,-32768, 448, 448, 415, 442, 226,-32768, 2298, 2298, +-32768, 450, 456, 458, 476, 364, 520, 525,-32768,-32768, +-32768,-32768,-32768,-32768, 2087,-32768,-32768,-32768,-32768,-32768, +-32768,-32768, 423, 493, 498, 505, -44,-32768, 465, 519, + 519,-32768,-32768,-32768,-32768, 497,-32768, 451, 2298,-32768, +-32768, 537,-32768, 551, 44, 40, 524,-32768,-32768,-32768, + 50, 42, 552, 526, 513, 558, 535, 465, 519, 519, + 542, 543, 545, 548, 497, 549, 451, 2298, 577, 64, + 563, 591, 594,-32768, 64, 596,-32768, 513,-32768,-32768, + 173, 597,-32768,-32768,-32768,-32768, 1656, 122, 565, 572, + 574,-32768,-32768,-32768,-32768, 576, 592, 2044, 589,-32768, + 158,-32768, 4, 537, 625, 521, 599, 627, 64, 602, + 630,-32768,-32768,-32768, 635,-32768, 631,-32768,-32768,-32768, + 519, 519,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, + 519, 519,-32768,-32768,-32768,-32768,-32768, 612, 617,-32768, +-32768,-32768, 550, 613, 143, -10,-32768,-32768, 626,-32768, + 626,-32768,-32768, 628, 669, 633,-32768, 629,-32768, 46, +-32768,-32768, 358, 636, 639, 646, 648, 649, 650,-32768, + 194, 555, 653, 656, 658,-32768,-32768, 657,-32768, 661, + 663,-32768, 265, 1945, 495, 236, 236,-32768,-32768,-32768, +-32768, 2298,-32768, 2298,-32768,-32768, 664,-32768, 664, 664, + 664,-32768,-32768, 659,-32768,-32768, 671, 668,-32768,-32768, + 2044, 189,-32768,-32768, 692, 700,-32768,-32768, 402, 672, +-32768,-32768,-32768, 2044,-32768, 6, 595, 452,-32768,-32768, +-32768, 675,-32768,-32768,-32768,-32768,-32768,-32768, 69, 677, +-32768, 604, 253, 676,-32768, 881, 1141, 701,-32768, 600, +-32768,-32768,-32768,-32768,-32768, 989, 687, 669, 669, 768, +-32768, 275,-32768, 1809,-32768,-32768, 715, 718, 2044,-32768, + 240,-32768,-32768, 688, 2044, 664, 198, 2298, 403, 2044, +-32768,-32768, 704, 236, 613, 1915,-32768,-32768, 706, 705, + 574, 738, 709, 401, 2044,-32768,-32768,-32768,-32768, 341, + 521, 69,-32768, 69,-32768,-32768, 712, 451, 713,-32768, +-32768,-32768, 714, 2044, 88, 240,-32768,-32768, 717, 1244, + 1347, 1450, 742, 747, 725, 64,-32768,-32768, 677, 69, +-32768,-32768,-32768,-32768, 212, 727,-32768, 51,-32768,-32768, + 80, 2298,-32768,-32768,-32768, 730, 721, 164, 537, 696, + 697, 699, 2298, 2158,-32768,-32768, 763,-32768,-32768, 102, + 737, 739, 881,-32768, 43,-32768,-32768,-32768, 771,-32768, + 465, 519, 519,-32768,-32768,-32768,-32768, 497,-32768, 451, + 2298, 744, 621, 774, 2298,-32768,-32768, 669, 669, 669, + 669, 669, 669, 669, 669, 669, 295, 772, 2298,-32768, + 750, 750, 746, 881, 154,-32768, 513, 513, 755, 23, + 769,-32768,-32768, 2325, 756,-32768, 757, 362,-32768,-32768, + 706,-32768, 758,-32768, 613,-32768,-32768,-32768, 513,-32768, +-32768, 668,-32768,-32768, 69,-32768,-32768, 451,-32768, 1759, + 747, 150, 760, 428,-32768,-32768,-32768,-32768,-32768,-32768, + 759, 749, 377,-32768,-32768, 764, 268,-32768, 762,-32768, + 793, 253,-32768, 794, 881, 881, 1988, 796,-32768, 513, + 797, 766,-32768,-32768,-32768, 64, 800, 64, 1879, 775, + 625, 308, 172, 735,-32768, 710, 64,-32768, 494,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768, 669,-32768,-32768, + 778, 781, 506, 480, 512, 512, 342, 342,-32768,-32768, + 255,-32768, 64, 813, 2298, 816,-32768, 819,-32768,-32768, +-32768, 795, 788,-32768, 28,-32768,-32768, 799, 150,-32768, + 823,-32768,-32768, 459, 126, 64, 150, 2298,-32768,-32768, + 2298,-32768, 798,-32768,-32768,-32768, 801,-32768,-32768, 803, +-32768,-32768,-32768, 64, 790, 1759, 802,-32768, 389,-32768, + 806,-32768,-32768, 150, 2044,-32768, 459, 881,-32768,-32768, + 747, 828, 2044,-32768,-32768, 807,-32768,-32768,-32768, 804, +-32768,-32768, 808, 809, 881,-32768, 812,-32768, 814, 817, + 818,-32768, 2044, 2044,-32768, 240,-32768,-32768,-32768,-32768, +-32768,-32768, 64,-32768,-32768, 773, 731, 216, -7,-32768, +-32768, 28, 846,-32768,-32768,-32768,-32768, 815,-32768, 64, +-32768,-32768,-32768, 820,-32768, 815, 387, 821, 2044, 825, + 55, 1759, 850, 1759, 1759, 1759, 613, 55,-32768, 64, + 824,-32768, 826, 2044, 459,-32768, 815, 830,-32768, 831, +-32768, 624,-32768,-32768, 832, 2044, 64, 150,-32768, 844, + 859, 41, 2044, 470, 834, 2044, 838, 852, 470,-32768, + 677, 64, 861,-32768, 864, 163,-32768, 163,-32768, 865, + 154,-32768, 459, 276, 2044,-32768,-32768, 2298,-32768, 866, + 2044, 829,-32768, 867,-32768,-32768,-32768,-32768, 841, 294, +-32768,-32768, 880,-32768, 459, 879,-32768, 1553,-32768,-32768, + 768, 677, 882, 886,-32768, 848,-32768,-32768, 513, 876, + 890, 390,-32768,-32768, 893, 64,-32768,-32768, 150, 895, + 150, 150,-32768,-32768,-32768, 894,-32768,-32768,-32768, 863, +-32768,-32768,-32768,-32768, 900,-32768,-32768, 901,-32768, 2044, + 240, 909, 908,-32768, 915,-32768,-32768,-32768, 802,-32768, +-32768,-32768,-32768,-32768,-32768,-32768, 918, 677, 949, 434, +-32768, 881,-32768, 624, 950, 41, 921, 150, 341,-32768, + 500, 150,-32768,-32768,-32768,-32768, 2044, 952,-32768, 28, +-32768, 925,-32768, 924,-32768,-32768, 2185,-32768,-32768,-32768, + 930, 929,-32768,-32768,-32768,-32768,-32768, 931,-32768,-32768, +-32768,-32768, 240,-32768,-32768,-32768, 433, 932,-32768,-32768, + 150, 459,-32768,-32768, 554, 949, 961, 470,-32768,-32768, +-32768, 50,-32768,-32768,-32768,-32768, 768, 483,-32768, 923, +-32768, 470, 934, 459,-32768, 669, 624,-32768,-32768,-32768, + 768,-32768, 968, 969,-32768 +}; + +static const short yypgoto[] = {-32768, +-32768, -185, 843,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768, 17, 21,-32768, +-32768, -359,-32768, -565,-32768,-32768, 62, -340, 139, 499, + -330, 722, -254, -318, 723,-32768, 340, -68, 61, -262, + 138, -4, -97, -86, 82, -443,-32768, -59, -130, 491, + 365,-32768, -786, 117, 678,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768, -394,-32768,-32768,-32768, -283,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -682,-32768, +-32768, -511,-32768,-32768, 161, -257,-32768, 477, 603, -6, + -469,-32768,-32768,-32768, 115,-32768,-32768,-32768,-32768,-32768, + -46, -341,-32768,-32768,-32768,-32768,-32768, 147,-32768, -557, + -473,-32768,-32768,-32768, 681, 269, 544,-32768, 337,-32768, + 955, -94, -103, 673, -216, 660, -37, -113,-32768,-32768, + -190,-32768, 665, -1 +}; + + +#define YYLAST 2440 + + +static const short yytable[] = { 3, + 61, 129, 287, 356, 472, 86, 572, 207, 528, 498, + 359, 204, 602, 260, 217, 330, 185, 112, 52, 111, + 444, 473, 53, 714, 365, -411, 773, 847, 561, 192, + 191, 176, 322, -131, 95, 354, 193, 486, 239, 240, + 241, 689, 186, 760, 196, 529, 182, 156, 151, 560, + 150, 225, 305, 503, 283, 561, 192, 306, 570, 227, + 208, 96, 464, 193, -411, 159, 182, 165, 168, 168, + 157, 340, 197, 183, 175, 187, 159, 262, 530, 562, + 180, 563, 259, 360, 361, 362, 190, 476, 190, 477, + 484, 655, 761, 202, 258, 156, 165, 168, 168, 658, + 892, 458, 146, 175, 182, 159, 562, 666, 563, 507, + 620, 621, 327, 328, 225, 499, 202, 504, 157, 744, + 355, 62, 316, -411, 223, 61, 231, 571, 92, 236, + 238, 238, 238, 238, 687, 441, 442, 614, 466, 159, + 190, 159, 180, 52, 263, 265, 63, 53, 145, 85, + -411, 224, 169, 146, 561, 324, 485, 789, 663, 168, + 168, 110, 441, 442, 115, 780, 510, 225, 145, 168, + 168, 156, 282, 146, 265, 218, 128, 128, 719, 802, + 205, 206, 800, 344, 285, 881, 3, 255, 228, 600, + -411, 340, 149, 511, 157, 781, 331, 732, 782, 888, + 456, 637, 584, 635, 739, 562, 521, 563, 64, 312, + 463, 146, 219, 690, 500, 238, 177, 156, 341, 601, + 587, 231, 256, 309, 231, 231, 226, 783, 756, 125, + 700, 146, 126, 65, 225, 632, 665, 219, 223, 225, + 157, 838, 274, 275, 281, 209, 337, 788, 358, 156, + 346, -411, 276, 277, 679, 371, 350, 646, 512, 823, + 824, 441, 442, 686, 312, 320, 285, 3, 3, 3, + 582, 310, 475, 372, 373, 374, 247, 346, 368, 405, + 283, 225, 450, 321, 406, 61, 228, 228, 66, 424, + 187, 422, 437, 342, 320, 87, 875, 405, 146, 366, + 61, 479, 446, 52, 451, 790, 851, 53, 438, 453, + 225, 300, 61, 225, 372, 373, 374, 710, 890, 375, + 535, 225, 231, 312, 532, 680, 310, 231, 22, 236, + 733, 523, 735, 736, 737, 80, 81, 634, 453, 225, + 346, 326, 346, 567, 568, 25, 159, 88, 89, 90, + 450, 774, 857, 225, 453, 83, 860, 91, 61, 61, + 61, 667, 495, 439, 113, 585, 136, 368, 346, 128, + 137, 128, 451, 536, 93, 454, 52, 52, 52, 159, + 53, 53, 53, 450, 228, 310, 225, 180, 307, 308, + 359, 874, 805, 138, 579, 94, 405, 580, 525, 139, + 474, 406, 353, 136, 581, 451, 626, 137, 611, 165, + 168, 168, 423, 612, 426, 427, 175, 846, 159, 726, + 611, 816, 727, 400, 184, 683, 817, 117, 883, 728, + 551, 588, 554, 288, 351, 459, 139, 405, 460, 557, + 557, 400, 406, 566, 121, 202, 202, 449, 840, 211, + 118, 435, 436, 455, 215, 128, 132, 605, 152, 231, + 606, 791, 133, 312, 134, 870, 844, 202, 871, 845, + 337, 122, 833, 346, 123, 872, 159, 124, 598, 495, + 603, -169, 135, 160, 358, 161, 162, -411, 266, 163, + 660, 661, 483, 533, 534, 368, 858, 290, 405, 405, + 852, 766, 767, 406, 406, 748, 291, 292, 202, 293, + 294, 295, 405, 885, 886, 170, 283, 171, 172, 85, + 453, 173, 141, -169, 296, 310, 641, 142, 153, 642, + 516, 518, 854, 154, 869, 855, 155, 166, 297, 178, + 400, 325, 156, 668, 542, 543, 544, 545, 546, 547, + 548, 549, 550, 181, 198, 200, 290, 615, 537, 188, + 203, 199, 541, 566, -157, 291, 292, 603, 293, 294, + 295, -162, -163, 159, -160, 603, 553, -164, -161, 210, + 715, 400, 636, 296, 876, 431, 432, 433, 434, 435, + 436, 576, 212, 213, 598, 682, 214, 297, 216, 221, + 232, 405, 603, 298, 233, 234, 406, 299, 242, 495, + 430, 431, 432, 433, 434, 435, 436, 594, 405, 433, + 434, 435, 436, 406, 243, 254, 290, 261, 264, 265, + 146, 267, 268, 273, 453, 291, 292, 749, 293, 294, + 295, 272, 400, 400, 285, 623, 285, -188, 717, 717, + 566, 539, 278, 296, 644, 813, 400, 288, 225, 279, + 289, 303, 298, 301, 313, -166, 299, 297, -158, 566, + 598, 290, 598, 598, 598, -159, 566, -165, -167, -168, + 291, 292, -169, 293, 294, 295, 314, 315, 317, 3, + 793, 318, 649, 319, 347, 332, 603, 333, 296, 335, + 764, 334, 348, 408, 357, 497, 363, 352, 366, 368, + 777, 379, 297, 370, 409, 128, 425, 447, 128, 566, + 448, 438, 312, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 298, 594, 462, 320, 299, 738, 682, 522, + 469, 467, 478, 688, 482, 400, 61, 470, 480, 492, + 368, 695, 487, 491, 811, 496, 509, 202, 502, 508, + 513, 514, 400, 515, 52, 520, 526, 603, 53, 603, + 603, 707, 708, 531, 538, 527, 540, 298, 552, 555, + 573, 299, 559, 829, 310, 569, 577, 578, 583, 453, + 604, 610, 616, 613, 609, 617, 619, 682, 624, 627, + 799, 628, 630, 638, 633, 405, 368, 730, 645, 594, + 406, 594, 594, 594, 764, 648, 603, 453, 650, 639, + 603, 651, 743, 654, 653, 659, 678, 669, 566, 656, + 694, 670, 673, 680, 754, 684, 696, 283, 698, 699, + 697, 765, 701, 703, 770, 355, 705, 706, 720, 725, + 722, 453, 734, 729, 731, 629, 741, 631, 742, 603, + 746, 759, 753, 792, 769, 128, 640, 747, 771, 795, + 428, 429, 430, 431, 432, 433, 434, 435, 436, 853, + 758, 380, 772, 381, 429, 430, 431, 432, 433, 434, + 435, 436, 647, 778, 779, 787, 794, 797, 382, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 801, 803, 809, 383, 806, 664, 807, -411, 814, 815, + 108, 80, 81, 818, 796, 822, 825, 826, 832, 827, + 384, 385, 386, 677, 387, 388, 798, 831, 389, 834, + 835, 83, 390, 391, 392, 836, 393, 394, 395, 400, + 839, 841, 848, 850, 859, 861, 863, 31, 32, 865, + 866, 867, 873, 880, 396, 887, 889, 894, 895, 222, + 586, 599, 338, 339, 594, 693, 849, 501, 618, 440, + 879, 877, 713, 864, 445, 558, 786, 718, 120, 457, + 468, 290, 0, 397, 0, 84, 0, 0, 471, 724, + 291, 292, 891, 293, 294, 295, 0, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 296, 740, + 0, 0, 0, 0, 0, 0, 0, 0, 421, 80, + 81, 0, 297, 0, 0, 0, 755, -2, 4, 0, + -411, 5, 6, 7, 0, 8, 9, 10, 11, 83, + 0, 775, 0, 0, 0, 12, -411, -411, -411, -411, + -411, -411, -411, -411, -411, -411, -411, 0, 0, 0, + 13, 14, 15, 0, 0, 0, 0, -411, -411, -411, + 0, 0, 16, 0, 0, 0, 17, 18, 19, 20, + 21, 22, 23, 0, 0, -411, 0, 298, -411, 0, + 0, 299, 0, 24, 0, 819, 0, 0, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 0, + 0, 46, 47, 0, 0, 0, 0, 48, 49, 50, + 0, 4, -411, -411, 5, 6, 7, -411, 8, 9, + 10, 11, -411, 0, 0, 0, 0, 0, 12, -411, + -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, + 0, 0, 0, 13, 14, 15, 0, 407, 0, 0, + -411, -411, -411, 0, 0, 16, 0, 0, 0, 17, + 18, 19, 20, 21, 22, 23, 0, 0, -411, 0, + 0, -411, 0, 0, 0, 0, 24, 0, 0, 0, + 0, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 0, 0, 46, 47, 0, 0, 0, 0, + 48, 49, 50, 0, 4, -411, -411, 5, 6, 7, + -411, 8, 9, 10, 11, -411, 0, 0, 0, 0, + 0, 12, -411, -411, -411, -411, -411, -411, -411, -411, + -411, -411, -411, 0, 0, 0, 13, 14, 15, 0, + 488, 0, 0, -411, -411, -411, 0, 0, 16, 0, + 0, 0, 17, 18, 19, 20, 21, 22, 23, 0, + 0, -411, 0, 0, -411, 0, 0, 0, 0, 24, + 0, 0, 0, 0, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 0, 0, 46, 47, 0, + 0, 0, 0, 48, 49, 50, 0, 4, -411, -411, + 5, 6, 7, -411, 8, 9, 10, 11, -411, 0, + 0, 0, 0, 0, 12, -411, -411, -411, -411, -411, + -411, -411, -411, -411, -411, -411, 0, 0, 0, 13, + 14, 15, 0, 489, 0, 0, -411, -411, -411, 0, + 0, 16, 0, 0, 0, 17, 18, 19, 20, 21, + 22, 23, 0, 0, -411, 0, 0, -411, 0, 0, + 0, 0, 24, 0, 0, 0, 0, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 0, 0, + 46, 47, 0, 0, 0, 0, 48, 49, 50, 0, + 4, -411, -411, 5, 6, 7, -411, 8, 9, 10, + 11, -411, 0, 0, 0, 0, 0, 12, -411, -411, + -411, -411, -411, -411, -411, -411, -411, -411, -411, 0, + 0, 0, 13, 14, 15, 0, 490, 0, 0, -411, + -411, -411, 0, 0, 16, 0, 0, 0, 17, 18, + 19, 20, 21, 22, 23, 0, 0, -411, 0, 0, + -411, 0, 0, 0, 0, 24, 0, 0, 0, 0, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 0, 0, 46, 47, 0, 0, 0, 0, 48, + 49, 50, 0, 4, -411, -411, 5, 6, 7, -411, + 8, 9, 10, 11, -411, 0, 0, 0, 0, 0, + 12, -411, -411, -411, -411, -411, -411, -411, -411, -411, + -411, -411, 0, 0, 0, 13, 14, 15, 0, 804, + 0, 0, -411, -411, -411, 0, 0, 16, 0, 0, + 0, 17, 18, 19, 20, 21, 22, 23, 0, 0, + -411, 0, 0, -411, 0, 0, 0, 0, 24, 0, + 0, 0, 0, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 0, 0, 46, 47, 0, 0, + 0, 0, 48, 49, 50, 0, 4, -411, -411, 5, + 6, 7, -411, 8, 9, 10, 11, -411, 0, 0, + 0, 0, 0, 12, -411, -411, -411, -411, -411, -411, + -411, -411, -411, -411, -411, 0, 0, 0, 13, 14, + 15, 0, 0, 0, 0, -411, -411, -411, 0, 0, + 16, 0, 0, 0, 17, 18, 19, 20, 21, 22, + 23, 0, 0, -411, 0, 0, -411, 0, 0, 0, + 0, 24, 0, 0, 0, 0, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 0, 0, 46, + 47, 0, 0, 0, 0, 48, 49, 50, 0, 589, + -411, 67, 0, 0, 0, -411, 0, 0, 0, 0, + -411, 0, 0, 0, 0, 0, 0, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 0, 0, + 0, 0, 0, 0, 0, -411, 0, 0, 79, 80, + 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 590, 381, 0, 0, 0, 0, 109, 0, 0, 83, + 0, 0, 0, 0, 0, 0, 382, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 0, 0, + 0, 383, 0, 0, 0, 0, 0, 0, 108, 80, + 81, 0, 0, 0, 0, 591, 592, 593, 384, 385, + 386, 0, 0, 388, 0, 0, 389, 0, 0, 83, + 390, 391, 392, 84, 393, 394, 395, 0, 0, 0, + 0, 381, 0, 0, 0, 31, 32, 0, 0, 0, + 0, 0, 396, 0, 0, 0, 382, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 0, 0, + 0, 383, 0, 0, 0, 0, 441, 442, 108, 80, + 81, 397, 0, 84, 0, 0, 0, 0, 384, 385, + 386, 0, 0, 388, 0, 0, 389, 0, 0, 83, + 390, 391, 392, 0, 393, 394, 395, 67, 0, 0, + 0, 0, 0, 0, 0, 31, 32, 0, 0, 0, + 0, 465, 396, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 244, 79, 80, 81, 0, 0, 0, + 67, 397, 0, 84, 0, 0, 0, 0, 0, 0, + 245, 246, 109, 0, 0, 83, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 428, 429, 430, + 431, 432, 433, 434, 435, 436, 244, 79, 80, 81, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 245, 246, 109, 67, 0, 83, 0, + 0, 0, 0, 0, 146, 0, 0, 0, 0, 84, + 0, 0, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 244, 79, 80, 81, 0, 0, 0, 143, + 0, 0, 0, 0, 0, 0, 0, 622, 0, 245, + 246, 109, 84, 0, 83, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 67, 114, 0, 0, + 0, 0, 0, 0, 0, 0, 108, 80, 81, 0, + 0, 0, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 0, 144, 0, 0, 83, 0, 0, + 0, 0, 0, 79, 80, 81, 0, 0, 84, 0, + 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 109, 0, 0, 83, 0, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 67, 0, 0, + 0, 145, 0, 0, 0, 0, 146, 79, 80, 81, + 0, 84, 0, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 0, 109, 0, 0, 83, 0, + 0, 0, 0, 0, 79, 80, 81, 0, 84, 0, + 67, 0, 0, 0, 0, 0, 590, 0, 0, 0, + 0, 0, 109, 0, 0, 83, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 67, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, + 517, 0, 84, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 0, 82, 0, 0, 83, 0, + 0, 0, 0, 0, 108, 80, 81, 0, 0, 84, + 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 109, 0, 0, 83, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 575, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, + 0, 0, 84, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 0, 109, 0, 0, 83, 0, + 0, 0, 0, 0, 79, 80, 81, 0, 0, 84, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 109, 0, 0, 83, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 84, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 84 +}; + +static const short yycheck[] = { 1, + 2, 39, 188, 266, 335, 12, 450, 105, 403, 369, + 268, 98, 482, 144, 118, 232, 85, 24, 2, 24, + 304, 340, 2, 31, 279, 36, 709, 814, 1, 7, + 90, 78, 223, 30, 3, 30, 14, 356, 133, 134, + 135, 607, 3, 3, 3, 3, 3, 92, 55, 444, + 55, 46, 7, 3, 65, 1, 7, 12, 36, 128, + 107, 30, 325, 14, 37, 67, 3, 69, 70, 71, + 115, 3, 31, 30, 76, 36, 78, 146, 36, 52, + 82, 54, 142, 269, 270, 271, 88, 342, 90, 344, + 3, 565, 52, 95, 141, 92, 98, 99, 100, 569, + 887, 318, 110, 105, 3, 107, 52, 577, 54, 30, + 505, 506, 226, 227, 46, 370, 118, 67, 115, 685, + 115, 4, 217, 96, 3, 127, 128, 105, 30, 131, + 132, 133, 134, 135, 604, 108, 109, 497, 329, 141, + 142, 143, 144, 127, 146, 3, 7, 127, 105, 12, + 96, 30, 71, 110, 1, 224, 69, 723, 33, 161, + 162, 24, 108, 109, 27, 3, 3, 46, 105, 171, + 172, 92, 30, 110, 3, 3, 39, 40, 652, 745, + 99, 100, 740, 252, 186, 868, 188, 30, 128, 40, + 37, 3, 55, 30, 115, 33, 234, 671, 36, 882, + 3, 30, 465, 522, 678, 52, 105, 54, 7, 211, + 324, 110, 40, 608, 3, 217, 79, 92, 30, 70, + 475, 223, 65, 30, 226, 227, 105, 65, 698, 4, + 625, 110, 7, 7, 46, 519, 577, 40, 3, 46, + 115, 799, 161, 162, 184, 108, 248, 721, 33, 92, + 252, 36, 171, 172, 596, 3, 258, 3, 389, 771, + 772, 108, 109, 604, 266, 30, 268, 269, 270, 271, + 461, 211, 341, 62, 63, 64, 138, 279, 280, 286, + 65, 46, 43, 223, 286, 287, 226, 227, 3, 296, + 36, 296, 18, 105, 30, 7, 862, 304, 110, 32, + 302, 348, 304, 287, 65, 30, 818, 287, 34, 311, + 46, 195, 314, 46, 62, 63, 64, 636, 884, 67, + 418, 46, 324, 325, 411, 32, 266, 329, 54, 331, + 672, 400, 674, 675, 676, 41, 42, 30, 340, 46, + 342, 225, 344, 447, 448, 71, 348, 3, 4, 3, + 43, 711, 822, 46, 356, 61, 830, 3, 360, 361, + 362, 578, 364, 302, 30, 469, 3, 369, 370, 232, + 7, 234, 65, 420, 3, 314, 360, 361, 362, 381, + 360, 361, 362, 43, 324, 325, 46, 389, 31, 32, + 648, 861, 752, 30, 33, 3, 403, 36, 400, 36, + 340, 403, 264, 3, 43, 65, 510, 7, 32, 411, + 412, 413, 296, 37, 298, 299, 418, 812, 420, 33, + 32, 32, 36, 286, 85, 37, 37, 4, 872, 43, + 437, 478, 439, 32, 33, 33, 36, 444, 36, 441, + 442, 304, 444, 445, 30, 447, 448, 309, 808, 110, + 3, 110, 111, 315, 115, 318, 7, 30, 36, 461, + 33, 724, 7, 465, 7, 33, 33, 469, 36, 36, + 472, 30, 791, 475, 33, 43, 478, 36, 480, 481, + 482, 30, 7, 19, 33, 21, 22, 36, 149, 25, + 32, 33, 354, 412, 413, 497, 827, 3, 505, 506, + 819, 32, 33, 505, 506, 691, 12, 13, 510, 15, + 16, 17, 519, 31, 32, 19, 65, 21, 22, 382, + 522, 25, 3, 30, 30, 465, 33, 3, 36, 36, + 393, 394, 33, 36, 853, 36, 32, 19, 44, 3, + 403, 47, 92, 581, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 3, 3, 43, 3, 497, 421, 36, + 3, 36, 425, 565, 30, 12, 13, 569, 15, 16, + 17, 30, 30, 575, 30, 577, 439, 30, 30, 3, + 649, 444, 522, 30, 31, 106, 107, 108, 109, 110, + 111, 454, 30, 3, 596, 597, 3, 44, 3, 3, + 36, 608, 604, 109, 33, 32, 608, 113, 33, 611, + 105, 106, 107, 108, 109, 110, 111, 480, 625, 108, + 109, 110, 111, 625, 33, 37, 3, 3, 30, 3, + 110, 30, 3, 3, 636, 12, 13, 14, 15, 16, + 17, 7, 505, 506, 646, 507, 648, 36, 650, 651, + 652, 31, 36, 30, 538, 759, 519, 32, 46, 110, + 33, 33, 109, 31, 110, 30, 113, 44, 30, 671, + 672, 3, 674, 675, 676, 30, 678, 30, 30, 30, + 12, 13, 30, 15, 16, 17, 31, 30, 32, 691, + 728, 31, 555, 31, 3, 32, 698, 39, 30, 32, + 702, 31, 3, 3, 110, 366, 32, 36, 32, 711, + 712, 36, 44, 110, 115, 578, 30, 3, 581, 721, + 3, 34, 724, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 109, 596, 31, 30, 113, 677, 740, 400, + 3, 37, 31, 605, 31, 608, 748, 39, 36, 3, + 752, 613, 36, 12, 756, 31, 36, 759, 32, 30, + 65, 65, 625, 65, 748, 3, 30, 769, 748, 771, + 772, 633, 634, 3, 31, 37, 3, 109, 7, 30, + 12, 113, 37, 785, 724, 31, 31, 31, 31, 791, + 31, 43, 31, 30, 36, 3, 3, 799, 3, 3, + 740, 36, 3, 69, 30, 812, 808, 669, 31, 672, + 812, 674, 675, 676, 816, 3, 818, 819, 3, 110, + 822, 3, 684, 36, 30, 3, 37, 30, 830, 31, + 3, 31, 30, 32, 696, 30, 30, 65, 31, 31, + 37, 703, 31, 30, 706, 115, 30, 30, 3, 30, + 36, 853, 3, 33, 30, 516, 33, 518, 33, 861, + 31, 3, 31, 725, 31, 728, 527, 37, 31, 731, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 819, + 37, 1, 31, 3, 104, 105, 106, 107, 108, 109, + 110, 111, 553, 33, 31, 31, 31, 31, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 31, 33, 65, 33, 33, 576, 31, 37, 43, 30, + 40, 41, 42, 31, 96, 31, 33, 65, 790, 30, + 50, 51, 52, 594, 54, 55, 96, 37, 58, 31, + 33, 61, 62, 63, 64, 31, 66, 67, 68, 812, + 33, 3, 3, 33, 3, 31, 33, 77, 78, 30, + 32, 31, 31, 3, 84, 43, 33, 0, 0, 127, + 472, 481, 251, 251, 837, 611, 816, 375, 502, 302, + 866, 865, 643, 837, 304, 442, 718, 651, 34, 317, + 331, 3, -1, 113, -1, 115, -1, -1, 334, 660, + 12, 13, 886, 15, 16, 17, -1, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 680, + -1, -1, -1, -1, -1, -1, -1, -1, 40, 41, + 42, -1, 44, -1, -1, -1, 697, 0, 1, -1, + 3, 4, 5, 6, -1, 8, 9, 10, 11, 61, + -1, 712, -1, -1, -1, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, -1, -1, -1, + 33, 34, 35, -1, -1, -1, -1, 40, 41, 42, + -1, -1, 45, -1, -1, -1, 49, 50, 51, 52, + 53, 54, 55, -1, -1, 58, -1, 109, 61, -1, + -1, 113, -1, 66, -1, 766, -1, -1, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, -1, + -1, 94, 95, -1, -1, -1, -1, 100, 101, 102, + -1, 1, 105, 3, 4, 5, 6, 110, 8, 9, + 10, 11, 115, -1, -1, -1, -1, -1, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + -1, -1, -1, 33, 34, 35, -1, 37, -1, -1, + 40, 41, 42, -1, -1, 45, -1, -1, -1, 49, + 50, 51, 52, 53, 54, 55, -1, -1, 58, -1, + -1, 61, -1, -1, -1, -1, 66, -1, -1, -1, + -1, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, -1, -1, 94, 95, -1, -1, -1, -1, + 100, 101, 102, -1, 1, 105, 3, 4, 5, 6, + 110, 8, 9, 10, 11, 115, -1, -1, -1, -1, + -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, -1, -1, -1, 33, 34, 35, -1, + 37, -1, -1, 40, 41, 42, -1, -1, 45, -1, + -1, -1, 49, 50, 51, 52, 53, 54, 55, -1, + -1, 58, -1, -1, 61, -1, -1, -1, -1, 66, + -1, -1, -1, -1, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, -1, -1, 94, 95, -1, + -1, -1, -1, 100, 101, 102, -1, 1, 105, 3, + 4, 5, 6, 110, 8, 9, 10, 11, 115, -1, + -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, -1, -1, -1, 33, + 34, 35, -1, 37, -1, -1, 40, 41, 42, -1, + -1, 45, -1, -1, -1, 49, 50, 51, 52, 53, + 54, 55, -1, -1, 58, -1, -1, 61, -1, -1, + -1, -1, 66, -1, -1, -1, -1, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, -1, -1, + 94, 95, -1, -1, -1, -1, 100, 101, 102, -1, + 1, 105, 3, 4, 5, 6, 110, 8, 9, 10, + 11, 115, -1, -1, -1, -1, -1, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, + -1, -1, 33, 34, 35, -1, 37, -1, -1, 40, + 41, 42, -1, -1, 45, -1, -1, -1, 49, 50, + 51, 52, 53, 54, 55, -1, -1, 58, -1, -1, + 61, -1, -1, -1, -1, 66, -1, -1, -1, -1, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, -1, -1, 94, 95, -1, -1, -1, -1, 100, + 101, 102, -1, 1, 105, 3, 4, 5, 6, 110, + 8, 9, 10, 11, 115, -1, -1, -1, -1, -1, + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, -1, -1, -1, 33, 34, 35, -1, 37, + -1, -1, 40, 41, 42, -1, -1, 45, -1, -1, + -1, 49, 50, 51, 52, 53, 54, 55, -1, -1, + 58, -1, -1, 61, -1, -1, -1, -1, 66, -1, + -1, -1, -1, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, -1, -1, 94, 95, -1, -1, + -1, -1, 100, 101, 102, -1, 1, 105, 3, 4, + 5, 6, 110, 8, 9, 10, 11, 115, -1, -1, + -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, -1, -1, -1, 33, 34, + 35, -1, -1, -1, -1, 40, 41, 42, -1, -1, + 45, -1, -1, -1, 49, 50, 51, 52, 53, 54, + 55, -1, -1, 58, -1, -1, 61, -1, -1, -1, + -1, 66, -1, -1, -1, -1, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, -1, -1, 94, + 95, -1, -1, -1, -1, 100, 101, 102, -1, 1, + 105, 3, -1, -1, -1, 110, -1, -1, -1, -1, + 115, -1, -1, -1, -1, -1, -1, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, + -1, -1, -1, -1, -1, 37, -1, -1, 40, 41, + 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 52, 3, -1, -1, -1, -1, 58, -1, -1, 61, + -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, + -1, 33, -1, -1, -1, -1, -1, -1, 40, 41, + 42, -1, -1, -1, -1, 97, 98, 99, 50, 51, + 52, -1, -1, 55, -1, -1, 58, -1, -1, 61, + 62, 63, 64, 115, 66, 67, 68, -1, -1, -1, + -1, 3, -1, -1, -1, 77, 78, -1, -1, -1, + -1, -1, 84, -1, -1, -1, 18, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, + -1, 33, -1, -1, -1, -1, 108, 109, 40, 41, + 42, 113, -1, 115, -1, -1, -1, -1, 50, 51, + 52, -1, -1, 55, -1, -1, 58, -1, -1, 61, + 62, 63, 64, -1, 66, 67, 68, 3, -1, -1, + -1, -1, -1, -1, -1, 77, 78, -1, -1, -1, + -1, 47, 84, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 39, 40, 41, 42, -1, -1, -1, + 3, 113, -1, 115, -1, -1, -1, -1, -1, -1, + 56, 57, 58, -1, -1, 61, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 39, 40, 41, 42, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 56, 57, 58, 3, -1, 61, -1, + -1, -1, -1, -1, 110, -1, -1, -1, -1, 115, + -1, -1, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 39, 40, 41, 42, -1, -1, -1, 3, + -1, -1, -1, -1, -1, -1, -1, 110, -1, 56, + 57, 58, 115, -1, 61, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 3, 4, -1, -1, + -1, -1, -1, -1, -1, -1, 40, 41, 42, -1, + -1, -1, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, -1, 58, -1, -1, 61, -1, -1, + -1, -1, -1, 40, 41, 42, -1, -1, 115, -1, + 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 58, -1, -1, 61, -1, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 3, -1, -1, + -1, 105, -1, -1, -1, -1, 110, 40, 41, 42, + -1, 115, -1, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, -1, 58, -1, -1, 61, -1, + -1, -1, -1, -1, 40, 41, 42, -1, 115, -1, + 3, -1, -1, -1, -1, -1, 52, -1, -1, -1, + -1, -1, 58, -1, -1, 61, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 3, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 40, 41, 42, + 113, -1, 115, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, -1, 58, -1, -1, 61, -1, + -1, -1, -1, -1, 40, 41, 42, -1, -1, 115, + 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 58, -1, -1, 61, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 3, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 40, 41, 42, + -1, -1, 115, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, -1, 58, -1, -1, 61, -1, + -1, -1, -1, -1, 40, 41, 42, -1, -1, 115, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 58, -1, -1, 61, -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, 115, -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, 115 +}; +/* -*-C-*- Note some compilers choke on comments on `#line' lines. */ +#line 3 "/usr/lib/bison.simple" +/* This file comes from bison-1.27. */ + +/* Skeleton output parser for bison, + Copyright (C) 1984, 1989, 1990 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., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +/* As a special exception, when this file is copied by Bison into a + Bison output file, you may use that output file without restriction. + This special exception was added by the Free Software Foundation + in version 1.24 of Bison. */ + +/* This is the parser code that is written into each bison parser + when the %semantic_parser declaration is not specified in the grammar. + It was written by Richard Stallman by simplifying the hairy parser + used when %semantic_parser is specified. */ + +#ifndef YYSTACK_USE_ALLOCA +#ifdef alloca +#define YYSTACK_USE_ALLOCA +#else /* alloca not defined */ +#ifdef __GNUC__ +#define YYSTACK_USE_ALLOCA +#define alloca __builtin_alloca +#else /* not GNU C. */ +#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386)) +#define YYSTACK_USE_ALLOCA +#include +#else /* not sparc */ +/* We think this test detects Watcom and Microsoft C. */ +/* This used to test MSDOS, but that is a bad idea + since that symbol is in the user namespace. */ +#if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__) +#if 0 /* No need for malloc.h, which pollutes the namespace; + instead, just don't use alloca. */ +#include +#endif +#else /* not MSDOS, or __TURBOC__ */ +#if defined(_AIX) +/* I don't know what this was needed for, but it pollutes the namespace. + So I turned it off. rms, 2 May 1997. */ +/* #include */ + #pragma alloca +#define YYSTACK_USE_ALLOCA +#else /* not MSDOS, or __TURBOC__, or _AIX */ +#if 0 +#ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up, + and on HPUX 10. Eventually we can turn this on. */ +#define YYSTACK_USE_ALLOCA +#define alloca __builtin_alloca +#endif /* __hpux */ +#endif +#endif /* not _AIX */ +#endif /* not MSDOS, or __TURBOC__ */ +#endif /* not sparc */ +#endif /* not GNU C */ +#endif /* alloca not defined */ +#endif /* YYSTACK_USE_ALLOCA not defined */ + +#ifdef YYSTACK_USE_ALLOCA +#define YYSTACK_ALLOC alloca +#else +#define YYSTACK_ALLOC malloc +#endif + +/* Note: there must be only one dollar sign in this file. + It is replaced by the list of actions, each action + as one case of the switch. */ + +#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 yyerrlab1 +/* 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); \ + yychar1 = YYTRANSLATE (yychar); \ + YYPOPSTACK; \ + goto yybackup; \ + } \ + else \ + { yyerror ("syntax error: cannot back up"); YYERROR; } \ +while (0) + +#define YYTERROR 1 +#define YYERRCODE 256 + +#ifndef YYPURE +#define YYLEX yylex() +#endif + +#ifdef YYPURE +#ifdef YYLSP_NEEDED +#ifdef YYLEX_PARAM +#define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM) +#else +#define YYLEX yylex(&yylval, &yylloc) +#endif +#else /* not YYLSP_NEEDED */ +#ifdef YYLEX_PARAM +#define YYLEX yylex(&yylval, YYLEX_PARAM) +#else +#define YYLEX yylex(&yylval) +#endif +#endif /* not YYLSP_NEEDED */ +#endif + +/* If nonreentrant, generate the variables here */ + +#ifndef YYPURE + +int yychar; /* the lookahead symbol */ +YYSTYPE yylval; /* the semantic value of the */ + /* lookahead symbol */ + +#ifdef YYLSP_NEEDED +YYLTYPE yylloc; /* location data for the lookahead */ + /* symbol */ +#endif + +int yynerrs; /* number of parse errors so far */ +#endif /* not YYPURE */ + +#if YYDEBUG != 0 +int yydebug; /* nonzero means print parse trace */ +/* Since this is uninitialized, it does not stop multiple parsers + from coexisting. */ +#endif + +/* YYINITDEPTH indicates the initial size of the parser's stacks */ + +#ifndef YYINITDEPTH +#define YYINITDEPTH 200 +#endif + +/* YYMAXDEPTH is the maximum size the stacks can grow to + (effective only if the built-in stack extension method is used). */ + +#if YYMAXDEPTH == 0 +#undef YYMAXDEPTH +#endif + +#ifndef YYMAXDEPTH +#define YYMAXDEPTH 10000 +#endif + +/* Define __yy_memcpy. Note that the size argument + should be passed with type unsigned int, because that is what the non-GCC + definitions require. With GCC, __builtin_memcpy takes an arg + of type size_t, but it can handle unsigned int. */ + +#if __GNUC__ > 1 /* GNU C and GNU C++ define this. */ +#define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT) +#else /* not GNU C or C++ */ +#ifndef __cplusplus + +/* This is the most reliable way to avoid incompatibilities + in available built-in functions on various systems. */ +static void +__yy_memcpy (to, from, count) + char *to; + char *from; + unsigned int count; +{ + register char *f = from; + register char *t = to; + register int i = count; + + while (i-- > 0) + *t++ = *f++; +} + +#else /* __cplusplus */ + +/* This is the most reliable way to avoid incompatibilities + in available built-in functions on various systems. */ +static void +__yy_memcpy (char *to, char *from, unsigned int count) +{ + register char *t = to; + register char *f = from; + register int i = count; + + while (i-- > 0) + *t++ = *f++; +} + +#endif +#endif + +#line 216 "/usr/lib/bison.simple" + +/* The user can define YYPARSE_PARAM as the name of an argument to be passed + into yyparse. The argument should have type void *. + It should actually point to an object. + Grammar actions can access the variable by casting it + to the proper pointer type. */ + +#ifdef YYPARSE_PARAM +#ifdef __cplusplus +#define YYPARSE_PARAM_ARG void *YYPARSE_PARAM +#define YYPARSE_PARAM_DECL +#else /* not __cplusplus */ +#define YYPARSE_PARAM_ARG YYPARSE_PARAM +#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM; +#endif /* not __cplusplus */ +#else /* not YYPARSE_PARAM */ +#define YYPARSE_PARAM_ARG +#define YYPARSE_PARAM_DECL +#endif /* not YYPARSE_PARAM */ + +/* Prevent warning if -Wstrict-prototypes. */ +#ifdef __GNUC__ +#ifdef YYPARSE_PARAM +int yyparse (void *); +#else +int yyparse (void); +#endif +#endif + +int +yyparse(YYPARSE_PARAM_ARG) + YYPARSE_PARAM_DECL +{ + register int yystate; + register int yyn; + register short *yyssp; + register YYSTYPE *yyvsp; + int yyerrstatus; /* number of tokens to shift before error messages enabled */ + int yychar1 = 0; /* lookahead token as an internal (translated) token number */ + + short yyssa[YYINITDEPTH]; /* the state stack */ + YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */ + + short *yyss = yyssa; /* refer to the stacks thru separate pointers */ + YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */ + +#ifdef YYLSP_NEEDED + YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */ + YYLTYPE *yyls = yylsa; + YYLTYPE *yylsp; + +#define YYPOPSTACK (yyvsp--, yyssp--, yylsp--) +#else +#define YYPOPSTACK (yyvsp--, yyssp--) +#endif + + int yystacksize = YYINITDEPTH; + int yyfree_stacks = 0; + +#ifdef YYPURE + int yychar; + YYSTYPE yylval; + int yynerrs; +#ifdef YYLSP_NEEDED + YYLTYPE yylloc; +#endif +#endif + + YYSTYPE yyval; /* the variable used to return */ + /* semantic values from the action */ + /* routines */ + + int yylen; + +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Starting parse\n"); +#endif + + 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 - 1; + yyvsp = yyvs; +#ifdef YYLSP_NEEDED + yylsp = yyls; +#endif + +/* Push a new state, which is found in yystate . */ +/* In all cases, when you get here, the value and location stacks + have just been pushed. so pushing a state here evens the stacks. */ +yynewstate: + + *++yyssp = yystate; + + if (yyssp >= yyss + yystacksize - 1) + { + /* 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; + short *yyss1 = yyss; +#ifdef YYLSP_NEEDED + YYLTYPE *yyls1 = yyls; +#endif + + /* Get the current used size of the three stacks, in elements. */ + int size = yyssp - yyss + 1; + +#ifdef yyoverflow + /* Each stack pointer address is followed by the size of + the data in use in that stack, in bytes. */ +#ifdef YYLSP_NEEDED + /* This used to be a conditional around just the two extra args, + but that might be undefined if yyoverflow is a macro. */ + yyoverflow("parser stack overflow", + &yyss1, size * sizeof (*yyssp), + &yyvs1, size * sizeof (*yyvsp), + &yyls1, size * sizeof (*yylsp), + &yystacksize); +#else + yyoverflow("parser stack overflow", + &yyss1, size * sizeof (*yyssp), + &yyvs1, size * sizeof (*yyvsp), + &yystacksize); +#endif + + yyss = yyss1; yyvs = yyvs1; +#ifdef YYLSP_NEEDED + yyls = yyls1; +#endif +#else /* no yyoverflow */ + /* Extend the stack our own way. */ + if (yystacksize >= YYMAXDEPTH) + { + yyerror("parser stack overflow"); + if (yyfree_stacks) + { + free (yyss); + free (yyvs); +#ifdef YYLSP_NEEDED + free (yyls); +#endif + } + return 2; + } + yystacksize *= 2; + if (yystacksize > YYMAXDEPTH) + yystacksize = YYMAXDEPTH; +#ifndef YYSTACK_USE_ALLOCA + yyfree_stacks = 1; +#endif + yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp)); + __yy_memcpy ((char *)yyss, (char *)yyss1, + size * (unsigned int) sizeof (*yyssp)); + yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp)); + __yy_memcpy ((char *)yyvs, (char *)yyvs1, + size * (unsigned int) sizeof (*yyvsp)); +#ifdef YYLSP_NEEDED + yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp)); + __yy_memcpy ((char *)yyls, (char *)yyls1, + size * (unsigned int) sizeof (*yylsp)); +#endif +#endif /* no yyoverflow */ + + yyssp = yyss + size - 1; + yyvsp = yyvs + size - 1; +#ifdef YYLSP_NEEDED + yylsp = yyls + size - 1; +#endif + +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Stack size increased to %d\n", yystacksize); +#endif + + if (yyssp >= yyss + yystacksize - 1) + YYABORT; + } + +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Entering state %d\n", yystate); +#endif + + goto yybackup; + yybackup: + +/* Do appropriate processing given the current state. */ +/* Read a lookahead token if we need one and don't already have one. */ +/* yyresume: */ + + /* First try to decide what to do without reference to lookahead token. */ + + yyn = yypact[yystate]; + if (yyn == YYFLAG) + goto yydefault; + + /* Not known => get a lookahead token if don't already have one. */ + + /* yychar is either YYEMPTY or YYEOF + or a valid token in external form. */ + + if (yychar == YYEMPTY) + { +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Reading a token: "); +#endif + yychar = YYLEX; + } + + /* Convert token to internal form (in yychar1) for indexing tables with */ + + if (yychar <= 0) /* This means end of input. */ + { + yychar1 = 0; + yychar = YYEOF; /* Don't call YYLEX any more */ + +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Now at end of input.\n"); +#endif + } + else + { + yychar1 = YYTRANSLATE(yychar); + +#if YYDEBUG != 0 + if (yydebug) + { + fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]); + /* Give the individual parser a way to print the precise meaning + of a token, for further debugging info. */ +#ifdef YYPRINT + YYPRINT (stderr, yychar, yylval); +#endif + fprintf (stderr, ")\n"); + } +#endif + } + + yyn += yychar1; + if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1) + goto yydefault; + + yyn = yytable[yyn]; + + /* yyn is what to do for this token type in this state. + Negative => reduce, -yyn is rule number. + Positive => shift, yyn is new state. + New state is final state => don't bother to shift, + just return success. + 0, or most negative number => error. */ + + if (yyn < 0) + { + if (yyn == YYFLAG) + goto yyerrlab; + yyn = -yyn; + goto yyreduce; + } + else if (yyn == 0) + goto yyerrlab; + + if (yyn == YYFINAL) + YYACCEPT; + + /* Shift the lookahead token. */ + +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]); +#endif + + /* Discard the token being shifted unless it is eof. */ + if (yychar != YYEOF) + yychar = YYEMPTY; + + *++yyvsp = yylval; +#ifdef YYLSP_NEEDED + *++yylsp = yylloc; +#endif + + /* count tokens shifted since error; after three, turn off error status. */ + if (yyerrstatus) yyerrstatus--; + + yystate = yyn; + goto yynewstate; + +/* Do the default action for the current state. */ +yydefault: + + yyn = yydefact[yystate]; + if (yyn == 0) + goto yyerrlab; + +/* Do a reduction. yyn is the number of a rule to reduce with. */ +yyreduce: + yylen = yyr2[yyn]; + if (yylen > 0) + yyval = yyvsp[1-yylen]; /* implement default value of the action */ + +#if YYDEBUG != 0 + if (yydebug) + { + int i; + + fprintf (stderr, "Reducing via rule %d (line %d), ", + yyn, yyrline[yyn]); + + /* Print the symbols being reduced, and their result. */ + for (i = yyprhs[yyn]; yyrhs[i] > 0; i++) + fprintf (stderr, "%s ", yytname[yyrhs[i]]); + fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]); + } +#endif + + + switch (yyn) { + +case 1: +#line 529 "parser.yxx" +{ + { + int ii; + for (ii = 0; ii < 256; ii++) { + handler_stack[ii] = 0; + } + handler_stack[0] = comment_handler; + } + doc_stack[0] = doctitle; + ; + break;} +case 2: +#line 538 "parser.yxx" +{ + CommentHandler::cleanup(); + cplus_cleanup(); + doc_entry = doctitle; + if (lang_init) { + lang->close(); + } + ; + break;} +case 3: +#line 548 "parser.yxx" +{ + scanner_clear_start(); + Error = 0; + ; + break;} +case 4: +#line 552 "parser.yxx" +{ + ; + break;} +case 5: +#line 556 "parser.yxx" +{ + yyvsp[-2].loc.filename = copy_string(input_file); + yyvsp[-2].loc.line = line_number; + input_file = copy_string(yyvsp[-1].id); + line_number = 0; + ; + break;} +case 6: +#line 561 "parser.yxx" +{ + input_file = yyvsp[-5].loc.filename; + line_number = yyvsp[-5].loc.line; + ; + break;} +case 7: +#line 568 "parser.yxx" +{ + yyvsp[-2].loc.flag = WrapExtern; + WrapExtern = 1; + yyvsp[-2].loc.filename = copy_string(input_file); + yyvsp[-2].loc.line = line_number; + input_file = copy_string(yyvsp[-1].id); + line_number = 0; + ; + break;} +case 8: +#line 575 "parser.yxx" +{ + input_file = yyvsp[-5].loc.filename; + line_number = yyvsp[-5].loc.line; + WrapExtern = yyvsp[-5].loc.flag; + ; + break;} +case 9: +#line 583 "parser.yxx" +{ + yyvsp[-2].loc.flag = WrapExtern; + WrapExtern = 1; + yyvsp[-2].loc.filename = copy_string(input_file); + yyvsp[-2].loc.line = line_number; + input_file = copy_string(yyvsp[-1].id); + line_number = 0; + lang->import(yyvsp[-1].id); + ; + break;} +case 10: +#line 591 "parser.yxx" +{ + input_file = yyvsp[-5].loc.filename; + line_number = yyvsp[-5].loc.line; + WrapExtern = yyvsp[-5].loc.flag; + ; + break;} +case 11: +#line 597 "parser.yxx" +{ + yyvsp[-6].loc.filename = copy_string(input_file); + yyvsp[-6].loc.line = line_number; + input_file = copy_string(yyvsp[-3].id); + line_number = atoi(yyvsp[-1].id) - 1; + ; + break;} +case 12: +#line 602 "parser.yxx" +{ + input_file = yyvsp[-9].loc.filename; + line_number = yyvsp[-9].loc.line; + ; + break;} +case 13: +#line 609 "parser.yxx" +{ + doc_entry = 0; + if (Verbose) { + fprintf(stderr,"%s : Line %d. CPP %s ignored.\n", input_file, line_number,yyvsp[0].id); + } + ; + break;} +case 14: +#line 618 "parser.yxx" +{ + init_language(); + if (Active_type) delete Active_type; + Active_type = new DataType(yyvsp[-3].type); + Active_extern = yyvsp[-4].ivalue; + yyvsp[-3].type->is_pointer += yyvsp[-2].decl.is_pointer; + if (yyvsp[-1].ivalue > 0) { + yyvsp[-3].type->is_pointer++; + yyvsp[-3].type->status = STAT_READONLY; + yyvsp[-3].type->arraystr = copy_string(ArrayString); + } + if (yyvsp[-2].decl.is_reference) { + fprintf(stderr,"%s : Line %d. Error. Linkage to C++ reference not allowed.\n", input_file, line_number); + FatalError(); + } else { + if (yyvsp[-3].type->qualifier) { + if ((strcmp(yyvsp[-3].type->qualifier,"const") == 0)) { + if (yyvsp[0].dtype.type != T_ERROR) + create_constant(yyvsp[-2].decl.id, yyvsp[-3].type, yyvsp[0].dtype.id); + } else + create_variable(yyvsp[-4].ivalue,yyvsp[-2].decl.id,yyvsp[-3].type); + } else + create_variable(yyvsp[-4].ivalue,yyvsp[-2].decl.id,yyvsp[-3].type); + } + delete yyvsp[-3].type; + ; + break;} +case 15: +#line 643 "parser.yxx" +{ ; + break;} +case 16: +#line 647 "parser.yxx" +{ + skip_decl(); + fprintf(stderr,"%s : Line %d. Function pointers not currently supported.\n", + input_file, line_number); + ; + break;} +case 17: +#line 655 "parser.yxx" +{ + if (Verbose) { + fprintf(stderr,"static variable %s ignored.\n",yyvsp[-2].decl.id); + } + Active_static = 1; + delete yyvsp[-3].type; + ; + break;} +case 18: +#line 661 "parser.yxx" +{ + Active_static = 0; + ; + break;} +case 19: +#line 667 "parser.yxx" +{ + skip_decl(); + fprintf(stderr,"%s : Line %d. Function pointers not currently supported.\n", + input_file, line_number); + ; + break;} +case 20: +#line 676 "parser.yxx" +{ + init_language(); + if (Active_type) delete Active_type; + Active_type = new DataType(yyvsp[-5].type); + Active_extern = yyvsp[-6].ivalue; + yyvsp[-5].type->is_pointer += yyvsp[-4].decl.is_pointer; + yyvsp[-5].type->is_reference = yyvsp[-4].decl.is_reference; + create_function(yyvsp[-6].ivalue, yyvsp[-4].decl.id, yyvsp[-5].type, yyvsp[-2].pl); + delete yyvsp[-5].type; + delete yyvsp[-2].pl; + ; + break;} +case 21: +#line 686 "parser.yxx" +{ ; + break;} +case 22: +#line 690 "parser.yxx" +{ + init_language(); + yyvsp[-5].type->is_pointer += yyvsp[-4].decl.is_pointer; + yyvsp[-5].type->is_reference = yyvsp[-4].decl.is_reference; + create_function(yyvsp[-6].ivalue, yyvsp[-4].decl.id, yyvsp[-5].type, yyvsp[-2].pl); + delete yyvsp[-5].type; + delete yyvsp[-2].pl; + ; + break;} +case 23: +#line 701 "parser.yxx" +{ + init_language(); + DataType *t = new DataType(T_INT); + t->is_pointer += yyvsp[-4].decl.is_pointer; + t->is_reference = yyvsp[-4].decl.is_reference; + create_function(yyvsp[-5].ivalue,yyvsp[-4].decl.id,t,yyvsp[-2].pl); + delete t; + ; + break;} +case 24: +#line 708 "parser.yxx" +{ ; + break;} +case 25: +#line 712 "parser.yxx" +{ + if (Inline) { + if (strlen(CCode.get())) { + init_language(); + yyvsp[-5].type->is_pointer += yyvsp[-4].decl.is_pointer; + yyvsp[-5].type->is_reference = yyvsp[-4].decl.is_reference; + create_function(0, yyvsp[-4].decl.id, yyvsp[-5].type, yyvsp[-2].pl); + } + } + delete yyvsp[-5].type; + delete yyvsp[-2].pl; + ; + break;} +case 26: +#line 727 "parser.yxx" +{ + init_language(); + yyvsp[-5].type->is_pointer += yyvsp[-4].decl.is_pointer; + yyvsp[-5].type->is_reference = yyvsp[-4].decl.is_reference; + if (Inline) { + fprintf(stderr,"%s : Line %d. Repeated %%inline directive.\n",input_file,line_number); + FatalError(); + } else { + if (strlen(CCode.get())) { + fprintf(f_header,"static "); + emit_extern_func(yyvsp[-4].decl.id,yyvsp[-5].type,yyvsp[-2].pl,3,f_header); + fprintf(f_header,"%s\n",CCode.get()); + } + create_function(0, yyvsp[-4].decl.id, yyvsp[-5].type, yyvsp[-2].pl); + } + delete yyvsp[-5].type; + delete yyvsp[-2].pl; + ; + break;} +case 27: +#line 748 "parser.yxx" +{ + if (Verbose) { + fprintf(stderr,"static function %s ignored.\n", yyvsp[-4].decl.id); + } + Active_static = 1; + delete yyvsp[-5].type; + delete yyvsp[-2].pl; + ; + break;} +case 28: +#line 755 "parser.yxx" +{ + Active_static = 0; + ; + break;} +case 29: +#line 761 "parser.yxx" +{ + Status = Status | STAT_READONLY; + ; + break;} +case 30: +#line 767 "parser.yxx" +{ + Status = Status & ~STAT_READONLY; + ; + break;} +case 31: +#line 772 "parser.yxx" +{ + strcpy(yy_rename,yyvsp[-1].id); + Rename_true = 1; + ; + break;} +case 32: +#line 778 "parser.yxx" +{ + if (name_hash.lookup(yyvsp[-2].id)) { + name_hash.remove(yyvsp[-2].id); + } + name_hash.add(yyvsp[-2].id,copy_string(yyvsp[-1].id)); + ; + break;} +case 33: +#line 787 "parser.yxx" +{ + NewObject = 1; + ; + break;} +case 34: +#line 789 "parser.yxx" +{ + NewObject = 0; + ; + break;} +case 35: +#line 795 "parser.yxx" +{ + fprintf(stderr,"%s : Lind %d. Empty %%name() is no longer supported.\n", + input_file, line_number); + FatalError(); + ; + break;} +case 36: +#line 799 "parser.yxx" +{ + Rename_true = 0; + ; + break;} +case 37: +#line 805 "parser.yxx" +{ + if (!WrapExtern) { + init_language(); + if (add_symbol(yyvsp[-4].id,(DataType *) 0, (char *) 0)) { + fprintf(stderr,"%s : Line %d. Name of native function %s conflicts with previous declaration (ignored)\n", + input_file, line_number, yyvsp[-4].id); + } else { + doc_entry = new DocDecl(yyvsp[-4].id,doc_stack[doc_stack_top]); + lang->add_native(yyvsp[-4].id,yyvsp[-1].id,0,0); + } + } + ; + break;} +case 38: +#line 817 "parser.yxx" +{ + if (!WrapExtern) { + init_language(); + yyvsp[-5].type->is_pointer += yyvsp[-4].decl.is_pointer; + if (add_symbol(yyvsp[-8].id,(DataType *) 0, (char *) 0)) { + fprintf(stderr,"%s : Line %d. Name of native function %s conflicts with previous declaration (ignored)\n", + input_file, line_number, yyvsp[-8].id); + } else { + if (yyvsp[-6].ivalue) { + emit_extern_func(yyvsp[-4].decl.id, yyvsp[-5].type, yyvsp[-2].pl, yyvsp[-6].ivalue, f_header); + } + doc_entry = new DocDecl(yyvsp[-8].id,doc_stack[doc_stack_top]); + lang->add_native(yyvsp[-8].id,yyvsp[-4].decl.id,yyvsp[-5].type,yyvsp[-2].pl); + } + } + delete yyvsp[-5].type; + delete yyvsp[-2].pl; + ; + break;} +case 39: +#line 838 "parser.yxx" +{ + if (!WrapExtern) { + if (!title_init) { + title_init = 1; + doc_init = 1; + if (!comment_handler) { + comment_handler = new CommentHandler(); + } + { + int ii; + for (ii = 0; ii < yyvsp[0].dlist.count; ii++) { + comment_handler->style(yyvsp[0].dlist.names[ii],yyvsp[0].dlist.values[ii]); + } + } + // Create a new title for documentation + { + int temp = line_number; + line_number = yyvsp[-2].ivalue; + if (!doctitle) + doctitle = new DocTitle(yyvsp[-1].id,0); + else { + doctitle->name = copy_string(title); + doctitle->line_number = yyvsp[-2].ivalue; + doctitle->end_line = yyvsp[-2].ivalue; + } + line_number = temp; + } + doctitle->usage = yyvsp[-1].id; + doc_entry = doctitle; + doc_stack[0] = doc_entry; + doc_stack_top = 0; + handler_stack[0] = comment_handler; + { + int ii; + for (ii = 0; ii < yyvsp[0].dlist.count; ii++) { + doc_stack[doc_stack_top]->style(yyvsp[0].dlist.names[ii],yyvsp[0].dlist.values[ii]); + } + } + + } else { + // Ignore it + } + } + ; + break;} +case 40: +#line 886 "parser.yxx" +{ + if ((!WrapExtern) && (!IgnoreDoc)) { + // Copy old comment handler + // if (handler_stack[1]) delete handler_stack[1]; + handler_stack[1] = new CommentHandler(handler_stack[0]); + comment_handler = handler_stack[1]; + { + int ii; + for (ii = 0; ii < yyvsp[0].dlist.count; ii++) { + comment_handler->style(yyvsp[0].dlist.names[ii],yyvsp[0].dlist.values[ii]); + } + } + { + int temp = line_number; + line_number = yyvsp[-2].ivalue; + doc_entry = new DocSection(yyvsp[-1].id,doc_stack[0]); + line_number = temp; + } + doc_stack_top = 1; + doc_stack[1] = doc_entry; + { + int ii; + for (ii = 0; ii < yyvsp[0].dlist.count; ii++) { + doc_stack[doc_stack_top]->style(yyvsp[0].dlist.names[ii],yyvsp[0].dlist.values[ii]); + } + } + } + ; + break;} +case 41: +#line 916 "parser.yxx" +{ + if ((!WrapExtern) && (!IgnoreDoc)) { + if (doc_stack_top < 1) { + fprintf(stderr,"%s : Line %d. Can't apply %%subsection here.\n", input_file,line_number); + FatalError(); + } else { + + // Copy old comment handler + // if (handler_stack[2]) delete handler_stack[2]; + handler_stack[2] = new CommentHandler(handler_stack[1]); + comment_handler = handler_stack[2]; + { + int ii; + for (ii = 0; ii < yyvsp[0].dlist.count; ii++) { + comment_handler->style(yyvsp[0].dlist.names[ii],yyvsp[0].dlist.values[ii]); + } + } + { + int temp = line_number; + line_number = yyvsp[-2].ivalue; + doc_entry = new DocSection(yyvsp[-1].id,doc_stack[1]); + line_number = temp; + } + doc_stack_top = 2; + doc_stack[2] = doc_entry; + { + int ii; + for (ii = 0; ii < yyvsp[0].dlist.count; ii++) { + doc_stack[doc_stack_top]->style(yyvsp[0].dlist.names[ii],yyvsp[0].dlist.values[ii]); + } + } + } + } + ; + break;} +case 42: +#line 952 "parser.yxx" +{ + if ((!WrapExtern) && (!IgnoreDoc)) { + if (doc_stack_top < 2) { + fprintf(stderr,"%s : Line %d. Can't apply %%subsubsection here.\n", input_file,line_number); + FatalError(); + } else { + + // Copy old comment handler + + // if (handler_stack[3]) delete handler_stack[3]; + handler_stack[3] = new CommentHandler(handler_stack[2]); + comment_handler = handler_stack[3]; + { + int ii; + for (ii = 0; ii < yyvsp[0].dlist.count; ii++) { + comment_handler->style(yyvsp[0].dlist.names[ii],yyvsp[0].dlist.values[ii]); + } + } + { + int temp = line_number; + line_number = yyvsp[-2].ivalue; + doc_entry = new DocSection(yyvsp[-1].id,doc_stack[2]); + line_number = temp; + } + doc_stack_top = 3; + doc_stack[3] = doc_entry; + { + int ii; + for (ii = 0; ii < yyvsp[0].dlist.count; ii++) { + doc_stack[doc_stack_top]->style(yyvsp[0].dlist.names[ii],yyvsp[0].dlist.values[ii]); + } + } + } + } + ; + break;} +case 43: +#line 989 "parser.yxx" +{ + if (!WrapExtern) { + fprintf(stderr,"%%alpha directive is obsolete. Use '%%style sort' instead.\n"); + handler_stack[0]->style("sort",0); + doc_stack[0]->style("sort",0); + } + ; + break;} +case 44: +#line 997 "parser.yxx" +{ + if (!WrapExtern) { + fprintf(stderr,"%%raw directive is obsolete. Use '%%style nosort' instead.\n"); + handler_stack[0]->style("nosort",0); + doc_stack[0]->style("nosort",0); + } + ; + break;} +case 45: +#line 1005 "parser.yxx" +{ ; + break;} +case 46: +#line 1009 "parser.yxx" +{ + if (!WrapExtern) { + yyvsp[0].id[strlen(yyvsp[0].id) - 1] = 0; + doc_entry = new DocText(yyvsp[0].id,doc_stack[doc_stack_top]); + doc_entry = 0; + } + ; + break;} +case 47: +#line 1018 "parser.yxx" +{ ; + break;} +case 48: +#line 1022 "parser.yxx" +{ + if (!WrapExtern) { + init_language(); + yyvsp[0].id[strlen(yyvsp[0].id) - 1] = 0; +// fprintf(f_header,"#line %d \"%s\"\n", start_line, input_file); + fprintf(f_header, "%s\n", yyvsp[0].id); + } + ; + break;} +case 49: +#line 1033 "parser.yxx" +{ + if (!WrapExtern) { + init_language(); + yyvsp[0].id[strlen(yyvsp[0].id) - 1] = 0; + fprintf(f_wrappers,"%s\n",yyvsp[0].id); + } + ; + break;} +case 50: +#line 1043 "parser.yxx" +{ + if (!WrapExtern) { + init_language(); + yyvsp[0].id[strlen(yyvsp[0].id) -1] = 0; + fprintf(f_init,"%s\n", yyvsp[0].id); + } + ; + break;} +case 51: +#line 1052 "parser.yxx" +{ + if (!WrapExtern) { + init_language(); + yyvsp[0].id[strlen(yyvsp[0].id) - 1] = 0; + fprintf(f_header, "%s\n", yyvsp[0].id); + start_inline(yyvsp[0].id,start_line); + } + ; + break;} +case 52: +#line 1062 "parser.yxx" +{ + if (!WrapExtern) { + fprintf(stderr,"%s\n", yyvsp[0].id); + } + ; + break;} +case 53: +#line 1068 "parser.yxx" +{ + if (!WrapExtern) { + fprintf(stderr,"%s\n", yyvsp[0].id); + } + ; + break;} +case 54: +#line 1075 "parser.yxx" +{ + DocOnly = 1; + ; + break;} +case 55: +#line 1081 "parser.yxx" +{ + if (!module_init) { + lang->set_init(yyvsp[-1].id); + module_init = 1; + init_language(); + } else { + if (Verbose) + fprintf(stderr,"%s : Line %d. %%init %s ignored.\n", + input_file, line_number, yyvsp[-1].id); + } + if (yyvsp[0].ilist.count > 0) { + fprintf(stderr,"%s : Line %d. Warning. Init list no longer supported.\n", + input_file,line_number); + } + for (i = 0; i < yyvsp[0].ilist.count; i++) + if (yyvsp[0].ilist.names[i]) delete [] yyvsp[0].ilist.names[i]; + delete [] yyvsp[0].ilist.names; + ; + break;} +case 56: +#line 1101 "parser.yxx" +{ + if (yyvsp[0].ilist.count) + lang->set_module(yyvsp[-1].id,yyvsp[0].ilist.names); + else + lang->set_module(yyvsp[-1].id,0); + module_init = 1; + init_language(); + for (i = 0; i < yyvsp[0].ilist.count; i++) + if (yyvsp[0].ilist.names[i]) delete [] yyvsp[0].ilist.names[i]; + delete [] yyvsp[0].ilist.names; + ; + break;} +case 57: +#line 1115 "parser.yxx" +{ + if ((yyvsp[-1].dtype.type != T_ERROR) && (yyvsp[-1].dtype.type != T_SYMBOL)) { + init_language(); + temp_typeptr = new DataType(yyvsp[-1].dtype.type); + create_constant(yyvsp[-2].id, temp_typeptr, yyvsp[-1].dtype.id); + delete temp_typeptr; + } else if (yyvsp[-1].dtype.type == T_SYMBOL) { + // Add a symbol to the SWIG symbol table + if (add_symbol(yyvsp[-2].id,(DataType *) 0, (char *) 0)) { + fprintf(stderr,"%s : Line %d. Warning. Symbol %s already defined.\n", + input_file,line_number, yyvsp[-2].id); + } + } + ; + break;} +case 58: +#line 1132 "parser.yxx" +{ scanner_clear_start(); ; + break;} +case 59: +#line 1132 "parser.yxx" +{ + init_language(); + if (yyvsp[-5].id) { + temp_type.type = T_INT; + temp_type.is_pointer = 0; + temp_type.implicit_ptr = 0; + sprintf(temp_type.name,"int"); + temp_type.typedef_add(yyvsp[-5].id,1); + } + ; + break;} +case 60: +#line 1145 "parser.yxx" +{ scanner_clear_start(); ; + break;} +case 61: +#line 1145 "parser.yxx" +{ + init_language(); + temp_type.type = T_INT; + temp_type.is_pointer = 0; + temp_type.implicit_ptr = 0; + sprintf(temp_type.name,"int"); + Active_typedef = new DataType(&temp_type); + temp_type.typedef_add(yyvsp[0].id,1); + ; + break;} +case 62: +#line 1153 "parser.yxx" +{ ; + break;} +case 63: +#line 1163 "parser.yxx" +{ + TMParm *p; + skip_brace(); + p = yyvsp[-1].tmparm; + while (p) { + typemap_register(yyvsp[-3].id,yyvsp[-5].id,p->p->t,p->p->name,CCode,p->args); + p = p->next; + } + delete yyvsp[-5].id; + delete yyvsp[-3].id; + ; + break;} +case 64: +#line 1176 "parser.yxx" +{ + if (!typemap_lang) { + fprintf(stderr,"SWIG internal error. No typemap_lang specified.\n"); + fprintf(stderr,"typemap on %s : Line %d. will be ignored.\n",input_file,line_number); + FatalError(); + } else { + TMParm *p; + skip_brace(); + p = yyvsp[-1].tmparm; + while (p) { + typemap_register(yyvsp[-3].id,typemap_lang,p->p->t,p->p->name,CCode,p->args); + p = p->next; + } + } + delete yyvsp[-3].id; + ; + break;} +case 65: +#line 1195 "parser.yxx" +{ + TMParm *p; + p = yyvsp[-1].tmparm; + while (p) { + typemap_clear(yyvsp[-3].id,yyvsp[-5].id,p->p->t,p->p->name); + p = p->next; + } + delete yyvsp[-5].id; + delete yyvsp[-3].id; + ; + break;} +case 66: +#line 1207 "parser.yxx" +{ + if (!typemap_lang) { + fprintf(stderr,"SWIG internal error. No typemap_lang specified.\n"); + fprintf(stderr,"typemap on %s : Line %d. will be ignored.\n",input_file,line_number); + FatalError(); + } else { + TMParm *p; + p = yyvsp[-1].tmparm; + while (p) { + typemap_clear(yyvsp[-3].id,typemap_lang,p->p->t,p->p->name); + p = p->next; + } + } + delete yyvsp[-3].id; + ; + break;} +case 67: +#line 1225 "parser.yxx" +{ + TMParm *p; + p = yyvsp[-3].tmparm; + while (p) { + typemap_copy(yyvsp[-5].id,yyvsp[-7].id,yyvsp[-1].tmparm->p->t,yyvsp[-1].tmparm->p->name,p->p->t,p->p->name); + p = p->next; + } + delete yyvsp[-7].id; + delete yyvsp[-5].id; + delete yyvsp[-1].tmparm->p; + delete yyvsp[-1].tmparm; + ; + break;} +case 68: +#line 1240 "parser.yxx" +{ + if (!typemap_lang) { + fprintf(stderr,"SWIG internal error. No typemap_lang specified.\n"); + fprintf(stderr,"typemap on %s : Line %d. will be ignored.\n",input_file,line_number); + FatalError(); + } else { + TMParm *p; + p = yyvsp[-3].tmparm; + while (p) { + typemap_copy(yyvsp[-5].id,typemap_lang,yyvsp[-1].tmparm->p->t,yyvsp[-1].tmparm->p->name,p->p->t,p->p->name); + p = p->next; + } + } + delete yyvsp[-5].id; + delete yyvsp[-1].tmparm->p; + delete yyvsp[-1].tmparm; + ; + break;} +case 69: +#line 1261 "parser.yxx" +{ + TMParm *p; + p = yyvsp[-1].tmparm; + while(p) { + typemap_apply(yyvsp[-3].tmparm->p->t,yyvsp[-3].tmparm->p->name,p->p->t,p->p->name); + p = p->next; + } + delete yyvsp[-1].tmparm; + delete yyvsp[-3].tmparm->args; + delete yyvsp[-3].tmparm; + ; + break;} +case 70: +#line 1272 "parser.yxx" +{ + TMParm *p; + p = yyvsp[-1].tmparm; + while (p) { + typemap_clear_apply(p->p->t, p->p->name); + p = p->next; + } + ; + break;} +case 71: +#line 1289 "parser.yxx" +{ + skip_brace(); + fragment_register("except",yyvsp[-2].id, CCode); + delete yyvsp[-2].id; + ; + break;} +case 72: +#line 1296 "parser.yxx" +{ + skip_brace(); + fragment_register("except",typemap_lang, CCode); + ; + break;} +case 73: +#line 1303 "parser.yxx" +{ + fragment_clear("except",yyvsp[-2].id); + ; + break;} +case 74: +#line 1308 "parser.yxx" +{ + fragment_clear("except",typemap_lang); + ; + break;} +case 75: +#line 1314 "parser.yxx" +{ ; + break;} +case 76: +#line 1315 "parser.yxx" +{ ; + break;} +case 77: +#line 1316 "parser.yxx" +{ ; + break;} +case 78: +#line 1317 "parser.yxx" +{ + if (!Error) { + { + static int last_error_line = -1; + if (last_error_line != line_number) { + fprintf(stderr,"%s : Line %d. Syntax error in input.\n", input_file, line_number); + FatalError(); + last_error_line = line_number; + // Try to make some kind of recovery. + skip_decl(); + } + Error = 1; + } + } + ; + break;} +case 79: +#line 1335 "parser.yxx" +{ ; + break;} +case 80: +#line 1339 "parser.yxx" +{ ; + break;} +case 81: +#line 1343 "parser.yxx" +{ + { + int ii,jj; + for (ii = 0; ii < yyvsp[0].dlist.count; ii++) { + comment_handler->style(yyvsp[0].dlist.names[ii],yyvsp[0].dlist.values[ii]); + for (jj = 0; jj < doc_stack_top; jj++) + doc_stack[jj]->style(yyvsp[0].dlist.names[ii],yyvsp[0].dlist.values[ii]); + if (doctitle) + doctitle->style(yyvsp[0].dlist.names[ii],yyvsp[0].dlist.values[ii]); + doc->style(yyvsp[0].dlist.names[ii],yyvsp[0].dlist.values[ii]); + } + } + ; + break;} +case 82: +#line 1359 "parser.yxx" +{ + { + int ii; + for (ii = 0; ii < yyvsp[0].dlist.count; ii++) { + comment_handler = new CommentHandler(comment_handler); + handler_stack[doc_stack_top] = comment_handler; + comment_handler->style(yyvsp[0].dlist.names[ii],yyvsp[0].dlist.values[ii]); + doc_stack[doc_stack_top]->style(yyvsp[0].dlist.names[ii],yyvsp[0].dlist.values[ii]); + } + } + ; + break;} +case 83: +#line 1372 "parser.yxx" +{ ; + break;} +case 84: +#line 1378 "parser.yxx" +{ + if (IgnoreDoc) { + /* Already in a disabled documentation */ + doc_scope++; + } else { + if (Verbose) + fprintf(stderr,"%s : Line %d. Documentation disabled.\n", input_file, line_number); + IgnoreDoc = 1; + doc_scope = 1; + } + ; + break;} +case 85: +#line 1390 "parser.yxx" +{ + if (IgnoreDoc) { + if (doc_scope > 1) { + doc_scope--; + } else { + if (Verbose) + fprintf(stderr,"%s : Line %d. Documentation enabled.\n", input_file, line_number); + IgnoreDoc = 0; + doc_scope = 0; + } + } + ; + break;} +case 86: +#line 1407 "parser.yxx" +{ + init_language(); + /* Add a new typedef */ + Active_typedef = new DataType(yyvsp[-1].type); + yyvsp[-1].type->is_pointer += yyvsp[0].decl.is_pointer; + yyvsp[-1].type->typedef_add(yyvsp[0].decl.id); + /* If this is %typedef, add it to the header */ + if (yyvsp[-2].ivalue) + fprintf(f_header,"typedef %s %s;\n", yyvsp[-1].type->print_full(), yyvsp[0].decl.id); + cplus_register_type(yyvsp[0].decl.id); + ; + break;} +case 87: +#line 1417 "parser.yxx" +{ ; + break;} +case 88: +#line 1421 "parser.yxx" +{ + init_language(); + /* Typedef'd pointer */ + if (yyvsp[-9].ivalue) { + sprintf(temp_name,"(*%s)",yyvsp[-5].id); + fprintf(f_header,"typedef "); + emit_extern_func(temp_name, yyvsp[-8].type,yyvsp[-2].pl,0,f_header); + } + strcpy(yyvsp[-8].type->name,""); + yyvsp[-8].type->type = T_USER; + yyvsp[-8].type->is_pointer = 1; + yyvsp[-8].type->typedef_add(yyvsp[-5].id,1); + cplus_register_type(yyvsp[-5].id); + delete yyvsp[-8].type; + delete yyvsp[-5].id; + delete yyvsp[-2].pl; + ; + break;} +case 89: +#line 1441 "parser.yxx" +{ + init_language(); + if (yyvsp[-10].ivalue) { + yyvsp[-9].type->is_pointer += yyvsp[-8].ivalue; + sprintf(temp_name,"(*%s)",yyvsp[-5].id); + fprintf(f_header,"typedef "); + emit_extern_func(temp_name, yyvsp[-9].type,yyvsp[-2].pl,0,f_header); + } + + /* Typedef'd pointer */ + strcpy(yyvsp[-9].type->name,""); + yyvsp[-9].type->type = T_USER; + yyvsp[-9].type->is_pointer = 1; + yyvsp[-9].type->typedef_add(yyvsp[-5].id,1); + cplus_register_type(yyvsp[-5].id); + delete yyvsp[-9].type; + delete yyvsp[-5].id; + delete yyvsp[-2].pl; + ; + break;} +case 90: +#line 1463 "parser.yxx" +{ + init_language(); + Active_typedef = new DataType(yyvsp[-2].type); + // This datatype is going to be readonly + + yyvsp[-2].type->status = STAT_READONLY | STAT_REPLACETYPE; + yyvsp[-2].type->is_pointer += yyvsp[-1].decl.is_pointer; + // Turn this into a "pointer" corresponding to the array + yyvsp[-2].type->is_pointer++; + yyvsp[-2].type->arraystr = copy_string(ArrayString); + yyvsp[-2].type->typedef_add(yyvsp[-1].decl.id); + fprintf(stderr,"%s : Line %d. Warning. Array type %s will be read-only without a typemap\n",input_file,line_number, yyvsp[-1].decl.id); + cplus_register_type(yyvsp[-1].decl.id); + + ; + break;} +case 91: +#line 1477 "parser.yxx" +{ ; + break;} +case 92: +#line 1490 "parser.yxx" +{ + if (Active_typedef) { + DataType *t; + t = new DataType(Active_typedef); + t->is_pointer += yyvsp[-1].decl.is_pointer; + t->typedef_add(yyvsp[-1].decl.id); + cplus_register_type(yyvsp[-1].decl.id); + delete t; + } + ; + break;} +case 93: +#line 1500 "parser.yxx" +{ + DataType *t; + t = new DataType(Active_typedef); + t->status = STAT_READONLY | STAT_REPLACETYPE; + t->is_pointer += yyvsp[-1].decl.is_pointer + 1; + t->arraystr = copy_string(ArrayString); + t->typedef_add(yyvsp[-1].decl.id); + cplus_register_type(yyvsp[-1].decl.id); + delete t; + fprintf(stderr,"%s : Line %d. Warning. Array type %s will be read-only without a typemap.\n",input_file,line_number, yyvsp[-1].decl.id); + ; + break;} +case 94: +#line 1511 "parser.yxx" +{ ; + break;} +case 95: +#line 1514 "parser.yxx" +{ + if (!WrapExtern) + lang->pragma(yyvsp[-4].id,yyvsp[-2].id,yyvsp[-1].id); + fprintf(stderr,"%s : Line %d. Warning. '%%pragma(lang,opt=value)' syntax is obsolete.\n", + input_file,line_number); + fprintf(stderr," Use '%%pragma(lang) opt=value' instead.\n"); + ; + break;} +case 96: +#line 1522 "parser.yxx" +{ + if (!WrapExtern) + swig_pragma(yyvsp[-1].id,yyvsp[0].id); + ; + break;} +case 97: +#line 1526 "parser.yxx" +{ + if (!WrapExtern) + lang->pragma(yyvsp[-3].id,yyvsp[-1].id,yyvsp[0].id); + ; + break;} +case 98: +#line 1534 "parser.yxx" +{ ; + break;} +case 99: +#line 1535 "parser.yxx" +{ + if (allow) { + init_language(); + temp_typeptr = new DataType(Active_type); + temp_typeptr->is_pointer += yyvsp[-2].decl.is_pointer; + if (yyvsp[-1].ivalue > 0) { + temp_typeptr->is_pointer++; + temp_typeptr->status = STAT_READONLY; + temp_typeptr->arraystr = copy_string(ArrayString); + } + if (yyvsp[-2].decl.is_reference) { + fprintf(stderr,"%s : Line %d. Error. Linkage to C++ reference not allowed.\n", input_file, line_number); + FatalError(); + } else { + if (temp_typeptr->qualifier) { + if ((strcmp(temp_typeptr->qualifier,"const") == 0)) { + /* Okay. This is really some sort of C++ constant here. */ + if (yyvsp[0].dtype.type != T_ERROR) + create_constant(yyvsp[-2].decl.id, temp_typeptr, yyvsp[0].dtype.id); + } else + create_variable(Active_extern,yyvsp[-2].decl.id, temp_typeptr); + } else + create_variable(Active_extern, yyvsp[-2].decl.id, temp_typeptr); + } + delete temp_typeptr; + } + ; + break;} +case 100: +#line 1561 "parser.yxx" +{ ; + break;} +case 101: +#line 1562 "parser.yxx" +{ + if (allow) { + init_language(); + temp_typeptr = new DataType(Active_type); + temp_typeptr->is_pointer += yyvsp[-4].decl.is_pointer; + temp_typeptr->is_reference = yyvsp[-4].decl.is_reference; + create_function(Active_extern, yyvsp[-4].decl.id, temp_typeptr, yyvsp[-2].pl); + delete temp_typeptr; + } + delete yyvsp[-2].pl; + ; + break;} +case 102: +#line 1572 "parser.yxx" +{ ; + break;} +case 103: +#line 1575 "parser.yxx" +{ yyval.ivalue = 1; ; + break;} +case 104: +#line 1576 "parser.yxx" +{yyval.ivalue = 0; ; + break;} +case 105: +#line 1577 "parser.yxx" +{ + if (strcmp(yyvsp[0].id,"C") == 0) { + yyval.ivalue = 2; + } else { + fprintf(stderr,"%s : Line %d. Unrecognized extern type \"%s\" (ignored).\n", input_file, line_number, yyvsp[0].id); + FatalError(); + } + ; + break;} +case 106: +#line 1589 "parser.yxx" +{ skip_brace(); ; + break;} +case 107: +#line 1598 "parser.yxx" +{ + if ((yyvsp[-1].p->t->type != T_VOID) || (yyvsp[-1].p->t->is_pointer)) + yyvsp[0].pl->insert(yyvsp[-1].p,0); + yyval.pl = yyvsp[0].pl; + delete yyvsp[-1].p; + ; + break;} +case 108: +#line 1604 "parser.yxx" +{ yyval.pl = new ParmList;; + break;} +case 109: +#line 1607 "parser.yxx" +{ + yyvsp[0].pl->insert(yyvsp[-1].p,0); + yyval.pl = yyvsp[0].pl; + delete yyvsp[-1].p; + ; + break;} +case 110: +#line 1612 "parser.yxx" +{ yyval.pl = new ParmList;; + break;} +case 111: +#line 1615 "parser.yxx" +{ + yyval.p = yyvsp[0].p; + if (typemap_check("ignore",typemap_lang,yyval.p->t,yyval.p->name)) + yyval.p->ignore = 1; + ; + break;} +case 112: +#line 1620 "parser.yxx" +{ + yyval.p = yyvsp[0].p; + yyval.p->call_type = yyval.p->call_type | yyvsp[-1].ivalue; + if (InArray && (yyval.p->call_type & CALL_VALUE)) { + fprintf(stderr,"%s : Line %d. Error. Can't use %%val with an array.\n", input_file, line_number); + FatalError(); + } + if (!yyval.p->t->is_pointer) { + fprintf(stderr,"%s : Line %d. Error. Can't use %%val or %%out with a non-pointer argument.\n", input_file, line_number); + FatalError(); + } else { + yyval.p->t->is_pointer--; + } + ; + break;} +case 113: +#line 1635 "parser.yxx" +{ + if (InArray) { + yyvsp[-1].type->is_pointer++; + if (Verbose) { + fprintf(stderr,"%s : Line %d. Warning. Array %s", input_file, line_number, yyvsp[-1].type->print_type()); + print_array(); + fprintf(stderr," has been converted to %s.\n", yyvsp[-1].type->print_type()); + } + // Add array string to the type + yyvsp[-1].type->arraystr = copy_string(ArrayString.get()); + } + yyval.p = new Parm(yyvsp[-1].type,yyvsp[0].id); + yyval.p->call_type = 0; + yyval.p->defvalue = DefArg; + if ((yyvsp[-1].type->type == T_USER) && !(yyvsp[-1].type->is_pointer)) { + if (Verbose) + fprintf(stderr,"%s : Line %d. Warning : Parameter of type '%s'\nhas been remapped to '%s *' and will be called using *((%s *) ptr).\n", + input_file, line_number, yyvsp[-1].type->name, yyvsp[-1].type->name, yyvsp[-1].type->name); + + yyval.p->call_type = CALL_REFERENCE; + yyval.p->t->is_pointer++; + } + delete yyvsp[-1].type; + delete yyvsp[0].id; + ; + break;} +case 114: +#line 1661 "parser.yxx" +{ + yyval.p = new Parm(yyvsp[-2].type,yyvsp[0].id); + yyval.p->t->is_pointer += yyvsp[-1].ivalue; + yyval.p->call_type = 0; + yyval.p->defvalue = DefArg; + if (InArray) { + yyval.p->t->is_pointer++; + if (Verbose) { + fprintf(stderr,"%s : Line %d. Warning. Array %s", input_file, line_number, yyval.p->t->print_type()); + print_array(); + fprintf(stderr," has been converted to %s.\n", yyval.p->t->print_type()); + } + // Add array string to the type + yyval.p->t->arraystr = copy_string(ArrayString.get()); + } + delete yyvsp[-2].type; + delete yyvsp[0].id; + ; + break;} +case 115: +#line 1680 "parser.yxx" +{ + yyval.p = new Parm(yyvsp[-2].type,yyvsp[0].id); + yyval.p->t->is_reference = 1; + yyval.p->call_type = 0; + yyval.p->t->is_pointer++; + yyval.p->defvalue = DefArg; + if (!CPlusPlus) { + fprintf(stderr,"%s : Line %d. Warning. Use of C++ Reference detected. Use the -c++ option.\n", input_file, line_number); + } + delete yyvsp[-2].type; + delete yyvsp[0].id; + ; + break;} +case 116: +#line 1692 "parser.yxx" +{ + fprintf(stderr,"%s : Line %d. Error. Function pointer not allowed (remap with typedef).\n", input_file, line_number); + FatalError(); + yyval.p = new Parm(yyvsp[-7].type,yyvsp[-4].id); + yyval.p->t->type = T_ERROR; + yyval.p->name = copy_string(yyvsp[-4].id); + strcpy(yyval.p->t->name,""); + delete yyvsp[-7].type; + delete yyvsp[-4].id; + delete yyvsp[-1].pl; + ; + break;} +case 117: +#line 1703 "parser.yxx" +{ + fprintf(stderr,"%s : Line %d. Variable length arguments not supported (ignored).\n", input_file, line_number); + yyval.p = new Parm(new DataType(T_INT),"varargs"); + yyval.p->t->type = T_ERROR; + yyval.p->name = copy_string("varargs"); + strcpy(yyval.p->t->name,""); + FatalError(); + ; + break;} +case 118: +#line 1713 "parser.yxx" +{ + yyval.id = yyvsp[-1].id; + InArray = 0; + if (yyvsp[0].dtype.type == T_CHAR) + DefArg = copy_string(ConstChar); + else + DefArg = copy_string(yyvsp[0].dtype.id); + if (yyvsp[0].dtype.id) delete yyvsp[0].dtype.id; + ; + break;} +case 119: +#line 1722 "parser.yxx" +{ + yyval.id = yyvsp[-1].id; + InArray = yyvsp[0].ivalue; + DefArg = 0; + ; + break;} +case 120: +#line 1727 "parser.yxx" +{ + yyval.id = new char[1]; + yyval.id[0] = 0; + InArray = yyvsp[0].ivalue; + DefArg = 0; + ; + break;} +case 121: +#line 1733 "parser.yxx" +{ yyval.id = new char[1]; + yyval.id[0] = 0; + InArray = 0; + DefArg = 0; + ; + break;} +case 122: +#line 1740 "parser.yxx" +{ yyval.dtype = yyvsp[0].dtype; ; + break;} +case 123: +#line 1741 "parser.yxx" +{ + yyval.dtype.id = new char[strlen(yyvsp[0].id)+2]; + yyval.dtype.id[0] = '&'; + strcpy(&yyval.dtype.id[1], yyvsp[0].id); + yyval.dtype.type = T_USER; + ; + break;} +case 124: +#line 1747 "parser.yxx" +{ + skip_brace(); + yyval.dtype.id = 0; yyval.dtype.type = T_INT; + ; + break;} +case 125: +#line 1751 "parser.yxx" +{ + ; + break;} +case 126: +#line 1753 "parser.yxx" +{yyval.dtype.id = 0; yyval.dtype.type = T_INT;; + break;} +case 127: +#line 1756 "parser.yxx" +{ yyval.ivalue = CALL_VALUE; ; + break;} +case 128: +#line 1757 "parser.yxx" +{ yyval.ivalue = CALL_OUTPUT; ; + break;} +case 129: +#line 1760 "parser.yxx" +{ + yyval.ivalue = yyvsp[-1].ivalue | yyvsp[0].ivalue; + ; + break;} +case 130: +#line 1763 "parser.yxx" +{ + yyval.ivalue = yyvsp[0].ivalue; + ; + break;} +case 131: +#line 1770 "parser.yxx" +{ yyval.decl.id = yyvsp[0].id; + yyval.decl.is_pointer = 0; + yyval.decl.is_reference = 0; + ; + break;} +case 132: +#line 1774 "parser.yxx" +{ + yyval.decl.id = yyvsp[0].id; + yyval.decl.is_pointer = yyvsp[-1].ivalue; + yyval.decl.is_reference = 0; + ; + break;} +case 133: +#line 1779 "parser.yxx" +{ + yyval.decl.id = yyvsp[0].id; + yyval.decl.is_pointer = 1; + yyval.decl.is_reference = 1; + if (!CPlusPlus) { + fprintf(stderr,"%s : Line %d. Warning. Use of C++ Reference detected. Use the -c++ option.\n", input_file, line_number); + } + ; + break;} +case 134: +#line 1789 "parser.yxx" +{ yyval.ivalue = 1; ; + break;} +case 135: +#line 1790 "parser.yxx" +{ yyval.ivalue = yyvsp[0].ivalue + 1;; + break;} +case 136: +#line 1794 "parser.yxx" +{ + yyval.ivalue = yyvsp[0].ivalue + 1; + "[]" >> ArrayString; + ; + break;} +case 137: +#line 1798 "parser.yxx" +{ + yyval.ivalue = yyvsp[0].ivalue + 1; + "]" >> ArrayString; + yyvsp[-2].dtype.id >> ArrayString; + "[" >> ArrayString; + ; + break;} +case 138: +#line 1805 "parser.yxx" +{ + yyval.ivalue = yyvsp[0].ivalue; + ; + break;} +case 139: +#line 1808 "parser.yxx" +{ yyval.ivalue = 0; + ArrayString = ""; + ; + break;} +case 140: +#line 1816 "parser.yxx" +{ + yyval.type = yyvsp[0].type; + ; + break;} +case 141: +#line 1819 "parser.yxx" +{ + yyval.type = yyvsp[-1].type; + ; + break;} +case 142: +#line 1822 "parser.yxx" +{ + yyval.type = yyvsp[-1].type; + ; + break;} +case 143: +#line 1825 "parser.yxx" +{ + yyval.type = yyvsp[0].type; + ; + break;} +case 144: +#line 1828 "parser.yxx" +{ + yyval.type = yyvsp[0].type; + ; + break;} +case 145: +#line 1831 "parser.yxx" +{ + yyval.type = yyvsp[0].type; + ; + break;} +case 146: +#line 1834 "parser.yxx" +{ + yyval.type = yyvsp[0].type; + ; + break;} +case 147: +#line 1837 "parser.yxx" +{ + yyval.type = yyvsp[0].type; + ; + break;} +case 148: +#line 1840 "parser.yxx" +{ + if (yyvsp[0].type) yyval.type = yyvsp[0].type; + else yyval.type = yyvsp[-1].type; + ; + break;} +case 149: +#line 1844 "parser.yxx" +{ + if (yyvsp[0].type) yyval.type = yyvsp[0].type; + else yyval.type = yyvsp[-1].type; + ; + break;} +case 150: +#line 1848 "parser.yxx" +{ + yyval.type = yyvsp[-1].type; + if (strlen(yyvsp[0].id) > 0) { + if ((strlen(yyvsp[0].id) + strlen(yyval.type->name)) >= MAX_NAME) { + fprintf(stderr,"%s : Line %d. Fatal error. Type-name is too long!\n", + input_file, line_number); + } else { + strcat(yyval.type->name,yyvsp[0].id); + } + } + ; + break;} +case 151: +#line 1859 "parser.yxx" +{ + yyval.type = new DataType; + strcpy(yyval.type->name,yyvsp[-1].id); + yyval.type->type = T_USER; + /* Do a typedef lookup */ + yyval.type->typedef_resolve(); + if (strlen(yyvsp[0].id) > 0) { + if ((strlen(yyvsp[0].id) + strlen(yyval.type->name)) >= MAX_NAME) { + fprintf(stderr,"%s : Line %d. Fatal error. Type-name is too long!\n", + input_file, line_number); + } else { + strcat(yyval.type->name,yyvsp[0].id); + } + } + ; + break;} +case 152: +#line 1874 "parser.yxx" +{ + yyval.type = yyvsp[0].type; + yyval.type->qualifier = new char[6]; + strcpy(yyval.type->qualifier,"const"); + ; + break;} +case 153: +#line 1879 "parser.yxx" +{ + yyval.type = new DataType; + sprintf(yyval.type->name,"%s %s",yyvsp[-1].id, yyvsp[0].id); + yyval.type->type = T_USER; + ; + break;} +case 154: +#line 1884 "parser.yxx" +{ + yyval.type = new DataType; + sprintf(yyval.type->name,"%s::%s",yyvsp[-2].id,yyvsp[0].id); + yyval.type->type = T_USER; + yyval.type->typedef_resolve(); + ; + break;} +case 155: +#line 1893 "parser.yxx" +{ + yyval.type = new DataType; + sprintf(yyval.type->name,"%s", yyvsp[0].id); + yyval.type->type = T_USER; + yyval.type->typedef_resolve(1); + ; + break;} +case 156: +#line 1899 "parser.yxx" +{ + yyval.type = new DataType; + sprintf(yyval.type->name,"enum %s", yyvsp[0].id); + yyval.type->type = T_INT; + yyval.type->typedef_resolve(1); + ; + break;} +case 157: +#line 1909 "parser.yxx" +{ + yyval.type = yyvsp[0].type; + ; + break;} +case 158: +#line 1912 "parser.yxx" +{ + yyval.type = yyvsp[-1].type; + ; + break;} +case 159: +#line 1915 "parser.yxx" +{ + yyval.type = yyvsp[-1].type; + ; + break;} +case 160: +#line 1918 "parser.yxx" +{ + yyval.type = yyvsp[0].type; + ; + break;} +case 161: +#line 1921 "parser.yxx" +{ + yyval.type = yyvsp[0].type; + ; + break;} +case 162: +#line 1924 "parser.yxx" +{ + yyval.type = yyvsp[0].type; + ; + break;} +case 163: +#line 1927 "parser.yxx" +{ + yyval.type = yyvsp[0].type; + ; + break;} +case 164: +#line 1930 "parser.yxx" +{ + yyval.type = yyvsp[0].type; + ; + break;} +case 165: +#line 1933 "parser.yxx" +{ + if (yyvsp[0].type) yyval.type = yyvsp[0].type; + else yyval.type = yyvsp[-1].type; + ; + break;} +case 166: +#line 1937 "parser.yxx" +{ + if (yyvsp[0].type) yyval.type = yyvsp[0].type; + else yyval.type = yyvsp[-1].type; + ; + break;} +case 167: +#line 1941 "parser.yxx" +{ + yyval.type = yyvsp[-1].type; + strcat(yyval.type->name,yyvsp[0].id); + ; + break;} +case 168: +#line 1945 "parser.yxx" +{ + yyval.type = yyvsp[0].type; + yyval.type->qualifier = new char[6]; + strcpy(yyval.type->qualifier,"const"); + ; + break;} +case 169: +#line 1950 "parser.yxx" +{ + yyval.type = new DataType; + sprintf(yyval.type->name,"%s %s",yyvsp[-1].id, yyvsp[0].id); + yyval.type->type = T_USER; + ; + break;} +case 170: +#line 1959 "parser.yxx" +{ + yyval.type = (DataType *) 0; + ; + break;} +case 171: +#line 1962 "parser.yxx" +{ + yyval.type = yyvsp[0].type; + yyval.type->type = T_INT; + sprintf(temp_name,"signed %s",yyvsp[0].type->name); + strcpy(yyval.type->name,temp_name); + ; + break;} +case 172: +#line 1968 "parser.yxx" +{ + yyval.type = yyvsp[-1].type; + yyval.type->type = T_SHORT; + sprintf(temp_name,"signed %s",yyvsp[-1].type->name); + strcpy(yyval.type->name,temp_name); + ; + break;} +case 173: +#line 1974 "parser.yxx" +{ + yyval.type = yyvsp[-1].type; + yyval.type->type = T_LONG; + sprintf(temp_name,"signed %s",yyvsp[-1].type->name); + strcpy(yyval.type->name,temp_name); + ; + break;} +case 174: +#line 1980 "parser.yxx" +{ + yyval.type = yyvsp[0].type; + yyval.type->type = T_SCHAR; + sprintf(temp_name,"signed %s",yyvsp[0].type->name); + strcpy(yyval.type->name,temp_name); + ; + break;} +case 175: +#line 1990 "parser.yxx" +{ + yyval.type = (DataType *) 0; + ; + break;} +case 176: +#line 1993 "parser.yxx" +{ + yyval.type = yyvsp[0].type; + yyval.type->type = T_UINT; + sprintf(temp_name,"unsigned %s",yyvsp[0].type->name); + strcpy(yyval.type->name,temp_name); + ; + break;} +case 177: +#line 1999 "parser.yxx" +{ + yyval.type = yyvsp[-1].type; + yyval.type->type = T_USHORT; + sprintf(temp_name,"unsigned %s",yyvsp[-1].type->name); + strcpy(yyval.type->name,temp_name); + ; + break;} +case 178: +#line 2005 "parser.yxx" +{ + yyval.type = yyvsp[-1].type; + yyval.type->type = T_ULONG; + sprintf(temp_name,"unsigned %s",yyvsp[-1].type->name); + strcpy(yyval.type->name,temp_name); + ; + break;} +case 179: +#line 2011 "parser.yxx" +{ + yyval.type = yyvsp[0].type; + yyval.type->type = T_UCHAR; + sprintf(temp_name,"unsigned %s",yyvsp[0].type->name); + strcpy(yyval.type->name,temp_name); + ; + break;} +case 180: +#line 2019 "parser.yxx" +{ ; + break;} +case 181: +#line 2020 "parser.yxx" +{ ; + break;} +case 182: +#line 2023 "parser.yxx" +{ scanner_check_typedef(); ; + break;} +case 183: +#line 2023 "parser.yxx" +{ + yyval.dtype = yyvsp[0].dtype; + scanner_ignore_typedef(); + if (ConstChar) delete ConstChar; + ConstChar = 0; + ; + break;} +case 184: +#line 2029 "parser.yxx" +{ + yyval.dtype.id = yyvsp[0].id; + yyval.dtype.type = T_CHAR; + if (ConstChar) delete ConstChar; + ConstChar = new char[strlen(yyvsp[0].id)+3]; + sprintf(ConstChar,"\"%s\"",yyvsp[0].id); + ; + break;} +case 185: +#line 2036 "parser.yxx" +{ + yyval.dtype.id = yyvsp[0].id; + yyval.dtype.type = T_CHAR; + if (ConstChar) delete ConstChar; + ConstChar = new char[strlen(yyvsp[0].id)+3]; + sprintf(ConstChar,"'%s'",yyvsp[0].id); + ; + break;} +case 186: +#line 2048 "parser.yxx" +{ + yyval.ilist = yyvsp[-2].ilist; + yyval.ilist.names[yyval.ilist.count] = copy_string(yyvsp[0].id); + yyval.ilist.count++; + yyval.ilist.names[yyval.ilist.count] = (char *) 0; + ; + break;} +case 187: +#line 2054 "parser.yxx" +{ + yyval.ilist.names = new char *[NI_NAMES]; + yyval.ilist.count = 0; + for (i = 0; i < NI_NAMES; i++) + yyval.ilist.names[i] = (char *) 0; + ; + break;} +case 188: +#line 2064 "parser.yxx" +{ yyval.id = yyvsp[0].id; ; + break;} +case 189: +#line 2065 "parser.yxx" +{ yyval.id = (char *) 0;; + break;} +case 190: +#line 2071 "parser.yxx" +{; + break;} +case 191: +#line 2072 "parser.yxx" +{; + break;} +case 192: +#line 2076 "parser.yxx" +{ + temp_typeptr = new DataType(T_INT); + create_constant(yyvsp[0].id, temp_typeptr, yyvsp[0].id); + delete temp_typeptr; + ; + break;} +case 193: +#line 2081 "parser.yxx" +{ scanner_check_typedef();; + break;} +case 194: +#line 2081 "parser.yxx" +{ + temp_typeptr = new DataType(yyvsp[0].dtype.type); +// Use enum name instead of value +// OLD create_constant($1, temp_typeptr, $4.id); + create_constant(yyvsp[-3].id, temp_typeptr, yyvsp[-3].id); + delete temp_typeptr; + ; + break;} +case 195: +#line 2088 "parser.yxx" +{ ; + break;} +case 196: +#line 2091 "parser.yxx" +{ + yyval.dtype = yyvsp[0].dtype; + if ((yyval.dtype.type != T_INT) && (yyval.dtype.type != T_UINT) && + (yyval.dtype.type != T_LONG) && (yyval.dtype.type != T_ULONG) && + (yyval.dtype.type != T_SHORT) && (yyval.dtype.type != T_USHORT) && + (yyval.dtype.type != T_SCHAR) && (yyval.dtype.type != T_UCHAR)) { + fprintf(stderr,"%s : Lind %d. Type error. Expecting an int\n", + input_file, line_number); + FatalError(); + } + + ; + break;} +case 197: +#line 2103 "parser.yxx" +{ + yyval.dtype.id = yyvsp[0].id; + yyval.dtype.type = T_CHAR; + ; + break;} +case 198: +#line 2114 "parser.yxx" +{ + yyval.dtype.id = yyvsp[0].id; + yyval.dtype.type = T_INT; + ; + break;} +case 199: +#line 2118 "parser.yxx" +{ + yyval.dtype.id = yyvsp[0].id; + yyval.dtype.type = T_DOUBLE; + ; + break;} +case 200: +#line 2122 "parser.yxx" +{ + yyval.dtype.id = yyvsp[0].id; + yyval.dtype.type = T_UINT; + ; + break;} +case 201: +#line 2126 "parser.yxx" +{ + yyval.dtype.id = yyvsp[0].id; + yyval.dtype.type = T_LONG; + ; + break;} +case 202: +#line 2130 "parser.yxx" +{ + yyval.dtype.id = yyvsp[0].id; + yyval.dtype.type = T_ULONG; + ; + break;} +case 203: +#line 2134 "parser.yxx" +{ + yyval.dtype.id = new char[strlen(yyvsp[-1].type->name)+9]; + sprintf(yyval.dtype.id,"sizeof(%s)", yyvsp[-1].type->name); + yyval.dtype.type = T_INT; + ; + break;} +case 204: +#line 2139 "parser.yxx" +{ + yyval.dtype.id = new char[strlen(yyvsp[0].dtype.id)+strlen(yyvsp[-2].type->name)+3]; + sprintf(yyval.dtype.id,"(%s)%s",yyvsp[-2].type->name,yyvsp[0].dtype.id); + yyval.dtype.type = yyvsp[-2].type->type; + ; + break;} +case 205: +#line 2144 "parser.yxx" +{ + yyval.dtype.id = lookup_symvalue(yyvsp[0].id); + if (yyval.dtype.id == (char *) 0) + yyval.dtype.id = yyvsp[0].id; + else { + yyval.dtype.id = new char[strlen(yyval.dtype.id)+3]; + sprintf(yyval.dtype.id,"(%s)",lookup_symvalue(yyvsp[0].id)); + } + temp_typeptr = lookup_symtype(yyvsp[0].id); + if (temp_typeptr) yyval.dtype.type = temp_typeptr->type; + else yyval.dtype.type = T_INT; + ; + break;} +case 206: +#line 2156 "parser.yxx" +{ + yyval.dtype.id = new char[strlen(yyvsp[-2].id)+strlen(yyvsp[0].id)+3]; + sprintf(yyval.dtype.id,"%s::%s",yyvsp[-2].id,yyvsp[0].id); + yyval.dtype.type = T_INT; + delete yyvsp[-2].id; + delete yyvsp[0].id; + ; + break;} +case 207: +#line 2163 "parser.yxx" +{ + E_BINARY(yyval.dtype.id,yyvsp[-2].dtype.id,yyvsp[0].dtype.id,"+"); + yyval.dtype.type = promote(yyvsp[-2].dtype.type,yyvsp[0].dtype.type); + delete yyvsp[-2].dtype.id; + delete yyvsp[0].dtype.id; + ; + break;} +case 208: +#line 2169 "parser.yxx" +{ + E_BINARY(yyval.dtype.id,yyvsp[-2].dtype.id,yyvsp[0].dtype.id,"-"); + yyval.dtype.type = promote(yyvsp[-2].dtype.type,yyvsp[0].dtype.type); + delete yyvsp[-2].dtype.id; + delete yyvsp[0].dtype.id; + ; + break;} +case 209: +#line 2175 "parser.yxx" +{ + E_BINARY(yyval.dtype.id,yyvsp[-2].dtype.id,yyvsp[0].dtype.id,"*"); + yyval.dtype.type = promote(yyvsp[-2].dtype.type,yyvsp[0].dtype.type); + delete yyvsp[-2].dtype.id; + delete yyvsp[0].dtype.id; + + ; + break;} +case 210: +#line 2182 "parser.yxx" +{ + E_BINARY(yyval.dtype.id,yyvsp[-2].dtype.id,yyvsp[0].dtype.id,"/"); + yyval.dtype.type = promote(yyvsp[-2].dtype.type,yyvsp[0].dtype.type); + delete yyvsp[-2].dtype.id; + delete yyvsp[0].dtype.id; + + ; + break;} +case 211: +#line 2189 "parser.yxx" +{ + E_BINARY(yyval.dtype.id,yyvsp[-2].dtype.id,yyvsp[0].dtype.id,"&"); + yyval.dtype.type = promote(yyvsp[-2].dtype.type,yyvsp[0].dtype.type); + if ((yyvsp[-2].dtype.type == T_DOUBLE) || (yyvsp[0].dtype.type == T_DOUBLE)) { + fprintf(stderr,"%s : Line %d. Type error in constant expression (expecting integers).\n", input_file, line_number); + FatalError(); + } + delete yyvsp[-2].dtype.id; + delete yyvsp[0].dtype.id; + + ; + break;} +case 212: +#line 2200 "parser.yxx" +{ + E_BINARY(yyval.dtype.id,yyvsp[-2].dtype.id,yyvsp[0].dtype.id,"|"); + yyval.dtype.type = promote(yyvsp[-2].dtype.type,yyvsp[0].dtype.type); + if ((yyvsp[-2].dtype.type == T_DOUBLE) || (yyvsp[0].dtype.type == T_DOUBLE)) { + fprintf(stderr,"%s : Line %d. Type error in constant expression (expecting integers).\n", input_file, line_number); + FatalError(); + } + yyval.dtype.type = T_INT; + delete yyvsp[-2].dtype.id; + delete yyvsp[0].dtype.id; + + ; + break;} +case 213: +#line 2212 "parser.yxx" +{ + E_BINARY(yyval.dtype.id,yyvsp[-2].dtype.id,yyvsp[0].dtype.id,"^"); + yyval.dtype.type = promote(yyvsp[-2].dtype.type,yyvsp[0].dtype.type); + if ((yyvsp[-2].dtype.type == T_DOUBLE) || (yyvsp[0].dtype.type == T_DOUBLE)) { + fprintf(stderr,"%s : Line %d. Type error in constant expression (expecting integers).\n", input_file, line_number); + FatalError(); + } + yyval.dtype.type = T_INT; + delete yyvsp[-2].dtype.id; + delete yyvsp[0].dtype.id; + + ; + break;} +case 214: +#line 2224 "parser.yxx" +{ + E_BINARY(yyval.dtype.id,yyvsp[-2].dtype.id,yyvsp[0].dtype.id,"<<"); + yyval.dtype.type = promote(yyvsp[-2].dtype.type,yyvsp[0].dtype.type); + if ((yyvsp[-2].dtype.type == T_DOUBLE) || (yyvsp[0].dtype.type == T_DOUBLE)) { + fprintf(stderr,"%s : Line %d. Type error in constant expression (expecting integers).\n", input_file, line_number); + FatalError(); + } + yyval.dtype.type = T_INT; + delete yyvsp[-2].dtype.id; + delete yyvsp[0].dtype.id; + + ; + break;} +case 215: +#line 2236 "parser.yxx" +{ + E_BINARY(yyval.dtype.id,yyvsp[-2].dtype.id,yyvsp[0].dtype.id,">>"); + yyval.dtype.type = promote(yyvsp[-2].dtype.type,yyvsp[0].dtype.type); + if ((yyvsp[-2].dtype.type == T_DOUBLE) || (yyvsp[0].dtype.type == T_DOUBLE)) { + fprintf(stderr,"%s : Line %d. Type error in constant expression (expecting integers).\n", input_file, line_number); + FatalError(); + } + yyval.dtype.type = T_INT; + delete yyvsp[-2].dtype.id; + delete yyvsp[0].dtype.id; + + ; + break;} +case 216: +#line 2248 "parser.yxx" +{ + yyval.dtype.id = new char[strlen(yyvsp[0].dtype.id)+2]; + sprintf(yyval.dtype.id,"-%s",yyvsp[0].dtype.id); + yyval.dtype.type = yyvsp[0].dtype.type; + delete yyvsp[0].dtype.id; + + ; + break;} +case 217: +#line 2255 "parser.yxx" +{ + yyval.dtype.id = new char[strlen(yyvsp[0].dtype.id)+2]; + sprintf(yyval.dtype.id,"~%s",yyvsp[0].dtype.id); + if (yyvsp[0].dtype.type == T_DOUBLE) { + fprintf(stderr,"%s : Line %d. Type error in constant expression (expecting integers).\n", input_file, line_number); + FatalError(); + } + yyval.dtype.type = yyvsp[0].dtype.type; + delete yyvsp[0].dtype.id; + ; + break;} +case 218: +#line 2265 "parser.yxx" +{ + yyval.dtype.id = new char[strlen(yyvsp[-1].dtype.id)+3]; + sprintf(yyval.dtype.id,"(%s)", yyvsp[-1].dtype.id); + yyval.dtype.type = yyvsp[-1].dtype.type; + delete yyvsp[-1].dtype.id; + ; + break;} +case 219: +#line 2276 "parser.yxx" +{ ; + break;} +case 220: +#line 2277 "parser.yxx" +{; + break;} +case 221: +#line 2283 "parser.yxx" +{ + char *iname; + if (allow) { + init_language(); + DataType::new_scope(); + + sprintf(temp_name,"CPP_CLASS:%s\n",yyvsp[-2].id); + if (add_symbol(temp_name, (DataType *) 0, (char *) 0)) { + fprintf(stderr,"%s : Line %d. Error. %s %s is multiply defined.\n", input_file, line_number, yyvsp[-3].id, yyvsp[-2].id); + FatalError(); + } + if ((!CPlusPlus) && (strcmp(yyvsp[-3].id,"class") == 0)) + fprintf(stderr,"%s : Line %d. *** WARNING ***. C++ mode is disabled (enable using -c++)\n", input_file, line_number); + + iname = make_name(yyvsp[-2].id); + doc_entry = new DocClass(iname, doc_parent()); + if (iname == yyvsp[-2].id) + cplus_open_class(yyvsp[-2].id, 0, yyvsp[-3].id); + else + cplus_open_class(yyvsp[-2].id, iname, yyvsp[-3].id); + if (strcmp(yyvsp[-3].id,"class") == 0) + cplus_mode = CPLUS_PRIVATE; + else + cplus_mode = CPLUS_PUBLIC; + doc_stack_top++; + doc_stack[doc_stack_top] = doc_entry; + scanner_clear_start(); + nested_list = 0; + // Merge in scope from base classes + cplus_inherit_scope(yyvsp[-1].ilist.count,yyvsp[-1].ilist.names); + } + ; + break;} +case 222: +#line 2314 "parser.yxx" +{ + if (allow) { + if (yyvsp[-4].ilist.names) { + if (strcmp(yyvsp[-6].id,"union") != 0) + cplus_inherit(yyvsp[-4].ilist.count, yyvsp[-4].ilist.names); + else { + fprintf(stderr,"%s : Line %d. Inheritance not allowed for unions.\n",input_file, line_number); + FatalError(); + } + } + // Clean up the inheritance list + if (yyvsp[-4].ilist.names) { + int j; + for (j = 0; j < yyvsp[-4].ilist.count; j++) { + if (yyvsp[-4].ilist.names[j]) delete [] yyvsp[-4].ilist.names[j]; + } + delete [] yyvsp[-4].ilist.names; + } + + // Dumped nested declarations (if applicable) + dump_nested(yyvsp[-5].id); + + // Save and collapse current scope + cplus_register_scope(DataType::collapse_scope(yyvsp[-5].id)); + + // Restore the original doc entry for this class + doc_entry = doc_stack[doc_stack_top]; + cplus_class_close((char *) 0); + doc_entry = 0; + // Bump the documentation stack back down + doc_stack_top--; + cplus_mode = CPLUS_PUBLIC; + } + ; + break;} +case 223: +#line 2351 "parser.yxx" +{ + if (allow) { + char *iname; + init_language(); + DataType::new_scope(); + + sprintf(temp_name,"CPP_CLASS:%s\n",yyvsp[-2].id); + if (add_symbol(temp_name, (DataType *) 0, (char *) 0)) { + fprintf(stderr,"%s : Line %d. Error. %s %s is multiply defined.\n", input_file, line_number, yyvsp[-3].id, yyvsp[-2].id); + FatalError(); + } + if ((!CPlusPlus) && (strcmp(yyvsp[-3].id,"class") == 0)) + fprintf(stderr,"%s : Line %d. *** WARNING ***. C++ mode is disabled (enable using -c++)\n", input_file, line_number); + + iname = make_name(yyvsp[-2].id); + doc_entry = new DocClass(iname, doc_parent()); + if (yyvsp[-2].id == iname) + cplus_open_class(yyvsp[-2].id, 0, yyvsp[-3].id); + else + cplus_open_class(yyvsp[-2].id, iname, yyvsp[-3].id); + if (strcmp(yyvsp[-3].id,"class") == 0) + cplus_mode = CPLUS_PRIVATE; + else + cplus_mode = CPLUS_PUBLIC; + // Create a documentation entry for the class + doc_stack_top++; + doc_stack[doc_stack_top] = doc_entry; + scanner_clear_start(); + nested_list = 0; + + // Merge in scope from base classes + cplus_inherit_scope(yyvsp[-1].ilist.count,yyvsp[-1].ilist.names); + + } + ; + break;} +case 224: +#line 2385 "parser.yxx" +{ + if (allow) { + if (yyvsp[-5].ilist.names) { + if (strcmp(yyvsp[-7].id,"union") != 0) + cplus_inherit(yyvsp[-5].ilist.count, yyvsp[-5].ilist.names); + else { + fprintf(stderr,"%s : Line %d. Inheritance not allowed for unions.\n",input_file, line_number); + FatalError(); + } + } + // Create a datatype for correctly processing the typedef + Active_typedef = new DataType(); + Active_typedef->type = T_USER; + sprintf(Active_typedef->name,"%s %s", yyvsp[-7].id,yyvsp[-6].id); + Active_typedef->is_pointer = 0; + Active_typedef->implicit_ptr = 0; + + // Clean up the inheritance list + if (yyvsp[-5].ilist.names) { + int j; + for (j = 0; j < yyvsp[-5].ilist.count; j++) { + if (yyvsp[-5].ilist.names[j]) delete [] yyvsp[-5].ilist.names[j]; + } + delete [] yyvsp[-5].ilist.names; + } + + if (yyvsp[0].decl.is_pointer > 0) { + fprintf(stderr,"%s : Line %d. typedef struct { } *id not supported properly. Winging it...\n", input_file, line_number); + + } + // Create dump nested class code + if (yyvsp[0].decl.is_pointer > 0) { + dump_nested(yyvsp[-6].id); + } else { + dump_nested(yyvsp[0].decl.id); + } + + // Collapse any datatypes created in the the class + + cplus_register_scope(DataType::collapse_scope(yyvsp[-6].id)); + + doc_entry = doc_stack[doc_stack_top]; + if (yyvsp[0].decl.is_pointer > 0) { + cplus_class_close(yyvsp[-6].id); + } else { + cplus_class_close(yyvsp[0].decl.id); + } + doc_stack_top--; + doc_entry = 0; + + // Create a typedef in global scope + + if (yyvsp[0].decl.is_pointer == 0) + Active_typedef->typedef_add(yyvsp[0].decl.id); + else { + DataType *t = new DataType(Active_typedef); + t->is_pointer += yyvsp[0].decl.is_pointer; + t->typedef_add(yyvsp[0].decl.id); + cplus_register_type(yyvsp[0].decl.id); + delete t; + } + cplus_mode = CPLUS_PUBLIC; + } + ; + break;} +case 225: +#line 2448 "parser.yxx" +{ ; + break;} +case 226: +#line 2452 "parser.yxx" +{ + char *iname; + if (allow) { + init_language(); + DataType::new_scope(); + if ((!CPlusPlus) && (strcmp(yyvsp[-1].id,"class") == 0)) + fprintf(stderr,"%s : Line %d. *** WARNING ***. C++ mode is disabled (enable using -c++)\n", input_file, line_number); + + iname = make_name(""); + doc_entry = new DocClass(iname,doc_parent()); + if (strlen(iname)) + cplus_open_class("", iname, yyvsp[-1].id); + else + cplus_open_class("",0,yyvsp[-1].id); + if (strcmp(yyvsp[-1].id,"class") == 0) + cplus_mode = CPLUS_PRIVATE; + else + cplus_mode = CPLUS_PUBLIC; + doc_stack_top++; + doc_stack[doc_stack_top] = doc_entry; + scanner_clear_start(); + nested_list = 0; + } + ; + break;} +case 227: +#line 2475 "parser.yxx" +{ + if (allow) { + if (yyvsp[0].decl.is_pointer > 0) { + fprintf(stderr,"%s : Line %d. typedef %s {} *%s not supported correctly. Will be ignored.\n", input_file, line_number, yyvsp[-5].id, yyvsp[0].decl.id); + cplus_abort(); + } else { + sprintf(temp_name,"CPP_CLASS:%s\n",yyvsp[0].decl.id); + if (add_symbol(temp_name, (DataType *) 0, (char *) 0)) { + fprintf(stderr,"%s : Line %d. Error. %s %s is multiply defined.\n", input_file, line_number, yyvsp[-5].id, yyvsp[0].decl.id); + FatalError(); + } + } + // Create a datatype for correctly processing the typedef + Active_typedef = new DataType(); + Active_typedef->type = T_USER; + sprintf(Active_typedef->name,"%s",yyvsp[0].decl.id); + Active_typedef->is_pointer = 0; + Active_typedef->implicit_ptr = 0; + + // Dump nested classes + if (yyvsp[0].decl.is_pointer == 0) + dump_nested(yyvsp[0].decl.id); + + // Go back to previous scope + + cplus_register_scope(DataType::collapse_scope((char *) 0)); + + doc_entry = doc_stack[doc_stack_top]; + // Change name of doc_entry + doc_entry->name = copy_string(yyvsp[0].decl.id); + if (yyvsp[0].decl.is_pointer == 0) + cplus_class_close(yyvsp[0].decl.id); + doc_entry = 0; + doc_stack_top--; + cplus_mode = CPLUS_PUBLIC; + } + ; + break;} +case 228: +#line 2511 "parser.yxx" +{ ; + break;} +case 229: +#line 2516 "parser.yxx" +{ + char *iname; + if (allow) { + init_language(); + iname = make_name(yyvsp[-1].id); + lang->cpp_class_decl(yyvsp[-1].id,iname,yyvsp[-2].id); + } + ; + break;} +case 230: +#line 2527 "parser.yxx" +{ + if (allow) { + init_language(); + if (!CPlusPlus) + fprintf(stderr,"%s : Line %d. *** WARNING ***. C++ mode is disabled (enable using -c++)\n", input_file, line_number); + + yyvsp[-7].type->is_pointer += yyvsp[-6].decl.is_pointer; + yyvsp[-7].type->is_reference = yyvsp[-6].decl.is_reference; + // Fix up the function name + sprintf(temp_name,"%s::%s",yyvsp[-6].decl.id,yyvsp[-4].id); + if (!Rename_true) { + Rename_true = 1; + sprintf(yy_rename,"%s_%s",yyvsp[-6].decl.id,yyvsp[-4].id); + } + create_function(yyvsp[-8].ivalue, temp_name, yyvsp[-7].type, yyvsp[-2].pl); + } + delete yyvsp[-7].type; + delete yyvsp[-2].pl; + ; + break;} +case 231: +#line 2548 "parser.yxx" +{ + if (allow) { + init_language(); + if (!CPlusPlus) + fprintf(stderr,"%s : Line %d. *** WARNING ***. C++ mode is disabled (enable using -c++)\n", input_file, line_number); + + yyvsp[-4].type->is_pointer += yyvsp[-3].decl.is_pointer; + // Fix up the function name + sprintf(temp_name,"%s::%s",yyvsp[-3].decl.id,yyvsp[-1].id); + if (!Rename_true) { + Rename_true = 1; + sprintf(yy_rename,"%s_%s",yyvsp[-3].decl.id,yyvsp[-1].id); + } + create_variable(yyvsp[-5].ivalue,temp_name, yyvsp[-4].type); + } + delete yyvsp[-4].type; + ; + break;} +case 232: +#line 2568 "parser.yxx" +{ + fprintf(stderr,"%s : Line %d. Operator overloading not supported (ignored).\n", input_file, line_number); + skip_decl(); + delete yyvsp[-3].type; + ; + break;} +case 233: +#line 2576 "parser.yxx" +{ + fprintf(stderr,"%s : Line %d. Templates not currently supported (ignored).\n", + input_file, line_number); + skip_decl(); + ; + break;} +case 234: +#line 2584 "parser.yxx" +{ + cplus_mode = CPLUS_PUBLIC; + doc_entry = cplus_set_class(yyvsp[-1].id); + if (!doc_entry) { + doc_entry = new DocClass(yyvsp[-1].id,doc_parent()); + }; + doc_stack_top++; + doc_stack[doc_stack_top] = doc_entry; + scanner_clear_start(); + AddMethods = 1; + ; + break;} +case 235: +#line 2594 "parser.yxx" +{ + cplus_unset_class(); + doc_entry = 0; + doc_stack_top--; + AddMethods = 0; + ; + break;} +case 236: +#line 2602 "parser.yxx" +{ ; + break;} +case 237: +#line 2603 "parser.yxx" +{ ; + break;} +case 238: +#line 2604 "parser.yxx" +{ ; + break;} +case 239: +#line 2607 "parser.yxx" +{; + break;} +case 240: +#line 2608 "parser.yxx" +{ + AddMethods = 1; + ; + break;} +case 241: +#line 2610 "parser.yxx" +{ + AddMethods = 0; + ; + break;} +case 242: +#line 2612 "parser.yxx" +{ ; + break;} +case 243: +#line 2613 "parser.yxx" +{ + skip_decl(); + { + static int last_error_line = -1; + if (last_error_line != line_number) { + fprintf(stderr,"%s : Line %d. Syntax error in input.\n", input_file, line_number); + FatalError(); + last_error_line = line_number; + } + } + ; + break;} +case 244: +#line 2623 "parser.yxx" +{ ; + break;} +case 245: +#line 2624 "parser.yxx" +{ ; + break;} +case 246: +#line 2627 "parser.yxx" +{ + char *iname; + if (allow) { + init_language(); + if (cplus_mode == CPLUS_PUBLIC) { + Stat_func++; + yyvsp[-5].type->is_pointer += yyvsp[-4].decl.is_pointer; + yyvsp[-5].type->is_reference = yyvsp[-4].decl.is_reference; + if (Verbose) { + fprintf(stderr,"Wrapping member function : %s\n",yyvsp[-4].decl.id); + } + iname = make_name(yyvsp[-4].decl.id); + doc_entry = new DocDecl(iname,doc_stack[doc_stack_top]); + if (iname == yyvsp[-4].decl.id) iname = 0; + cplus_member_func(yyvsp[-4].decl.id, iname, yyvsp[-5].type,yyvsp[-2].pl,0); + } + scanner_clear_start(); + } + delete yyvsp[-5].type; + delete yyvsp[-2].pl; + ; + break;} +case 247: +#line 2651 "parser.yxx" +{ + char *iname; + if (allow) { + init_language(); + if (cplus_mode == CPLUS_PUBLIC) { + Stat_func++; + yyvsp[-5].type->is_pointer += yyvsp[-4].decl.is_pointer; + yyvsp[-5].type->is_reference = yyvsp[-4].decl.is_reference; + if (Verbose) { + fprintf(stderr,"Wrapping virtual member function : %s\n",yyvsp[-4].decl.id); + } + iname = make_name(yyvsp[-4].decl.id); + doc_entry = new DocDecl(iname,doc_stack[doc_stack_top]); + if (iname == yyvsp[-4].decl.id) iname = 0; + cplus_member_func(yyvsp[-4].decl.id,iname,yyvsp[-5].type,yyvsp[-2].pl,1); + } + scanner_clear_start(); + } + delete yyvsp[-5].type; + delete yyvsp[-2].pl; + ; + break;} +case 248: +#line 2674 "parser.yxx" +{ + char *iname; + if (allow) { + init_language(); + if (cplus_mode == CPLUS_PUBLIC) { + Stat_func++; + if (Verbose) { + fprintf(stderr,"Wrapping C++ constructor %s\n", yyvsp[-4].id); + } + iname = make_name(yyvsp[-4].id); + doc_entry = new DocDecl(iname,doc_stack[doc_stack_top]); + if (iname == yyvsp[-4].id) iname = 0; + cplus_constructor(yyvsp[-4].id,iname, yyvsp[-2].pl); + } + scanner_clear_start(); + } + delete yyvsp[-2].pl; + ; + break;} +case 249: +#line 2695 "parser.yxx" +{ + char *iname; + if (allow) { + init_language(); + if (cplus_mode == CPLUS_PUBLIC) { + Stat_func++; + if (Verbose) { + fprintf(stderr,"Wrapping C++ destructor %s\n", yyvsp[-4].id); + } + iname = make_name(yyvsp[-4].id); + doc_entry = new DocDecl(iname,doc_stack[doc_stack_top]); + if (iname == yyvsp[-4].id) iname = 0; + cplus_destructor(yyvsp[-4].id,iname); + } + } + scanner_clear_start(); + ; + break;} +case 250: +#line 2715 "parser.yxx" +{ + char *iname; + if (allow) { + init_language(); + if (cplus_mode == CPLUS_PUBLIC) { + Stat_func++; + if (Verbose) { + fprintf(stderr,"Wrapping C++ destructor %s\n", yyvsp[-3].id); + } + iname = make_name(yyvsp[-3].id); + doc_entry = new DocDecl(iname,doc_stack[doc_stack_top]); + if (iname == yyvsp[-3].id) iname = 0; + cplus_destructor(yyvsp[-3].id,iname); + } + } + scanner_clear_start(); + ; + break;} +case 251: +#line 2735 "parser.yxx" +{ + if (allow) { + char *iname; + init_language(); + if (cplus_mode == CPLUS_PUBLIC) { + if (Active_type) delete Active_type; + Active_type = new DataType(yyvsp[-2].type); + yyvsp[-2].type->is_pointer += yyvsp[-1].decl.is_pointer; + yyvsp[-2].type->is_reference = yyvsp[-1].decl.is_reference; + if (yyvsp[-2].type->qualifier) { + if ((strcmp(yyvsp[-2].type->qualifier,"const") == 0) && (yyvsp[-2].type->is_pointer == 0)) { + // Okay. This is really some sort of C++ constant here. + if (yyvsp[0].dtype.type != T_ERROR) { + iname = make_name(yyvsp[-1].decl.id); + doc_entry = new DocDecl(iname,doc_stack[doc_stack_top]); + if (iname == yyvsp[-1].decl.id) iname = 0; + cplus_declare_const(yyvsp[-1].decl.id,iname, yyvsp[-2].type, yyvsp[0].dtype.id); + } + } else { + int oldstatus = Status; + char *tm; + if (yyvsp[-2].type->status & STAT_READONLY) { + if (!(tm = typemap_lookup("memberin",typemap_lang,yyvsp[-2].type,yyvsp[-1].decl.id,"",""))) + Status = Status | STAT_READONLY; + } + iname = make_name(yyvsp[-1].decl.id); + doc_entry = new DocDecl(iname,doc_stack[doc_stack_top]); + if (iname == yyvsp[-1].decl.id) iname = 0; + cplus_variable(yyvsp[-1].decl.id,iname,yyvsp[-2].type); + Status = oldstatus; + } + } else { + char *tm = 0; + int oldstatus = Status; + if (yyvsp[-2].type->status & STAT_READONLY) { + if (!(tm = typemap_lookup("memberin",typemap_lang,yyvsp[-2].type,yyvsp[-1].decl.id,"",""))) + Status = Status | STAT_READONLY; + } + iname = make_name(yyvsp[-1].decl.id); + doc_entry = new DocDecl(iname,doc_stack[doc_stack_top]); + if (iname == yyvsp[-1].decl.id) iname = 0; + cplus_variable(yyvsp[-1].decl.id,iname,yyvsp[-2].type); + Status = oldstatus; + if (Verbose) { + fprintf(stderr,"Wrapping member data %s\n", yyvsp[-1].decl.id); + } + } + } + scanner_clear_start(); + } + delete yyvsp[-2].type; + ; + break;} +case 252: +#line 2786 "parser.yxx" +{ ; + break;} +case 253: +#line 2788 "parser.yxx" +{ + char *iname; + if (allow) { + int oldstatus = Status; + char *tm = 0; + init_language(); + if (cplus_mode == CPLUS_PUBLIC) { + if (Active_type) delete Active_type; + Active_type = new DataType(yyvsp[-3].type); + yyvsp[-3].type->is_pointer += yyvsp[-2].decl.is_pointer + 1; + yyvsp[-3].type->is_reference = yyvsp[-2].decl.is_reference; + yyvsp[-3].type->arraystr = copy_string(ArrayString); + if (!(tm = typemap_lookup("memberin",typemap_lang,yyvsp[-3].type,yyvsp[-2].decl.id,"",""))) + Status = STAT_READONLY; + + iname = make_name(yyvsp[-2].decl.id); + doc_entry = new DocDecl(iname, doc_stack[doc_stack_top]); + if (iname == yyvsp[-2].decl.id) iname = 0; + cplus_variable(yyvsp[-2].decl.id,iname,yyvsp[-3].type); + Status = oldstatus; + if (!tm) + fprintf(stderr,"%s : Line %d. Warning. Array member will be read-only.\n",input_file,line_number); + } + scanner_clear_start(); + } + delete yyvsp[-3].type; + ; + break;} +case 254: +#line 2819 "parser.yxx" +{ + char *iname; + if (allow) { + init_language(); + if (cplus_mode == CPLUS_PUBLIC) { + yyvsp[-1].type->is_pointer += yyvsp[0].decl.is_pointer; + iname = make_name(yyvsp[0].decl.id); + doc_entry = new DocDecl(iname,doc_stack[doc_stack_top]); + if (iname == yyvsp[0].decl.id) iname = 0; + cplus_static_var(yyvsp[0].decl.id,iname,yyvsp[-1].type); + if (Active_type) delete Active_type; + Active_type = new DataType(yyvsp[-1].type); + if (Verbose) { + fprintf(stderr,"Wrapping static member data %s\n", yyvsp[0].decl.id); + } + } + scanner_clear_start(); + } + delete yyvsp[-1].type; + ; + break;} +case 255: +#line 2838 "parser.yxx" +{ ; + break;} +case 256: +#line 2842 "parser.yxx" +{ + char *iname; + if (allow) { + yyvsp[-5].type->is_pointer += yyvsp[-4].decl.is_pointer; + yyvsp[-5].type->is_reference = yyvsp[-4].decl.is_reference; + if (cplus_mode == CPLUS_PUBLIC) { + iname = make_name(yyvsp[-4].decl.id); + doc_entry = new DocDecl(iname,doc_stack[doc_stack_top]); + if (iname == yyvsp[-4].decl.id) iname = 0; + cplus_static_func(yyvsp[-4].decl.id, iname, yyvsp[-5].type, yyvsp[-2].pl); + if (Verbose) + fprintf(stderr,"Wrapping static member function %s\n",yyvsp[-4].decl.id); + } + scanner_clear_start(); + } + delete yyvsp[-5].type; + delete yyvsp[-2].pl; + ; + break;} +case 257: +#line 2862 "parser.yxx" +{ + if (allow) { + cplus_mode = CPLUS_PUBLIC; + if (Verbose) + fprintf(stderr,"Public mode\n"); + scanner_clear_start(); + } + ; + break;} +case 258: +#line 2873 "parser.yxx" +{ + if (allow) { + cplus_mode = CPLUS_PRIVATE; + if (Verbose) + fprintf(stderr,"Private mode\n"); + scanner_clear_start(); + } + ; + break;} +case 259: +#line 2884 "parser.yxx" +{ + if (allow) { + cplus_mode = CPLUS_PROTECTED; + if (Verbose) + fprintf(stderr,"Protected mode\n"); + scanner_clear_start(); + } + ; + break;} +case 260: +#line 2895 "parser.yxx" +{ + if (allow) { + strcpy(yy_rename,yyvsp[-1].id); + Rename_true = 1; + } + ; + break;} +case 261: +#line 2903 "parser.yxx" +{ + NewObject = 1; + ; + break;} +case 262: +#line 2905 "parser.yxx" +{ + NewObject = 0; + ; + break;} +case 263: +#line 2910 "parser.yxx" +{scanner_clear_start();; + break;} +case 264: +#line 2910 "parser.yxx" +{ + + // if ename was supplied. Install it as a new integer datatype. + + if (allow) { + init_language(); + if (cplus_mode == CPLUS_PUBLIC) { + if (yyvsp[-5].id) { + cplus_register_type(yyvsp[-5].id); + temp_type.type = T_INT; + temp_type.is_pointer = 0; + temp_type.implicit_ptr = 0; + sprintf(temp_type.name,"int"); + temp_type.typedef_add(yyvsp[-5].id,1); + } + } + } + ; + break;} +case 265: +#line 2928 "parser.yxx" +{ + if (allow) + Status = Status | STAT_READONLY; + scanner_clear_start(); + ; + break;} +case 266: +#line 2933 "parser.yxx" +{ + if (allow) + Status = Status & ~(STAT_READONLY); + scanner_clear_start(); + ; + break;} +case 267: +#line 2939 "parser.yxx" +{ + if (allow) + fprintf(stderr,"%s : Line %d. Friends are not allowed--members only! (ignored)\n", input_file, line_number); + skip_decl(); + scanner_clear_start(); + ; + break;} +case 268: +#line 2947 "parser.yxx" +{ + if (allow) + fprintf(stderr,"%s : Line %d. Operator overloading not supported (ignored).\n", input_file, line_number); + skip_decl(); + scanner_clear_start(); + ; + break;} +case 269: +#line 2955 "parser.yxx" +{ ; + break;} +case 270: +#line 2959 "parser.yxx" +{ + scanner_clear_start(); + ; + break;} +case 271: +#line 2964 "parser.yxx" +{ + if (allow && (!WrapExtern)) { } + ; + break;} +case 272: +#line 2967 "parser.yxx" +{ + if (allow && (!WrapExtern)) + cplus_add_pragma(yyvsp[-3].id,yyvsp[-1].id,yyvsp[0].id); + ; + break;} +case 273: +#line 2990 "parser.yxx" +{ start_line = line_number; skip_brace(); + ; + break;} +case 274: +#line 2991 "parser.yxx" +{ + + if (cplus_mode == CPLUS_PUBLIC) { + cplus_register_type(yyvsp[-4].id); + if (yyvsp[-1].decl.id) { + if (strcmp(yyvsp[-5].id,"class") == 0) { + fprintf(stderr,"%s : Line %d. Warning. Nested classes not currently supported (ignored).\n", input_file, line_number); + /* Generate some code for a new class */ + } else { + Nested *n = new Nested; + n->code << "typedef " << yyvsp[-5].id << " " + << CCode.get() << " $classname_" << yyvsp[-1].decl.id << ";\n"; + n->name = copy_string(yyvsp[-1].decl.id); + n->line = start_line; + n->type = new DataType; + n->type->type = T_USER; + n->type->is_pointer = yyvsp[-1].decl.is_pointer; + n->type->is_reference = yyvsp[-1].decl.is_reference; + n->next = 0; + add_nested(n); + } + } + } + ; + break;} +case 275: +#line 3016 "parser.yxx" +{ start_line = line_number; skip_brace(); + ; + break;} +case 276: +#line 3017 "parser.yxx" +{ + if (cplus_mode == CPLUS_PUBLIC) { + if (strcmp(yyvsp[-4].id,"class") == 0) { + fprintf(stderr,"%s : Line %d. Warning. Nested classes not currently supported (ignored)\n", input_file, line_number); + /* Generate some code for a new class */ + } else { + /* Generate some code for a new class */ + + Nested *n = new Nested; + n->code << "typedef " << yyvsp[-4].id << " " + << CCode.get() << " $classname_" << yyvsp[-1].decl.id << ";\n"; + n->name = copy_string(yyvsp[-1].decl.id); + n->line = start_line; + n->type = new DataType; + n->type->type = T_USER; + n->type->is_pointer = yyvsp[-1].decl.is_pointer; + n->type->is_reference = yyvsp[-1].decl.is_reference; + n->next = 0; + add_nested(n); + + } + } + ; + break;} +case 277: +#line 3041 "parser.yxx" +{ + if (cplus_mode == CPLUS_PUBLIC) { + cplus_register_type(yyvsp[-1].id); + } + ; + break;} +case 278: +#line 3048 "parser.yxx" +{ + skip_decl(); + fprintf(stderr,"%s : Line %d. Function pointers not currently supported (ignored).\n", input_file, line_number); + + ; + break;} +case 279: +#line 3053 "parser.yxx" +{ + skip_decl(); + fprintf(stderr,"%s : Line %d. Function pointers not currently supported (ignored).\n", input_file, line_number); + + ; + break;} +case 280: +#line 3058 "parser.yxx" +{ + skip_decl(); + fprintf(stderr,"%s : Line %d. Function pointers not currently supported (ignored).\n", input_file, line_number); + + ; + break;} +case 281: +#line 3063 "parser.yxx" +{ ; + break;} +case 282: +#line 3064 "parser.yxx" +{ ; + break;} +case 283: +#line 3067 "parser.yxx" +{ yyval.decl = yyvsp[0].decl;; + break;} +case 284: +#line 3068 "parser.yxx" +{ yyval.decl.id = 0; ; + break;} +case 285: +#line 3071 "parser.yxx" +{; + break;} +case 286: +#line 3072 "parser.yxx" +{; + break;} +case 287: +#line 3073 "parser.yxx" +{; + break;} +case 288: +#line 3076 "parser.yxx" +{ ; + break;} +case 289: +#line 3077 "parser.yxx" +{ + if (allow) { + int oldstatus = Status; + char *tm; + + init_language(); + if (cplus_mode == CPLUS_PUBLIC) { + temp_typeptr = new DataType(Active_type); + temp_typeptr->is_pointer += yyvsp[-1].decl.is_pointer; + if (Verbose) { + fprintf(stderr,"Wrapping member variable : %s\n",yyvsp[-1].decl.id); + } + Stat_var++; + doc_entry = new DocDecl(yyvsp[-1].decl.id,doc_stack[doc_stack_top]); + if (temp_typeptr->status & STAT_READONLY) { + if (!(tm = typemap_lookup("memberin",typemap_lang,temp_typeptr,yyvsp[-1].decl.id,"",""))) + Status = Status | STAT_READONLY; + } + cplus_variable(yyvsp[-1].decl.id,(char *) 0,temp_typeptr); + Status = oldstatus; + delete temp_typeptr; + } + scanner_clear_start(); + } + ; + break;} +case 290: +#line 3101 "parser.yxx" +{ ; + break;} +case 291: +#line 3102 "parser.yxx" +{ + if (allow) { + int oldstatus = Status; + char *tm; + + init_language(); + if (cplus_mode == CPLUS_PUBLIC) { + temp_typeptr = new DataType(Active_type); + temp_typeptr->is_pointer += yyvsp[-2].decl.is_pointer; + if (Verbose) { + fprintf(stderr,"Wrapping member variable : %s\n",yyvsp[-2].decl.id); + } + Stat_var++; + if (!(tm = typemap_lookup("memberin",typemap_lang,temp_typeptr,yyvsp[-2].decl.id,"",""))) + Status = Status | STAT_READONLY; + doc_entry = new DocDecl(yyvsp[-2].decl.id,doc_stack[doc_stack_top]); + if (temp_typeptr->status & STAT_READONLY) Status = Status | STAT_READONLY; + cplus_variable(yyvsp[-2].decl.id,(char *) 0,temp_typeptr); + Status = oldstatus; + if (!tm) + fprintf(stderr,"%s : Line %d. Warning. Array member will be read-only.\n",input_file,line_number); + delete temp_typeptr; + } + scanner_clear_start(); + } + ; + break;} +case 292: +#line 3127 "parser.yxx" +{ ; + break;} +case 293: +#line 3130 "parser.yxx" +{ + CCode = ""; + ; + break;} +case 294: +#line 3133 "parser.yxx" +{ skip_brace(); ; + break;} +case 295: +#line 3136 "parser.yxx" +{ CCode = ""; ; + break;} +case 296: +#line 3137 "parser.yxx" +{ CCode = ""; ; + break;} +case 297: +#line 3138 "parser.yxx" +{ skip_brace(); ; + break;} +case 298: +#line 3141 "parser.yxx" +{; + break;} +case 299: +#line 3142 "parser.yxx" +{; + break;} +case 300: +#line 3145 "parser.yxx" +{ + if (allow) { + if (cplus_mode == CPLUS_PUBLIC) { + if (Verbose) { + fprintf(stderr,"Creating enum value %s\n", yyvsp[0].id); + } + Stat_const++; + temp_typeptr = new DataType(T_INT); + doc_entry = new DocDecl(yyvsp[0].id,doc_stack[doc_stack_top]); + cplus_declare_const(yyvsp[0].id, (char *) 0, temp_typeptr, (char *) 0); + delete temp_typeptr; + scanner_clear_start(); + } + } + ; + break;} +case 301: +#line 3160 "parser.yxx" +{ + if (allow) { + if (cplus_mode == CPLUS_PUBLIC) { + if (Verbose) { + fprintf(stderr, "Creating enum value %s = %s\n", yyvsp[-2].id, yyvsp[0].dtype.id); + } + Stat_const++; + temp_typeptr = new DataType(T_INT); + doc_entry = new DocDecl(yyvsp[-2].id,doc_stack[doc_stack_top]); + cplus_declare_const(yyvsp[-2].id,(char *) 0, temp_typeptr,(char *) 0); +// OLD : Bug with value cplus_declare_const($1,(char *) 0, temp_typeptr,$3.id); + delete temp_typeptr; + scanner_clear_start(); + } + } + ; + break;} +case 302: +#line 3176 "parser.yxx" +{ + if (allow) { + if (cplus_mode == CPLUS_PUBLIC) { + if (Verbose) { + fprintf(stderr,"Creating enum value %s\n", yyvsp[0].id); + } + Stat_const++; + temp_typeptr = new DataType(T_INT); + doc_entry = new DocDecl(yyvsp[-2].id,doc_stack[doc_stack_top]); + cplus_declare_const(yyvsp[0].id, yyvsp[-2].id, temp_typeptr, (char *) 0); + delete temp_typeptr; + scanner_clear_start(); + } + } + ; + break;} +case 303: +#line 3191 "parser.yxx" +{ + if (cplus_mode == CPLUS_PUBLIC) { + if (Verbose) { + fprintf(stderr, "Creating enum value %s = %s\n", yyvsp[-2].id, yyvsp[0].dtype.id); + } + Stat_const++; + temp_typeptr = new DataType(T_INT); + doc_entry = new DocDecl(yyvsp[-4].id,doc_stack[doc_stack_top]); + cplus_declare_const(yyvsp[-2].id,yyvsp[-4].id, temp_typeptr, (char *) 0); +// Old : bug with value cplus_declare_const($5,$3, temp_typeptr,$7.id); + delete temp_typeptr; + scanner_clear_start(); + } + ; + break;} +case 304: +#line 3205 "parser.yxx" +{ ; + break;} +case 305: +#line 3208 "parser.yxx" +{ + yyval.ilist = yyvsp[0].ilist; + ; + break;} +case 306: +#line 3211 "parser.yxx" +{ + yyval.ilist.names = (char **) 0; + yyval.ilist.count = 0; + ; + break;} +case 307: +#line 3217 "parser.yxx" +{ + int i; + yyval.ilist.names = new char *[NI_NAMES]; + yyval.ilist.count = 0; + for (i = 0; i < NI_NAMES; i++){ + yyval.ilist.names[i] = (char *) 0; + } + if (yyvsp[0].id) { + yyval.ilist.names[yyval.ilist.count] = copy_string(yyvsp[0].id); + yyval.ilist.count++; + } + ; + break;} +case 308: +#line 3230 "parser.yxx" +{ + yyval.ilist = yyvsp[-2].ilist; + if (yyvsp[0].id) { + yyval.ilist.names[yyval.ilist.count] = copy_string(yyvsp[0].id); + yyval.ilist.count++; + } + ; + break;} +case 309: +#line 3239 "parser.yxx" +{ + fprintf(stderr,"%s : Line %d. No access specifier given for base class %s (ignored).\n", + input_file,line_number,yyvsp[0].id); + yyval.id = (char *) 0; + ; + break;} +case 310: +#line 3244 "parser.yxx" +{ + fprintf(stderr,"%s : Line %d. No access specifier given for base class %s (ignored).\n", + input_file,line_number,yyvsp[0].id); + yyval.id = (char *) 0; + ; + break;} +case 311: +#line 3249 "parser.yxx" +{ + if (strcmp(yyvsp[-1].id,"public") == 0) { + yyval.id = yyvsp[0].id; + } else { + fprintf(stderr,"%s : Line %d. %s inheritance not supported (ignored).\n", + input_file,line_number,yyvsp[-1].id); + yyval.id = (char *) 0; + } + ; + break;} +case 312: +#line 3258 "parser.yxx" +{ + if (strcmp(yyvsp[-1].id,"public") == 0) { + yyval.id = yyvsp[0].id; + } else { + fprintf(stderr,"%s : Line %d. %s inheritance not supported (ignored).\n", + input_file,line_number,yyvsp[-1].id); + yyval.id = (char *) 0; + } + ; + break;} +case 313: +#line 3267 "parser.yxx" +{ + if (strcmp(yyvsp[-2].id,"public") == 0) { + yyval.id = yyvsp[0].id; + } else { + fprintf(stderr,"%s : Line %d. %s inheritance not supported (ignored).\n", + input_file,line_number,yyvsp[-2].id); + yyval.id = (char *) 0; + } + ; + break;} +case 314: +#line 3278 "parser.yxx" +{ yyval.id = "public"; ; + break;} +case 315: +#line 3279 "parser.yxx" +{ yyval.id = "private"; ; + break;} +case 316: +#line 3280 "parser.yxx" +{ yyval.id = "protected"; ; + break;} +case 317: +#line 3284 "parser.yxx" +{ yyval.id = "class"; ; + break;} +case 318: +#line 3285 "parser.yxx" +{ yyval.id = "struct"; ; + break;} +case 319: +#line 3286 "parser.yxx" +{yyval.id = "union"; ; + break;} +case 320: +#line 3289 "parser.yxx" +{; + break;} +case 321: +#line 3290 "parser.yxx" +{ delete yyvsp[-1].pl;; + break;} +case 322: +#line 3291 "parser.yxx" +{; + break;} +case 323: +#line 3296 "parser.yxx" +{ + CCode = ""; + ; + break;} +case 324: +#line 3299 "parser.yxx" +{ skip_brace(); ; + break;} +case 325: +#line 3302 "parser.yxx" +{; + break;} +case 326: +#line 3303 "parser.yxx" +{; + break;} +case 327: +#line 3306 "parser.yxx" +{ ; + break;} +case 328: +#line 3307 "parser.yxx" +{ ; + break;} +case 329: +#line 3310 "parser.yxx" +{ ; + break;} +case 330: +#line 3311 "parser.yxx" +{ ; + break;} +case 331: +#line 3314 "parser.yxx" +{ ; + break;} +case 332: +#line 3315 "parser.yxx" +{ ; + break;} +case 333: +#line 3323 "parser.yxx" +{ + ObjCClass = 1; + init_language(); + cplus_mode = CPLUS_PROTECTED; + sprintf(temp_name,"CPP_CLASS:%s\n",yyvsp[-1].id); + if (add_symbol(temp_name,(DataType *) 0, (char *) 0)) { + fprintf(stderr,"%s : Line %d. @interface %s is multiple defined.\n", + input_file,line_number,yyvsp[-1].id); + FatalError(); + } + // Create a new documentation entry + doc_entry = new DocClass(yyvsp[-1].id,doc_parent()); + doc_stack_top++; + doc_stack[doc_stack_top] = doc_entry; + scanner_clear_start(); + cplus_open_class(yyvsp[-1].id, (char *) 0, ""); // Open up a new C++ class + ; + break;} +case 334: +#line 3339 "parser.yxx" +{ + if (yyvsp[-6].id) { + char *inames[1]; + inames[0] = yyvsp[-6].id; + cplus_inherit(1,inames); + } + // Restore original doc entry for this class + doc_entry = doc_stack[doc_stack_top]; + cplus_class_close(yyvsp[-7].id); + doc_entry = 0; + doc_stack_top--; + cplus_mode = CPLUS_PUBLIC; + ObjCClass = 0; + delete yyvsp[-7].id; + delete yyvsp[-6].id; + ; + break;} +case 335: +#line 3356 "parser.yxx" +{ + ObjCClass = 1; + init_language(); + cplus_mode = CPLUS_PROTECTED; + doc_entry = cplus_set_class(yyvsp[-4].id); + if (!doc_entry) { + doc_entry = new DocClass(yyvsp[-4].id,doc_parent()); + } + doc_stack_top++; + doc_stack[doc_stack_top] = doc_entry; + scanner_clear_start(); + ; + break;} +case 336: +#line 3367 "parser.yxx" +{ + cplus_unset_class(); + doc_entry = 0; + doc_stack_top--; + ; + break;} +case 337: +#line 3372 "parser.yxx" +{ skip_to_end(); ; + break;} +case 338: +#line 3373 "parser.yxx" +{ skip_to_end(); ; + break;} +case 339: +#line 3374 "parser.yxx" +{ + char *iname = make_name(yyvsp[-2].id); + init_language(); + lang->cpp_class_decl(yyvsp[-2].id,iname,""); + for (int i = 0; i cpp_class_decl(yyvsp[-1].ilist.names[i],iname,""); + delete [] yyvsp[-1].ilist.names[i]; + } + } + delete [] yyvsp[-1].ilist.names; + ; + break;} +case 340: +#line 3389 "parser.yxx" +{ yyval.id = yyvsp[-1].id;; + break;} +case 341: +#line 3390 "parser.yxx" +{ yyval.id = 0; ; + break;} +case 342: +#line 3394 "parser.yxx" +{ skip_template(); + CCode.strip(); // Strip whitespace + CCode.replace("<","< "); + CCode.replace(">"," >"); + yyval.id = CCode.get(); + ; + break;} +case 343: +#line 3400 "parser.yxx" +{ + yyval.id = ""; + ; + break;} +case 344: +#line 3405 "parser.yxx" +{ ; + break;} +case 345: +#line 3406 "parser.yxx" +{ + cplus_mode = CPLUS_PUBLIC; + ; + break;} +case 346: +#line 3408 "parser.yxx" +{ ; + break;} +case 347: +#line 3409 "parser.yxx" +{ + cplus_mode = CPLUS_PRIVATE; + ; + break;} +case 348: +#line 3411 "parser.yxx" +{ ; + break;} +case 349: +#line 3412 "parser.yxx" +{ + cplus_mode = CPLUS_PROTECTED; + ; + break;} +case 350: +#line 3414 "parser.yxx" +{ ; + break;} +case 351: +#line 3415 "parser.yxx" +{ + if (!Error) { + skip_decl(); + { + static int last_error_line = -1; + if (last_error_line != line_number) { + fprintf(stderr,"%s : Line %d. Syntax error in input.\n", input_file, line_number); + FatalError(); + last_error_line = line_number; + } + Error = 1; + } + } + ; + break;} +case 352: +#line 3428 "parser.yxx" +{ ; + break;} +case 353: +#line 3429 "parser.yxx" +{ ; + break;} +case 354: +#line 3432 "parser.yxx" +{ + + ; + break;} +case 355: +#line 3439 "parser.yxx" +{ + if (cplus_mode == CPLUS_PUBLIC) { + int oldstatus = Status; + char *tm; + char *iname; + if (Active_type) delete Active_type; + Active_type = new DataType(yyvsp[-1].type); + yyvsp[-1].type->is_pointer += yyvsp[0].decl.is_pointer; + yyvsp[-1].type->is_reference = yyvsp[0].decl.is_reference; + if (yyvsp[-1].type->status & STAT_READONLY) { + if (!(tm = typemap_lookup("memberin",typemap_lang,yyvsp[-1].type,yyvsp[0].decl.id,"",""))) + Status = Status | STAT_READONLY; + } + iname = make_name(yyvsp[0].decl.id); + doc_entry = new DocDecl(iname,doc_stack[doc_stack_top]); + if (iname == yyvsp[0].decl.id) iname = 0; + cplus_variable(yyvsp[0].decl.id,iname,yyvsp[-1].type); + Status = oldstatus; + } + scanner_clear_start(); + delete yyvsp[-1].type; + ; + break;} +case 356: +#line 3461 "parser.yxx" +{ + if (cplus_mode == CPLUS_PUBLIC) { + int oldstatus = Status; + char *tm, *iname; + if (Active_type) delete Active_type; + Active_type = new DataType(yyvsp[-2].type); + yyvsp[-2].type->is_pointer += yyvsp[-1].decl.is_pointer; + yyvsp[-2].type->is_reference = yyvsp[-1].decl.is_reference; + yyvsp[-2].type->arraystr = copy_string(ArrayString); + if (yyvsp[-2].type->status & STAT_READONLY) { + if (!(tm = typemap_lookup("memberin",typemap_lang,yyvsp[-2].type,yyvsp[-1].decl.id,"",""))) + Status = Status | STAT_READONLY; + } + iname = make_name(yyvsp[-1].decl.id); + doc_entry = new DocDecl(iname,doc_stack[doc_stack_top]); + if (iname == yyvsp[-1].decl.id) iname = 0; + cplus_variable(yyvsp[-1].decl.id,iname,yyvsp[-2].type); + Status = oldstatus; + } + scanner_clear_start(); + delete yyvsp[-2].type; + ; + break;} +case 357: +#line 3483 "parser.yxx" +{ + strcpy(yy_rename,yyvsp[-1].id); + Rename_true = 1; + ; + break;} +case 358: +#line 3486 "parser.yxx" +{ ; + break;} +case 359: +#line 3488 "parser.yxx" +{ + if (cplus_mode == CPLUS_PUBLIC) { + int oldstatus = Status; + char *tm, *iname; + DataType *t = new DataType (Active_type); + t->is_pointer += yyvsp[-1].decl.is_pointer; + t->is_reference = yyvsp[-1].decl.is_reference; + if (t->status & STAT_READONLY) { + if (!(tm = typemap_lookup("memberin",typemap_lang,t,yyvsp[-1].decl.id,"",""))) + Status = Status | STAT_READONLY; + } + iname = make_name(yyvsp[-1].decl.id); + doc_entry = new DocDecl(iname,doc_stack[doc_stack_top]); + if (iname == yyvsp[-1].decl.id) iname = 0; + cplus_variable(yyvsp[-1].decl.id,iname,t); + Status = oldstatus; + delete t; + } + scanner_clear_start(); + ; + break;} +case 360: +#line 3508 "parser.yxx" +{ + char *iname; + if (cplus_mode == CPLUS_PUBLIC) { + int oldstatus = Status; + char *tm; + DataType *t = new DataType (Active_type); + t->is_pointer += yyvsp[-2].decl.is_pointer; + t->is_reference = yyvsp[-2].decl.is_reference; + t->arraystr = copy_string(ArrayString); + if (t->status & STAT_READONLY) { + if (!(tm = typemap_lookup("memberin",typemap_lang,t,yyvsp[-2].decl.id,"",""))) + Status = Status | STAT_READONLY; + } + iname = make_name(yyvsp[-2].decl.id); + doc_entry = new DocDecl(iname,doc_stack[doc_stack_top]); + if (iname == yyvsp[-2].decl.id) iname = 0; + cplus_variable(yyvsp[-2].decl.id,iname,t); + Status = oldstatus; + delete t; + } + scanner_clear_start(); + ; + break;} +case 361: +#line 3530 "parser.yxx" +{ ; + break;} +case 362: +#line 3533 "parser.yxx" +{ ; + break;} +case 363: +#line 3534 "parser.yxx" +{ + AddMethods = 1; + ; + break;} +case 364: +#line 3536 "parser.yxx" +{ + AddMethods = 0; + ; + break;} +case 365: +#line 3539 "parser.yxx" +{ + strcpy(yy_rename,yyvsp[-1].id); + Rename_true = 1; + ; + break;} +case 366: +#line 3542 "parser.yxx" +{ ; + break;} +case 367: +#line 3543 "parser.yxx" +{ + skip_decl(); + if (!Error) { + { + static int last_error_line = -1; + if (last_error_line != line_number) { + fprintf(stderr,"%s : Line %d. Syntax error in input.\n", input_file, line_number); + FatalError(); + last_error_line = line_number; + } + Error = 1; + } + } + ; + break;} +case 368: +#line 3556 "parser.yxx" +{ ; + break;} +case 369: +#line 3557 "parser.yxx" +{ ; + break;} +case 370: +#line 3560 "parser.yxx" +{ + char *iname; + // An objective-C instance function + // This is like a C++ member function + + if (strcmp(yyvsp[-2].id,objc_destruct) == 0) { + // This is an objective C destructor + doc_entry = new DocDecl(yyvsp[-2].id,doc_stack[doc_stack_top]); + cplus_destructor(yyvsp[-2].id,(char *) 0); + } else { + iname = make_name(yyvsp[-2].id); + doc_entry = new DocDecl(iname,doc_stack[doc_stack_top]); + if (iname == yyvsp[-2].id) iname = 0; + cplus_member_func(yyvsp[-2].id,iname,yyvsp[-3].type,yyvsp[-1].pl,0); + scanner_clear_start(); + delete yyvsp[-3].type; + delete yyvsp[-2].id; + delete yyvsp[-1].pl; + } + ; + break;} +case 371: +#line 3580 "parser.yxx" +{ + char *iname; + // An objective-C class function + // This is like a c++ static member function + if (strcmp(yyvsp[-2].id,objc_construct) == 0) { + // This is an objective C constructor + doc_entry = new DocDecl(yyvsp[-2].id,doc_stack[doc_stack_top]); + cplus_constructor(yyvsp[-2].id,0,yyvsp[-1].pl); + } else { + iname = make_name(yyvsp[-2].id); + doc_entry = new DocDecl(iname,doc_stack[doc_stack_top]); + if (iname == yyvsp[-2].id) iname = 0; + cplus_static_func(yyvsp[-2].id,iname,yyvsp[-3].type,yyvsp[-1].pl); + } + scanner_clear_start(); + delete yyvsp[-3].type; + delete yyvsp[-2].id; + delete yyvsp[-1].pl; + ; + break;} +case 372: +#line 3601 "parser.yxx" +{ CCode = ""; ; + break;} +case 373: +#line 3602 "parser.yxx" +{ skip_brace(); ; + break;} +case 374: +#line 3605 "parser.yxx" +{ + yyval.type = yyvsp[-1].type; + ; + break;} +case 375: +#line 3608 "parser.yxx" +{ + yyval.type = yyvsp[-2].type; + yyval.type->is_pointer += yyvsp[-1].ivalue; + ; + break;} +case 376: +#line 3612 "parser.yxx" +{ /* Empty type means "id" type */ + yyval.type = new DataType(T_VOID); + sprintf(yyval.type->name,"id"); + yyval.type->is_pointer = 1; + yyval.type->implicit_ptr = 1; + ; + break;} +case 377: +#line 3620 "parser.yxx" +{ + yyval.type = new DataType(yyvsp[-1].p->t); + delete yyvsp[-1].p; + ; + break;} +case 378: +#line 3624 "parser.yxx" +{ + yyval.type = new DataType(T_VOID); + sprintf(yyval.type->name,"id"); + yyval.type->is_pointer = 1; + yyval.type->implicit_ptr = 1; + ; + break;} +case 379: +#line 3632 "parser.yxx" +{ + Parm *p= new Parm(yyvsp[-1].type,yyvsp[0].id); + p->objc_separator = yyvsp[-2].id; + yyval.pl = yyvsp[-3].pl; + yyval.pl->append(p); + ; + break;} +case 380: +#line 3638 "parser.yxx" +{ + yyval.pl = new ParmList; + ; + break;} +case 381: +#line 3643 "parser.yxx" +{ yyval.id = copy_string(":"); ; + break;} +case 382: +#line 3644 "parser.yxx" +{ yyval.id = new char[strlen(yyvsp[-1].id)+2]; + strcpy(yyval.id,yyvsp[-1].id); + strcat(yyval.id,":"); + delete yyvsp[-1].id; + ; + break;} +case 383: +#line 3655 "parser.yxx" +{ + yyval.dlist = yyvsp[0].dlist; + yyval.dlist.names[yyval.dlist.count] = copy_string(yyvsp[-2].id); + yyval.dlist.values[yyval.dlist.count] = copy_string(yyvsp[-1].id); + format_string(yyval.dlist.values[yyval.dlist.count]); + yyval.dlist.count++; + ; + break;} +case 384: +#line 3665 "parser.yxx" +{ + yyval.dlist = yyvsp[-3].dlist; + yyval.dlist.names[yyval.dlist.count] = copy_string(yyvsp[-1].id); + yyval.dlist.values[yyval.dlist.count] = copy_string(yyvsp[0].id); + format_string(yyval.dlist.values[yyval.dlist.count]); + yyval.dlist.count++; + ; + break;} +case 385: +#line 3672 "parser.yxx" +{ + yyval.dlist.names = new char *[NI_NAMES]; + yyval.dlist.values = new char *[NI_NAMES]; + yyval.dlist.count = 0; + ; + break;} +case 386: +#line 3679 "parser.yxx" +{ + yyval.id = yyvsp[0].id; + ; + break;} +case 387: +#line 3682 "parser.yxx" +{ + yyval.id = yyvsp[0].id; + ; + break;} +case 388: +#line 3685 "parser.yxx" +{ + yyval.id = 0; + ; + break;} +case 389: +#line 3695 "parser.yxx" +{ + yyval.id = yyvsp[0].id; + ; + break;} +case 390: +#line 3698 "parser.yxx" +{ + yyval.id = copy_string("const"); + ; + break;} +case 391: +#line 3703 "parser.yxx" +{ + yyval.tmparm = yyvsp[-1].tmparm; + yyval.tmparm->next = yyvsp[0].tmparm; + ; + break;} +case 392: +#line 3709 "parser.yxx" +{ + yyval.tmparm = yyvsp[-1].tmparm; + yyval.tmparm->next = yyvsp[0].tmparm; + ; + break;} +case 393: +#line 3713 "parser.yxx" +{ yyval.tmparm = 0;; + break;} +case 394: +#line 3716 "parser.yxx" +{ + if (InArray) { + yyvsp[-1].type->is_pointer++; + yyvsp[-1].type->arraystr = copy_string(ArrayString); + } + yyval.tmparm = new TMParm; + yyval.tmparm->p = new Parm(yyvsp[-1].type,yyvsp[0].id); + yyval.tmparm->p->call_type = 0; + yyval.tmparm->args = tm_parm; + delete yyvsp[-1].type; + delete yyvsp[0].id; + ; + break;} +case 395: +#line 3729 "parser.yxx" +{ + yyval.tmparm = new TMParm; + yyval.tmparm->p = new Parm(yyvsp[-2].type,yyvsp[0].id); + yyval.tmparm->p->t->is_pointer += yyvsp[-1].ivalue; + yyval.tmparm->p->call_type = 0; + if (InArray) { + yyval.tmparm->p->t->is_pointer++; + yyval.tmparm->p->t->arraystr = copy_string(ArrayString); + } + yyval.tmparm->args = tm_parm; + delete yyvsp[-2].type; + delete yyvsp[0].id; + ; + break;} +case 396: +#line 3743 "parser.yxx" +{ + yyval.tmparm = new TMParm; + yyval.tmparm->p = new Parm(yyvsp[-2].type,yyvsp[0].id); + yyval.tmparm->p->t->is_reference = 1; + yyval.tmparm->p->call_type = 0; + yyval.tmparm->p->t->is_pointer++; + if (!CPlusPlus) { + fprintf(stderr,"%s : Line %d. Warning. Use of C++ Reference detected. Use the -c++ option.\n", input_file, line_number); + } + yyval.tmparm->args = tm_parm; + delete yyvsp[-2].type; + delete yyvsp[0].id; + ; + break;} +case 397: +#line 3756 "parser.yxx" +{ + fprintf(stderr,"%s : Line %d. Error. Function pointer not allowed (remap with typedef).\n", input_file, line_number); + FatalError(); + yyval.tmparm = new TMParm; + yyval.tmparm->p = new Parm(yyvsp[-7].type,yyvsp[-4].id); + yyval.tmparm->p->t->type = T_ERROR; + yyval.tmparm->p->name = copy_string(yyvsp[-4].id); + strcpy(yyval.tmparm->p->t->name,""); + yyval.tmparm->args = tm_parm; + delete yyvsp[-7].type; + delete yyvsp[-4].id; + delete yyvsp[-1].pl; + ; + break;} +case 398: +#line 3771 "parser.yxx" +{ + yyval.id = yyvsp[-1].id; + InArray = 0; + ; + break;} +case 399: +#line 3775 "parser.yxx" +{ + ArrayBackup = ""; + ArrayBackup << ArrayString; + ; + break;} +case 400: +#line 3778 "parser.yxx" +{ + yyval.id = yyvsp[-3].id; + InArray = yyvsp[-2].ivalue; + ArrayString = ""; + ArrayString << ArrayBackup; + ; + break;} +case 401: +#line 3784 "parser.yxx" +{ + ArrayBackup = ""; + ArrayBackup << ArrayString; + ; + break;} +case 402: +#line 3787 "parser.yxx" +{ + yyval.id = new char[1]; + yyval.id[0] = 0; + InArray = yyvsp[-2].ivalue; + ArrayString = ""; + ArrayString << ArrayBackup; + ; + break;} +case 403: +#line 3794 "parser.yxx" +{ yyval.id = new char[1]; + yyval.id[0] = 0; + InArray = 0; + ; + break;} +case 404: +#line 3800 "parser.yxx" +{ + tm_parm = yyvsp[-1].pl; + ; + break;} +case 405: +#line 3803 "parser.yxx" +{ + tm_parm = 0; + ; + break;} +case 406: +#line 3810 "parser.yxx" +{ ; + break;} +case 407: +#line 3811 "parser.yxx" +{ ; + break;} +case 408: +#line 3814 "parser.yxx" +{ ; + break;} +case 409: +#line 3815 "parser.yxx" +{ ; + break;} +case 410: +#line 3816 "parser.yxx" +{ ; + break;} +} + /* the action file gets copied in in place of this dollarsign */ +#line 542 "/usr/lib/bison.simple" + + yyvsp -= yylen; + yyssp -= yylen; +#ifdef YYLSP_NEEDED + yylsp -= yylen; +#endif + +#if YYDEBUG != 0 + if (yydebug) + { + short *ssp1 = yyss - 1; + fprintf (stderr, "state stack now"); + while (ssp1 != yyssp) + fprintf (stderr, " %d", *++ssp1); + fprintf (stderr, "\n"); + } +#endif + + *++yyvsp = yyval; + +#ifdef YYLSP_NEEDED + yylsp++; + if (yylen == 0) + { + yylsp->first_line = yylloc.first_line; + yylsp->first_column = yylloc.first_column; + yylsp->last_line = (yylsp-1)->last_line; + yylsp->last_column = (yylsp-1)->last_column; + yylsp->text = 0; + } + else + { + yylsp->last_line = (yylsp+yylen-1)->last_line; + yylsp->last_column = (yylsp+yylen-1)->last_column; + } +#endif + + /* 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 - YYNTBASE] + *yyssp; + if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp) + yystate = yytable[yystate]; + else + yystate = yydefgoto[yyn - YYNTBASE]; + + goto yynewstate; + +yyerrlab: /* here on detecting error */ + + if (! yyerrstatus) + /* If not already recovering from an error, report this error. */ + { + ++yynerrs; + +#ifdef YYERROR_VERBOSE + yyn = yypact[yystate]; + + if (yyn > YYFLAG && yyn < YYLAST) + { + int size = 0; + char *msg; + int x, count; + + count = 0; + /* Start X at -yyn if nec to avoid negative indexes in yycheck. */ + for (x = (yyn < 0 ? -yyn : 0); + x < (sizeof(yytname) / sizeof(char *)); x++) + if (yycheck[x + yyn] == x) + size += strlen(yytname[x]) + 15, count++; + msg = (char *) malloc(size + 15); + if (msg != 0) + { + strcpy(msg, "parse error"); + + if (count < 5) + { + count = 0; + for (x = (yyn < 0 ? -yyn : 0); + x < (sizeof(yytname) / sizeof(char *)); x++) + if (yycheck[x + yyn] == x) + { + strcat(msg, count == 0 ? ", expecting `" : " or `"); + strcat(msg, yytname[x]); + strcat(msg, "'"); + count++; + } + } + yyerror(msg); + free(msg); + } + else + yyerror ("parse error; also virtual memory exceeded"); + } + else +#endif /* YYERROR_VERBOSE */ + yyerror("parse error"); + } + + goto yyerrlab1; +yyerrlab1: /* here on error raised explicitly by an action */ + + if (yyerrstatus == 3) + { + /* if just tried and failed to reuse lookahead token after an error, discard it. */ + + /* return failure if at end of input */ + if (yychar == YYEOF) + YYABORT; + +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]); +#endif + + yychar = YYEMPTY; + } + + /* Else will try to reuse lookahead token + after shifting the error token. */ + + yyerrstatus = 3; /* Each real token shifted decrements this */ + + goto yyerrhandle; + +yyerrdefault: /* current state does not do anything special for the error token. */ + +#if 0 + /* This is wrong; only states that explicitly want error tokens + should shift them. */ + yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/ + if (yyn) goto yydefault; +#endif + +yyerrpop: /* pop the current state because it cannot handle the error token */ + + if (yyssp == yyss) YYABORT; + yyvsp--; + yystate = *--yyssp; +#ifdef YYLSP_NEEDED + yylsp--; +#endif + +#if YYDEBUG != 0 + if (yydebug) + { + short *ssp1 = yyss - 1; + fprintf (stderr, "Error: state stack now"); + while (ssp1 != yyssp) + fprintf (stderr, " %d", *++ssp1); + fprintf (stderr, "\n"); + } +#endif + +yyerrhandle: + + yyn = yypact[yystate]; + if (yyn == YYFLAG) + goto yyerrdefault; + + yyn += YYTERROR; + if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR) + goto yyerrdefault; + + yyn = yytable[yyn]; + if (yyn < 0) + { + if (yyn == YYFLAG) + goto yyerrpop; + yyn = -yyn; + goto yyreduce; + } + else if (yyn == 0) + goto yyerrpop; + + if (yyn == YYFINAL) + YYACCEPT; + +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Shifting error token, "); +#endif + + *++yyvsp = yylval; +#ifdef YYLSP_NEEDED + *++yylsp = yylloc; +#endif + + yystate = yyn; + goto yynewstate; + + yyacceptlab: + /* YYACCEPT comes here. */ + if (yyfree_stacks) + { + free (yyss); + free (yyvs); +#ifdef YYLSP_NEEDED + free (yyls); +#endif + } + return 0; + + yyabortlab: + /* YYABORT comes here. */ + if (yyfree_stacks) + { + free (yyss); + free (yyvs); +#ifdef YYLSP_NEEDED + free (yyls); +#endif + } + return 1; +} +#line 3850 "parser.yxx" + + +void error_recover() { + int c; + c = yylex(); + while ((c > 0) && (c != SEMI)) + c = yylex(); +} + +/* Called by the parser (yyparse) when an error is found.*/ +void yyerror (char *) { + // Fprintf(stderr,"%s : Line %d. Syntax error.\n", input_file, line_number); + // error_recover(); +} + diff --git a/Source/SWIG1.1/parser.h b/Source/SWIG1.1/parser.h new file mode 100644 index 000000000..4e08c0c8c --- /dev/null +++ b/Source/SWIG1.1/parser.h @@ -0,0 +1,147 @@ +typedef union { + char *id; + struct Declaration { + char *id; + int is_pointer; + int is_reference; + } decl; + struct InitList { + char **names; + int count; + } ilist; + struct DocList { + char **names; + char **values; + int count; + } dlist; + struct Define { + char *id; + int type; + } dtype; + struct { + char *filename; + int line; + int flag; + } loc; + DataType *type; + Parm *p; + TMParm *tmparm; + ParmList *pl; + int ivalue; +} YYSTYPE; +#define ID 257 +#define HBLOCK 258 +#define WRAPPER 259 +#define POUND 260 +#define STRING 261 +#define INCLUDE 262 +#define IMPORT 263 +#define WEXTERN 264 +#define SWIGMACRO 265 +#define NUM_INT 266 +#define NUM_FLOAT 267 +#define CHARCONST 268 +#define NUM_UNSIGNED 269 +#define NUM_LONG 270 +#define NUM_ULONG 271 +#define TYPEDEF 272 +#define TYPE_INT 273 +#define TYPE_UNSIGNED 274 +#define TYPE_SHORT 275 +#define TYPE_LONG 276 +#define TYPE_FLOAT 277 +#define TYPE_DOUBLE 278 +#define TYPE_CHAR 279 +#define TYPE_VOID 280 +#define TYPE_SIGNED 281 +#define TYPE_BOOL 282 +#define TYPE_TYPEDEF 283 +#define LPAREN 284 +#define RPAREN 285 +#define COMMA 286 +#define SEMI 287 +#define EXTERN 288 +#define INIT 289 +#define LBRACE 290 +#define RBRACE 291 +#define DEFINE 292 +#define PERIOD 293 +#define CONST 294 +#define STRUCT 295 +#define UNION 296 +#define EQUAL 297 +#define SIZEOF 298 +#define MODULE 299 +#define LBRACKET 300 +#define RBRACKET 301 +#define ILLEGAL 302 +#define CONSTANT 303 +#define READONLY 304 +#define READWRITE 305 +#define NAME 306 +#define RENAME 307 +#define ADDMETHODS 308 +#define PRAGMA 309 +#define CVALUE 310 +#define COUT 311 +#define ENUM 312 +#define ENDDEF 313 +#define MACRO 314 +#define CLASS 315 +#define PRIVATE 316 +#define PUBLIC 317 +#define PROTECTED 318 +#define COLON 319 +#define STATIC 320 +#define VIRTUAL 321 +#define FRIEND 322 +#define OPERATOR 323 +#define THROW 324 +#define TEMPLATE 325 +#define NATIVE 326 +#define INLINE 327 +#define RAW_MODE 328 +#define ALPHA_MODE 329 +#define TEXT 330 +#define DOC_DISABLE 331 +#define DOC_ENABLE 332 +#define STYLE 333 +#define LOCALSTYLE 334 +#define TYPEMAP 335 +#define EXCEPT 336 +#define ECHO 337 +#define NEW 338 +#define APPLY 339 +#define CLEAR 340 +#define DOCONLY 341 +#define TITLE 342 +#define SECTION 343 +#define SUBSECTION 344 +#define SUBSUBSECTION 345 +#define LESSTHAN 346 +#define GREATERTHAN 347 +#define USERDIRECTIVE 348 +#define OC_INTERFACE 349 +#define OC_END 350 +#define OC_PUBLIC 351 +#define OC_PRIVATE 352 +#define OC_PROTECTED 353 +#define OC_CLASS 354 +#define OC_IMPLEMENT 355 +#define OC_PROTOCOL 356 +#define OR 357 +#define XOR 358 +#define AND 359 +#define LSHIFT 360 +#define RSHIFT 361 +#define PLUS 362 +#define MINUS 363 +#define STAR 364 +#define SLASH 365 +#define UMINUS 366 +#define NOT 367 +#define LNOT 368 +#define DCOLON 369 + + +extern YYSTYPE yylval; diff --git a/Source/SWIG1.1/parser.y b/Source/SWIG1.1/parser.yxx similarity index 100% rename from Source/SWIG1.1/parser.y rename to Source/SWIG1.1/parser.yxx diff --git a/Source/Swig/.cvsignore b/Source/Swig/.cvsignore index 068db2c8d..fddc2e5f2 100644 --- a/Source/Swig/.cvsignore +++ b/Source/Swig/.cvsignore @@ -1,5 +1,5 @@ Makefile -y.tab.* *.flc supertest *_wrap.* +.deps diff --git a/Source/Swig/Makefile.am b/Source/Swig/Makefile.am new file mode 100644 index 000000000..cc01adffa --- /dev/null +++ b/Source/Swig/Makefile.am @@ -0,0 +1,9 @@ +include $(top_srcdir)/Makefile.common + +INCLUDES = $(SWIG_INCLUDES) + +noinst_LIBRARIES = libswig.a + +libswig_a_SOURCES = types.c scanner.c include.c getopt.c misc.c super.c type.c + +noinst_HEADERS = swig.h diff --git a/Source/Swig/Makefile.in b/Source/Swig/Makefile.in index 387222b62..4be8034ad 100644 --- a/Source/Swig/Makefile.in +++ b/Source/Swig/Makefile.in @@ -1,136 +1,334 @@ -# --------------------------------------------------------------- -# $Header$ -# SWIG Makefile -# -# This file can be used to build various Python extensions with SWIG. -# By default this file is set up for dynamic loading, but it can -# be easily customized for static extensions by modifying various -# portions of the file. -# -# SRCS = C source files -# CXXSRCS = C++ source files -# OBJCSRCS = Objective-C source files -# OBJS = Additional .o files (compiled previously) -# INTERFACE = SWIG interface file -# TARGET = Name of target module or executable -# -#---------------------------------------------------------------- +# Makefile.in generated automatically by automake 1.4a from Makefile.am -SRCS = types.c scanner.c include.c getopt.c misc.c super.c type.c -OBJS = $(SRCS:.c=.o) -INTERFACE = swig.i -WRAPFILE = $(INTERFACE:.i=_wrap.c) -WRAPOBJ = $(INTERFACE:.i=_wrap.o) -TARGET = swigmodule@SO@ # Use this kind of target for dynamic loading +# Copyright (C) 1994, 1995-8, 1999 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. -prefix = @prefix@ -exec_prefix = @exec_prefix@ +# 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. -CC = @CC@ -AR = @AR@ -RANLIB = @RANLIB@ -RPATH = @RPATH@ -CC = @CC@ -CFLAGS = -g -INCLUDE = -I. -I../DOH/Include -LIBS = -L. -L../DOH/ -ldoh -# SWIG Options -# SWIG = location of the SWIG executable -# SWIGOPT = SWIG compiler options -# SWIGCC = Compiler used to compile the wrapper file -# this is kinda silly: SWIG depends on SWIG.... :) -SWIG = $(exec_prefix)/bin/swig -SWIGOPT = -python -SWIGCC = $(CC) +SHELL = @SHELL@ -# SWIG Library files. Uncomment if rebuilding the Python interpreter -#SWIGLIB = -lembed.i +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ -# Command that will be used to build the final extension. -BUILD = $(SWIGCC) +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include -# Uncomment the following if you are using dynamic loading -CCSHARED = @CCSHARED@ -BUILD = @LDSHARED@ +DESTDIR = -# Python installation +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ -PY_INCLUDE = -DHAVE_CONFIG_H @PYINCLUDE@ -PY_LIB = @PYLIB@ +top_builddir = ../.. -# Build libraries (needed for static builds) +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ -LIBM = @LIBM@ -LIBC = @LIBC@ -SYSLIBS = $(LIBM) $(LIBC) @LIBS@ +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_FLAG = +transform = @program_transform_name@ -# Build options +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +AR = @AR@ +AUTOCONF = @AUTOCONF@ +CC = @CC@ +CCSHARED = @CCSHARED@ +CXX = @CXX@ +LDSHARED = @LDSHARED@ +LIBC = @LIBC@ +LIBCRYPT = @LIBCRYPT@ +LIBM = @LIBM@ +MACHDEP = @MACHDEP@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +PACKAGE = @PACKAGE@ +PERL = @PERL@ +PERL5EXT = @PERL5EXT@ +PYINCLUDE = @PYINCLUDE@ +PYLIB = @PYLIB@ +PYLINK = @PYLINK@ +RANLIB = @RANLIB@ +ROOT_DIR = @ROOT_DIR@ +RPATH = @RPATH@ +SO = @SO@ +TCLINCLUDE = @TCLINCLUDE@ +TCLLIB = @TCLLIB@ +VERSION = @VERSION@ +XINCLUDES = @XINCLUDES@ +XLIBSW = @XLIBSW@ +YACC = @YACC@ +YFLAGS = @YFLAGS@ -BUILD_LIBS = $(LIBS) # Dynamic loading +AUTOMAKE_OPTIONS = foreign -# Compilation rules for non-SWIG components +SWIG_INCLUDES = -I$(top_srcdir)/Source/DOH/Include -I$(top_srcdir)/Source/SWILL/Include -.c.o: - $(CC) $(CCSHARED) $(INCLUDE) $(CFLAGS) -c -o $*.o $< -# ---------------------------------------------------------------------- -# Toplevel Targets -# ---------------------------------------------------------------------- +SWIG_LIBS = $(top_builddir)/Source/DOH/Doh/libdoh.a $(top_builddir)/Source/SWILL/SWILL/libswill.a -###################################################################### -# TARGET: swig -##################################################################### -# note that here we echo the names of all of our object files, -# relative to the project root, into $(OBJS_FILE), for compatibility -# with the parent makefile. -all: swig -swig: $(OBJS) - for i in $(OBJS); do echo Source/Swig/$$i >> $(OBJS_FILE); done -###################################################################### -# TARGET: experiment -##################################################################### -# same as swig -experiment: swig +INCLUDES = $(SWIG_INCLUDES) -###################################################################### -# TARGET: python -##################################################################### -# not integrated with the mother ship yet -python: $(TARGET) # the python module +noinst_LIBRARIES = libswig.a -###################################################################### -# TARGET: supertest -##################################################################### -# not integrated with the mother ship yet -supertest: super.c # test the super module - $(CC) $(CCSHARED) $(INCLUDE) $(CFLAGS) -g -DSUPER_TEST -c \ - -o supertest.o super.c - $(CC) supertest.o -ldoh -o supertest +libswig_a_SOURCES = types.c scanner.c include.c getopt.c misc.c super.c type.c -###################################################################### -# TARGET: typetest -##################################################################### -# not integrated with the mother ship yet -typetest: type.c super.o - $(CC) $(CCSHARED) $(INCLUDE) $(CFLAGS) -g -DTYPE_TEST -c \ - -o typetest.o type.c - $(CC) super.o typetest.o -ldoh -o typetest +noinst_HEADERS = swig.h +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) -clean: - rm -f *.o *~ core *.so *.a *_wrap.* -# ---------------------------------------------------------------------- -# Rules for building the extension -# ---------------------------------------------------------------------- +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +libswig_a_LIBADD = +libswig_a_OBJECTS = types.o scanner.o include.o getopt.o misc.o super.o \ +type.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ +HEADERS = $(noinst_HEADERS) -$(WRAPOBJ) : $(WRAPFILE) - $(SWIGCC) -c $(CCSHARED) $(CFLAGS) $(WRAPFILE) $(INCLUDE) $(PY_INCLUDE) -$(WRAPFILE) : $(INTERFACE) - $(SWIG) $(SWIGOPT) -o $(WRAPFILE) $(SWIGLIB) $(INTERFACE) +DIST_COMMON = Makefile.am Makefile.in -$(TARGET): $(WRAPOBJ) $(ALLOBJS) - $(BUILD) $(WRAPOBJ) $(OBJS) $(BUILD_LIBS) -o $(TARGET) +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = gtar +GZIP_ENV = --best +DEP_FILES = .deps/getopt.P .deps/include.P .deps/misc.P .deps/scanner.P \ +.deps/super.P .deps/type.P .deps/types.P +SOURCES = $(libswig_a_SOURCES) +OBJECTS = $(libswig_a_OBJECTS) + +all: all-redirect +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) $(top_srcdir)/Makefile.common + cd $(top_srcdir) && $(AUTOMAKE) --foreign Source/Swig/Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +libswig.a: $(libswig_a_OBJECTS) $(libswig_a_DEPENDENCIES) + -rm -f libswig.a + $(AR) cru libswig.a $(libswig_a_OBJECTS) $(libswig_a_LIBADD) + $(RANLIB) libswig.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) + +subdir = Source/Swig + +distdir: $(DISTFILES) + here=`cd $(top_builddir) && pwd`; \ + top_distdir=`cd $(top_distdir) && pwd`; \ + distdir=`cd $(distdir) && pwd`; \ + cd $(top_srcdir) \ + && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --foreign Source/Swig/Makefile + @for file in $(DISTFILES); do \ + d=$(srcdir); \ + if test -d $$d/$$file; then \ + cp -pr $$d/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ + fi; \ + done + +DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :) + +-include $(DEP_FILES) + +mostlyclean-depend: + +clean-depend: + +distclean-depend: + -rm -rf .deps + +maintainer-clean-depend: + +%.o: %.c + @echo '$(COMPILE) -c $<'; \ + $(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-cp .deps/$(*F).pp .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm .deps/$(*F).pp + +%.lo: %.c + @echo '$(LTCOMPILE) -c $<'; \ + $(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \ + < .deps/$(*F).pp > .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm -f .deps/$(*F).pp +info-am: +info: info-am +dvi-am: +dvi: dvi-am +check-am: all-am +check: check-am +installcheck-am: +installcheck: installcheck-am +install-exec-am: +install-exec: install-exec-am + +install-data-am: +install-data: install-data-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am +install: install-am +uninstall-am: +uninstall: uninstall-am +all-am: Makefile $(LIBRARIES) $(HEADERS) +all-redirect: all-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_STRIP_FLAG=-s install +installdirs: + + +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + +maintainer-clean-generic: +mostlyclean-am: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-depend mostlyclean-generic + +mostlyclean: mostlyclean-am + +clean-am: clean-noinstLIBRARIES clean-compile clean-tags clean-depend \ + clean-generic mostlyclean-am + +clean: clean-am + +distclean-am: distclean-noinstLIBRARIES distclean-compile \ + distclean-tags distclean-depend distclean-generic \ + clean-am + +distclean: distclean-am + +maintainer-clean-am: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-depend maintainer-clean-generic \ + distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +maintainer-clean: maintainer-clean-am + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir mostlyclean-depend \ +distclean-depend clean-depend maintainer-clean-depend info-am info \ +dvi-am dvi check check-am installcheck-am installcheck install-exec-am \ +install-exec install-data-am install-data install-am install \ +uninstall-am uninstall all-redirect all-am all installdirs \ +mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +# 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/Source/Swig/swig.h b/Source/Swig/swig.h index d6d504664..a2073852f 100644 --- a/Source/Swig/swig.h +++ b/Source/Swig/swig.h @@ -133,7 +133,7 @@ DOH *Swig_Type_NewStruct(DOH *name, DOH *body, int is_const, int is_volatile); DOH *Swig_Type_NewUnion(DOH *name, DOH *body, int is_const, int is_volatile); -DOH *Swig_Type_NewArray(DOH *size, DOH *parent) +DOH *Swig_Type_NewArray(DOH *size, DOH *parent); DOH *Swig_Type_NewFunction(DOH *parameters, DOH *parent); DOH *Swig_Type_NewPointer(int is_const, int is_volatile, DOH *parent); diff --git a/aclocal.m4 b/aclocal.m4 new file mode 100644 index 000000000..be186d2fe --- /dev/null +++ b/aclocal.m4 @@ -0,0 +1,139 @@ +dnl aclocal.m4 generated automatically by aclocal 1.4a + +dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. + +# Do all the work for Automake. This macro actually does too much -- +# some checks are only needed if your package does certain things. +# But this isn't really a big deal. + +# serial 1 + +dnl Usage: +dnl AM_INIT_AUTOMAKE(package,version, [no-define]) + +AC_DEFUN(AM_INIT_AUTOMAKE, +[AC_REQUIRE([AC_PROG_INSTALL]) +dnl We require 2.13 because we rely on SHELL being computed by configure. +AC_PREREQ([2.13]) +PACKAGE=[$1] +AC_SUBST(PACKAGE) +VERSION=[$2] +AC_SUBST(VERSION) +dnl test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi +ifelse([$3],, +AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) +AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) +AC_REQUIRE([AM_SANITY_CHECK]) +AC_REQUIRE([AC_ARG_PROGRAM]) +dnl FIXME This is truly gross. +missing_dir=`cd $ac_aux_dir && pwd` +AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) +AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) +AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) +AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) +AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) +AC_REQUIRE([AC_PROG_MAKE_SET])]) + +# +# Check to make sure that the build environment is sane. +# + +AC_DEFUN(AM_SANITY_CHECK, +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "[$]*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "[$]*" != "X $srcdir/configure conftestfile" \ + && test "[$]*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "[$]2" = conftestfile + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +rm -f conftest* +AC_MSG_RESULT(yes)]) + +dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) +dnl The program must properly implement --version. +AC_DEFUN(AM_MISSING_PROG, +[AC_MSG_CHECKING(for working $2) +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if ($2 --version) < /dev/null > /dev/null 2>&1; then + $1=$2 + AC_MSG_RESULT(found) +else + $1="$3/missing $2" + AC_MSG_RESULT(missing) +fi +AC_SUBST($1)]) + +# Add --enable-maintainer-mode option to configure. +# From Jim Meyering + +# serial 1 + +AC_DEFUN(AM_MAINTAINER_MODE, +[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode is disabled by default + AC_ARG_ENABLE(maintainer-mode, +[ --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + USE_MAINTAINER_MODE=$enableval, + USE_MAINTAINER_MODE=no) + AC_MSG_RESULT($USE_MAINTAINER_MODE) + AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST(MAINT)dnl +] +) + +# Define a conditional. + +AC_DEFUN(AM_CONDITIONAL, +[AC_SUBST($1_TRUE) +AC_SUBST($1_FALSE) +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi]) + diff --git a/configure b/configure new file mode 100755 index 000000000..2676c0a28 --- /dev/null +++ b/configure @@ -0,0 +1,3051 @@ +#! /bin/sh + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.13 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: +ac_help="$ac_help + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer" +ac_help="$ac_help + --with-libm=STRING math library" +ac_help="$ac_help + --with-libc=STRING C library" +ac_help="$ac_help + --with-x use the X Window System" +ac_help="$ac_help + --with-tcl=path Set location of Tcl package" +ac_help="$ac_help + --with-tclincl=path Set location of Tcl include directory" +ac_help="$ac_help + --with-tcllib=path Set location of Tcl library directory" +ac_help="$ac_help + --with-py=path Set location of Python" +ac_help="$ac_help + --with-pyincl=path Set location of Python include directory" +ac_help="$ac_help + --with-pylib=path Set location of Python library directory" +ac_help="$ac_help + --with-perl5=path Set location of Perl5 executable" + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +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=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -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 ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$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" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + 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) + # 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 << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$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" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + 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) + 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" ;; + + -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 ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.13" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + 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 "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=Source/Swig/swig.h + +# 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 its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + 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 + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +ac_exeext= +ac_objext=o +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + +ac_aux_dir= +for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:579: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 +echo "configure:632: checking whether build environment is sane" >&5 +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "$*" != "X $srcdir/configure conftestfile" \ + && test "$*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { echo "configure: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" 1>&2; exit 1; } + fi + + test "$2" = conftestfile + ) +then + # Ok. + : +else + { echo "configure: error: newly created file is older than distributed files! +Check your system clock" 1>&2; exit 1; } +fi +rm -f conftest* +echo "$ac_t""yes" 1>&6 +if test "$program_transform_name" = s,x,x,; then + program_transform_name= +else + # Double any \ or $. echo might interpret backslashes. + cat <<\EOF_SED > conftestsed +s,\\,\\\\,g; s,\$,$$,g +EOF_SED + program_transform_name="`echo $program_transform_name|sed -f conftestsed`" + rm -f conftestsed +fi +test "$program_prefix" != NONE && + program_transform_name="s,^,${program_prefix},; $program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" + +# sed with no file args requires a program. +test "$program_transform_name" = "" && program_transform_name="s,x,x," + +echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 +echo "configure:689: checking whether ${MAKE-make} sets \${MAKE}" >&5 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftestmake <<\EOF +all: + @echo 'ac_maketemp="${MAKE}"' +EOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftestmake +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$ac_t""yes" 1>&6 + SET_MAKE= +else + echo "$ac_t""no" 1>&6 + SET_MAKE="MAKE=${MAKE-make}" +fi + + + +PACKAGE=swig + +VERSION=2.0 + +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } +fi + + + +missing_dir=`cd $ac_aux_dir && pwd` +echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 +echo "configure:729: checking for working aclocal" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (aclocal --version) < /dev/null > /dev/null 2>&1; then + ACLOCAL=aclocal + echo "$ac_t""found" 1>&6 +else + ACLOCAL="$missing_dir/missing aclocal" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 +echo "configure:742: checking for working autoconf" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoconf --version) < /dev/null > /dev/null 2>&1; then + AUTOCONF=autoconf + echo "$ac_t""found" 1>&6 +else + AUTOCONF="$missing_dir/missing autoconf" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working automake""... $ac_c" 1>&6 +echo "configure:755: checking for working automake" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (automake --version) < /dev/null > /dev/null 2>&1; then + AUTOMAKE=automake + echo "$ac_t""found" 1>&6 +else + AUTOMAKE="$missing_dir/missing automake" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 +echo "configure:768: checking for working autoheader" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoheader --version) < /dev/null > /dev/null 2>&1; then + AUTOHEADER=autoheader + echo "$ac_t""found" 1>&6 +else + AUTOHEADER="$missing_dir/missing autoheader" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 +echo "configure:781: checking for working makeinfo" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (makeinfo --version) < /dev/null > /dev/null 2>&1; then + MAKEINFO=makeinfo + echo "$ac_t""found" 1>&6 +else + MAKEINFO="$missing_dir/missing makeinfo" + echo "$ac_t""missing" 1>&6 +fi + + + + +# Set name for machine-dependent library files + +echo $ac_n "checking MACHDEP""... $ac_c" 1>&6 +echo "configure:799: checking MACHDEP" >&5 +if test -z "$MACHDEP" +then + if test -f /usr/lib/NextStep/software_version; then + set X `hostinfo | grep 'NeXT Mach.*:' | \ + sed -e 's/://' -e 's/\./_/'` && \ + ac_sys_system=next && ac_sys_release=$4 + MACHDEP="$ac_sys_system$ac_sys_release$ac_sys_cpu" + else + ac_sys_system=`uname -s` + if test "$ac_sys_system" = "AIX" ; then + ac_sys_release=`uname -v` + else + ac_sys_release=`uname -r` + fi + ac_md_system=`echo $ac_sys_system | + tr -d '/ ' | tr '[A-Z]' '[a-z]'` + ac_md_release=`echo $ac_sys_release | + tr -d '/ ' | sed 's/\..*//'` + MACHDEP="$ac_md_system$ac_md_release" + fi + case MACHDEP in + '') MACHDEP=unknown;; + esac +fi +echo "$ac_t""$MACHDEP" 1>&6 + +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:829: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +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 $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:859: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_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 $# -gt 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 + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + if test -z "$CC"; then + case "`uname -s`" in + *win32* | *WIN32*) + # Extract the first word of "cl", so it can be a program name with args. +set dummy cl; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:910: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="cl" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + ;; + esac + fi + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 +echo "configure:942: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +cat > conftest.$ac_ext << EOF + +#line 953 "configure" +#include "confdefs.h" + +main(){return(0);} +EOF +if { (eval echo configure:958: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + ac_cv_prog_cc_works=yes + # If we can't run a trivial program, we are probably using a cross compiler. + if (./conftest; exit) 2>/dev/null; then + ac_cv_prog_cc_cross=no + else + ac_cv_prog_cc_cross=yes + fi +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + ac_cv_prog_cc_works=no +fi +rm -fr conftest* +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +echo "$ac_t""$ac_cv_prog_cc_works" 1>&6 +if test $ac_cv_prog_cc_works = no; then + { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } +fi +echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 +echo "configure:984: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 +cross_compiling=$ac_cv_prog_cc_cross + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:989: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +else + GCC= +fi + +ac_test_CFLAGS="${CFLAGS+set}" +ac_save_CFLAGS="$CFLAGS" +CFLAGS= +echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:1017: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&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 + +for ac_prog in $CCC c++ g++ gcc CC cxx cc++ cl +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 $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1053: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CXX'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CXX"; then + ac_cv_prog_CXX="$CXX" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CXX="$ac_prog" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CXX="$ac_cv_prog_CXX" +if test -n "$CXX"; then + echo "$ac_t""$CXX" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +test -n "$CXX" && break +done +test -n "$CXX" || CXX="gcc" + + +echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works""... $ac_c" 1>&6 +echo "configure:1085: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5 + +ac_ext=C +# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cxx_cross + +cat > conftest.$ac_ext << EOF + +#line 1096 "configure" +#include "confdefs.h" + +int main(){return(0);} +EOF +if { (eval echo configure:1101: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + ac_cv_prog_cxx_works=yes + # If we can't run a trivial program, we are probably using a cross compiler. + if (./conftest; exit) 2>/dev/null; then + ac_cv_prog_cxx_cross=no + else + ac_cv_prog_cxx_cross=yes + fi +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + ac_cv_prog_cxx_works=no +fi +rm -fr conftest* +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +echo "$ac_t""$ac_cv_prog_cxx_works" 1>&6 +if test $ac_cv_prog_cxx_works = no; then + { echo "configure: error: installation or configuration problem: C++ compiler cannot create executables." 1>&2; exit 1; } +fi +echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 +echo "configure:1127: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "$ac_t""$ac_cv_prog_cxx_cross" 1>&6 +cross_compiling=$ac_cv_prog_cxx_cross + +echo $ac_n "checking whether we are using GNU C++""... $ac_c" 1>&6 +echo "configure:1132: checking whether we are using GNU C++" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gxx'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.C <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gxx=yes +else + ac_cv_prog_gxx=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gxx" 1>&6 + +if test $ac_cv_prog_gxx = yes; then + GXX=yes +else + GXX= +fi + +ac_test_CXXFLAGS="${CXXFLAGS+set}" +ac_save_CXXFLAGS="$CXXFLAGS" +CXXFLAGS= +echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6 +echo "configure:1160: checking whether ${CXX-g++} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cxx_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.cc +if test -z "`${CXX-g++} -g -c conftest.cc 2>&1`"; then + ac_cv_prog_cxx_g=yes +else + ac_cv_prog_cxx_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cxx_g" 1>&6 +if test "$ac_test_CXXFLAGS" = set; then + CXXFLAGS="$ac_save_CXXFLAGS" +elif test $ac_cv_prog_cxx_g = yes; then + if test "$GXX" = yes; then + CXXFLAGS="-g -O2" + else + CXXFLAGS="-g" + fi +else + if test "$GXX" = yes; then + CXXFLAGS="-O2" + else + CXXFLAGS= + fi +fi + +# Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1194: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + +echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 +echo "configure:1223: checking whether to enable maintainer-specific portions of Makefiles" >&5 + # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then + enableval="$enable_maintainer_mode" + USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi + + echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6 + + +if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + MAINT=$MAINTAINER_MODE_TRUE + + + + + +for ac_prog in ar aal +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 $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1253: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AR="$ac_prog" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +AR="$ac_cv_prog_AR" +if test -n "$AR"; then + echo "$ac_t""$AR" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +test -n "$AR" && break +done +test -n "$AR" || AR="ar" + +for ac_prog in autoconf +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 $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1288: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AUTOCONF'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AUTOCONF"; then + ac_cv_prog_AUTOCONF="$AUTOCONF" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AUTOCONF="$ac_prog" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +AUTOCONF="$ac_cv_prog_AUTOCONF" +if test -n "$AUTOCONF"; then + echo "$ac_t""$AUTOCONF" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +test -n "$AUTOCONF" && break +done +test -n "$AUTOCONF" || AUTOCONF="""" + + +echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 +echo "configure:1320: checking how to run the C preprocessor" >&5 +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then +if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + # This must be in double quotes, not single quotes, because CPP may get + # substituted into the Makefile and "${CC-cc}" will confuse make. + CPP="${CC-cc} -E" + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. + cat > conftest.$ac_ext < +Syntax Error +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:1341: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +if test -z "$ac_err"; then + : +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + CPP="${CC-cc} -E -traditional-cpp" + cat > conftest.$ac_ext < +Syntax Error +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:1358: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +if test -z "$ac_err"; then + : +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + CPP="${CC-cc} -nologo -E" + cat > conftest.$ac_ext < +Syntax Error +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:1375: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +if test -z "$ac_err"; then + : +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + CPP=/lib/cpp +fi +rm -f conftest* +fi +rm -f conftest* +fi +rm -f conftest* + ac_cv_prog_CPP="$CPP" +fi + CPP="$ac_cv_prog_CPP" +else + ac_cv_prog_CPP="$CPP" +fi +echo "$ac_t""$CPP" 1>&6 + +echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 +echo "configure:1400: checking for ANSI C header files" >&5 +if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +#include +#include +#include +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:1413: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +if test -z "$ac_err"; then + rm -rf conftest* + ac_cv_header_stdc=yes +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_header_stdc=no +fi +rm -f conftest* + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. +cat > conftest.$ac_ext < +EOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + egrep "memchr" >/dev/null 2>&1; then + : +else + rm -rf conftest* + 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 < +EOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + egrep "free" >/dev/null 2>&1; then + : +else + rm -rf conftest* + 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 < +#define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#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)) exit(2); +exit (0); } + +EOF +if { (eval echo configure:1480: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +then + : +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -fr conftest* + ac_cv_header_stdc=no +fi +rm -fr conftest* +fi + +fi +fi + +echo "$ac_t""$ac_cv_header_stdc" 1>&6 +if test $ac_cv_header_stdc = yes; then + cat >> confdefs.h <<\EOF +#define STDC_HEADERS 1 +EOF + +fi + + +# Set info about shared libraries. + + + + +# SO is the extension of shared libraries `(including the dot!) +# -- usually .so, .sl on HP-UX +echo $ac_n "checking SO""... $ac_c" 1>&6 +echo "configure:1512: checking SO" >&5 +if test -z "$SO" +then + case $ac_sys_system in + hp*|HP*) SO=.sl;; + *) SO=.so;; + esac +fi +echo "$ac_t""$SO" 1>&6 +# LDSHARED is the ld *command* used to create shared library +# -- "ld" on SunOS 4.x.x, "ld -G" on SunOS 5.x, "ld -shared" on IRIX 5 +# (Shared libraries in this instance are shared modules to be loaded into +# Python, as opposed to building Python itself as a shared library.) +echo $ac_n "checking LDSHARED""... $ac_c" 1>&6 +echo "configure:1526: checking LDSHARED" >&5 +if test -z "$LDSHARED" +then + case $ac_sys_system/$ac_sys_release in + AIX*) LDSHARED="\$(srcdir)/ld_so_aix \$(CC)";; + IRIX/5*) LDSHARED="ld -shared";; + IRIX*/6*) LDSHARED="ld ${SGI_ABI} -shared -all";; + SunOS/4*) LDSHARED="ld";; + SunOS/5*) LDSHARED="ld -G";; + hp*|HP*) LDSHARED="ld -b";; + OSF*) LDSHARED="ld -shared -expect_unresolved \"*\"";; + DYNIX/ptx*) LDSHARED="ld -G";; + next/*) + if test "$ns_dyld" + then LDSHARED='$(CC) $(LDFLAGS) -bundle -prebind' + else LDSHARED='$(CC) $(CFLAGS) -nostdlib -r'; + fi + if test "$with_next_framework" ; then + LDSHARED="$LDSHARED \$(LDLIBRARY)" + fi ;; + Linux*) LDSHARED="gcc -shared";; + dgux*) LDSHARED="ld -G";; + FreeBSD*/3*) LDSHARED="gcc -shared";; + FreeBSD*|OpenBSD*) LDSHARED="ld -Bshareable";; + NetBSD*) + if [ "`$CC -dM -E - &6 +# CCSHARED are the C *flags* used to create objects to go into a shared +# library (module) -- this is only needed for a few systems +echo $ac_n "checking CCSHARED""... $ac_c" 1>&6 +echo "configure:1565: checking CCSHARED" >&5 +if test -z "$CCSHARED" +then + case $ac_sys_system/$ac_sys_release in + hp*|HP*) if test "$GCC" = yes; + then CCSHARED="-fpic"; + else CCSHARED="+z"; + fi;; + Linux*) CCSHARED="-fpic";; + FreeBSD*|OpenBSD*) CCSHARED="-fpic";; + NetBSD*) CCSHARED="-fPIC";; + SCO_SV*) CCSHARED="-KPIC -dy -Bdynamic";; + IRIX*/6*) case $CC in + *gcc*) CCSHARED="-shared";; + *) CCSHARED="";; + esac;; + esac +fi +echo "$ac_t""$CCSHARED" 1>&6 + +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 $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1590: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_YACC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$YACC"; then + ac_cv_prog_YACC="$YACC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_YACC="$ac_prog" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +YACC="$ac_cv_prog_YACC" +if test -n "$YACC"; then + echo "$ac_t""$YACC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +test -n "$YACC" && break +done +test -n "$YACC" || YACC="yacc" + +YFLAGS=-d + + +# RPATH is the path used to look for shared library files. +echo $ac_n "checking RPATH""... $ac_c" 1>&6 +echo "configure:1625: checking RPATH" >&5 +if test -z "$RPATH" +then + case $ac_sys_system/$ac_sys_release in + SunOS/5*) RPATH="-R. -R$(exec_prefix)/lib";; + IRIX*) RPATH="-rpath .:$(exec_prefix)/lib";; + Linux*) RPATH="-Xlinker -rpath $(exec_prefix)/lib -Xlinker -rpath .";; + *) RPATH="";; + esac +fi +echo "$ac_t""$RPATH" 1>&6 + + + + +echo "" +echo "Checking for installed packages." +echo "Note : None of the following packages are required to compile SWIG" +echo "" + +# Check for specific libraries. Used for SWIG examples +echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6 +echo "configure:1647: checking for dlopen in -ldl" >&5 +ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-ldl $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_lib=HAVE_LIB`echo dl | sed -e 's/[^a-zA-Z0-9_]/_/g' \ + -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` + cat >> confdefs.h <&6 +fi + # Dynamic linking for SunOS/Solaris and SYSV +echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6 +echo "configure:1694: checking for shl_load in -ldld" >&5 +ac_lib_var=`echo dld'_'shl_load | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-ldld $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_lib=HAVE_LIB`echo dld | sed -e 's/[^a-zA-Z0-9_]/_/g' \ + -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` + cat >> confdefs.h <&6 +fi + # Dynamic linking for HP-UX + +# The following three (nsl,inet,socket) are needed on Sequent; +# the order of checking must be this. Most SVR4 platforms will +# need -lsocket and -lnsl. However on SGI IRIX 5, these exist but +# broken. I see no elegant solution (probably CHECK_LIB should be +# fixed to only add the library if the given entry point is not +# satisfied without it). +if test "`uname -s`" != IRIX +then +echo $ac_n "checking for t_open in -lnsl""... $ac_c" 1>&6 +echo "configure:1750: checking for t_open in -lnsl" >&5 +ac_lib_var=`echo nsl'_'t_open | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lnsl $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + LIBS="-lnsl $LIBS" +else + echo "$ac_t""no" 1>&6 +fi + # SVR4 +echo $ac_n "checking for gethostbyname in -linet""... $ac_c" 1>&6 +echo "configure:1790: checking for gethostbyname in -linet" >&5 +ac_lib_var=`echo inet'_'gethostbyname | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-linet -lnsl $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + LIBS="-linet $LIBS" +else + echo "$ac_t""no" 1>&6 +fi + # Sequent +echo $ac_n "checking for socket in -lsocket""... $ac_c" 1>&6 +echo "configure:1830: checking for socket in -lsocket" >&5 +ac_lib_var=`echo socket'_'socket | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lsocket $LIBS $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + LIBS="-lsocket $LIBS" +else + echo "$ac_t""no" 1>&6 +fi + # SVR4 sockets +fi + +# check for --with-libm=... + +LIBM=-lm +# Check whether --with-libm or --without-libm was given. +if test "${with_libm+set}" = set; then + withval="$with_libm" + +if test "$withval" != yes +then LIBM=$withval +else { echo "configure: error: proper usage is --with-libm=STRING" 1>&2; exit 1; } +fi +fi + +echo $ac_n "checking for main in -lieee""... $ac_c" 1>&6 +echo "configure:1885: checking for main in -lieee" >&5 +ac_lib_var=`echo ieee'_'main | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lieee $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + LIBM="-lieee $LIBM" +else + echo "$ac_t""no" 1>&6 +fi + +echo $ac_n "checking for crypt in -lcrypt""... $ac_c" 1>&6 +echo "configure:1921: checking for crypt in -lcrypt" >&5 +ac_lib_var=`echo crypt'_'crypt | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lcrypt $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + LIBCRYPT="-lcrypt" +else + echo "$ac_t""no" 1>&6 +fi + + + +# check for --with-libc=... + +# Check whether --with-libc or --without-libc was given. +if test "${with_libc+set}" = set; then + withval="$with_libc" + +if test "$withval" != yes +then LIBC=$withval +else { echo "configure: error: proper usage is --with-libc=STRING" 1>&2; exit 1; } +fi +fi + + +#-------------------------------------------------------------------- +# Locate the X11 header files and the X11 library archive. Try +# the ac_path_x macro first, but if it doesn't find the X stuff +# (e.g. because there's no xmkmf program) then check through +# a list of possible directories. Under some conditions the +# autoconf macro will return an include directory that contains +# no include files, so double-check its result just to be safe. +#-------------------------------------------------------------------- + +# If we find X, set shell vars x_includes and x_libraries to the +# paths, otherwise set no_x=yes. +# Uses ac_ vars as temps to allow command line to override cache and checks. +# --without-x overrides everything else, but does not touch the cache. +echo $ac_n "checking for X""... $ac_c" 1>&6 +echo "configure:1989: checking for X" >&5 + +# Check whether --with-x or --without-x was given. +if test "${with_x+set}" = set; then + withval="$with_x" + : +fi + +# $have_x is `yes', `no', `disabled', or empty when we do not yet know. +if test "x$with_x" = xno; then + # The user explicitly disabled X. + have_x=disabled +else + if test "x$x_includes" != xNONE && test "x$x_libraries" != xNONE; then + # Both variables are already set. + have_x=yes + else +if eval "test \"`echo '$''{'ac_cv_have_x'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + # One or both of the vars are not set, and there is no cached value. +ac_x_includes=NO ac_x_libraries=NO +rm -fr conftestdir +if mkdir conftestdir; then + cd conftestdir + # Make sure to not put "make" in the Imakefile rules, since we grep it out. + cat > Imakefile <<'EOF' +acfindx: + @echo 'ac_im_incroot="${INCROOT}"; ac_im_usrlibdir="${USRLIBDIR}"; ac_im_libdir="${LIBDIR}"' +EOF + if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then + # GNU make sometimes prints "make[1]: Entering...", which would confuse us. + eval `${MAKE-make} acfindx 2>/dev/null | grep -v make` + # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR. + for ac_extension in a so sl; do + if test ! -f $ac_im_usrlibdir/libX11.$ac_extension && + test -f $ac_im_libdir/libX11.$ac_extension; then + ac_im_usrlibdir=$ac_im_libdir; break + fi + done + # Screen out bogus values from the imake configuration. They are + # bogus both because they are the default anyway, and because + # using them would break gcc on systems where it needs fixed includes. + case "$ac_im_incroot" in + /usr/include) ;; + *) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes="$ac_im_incroot" ;; + esac + case "$ac_im_usrlibdir" in + /usr/lib | /lib) ;; + *) test -d "$ac_im_usrlibdir" && ac_x_libraries="$ac_im_usrlibdir" ;; + esac + fi + cd .. + rm -fr conftestdir +fi + +if test "$ac_x_includes" = NO; then + # Guess where to find include files, by looking for this one X11 .h file. + test -z "$x_direct_test_include" && x_direct_test_include=X11/Intrinsic.h + + # First, try using that file with no special directory specified. +cat > conftest.$ac_ext < +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:2056: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +if test -z "$ac_err"; then + rm -rf conftest* + # We can compile using X headers with no special include directory. +ac_x_includes= +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + # Look for the header file in a standard set of common directories. +# Check X11 before X11Rn because it is often a symlink to the current release. + for ac_dir in \ + /usr/X11/include \ + /usr/X11R6/include \ + /usr/X11R5/include \ + /usr/X11R4/include \ + \ + /usr/include/X11 \ + /usr/include/X11R6 \ + /usr/include/X11R5 \ + /usr/include/X11R4 \ + \ + /usr/local/X11/include \ + /usr/local/X11R6/include \ + /usr/local/X11R5/include \ + /usr/local/X11R4/include \ + \ + /usr/local/include/X11 \ + /usr/local/include/X11R6 \ + /usr/local/include/X11R5 \ + /usr/local/include/X11R4 \ + \ + /usr/X386/include \ + /usr/x386/include \ + /usr/XFree86/include/X11 \ + \ + /usr/include \ + /usr/local/include \ + /usr/unsupported/include \ + /usr/athena/include \ + /usr/local/x11r5/include \ + /usr/lpp/Xamples/include \ + \ + /usr/openwin/include \ + /usr/openwin/share/include \ + ; \ + do + if test -r "$ac_dir/$x_direct_test_include"; then + ac_x_includes=$ac_dir + break + fi + done +fi +rm -f conftest* +fi # $ac_x_includes = NO + +if test "$ac_x_libraries" = NO; then + # Check for the libraries. + + test -z "$x_direct_test_library" && x_direct_test_library=Xt + test -z "$x_direct_test_function" && x_direct_test_function=XtMalloc + + # See if we find them without any special options. + # Don't add to $LIBS permanently. + ac_save_LIBS="$LIBS" + LIBS="-l$x_direct_test_library $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + LIBS="$ac_save_LIBS" +# We can link X programs with no special library path. +ac_x_libraries= +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + LIBS="$ac_save_LIBS" +# First see if replacing the include by lib works. +# Check X11 before X11Rn because it is often a symlink to the current release. +for ac_dir in `echo "$ac_x_includes" | sed s/include/lib/` \ + /usr/X11/lib \ + /usr/X11R6/lib \ + /usr/X11R5/lib \ + /usr/X11R4/lib \ + \ + /usr/lib/X11 \ + /usr/lib/X11R6 \ + /usr/lib/X11R5 \ + /usr/lib/X11R4 \ + \ + /usr/local/X11/lib \ + /usr/local/X11R6/lib \ + /usr/local/X11R5/lib \ + /usr/local/X11R4/lib \ + \ + /usr/local/lib/X11 \ + /usr/local/lib/X11R6 \ + /usr/local/lib/X11R5 \ + /usr/local/lib/X11R4 \ + \ + /usr/X386/lib \ + /usr/x386/lib \ + /usr/XFree86/lib/X11 \ + \ + /usr/lib \ + /usr/local/lib \ + /usr/unsupported/lib \ + /usr/athena/lib \ + /usr/local/x11r5/lib \ + /usr/lpp/Xamples/lib \ + /lib/usr/lib/X11 \ + \ + /usr/openwin/lib \ + /usr/openwin/share/lib \ + ; \ +do + for ac_extension in a so sl; do + if test -r $ac_dir/lib${x_direct_test_library}.$ac_extension; then + ac_x_libraries=$ac_dir + break 2 + fi + done +done +fi +rm -f conftest* +fi # $ac_x_libraries = NO + +if test "$ac_x_includes" = NO || test "$ac_x_libraries" = NO; then + # Didn't find X anywhere. Cache the known absence of X. + ac_cv_have_x="have_x=no" +else + # Record where we found X for the cache. + ac_cv_have_x="have_x=yes \ + ac_x_includes=$ac_x_includes ac_x_libraries=$ac_x_libraries" +fi +fi + fi + eval "$ac_cv_have_x" +fi # $with_x != no + +if test "$have_x" != yes; then + echo "$ac_t""$have_x" 1>&6 + no_x=yes +else + # If each of the values was on the command line, it overrides each guess. + test "x$x_includes" = xNONE && x_includes=$ac_x_includes + test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries + # Update the cache value to reflect the command line values. + ac_cv_have_x="have_x=yes \ + ac_x_includes=$x_includes ac_x_libraries=$x_libraries" + echo "$ac_t""libraries $x_libraries, headers $x_includes" 1>&6 +fi + +not_really_there="" +if test "$no_x" = ""; then + if test "$x_includes" = ""; then + cat > conftest.$ac_ext < +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:2227: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +if test -z "$ac_err"; then + : +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + not_really_there="yes" +fi +rm -f conftest* + else + if test ! -r $x_includes/X11/Intrinsic.h; then + not_really_there="yes" + fi + fi +fi +if test "$no_x" = "yes" -o "$not_really_there" = "yes"; then + echo $ac_n "checking for X11 header files""... $ac_c" 1>&6 +echo "configure:2247: checking for X11 header files" >&5 + XINCLUDES="# no special path needed" + cat > conftest.$ac_ext < +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:2255: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +if test -z "$ac_err"; then + : +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + XINCLUDES="nope" +fi +rm -f conftest* + if test "$XINCLUDES" = nope; then + dirs="/usr/unsupported/include /usr/local/include /usr/X386/include /usr/include/X11R4 /usr/X11R5/include /usr/include/X11R5 /usr/openwin/include /usr/X11/include /usr/sww/include /usr/X11R6/include /usr/include/X11R6" + for i in $dirs ; do + if test -r $i/X11/Intrinsic.h; then + echo "$ac_t""$i" 1>&6 + XINCLUDES=" -I$i" + break + fi + done + fi +else + if test "$x_includes" != ""; then + XINCLUDES=-I$x_includes + else + XINCLUDES="# no special path needed" + fi +fi +if test "$XINCLUDES" = nope; then + echo "$ac_t""couldn't find any!" 1>&6 + XINCLUDES="# no include files found" +fi + +if test "$no_x" = yes; then + echo $ac_n "checking for X11 libraries""... $ac_c" 1>&6 +echo "configure:2291: checking for X11 libraries" >&5 + XLIBSW=nope + dirs="/usr/unsupported/lib /usr/local/lib /usr/X386/lib /usr/lib/X11R4 /usr/X11R5/lib /usr/lib/X11R5 /usr/X11R6/lib /usr/lib/X11R6 /usr/openwin/lib /usr/X11/lib /usr/sww/X11/lib" + for i in $dirs ; do + if test -r $i/libX11.a -o -r $i/libX11.so -o -r $i/libX11.sl; then + echo "$ac_t""$i" 1>&6 + XLIBSW="-L$i -lX11" + break + fi + done +else + if test "$x_libraries" = ""; then + XLIBSW=-lX11 + else + XLIBSW="-L$x_libraries -lX11" + fi +fi +if test "$XLIBSW" = nope ; then + echo $ac_n "checking for XCreateWindow in -lXwindow""... $ac_c" 1>&6 +echo "configure:2310: checking for XCreateWindow in -lXwindow" >&5 +ac_lib_var=`echo Xwindow'_'XCreateWindow | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lXwindow $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + XLIBSW=-lXwindow +else + echo "$ac_t""no" 1>&6 +fi + +fi +if test "$XLIBSW" = nope ; then + echo "$ac_t""couldn't find any! Using -lX11." 1>&6 + XLIBSW=-lX11 +fi + + + + +#-------------------------------------------------------------------- +# Try to locate the Tcl package +#-------------------------------------------------------------------- + +TCLINCLUDE=nope +TCLLIB=nope +TCLPACKAGE=nope + +# Check whether --with-tcl or --without-tcl was given. +if test "${with_tcl+set}" = set; then + withval="$with_tcl" + + TCLPACKAGE="$withval" +else + TCLPACKAGE=nope +fi + +# Check whether --with-tclincl or --without-tclincl was given. +if test "${with_tclincl+set}" = set; then + withval="$with_tclincl" + + TCLINCLUDE="-I$withval" +else + TCLINCLUDE=nope +fi + +# Check whether --with-tcllib or --without-tcllib was given. +if test "${with_tcllib+set}" = set; then + withval="$with_tcllib" + + TCLLIB="-L$withval" +else + TCLLIB=nope +fi + + +if test "$TCLINCLUDE" = nope; then + if test "$TCLPACKAGE" != nope; then + TCLINCLUDE="-I$TCLPACKAGE/include" + fi +fi + +if test "$TCLLIB" = nope; then + if test "$TCLPACKAGE" != nope; then + TCLLIB="-L$TCLPACKAGE/lib" + fi +fi + +echo $ac_n "checking for Tcl header files""... $ac_c" 1>&6 +echo "configure:2407: checking for Tcl header files" >&5 +if test "$TCLINCLUDE" = nope; then +cat > conftest.$ac_ext < +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:2415: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +if test -z "$ac_err"; then + : +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + TCLINCLUDE="nope" +fi +rm -f conftest* +if test "$TCLINCLUDE" = nope; then + dirs="$prefix/include /usr/local/include /usr/include /opt/local/include /home/sci/local/include" + for i in $dirs ; do + if test -r $i/tcl.h; then + echo "$ac_t""$i" 1>&6 + TCLINCLUDE="-I$i" + break + fi + done +fi +if test "$TCLINCLUDE" = nope; then + TCLINCLUDE="-I/usr/local/include" + echo "$ac_t""not found" 1>&6 +fi +else + echo "$ac_t""$TCLINCLUDE" 1>&6 +fi + +echo $ac_n "checking for Tcl library""... $ac_c" 1>&6 +echo "configure:2446: checking for Tcl library" >&5 +if test "$TCLLIB" = nope; then +dirs="$prefix/lib /usr/local/lib /usr/lib /opt/local/lib /home/sci/local/lib" +for i in $dirs ; do + if test -r $i/libtcl.a; then + echo "$ac_t""$i" 1>&6 + TCLLIB="-L$i" + break + fi +done +if test "$TCLLIB" = nope; then + echo "$ac_t""not found" 1>&6 + TCLLIB="-L/usr/local/lib" +fi +else +echo "$ac_t""$TCLLIB" 1>&6 +fi + + + + +#---------------------------------------------------------------- +# Look for Python +#---------------------------------------------------------------- + +PYINCLUDE=nope +PYLIB=nope +PYPACKAGE=nope +PYLINK="-lModules -lPython -lObjects -lParser" + +# Check whether --with-py or --without-py was given. +if test "${with_py+set}" = set; then + withval="$with_py" + + PYPACKAGE="$withval" +else + PYPACKAGE=nope +fi + +# Check whether --with-pyincl or --without-pyincl was given. +if test "${with_pyincl+set}" = set; then + withval="$with_pyincl" + + PYINCLUDE="$withval" +else + PYINCLUDE=nope +fi + +# Check whether --with-pylib or --without-pylib was given. +if test "${with_pylib+set}" = set; then + withval="$with_pylib" + + PYLIB="$withval" +else + PYLIB=nope +fi + + +if test "$PYINCLUDE" = nope; then + if test "$PYPACKAGE" != nope; then + PYINCLUDE="$PYPACKAGE/include" + fi +fi + +if test "$PYLIB" = nope; then + if test "$PYPACKAGE" != nope; then + PYLIB="$PYPACKAGE/lib" + fi +fi + + +echo $ac_n "checking for Python header files""... $ac_c" 1>&6 +echo "configure:2518: checking for Python header files" >&5 + +dirs="$PYINCLUDE $PYINCLUDE/python1.5 $PYINCLUDE/python1.4 $PYINCLUDE/Py $prefix/include/python1.5 $prefix/include/python1.4 /usr/local/include/python1.5 /usr/include/python1.5 /usr/local/include/python1.4 /usr/include/python1.4 $prefix/include/Py /usr/local/include/Py /usr/include/Py" +for i in $dirs ; do + if test -r $i/Python.h; then + echo "$ac_t""$i" 1>&6 + PYINCLUDE="-I$i" + break + fi +done +if test "$PYINCLUDE" = nope; then + PYINCLUDE="-I/usr/local/include/Py" + echo "$ac_t""not found" 1>&6 +fi + +echo $ac_n "checking for Python library""... $ac_c" 1>&6 +echo "configure:2534: checking for Python library" >&5 +dirs="$PYLIB $PYLIB/config $PYLIB/lib $PYLIB/python1.5/config $PYLIB/python1.4/config $PYLIB/python/lib $prefix/lib/python1.5/config $prefix/lib/python1.4/config /usr/local/lib/python1.5/config /usr/lib/python1.5 /usr/local/lib/python1.4/config /usr/lib/python1.4 $prefix/lib/python/lib /usr/local/lib/python/lib /usr/lib/python/lib /home/sci/local/lib/python" + +for i in $dirs ; do + if test -r $i/libpython1.5.a; then + echo "$ac_t""$i" 1>&6 + PYLIB="$i" + PYINCLUDE="$PYINCLUDE -I$i" + PYLINK="-lpython1.5" + break + fi + if test -r $i/libPython.a; then + echo "$ac_t""$i" 1>&6 + PYLIB="$i" + PYINCLUDE="$PYINCLUDE -I$i" + break + fi +done +if test "$PYLIB" = nope; then + echo "$ac_t""not found" 1>&6 + PYLIB="/usr/local/lib/python/lib" + PYINCLUDE="$PYINCLUDE -I$PYLIB" +fi + + + + + +#---------------------------------------------------------------- +# Look for Perl5 +#---------------------------------------------------------------- + +PERLBIN=nope + +# Check whether --with-perl5 or --without-perl5 was given. +if test "${with_perl5+set}" = set; then + withval="$with_perl5" + + PERLBIN="$withval" +else + PERLBIN=nope +fi + + +# First figure out what the name of Perl5 is + +if test "$PERLBIN" = nope; then +for ac_prog in perl5.004 perl5.003 perl5.002 perl5.001 perl5 perl +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 $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:2586: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_PERL'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$PERL"; then + ac_cv_prog_PERL="$PERL" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_PERL="$ac_prog" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +PERL="$ac_cv_prog_PERL" +if test -n "$PERL"; then + echo "$ac_t""$PERL" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +test -n "$PERL" && break +done +test -n "$PERL" || PERL="nope" + +else +PERL="$PERLBIN" +fi +echo $ac_n "checking for Perl5 header files""... $ac_c" 1>&6 +echo "configure:2620: checking for Perl5 header files" >&5 +if test "$PERL" != nope; then + PERL5DIR=`($PERL -e 'use Config; print $Config{archlib};') 2>/dev/null` + if test "$PERL5DIR" != ""; then + dirs="$PERL5DIR $PERL5DIR/CORE" + PERL5EXT=none + for i in $dirs; do + if test -r $i/perl.h; then + echo "$ac_t""$i" 1>&6 + PERL5EXT="$i" + break; + fi + done + if test "$PERL5EXT" = none; then + PERL5EXT="$PERL5DIR/CORE" + echo "$ac_t""could not locate perl.h...using $PERL5EXT" 1>&6 + fi + else + echo "$ac_t""unable to determine perl5 configuration" 1>&6 + PERL5EXT=$PERL5DIR + fi + else + echo "$ac_t""could not figure out how to run perl5" 1>&6 + PERL5EXT="/usr/local/lib/perl/archname/5.003/CORE" + fi + + + +ROOT_DIR=`pwd` + +subdirs="Source/SWILL Source/DOH" + + +trap '' 1 2 15 +cat > confcache <<\EOF +# 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. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# 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. +(set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +cat > conftest.defs <<\EOF +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g +s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g +s%\[%\\&%g +s%\]%\\&%g +s%\$%$$%g +EOF +DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` +rm -f conftest.defs + + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS </dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.13" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir +ac_given_INSTALL="$INSTALL" + +trap 'rm -fr `echo "Makefile Source/Makefile Source/Swig/Makefile + Source/Preprocessor/Makefile Source/SWIG1.1/Makefile + Source/Modules1.1/Makefile Source/LParse/Makefile + Source/Experiment/Makefile Source/Swim/Makefile Examples/Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS < conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@SHELL@%$SHELL%g +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@FFLAGS@%$FFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g +s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g +s%@INSTALL_DATA@%$INSTALL_DATA%g +s%@PACKAGE@%$PACKAGE%g +s%@VERSION@%$VERSION%g +s%@ACLOCAL@%$ACLOCAL%g +s%@AUTOCONF@%$AUTOCONF%g +s%@AUTOMAKE@%$AUTOMAKE%g +s%@AUTOHEADER@%$AUTOHEADER%g +s%@MAKEINFO@%$MAKEINFO%g +s%@SET_MAKE@%$SET_MAKE%g +s%@MACHDEP@%$MACHDEP%g +s%@CC@%$CC%g +s%@CXX@%$CXX%g +s%@RANLIB@%$RANLIB%g +s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g +s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g +s%@MAINT@%$MAINT%g +s%@AR@%$AR%g +s%@CPP@%$CPP%g +s%@SO@%$SO%g +s%@LDSHARED@%$LDSHARED%g +s%@CCSHARED@%$CCSHARED%g +s%@YACC@%$YACC%g +s%@YFLAGS@%$YFLAGS%g +s%@RPATH@%$RPATH%g +s%@LIBM@%$LIBM%g +s%@LIBCRYPT@%$LIBCRYPT%g +s%@LIBC@%$LIBC%g +s%@XINCLUDES@%$XINCLUDES%g +s%@XLIBSW@%$XLIBSW%g +s%@TCLINCLUDE@%$TCLINCLUDE%g +s%@TCLLIB@%$TCLLIB%g +s%@PYINCLUDE@%$PYINCLUDE%g +s%@PYLIB@%$PYLIB%g +s%@PYLINK@%$PYLINK%g +s%@PERL@%$PERL%g +s%@PERL5EXT@%$PERL5EXT%g +s%@ROOT_DIR@%$ROOT_DIR%g +s%@subdirs@%$subdirs%g + +CEOF +EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +s%@INSTALL@%$INSTALL%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +EOF +cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF + +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + +if test "$no_recursion" != yes; then + + # Remove --cache-file and --srcdir arguments so they do not pile up. + ac_sub_configure_args= + ac_prev= + for ac_arg in $ac_configure_args; do + if test -n "$ac_prev"; then + ac_prev= + continue + fi + case "$ac_arg" in + -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=*) + ;; + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + ;; + *) ac_sub_configure_args="$ac_sub_configure_args $ac_arg" ;; + esac + done + + for ac_config_dir in Source/SWILL Source/DOH; do + + # Do not complain, so a configure script can configure whichever + # parts of a large source tree are present. + if test ! -d $srcdir/$ac_config_dir; then + continue + fi + + echo configuring in $ac_config_dir + + case "$srcdir" in + .) ;; + *) + if test -d ./$ac_config_dir || mkdir ./$ac_config_dir; then :; + else + { echo "configure: error: can not create `pwd`/$ac_config_dir" 1>&2; exit 1; } + fi + ;; + esac + + ac_popdir=`pwd` + cd $ac_config_dir + + # A "../" for each directory in /$ac_config_dir. + ac_dots=`echo $ac_config_dir|sed -e 's%^\./%%' -e 's%[^/]$%&/%' -e 's%[^/]*/%../%g'` + + case "$srcdir" in + .) # No --srcdir option. We are building in place. + ac_sub_srcdir=$srcdir ;; + /*) # Absolute path. + ac_sub_srcdir=$srcdir/$ac_config_dir ;; + *) # Relative path. + ac_sub_srcdir=$ac_dots$srcdir/$ac_config_dir ;; + esac + + # Check for guested configure; otherwise get Cygnus style configure. + if test -f $ac_sub_srcdir/configure; then + ac_sub_configure=$ac_sub_srcdir/configure + elif test -f $ac_sub_srcdir/configure.in; then + ac_sub_configure=$ac_configure + else + echo "configure: warning: no configuration information is in $ac_config_dir" 1>&2 + ac_sub_configure= + fi + + # The recursion is here. + if test -n "$ac_sub_configure"; then + + # Make the cache file name correct relative to the subdirectory. + case "$cache_file" in + /*) ac_sub_cache_file=$cache_file ;; + *) # Relative path. + ac_sub_cache_file="$ac_dots$cache_file" ;; + esac + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + + echo "running ${CONFIG_SHELL-/bin/sh} $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_sub_srcdir" + # The eval makes quoting arguments work. + if eval ${CONFIG_SHELL-/bin/sh} $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_sub_srcdir + then : + else + { echo "configure: error: $ac_sub_configure failed for $ac_config_dir" 1>&2; exit 1; } + fi + fi + + cd $ac_popdir + done +fi + diff --git a/configure.in b/configure.in index 7c08f2fb5..10819d661 100644 --- a/configure.in +++ b/configure.in @@ -1,6 +1,7 @@ dnl Process this file with autoconf to produce a configure script. AC_INIT(Source/Swig/swig.h) -AC_PREREQ(2.0) +AM_INIT_AUTOMAKE([swig], 2.0, nosubst) +AC_PREREQ(2.13) # Set name for machine-dependent library files AC_SUBST(MACHDEP) @@ -35,6 +36,9 @@ AC_PROG_CC AC_PROG_CXX AC_PROG_RANLIB +dnl Initialize maintainer mode +AM_MAINTAINER_MODE + dnl Checks for programs. AC_SUBST(AR) @@ -123,15 +127,9 @@ then fi AC_MSG_RESULT($CCSHARED) -AC_ARG_WITH(yacc,[ --without-yacc Try to compile without yacc/bison], [ - YACC="cp parser.cxx.no y.tab.c; cp parser.h.no y.tab.h" - AC_SUBST(YACC) - YACCFLAGS="" - AC_SUBST(YACCFLAGS) -], [ AC_PROG_YACC - YACCFLAGS="-d parser.y" - AC_SUBST(YACCFLAGS) ]) - +AC_PROG_YACC +YFLAGS=-d +AC_SUBST(YFLAGS) # RPATH is the path used to look for shared library files. AC_MSG_CHECKING(RPATH) @@ -453,39 +451,9 @@ AC_SUBST(PERL5EXT) AC_SUBST(ROOT_DIR)ROOT_DIR=`pwd` -IMPORTED_DIRS="Source/SWILL/ Source/DOH/" +AC_CONFIG_SUBDIRS(Source/SWILL Source/DOH) -# execute configure for our imported directories -for dir in $IMPORTED_DIRS; do - if test -d $dir; then - echo Configuring in $dir -- $0 $ac_configure_args - cd $dir - # re-autoconf if necessary - if test ! -x configure; then $AUTOCONF; fi - if test configure -ot configure.in; then $AUTOCONF; fi - if test ! -f config.cache; then cp ../../config.cache .; fi - $0 $ac_configure_args - cd ../../ - fi -done - -AC_OUTPUT(Makefile Source/Swig/Makefile +AC_OUTPUT(Makefile Source/Makefile Source/Swig/Makefile Source/Preprocessor/Makefile Source/SWIG1.1/Makefile Source/Modules1.1/Makefile Source/LParse/Makefile - Source/Experiment/Makefile Examples/Makefile, [ - -# execute config.status for DOH and for SWILL, our imported directories -for dir in $IMPORTED_DIRS; do - if test -d $dir; then - echo $0: Entering directory $dir - cd $dir - $0 "$@" - echo $0: Leaving directory $dir - cd ../../ - fi -done -], -[ -AUTOCONF=$AUTOCONF -IMPORTED_DIRS="$IMPORTED_DIRS" -]) + Source/Experiment/Makefile Source/Swim/Makefile Examples/Makefile) diff --git a/missing b/missing new file mode 100755 index 000000000..7789652e8 --- /dev/null +++ b/missing @@ -0,0 +1,190 @@ +#! /bin/sh +# Common stub for a few missing GNU programs while installing. +# Copyright (C) 1996, 1997 Free Software Foundation, Inc. +# Franc,ois 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., 59 Temple Place - Suite 330, Boston, MA +# 02111-1307, USA. + +if test $# -eq 0; then + echo 1>&2 "Try \`$0 --help' for more information" + exit 1 +fi + +case "$1" in + + -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 + +Supported PROGRAM values: + aclocal touch file \`aclocal.m4' + autoconf touch file \`configure' + autoheader touch file \`config.h.in' + 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 + lex create \`lex.yy.c', if possible, from existing .c + makeinfo touch the output file + yacc create \`y.tab.[ch]', if possible, from existing .[ch]" + ;; + + -v|--v|--ve|--ver|--vers|--versi|--versio|--version) + echo "missing - GNU libit 0.0" + ;; + + -*) + echo 1>&2 "$0: Unknown \`$1' option" + echo 1>&2 "Try \`$0 --help' for more information" + exit 1 + ;; + + aclocal) + echo 1>&2 "\ +WARNING: \`$1' is missing on your system. You should only need it if + you modified \`acinclude.m4' or \`configure.in'. 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 missing on your system. You should only need it if + you modified \`configure.in'. 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 missing on your system. You should only need it if + you modified \`acconfig.h' or \`configure.in'. 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.in` + 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 missing on your system. You should only need it if + you modified \`Makefile.am', \`acinclude.m4' or \`configure.in'. + 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 + ;; + + bison|yacc) + echo 1>&2 "\ +WARNING: \`$1' is missing on your system. 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 [ $# -ne 1 ]; then + eval LASTARG="\${$#}" + case "$LASTARG" in + *.y) + SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` + if [ -f "$SRCFILE" ]; then + cp "$SRCFILE" y.tab.c + fi + SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` + if [ -f "$SRCFILE" ]; then + cp "$SRCFILE" y.tab.h + fi + ;; + esac + fi + if [ ! -f y.tab.h ]; then + echo >y.tab.h + fi + if [ ! -f y.tab.c ]; then + echo 'main() { return 0; }' >y.tab.c + fi + ;; + + lex|flex) + echo 1>&2 "\ +WARNING: \`$1' is missing on your system. 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 [ $# -ne 1 ]; then + eval LASTARG="\${$#}" + case "$LASTARG" in + *.l) + SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` + if [ -f "$SRCFILE" ]; then + cp "$SRCFILE" lex.yy.c + fi + ;; + esac + fi + if [ ! -f lex.yy.c ]; then + echo 'main() { return 0; }' >lex.yy.c + fi + ;; + + makeinfo) + echo 1>&2 "\ +WARNING: \`$1' is missing on your system. 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." + file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` + if test -z "$file"; then + file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` + file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file` + fi + touch $file + ;; + + *) + echo 1>&2 "\ +WARNING: \`$1' is needed, and you do not seem to have it handy on your + system. 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 prerequirements 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 diff --git a/mkinstalldirs b/mkinstalldirs new file mode 100755 index 000000000..6b3b5fc5d --- /dev/null +++ b/mkinstalldirs @@ -0,0 +1,40 @@ +#! /bin/sh +# mkinstalldirs --- make directory hierarchy +# Author: Noah Friedman +# Created: 1993-05-16 +# Public domain + +# $Id$ + +errstatus=0 + +for file +do + set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` + shift + + pathcomp= + for d + do + pathcomp="$pathcomp$d" + case "$pathcomp" in + -* ) pathcomp=./$pathcomp ;; + esac + + if test ! -d "$pathcomp"; then + echo "mkdir $pathcomp" + + mkdir "$pathcomp" || lasterr=$? + + if test ! -d "$pathcomp"; then + errstatus=$lasterr + fi + fi + + pathcomp="$pathcomp/" + done +done + +exit $errstatus + +# mkinstalldirs ends here