[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[mig] 01/02: Imported Upstream version 1.5
From: |
Samuel Thibault |
Subject: |
[mig] 01/02: Imported Upstream version 1.5 |
Date: |
Fri, 17 Apr 2015 02:00:55 +0000 |
This is an automated email from the git hooks/post-receive script.
sthibault pushed a commit to branch master
in repository mig.
commit a1120f72097cd1057cd5297e9b68a407e4686b6d
Author: Samuel Thibault <address@hidden>
Date: Thu Apr 16 23:35:06 2015 +0000
Imported Upstream version 1.5
---
ChangeLog | 141 ++++
INSTALL | 4 +-
Makefile.am | 2 +-
Makefile.in | 24 +-
NEWS | 40 +-
aclocal.m4 | 128 +++-
build-aux/compile | 347 +++++++++
build-aux/config.guess | 192 +----
build-aux/config.sub | 30 +-
build-aux/missing | 4 +-
build-aux/ylwrap | 26 +-
configure | 133 +++-
configure.ac | 8 +-
global.c | 1 +
global.h | 1 +
header.c | 11 +
lexxer.c | 1064 ++++++++++++++-------------
lexxer.l | 4 +
parser.c | 1900 ++++++++++++++++++++++--------------------------
parser.h | 1 +
parser.y | 17 +
routine.c | 4 +-
server.c | 148 +++-
type.c | 10 +-
type.h | 2 +
user.c | 41 +-
utils.c | 17 +-
write.h | 1 +
28 files changed, 2446 insertions(+), 1855 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index e0b29d4..77306dd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,144 @@
+2015-04-10 Thomas Schwinge <address@hidden>
+
+ GNU MIG 1.5.
+ * configure.ac (AC_INIT): Set version to 1.5.
+ * NEWS: Finalize for 1.5.
+
+2015-02-15 Justus Winter <address@hidden>
+
+ Do not generate code dereferencing type-punned pointers
+ For variable-length arrays, up to 2048 bytes are transmitted inline.
+ If the array is larger, the data is transmitted out-of-line, and a
+ pointer to a vm_allocated region is stored at the beginning of the
+ array.
+
+ Previously, the generated code casted the field. Use a union instead.
+
+ This fixes the gcc warning `dereferencing type-punned pointer will
+ break strict-aliasing rules [-Wstrict-aliasing]'.
+
+ * global.c (OOLPostfix): New variable.
+ * global.h (OOLPostfix): New declaration.
+ * server.c (WriteServerCallArg): Avoid cast.
+ (WriteDestroyArg): Likewise.
+ (WritePackArgValue): Likewise.
+ (WritePackArg): Likewise.
+ * user.c (WriteExtractArgValue): Likewise.
+ * utils.c (WriteFieldDeclPrim): Generate a union with an additional
+ pointer field for variable-length arrays.
+
+2015-02-06 David Michael <address@hidden>
+
+ Test the configured yacc program
+ * configure.ac (yacc_is_bison): Test the configured yacc program.
+
+2015-02-06 Yves-Gael Cheny ( irc hurdman_begin ) <address@hidden>
+
+ Check that yacc is provided by bison
+ * configure.ac: Check that yacc --version contains bison.
+
+2014-12-01 Justus Winter <address@hidden>
+
+ Add static branch prediction to type checks
+ Annotate generated type checks with static branch prediction
+ optimizing well-formed messages.
+
+ * utils.c (WriteBogusDefines): Define `mig_unlikely' if not defined.
+ * server.c: Use `mig_unlikely' in generated type checks.
+ * user.c: Likewise.
+
+2014-11-06 Justus Winter <address@hidden>
+
+ Provide default implementations for server functions
+ By providing default implementations, servers can provide partial
+ implementations of protocols without having to stub out functions.
+
+ * server.c (WriteDefaultRoutine): New function.
+ (WriteRoutine): Call WriteDefaultRoutine.
+
+2014-10-10 Justus Winter <address@hidden>
+
+ Add support for protected payloads
+ Add support for protected payloads. The new `intranpayload' option can
+ be used to specify a translation function translating payloads to
+ values of the translated type. This function will be used instead of
+ the `intran' function to to look up the receiving object of a message
+ in a server.
+
+ This makes it easy to use the protected payloads introduced in GNU
+ Mach 1.5.
+
+ An inTransPayload function translates payloads to objects, like an
+ inTrans function translates from port names to objects. Generate code
+ in the server routine to optimize lookups to the receiver of the
+ message.
+
+ Additionally, if no intran function is provided, but an intranpayload
+ function is, it is expected to translate from payloads to port names.
+ This is used to preserve the semantics in case the server routine
+ expects a port name.
+
+ * NEWS: Add item.
+ * lexxer.l: Emit syInTranPayload.
+ * parser.h: Define syInTranPayload.
+ * parser.y (TransTypeSpec): Handle syInTranPayload.
+ * type.h (struct ipc_type): Add itInTransPayload.
+ * server.c (WriteExtractArgValue): If a payload-aware intrans function
+ has been specified, use it to get a reference to the receiving object.
+ * routine.c (rtAugmentArgKind): Force the use of a local variable if a
+ payload-aware translate-in function is defined.
+
+2014-09-24 Justus Winter <address@hidden>
+
+ Update NEWS file
+
+2014-02-21 Justus Winter <address@hidden>
+
+ Fix variable-sized c strings
+ Previously, the terminating zero of variable-sized c strings was only
+ included when copying the message if the length of the string was not
+ a multiple of four. mig_strncpy returns the length of the string
+ excluding the terminating zero. Fix this by properly accounting for
+ the byte for the terminating zero in the array length.
+
+ * server.c (WritePackArgValue): Account for the terminating zero in
+ the array length.
+ * user.c (WritePackArgValue): Likewise.
+
+2013-12-16 Justus Winter <address@hidden>
+
+ Generate a x_server_routine in the sheader so it can be inlined
+ * header.c (WriteServerHeader): Emit a x_server_routine that can be
+ inlined.
+ * server.c (WriteEpilog): Export the x_routines array so it can be
+ used from the inlined x_server_routine.
+
+ Move the generation of x_server_routine function into a function
+ * server.c (WriteSubsystemServerRoutine): New function.
+ (WriteEpilog): Adjust accordingly.
+ * write.h (WriteSubsystemServerRoutine): New declaration.
+
+ Clean up generated sources
+ * Makefile (CLEANFILES): Add generated source files lexxer.c and
parser.c.
+
+ Avoid a compiler warning in WriteDefines
+ * header.c (WriteDefines): Avoid warning about unused parameter.
+
+2013-12-16 Justus Winter <address@hidden>
+
+ Advise flex not to generate the input function
+ This avoids a warning about input being unused.
+
+ * lexxer.l: Define YY_NO_INPUT.
+
+2013-12-15 Marin Ramesa <address@hidden>
+
+ mig/server.c (WriteVarDecls): quiet GCC warning about set but unused
variable
+ This is again that code where variable is assigned to itself, but
+ I don't know how to fix this the other way.
+
+ * server.c (WriteVarDecls) (msgh_simple): Assign to itself.
+
2013-09-27 Thomas Schwinge <address@hidden>
GNU MIG 1.4.
diff --git a/INSTALL b/INSTALL
index 007e939..2099840 100644
--- a/INSTALL
+++ b/INSTALL
@@ -12,8 +12,8 @@ without warranty of any kind.
Basic Installation
==================
- Briefly, the shell commands `./configure; make; make install' should
-configure, build, and install this package. The following
+ Briefly, the shell command `./configure && make && make install'
+should configure, build, and install this package. The following
more-detailed instructions are generic; see the `README' file for
instructions specific to this package. Some packages provide this
`INSTALL' file but do not implement all of the features documented
diff --git a/Makefile.am b/Makefile.am
index 33bc768..3e6dfcf 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -5,7 +5,7 @@ bin_SCRIPTS = mig
EXTRA_DIST = gensym.awk cpu.sym
-CLEANFILES = cpu.h *.sym[co]
+CLEANFILES = cpu.h *.sym[co] lexxer.c parser.c
AWK_V = $(AWK_V_$(V))
AWK_V_ = $(AWK_V_$(AM_DEFAULT_VERBOSITY))
diff --git a/Makefile.in b/Makefile.in
index b9bd34f..1e27145 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
@@ -86,9 +86,10 @@ DIST_COMMON = INSTALL NEWS README AUTHORS ChangeLog \
$(srcdir)/Makefile.in $(srcdir)/Makefile.am \
$(top_srcdir)/configure $(am__configure_deps) $(srcdir)/mig.in \
lexxer.c parser.c $(top_srcdir)/build-aux/depcomp \
- $(top_srcdir)/build-aux/ylwrap COPYING build-aux/config.guess \
- build-aux/config.sub build-aux/depcomp build-aux/install-sh \
- build-aux/missing build-aux/ylwrap \
+ $(top_srcdir)/build-aux/ylwrap COPYING build-aux/compile \
+ build-aux/config.guess build-aux/config.sub build-aux/depcomp \
+ build-aux/install-sh build-aux/missing build-aux/ylwrap \
+ $(top_srcdir)/build-aux/compile \
$(top_srcdir)/build-aux/config.guess \
$(top_srcdir)/build-aux/config.sub \
$(top_srcdir)/build-aux/install-sh \
@@ -336,7 +337,7 @@ top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
bin_SCRIPTS = mig
EXTRA_DIST = gensym.awk cpu.sym
-CLEANFILES = cpu.h *.sym[co]
+CLEANFILES = cpu.h *.sym[co] lexxer.c parser.c
AWK_V = $(AWK_V_$(V))
AWK_V_ = $(AWK_V_$(AM_DEFAULT_VERBOSITY))
AWK_V_0 = @echo " AWK $@";
@@ -498,14 +499,14 @@ distclean-compile:
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@'
libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE)
$(depcomp) @AMDEPBACKSLASH@
address@hidden@ $(address@hidden@)$(COMPILE) -c $<
address@hidden@ $(address@hidden@)$(COMPILE) -c -o $@ $<
.c.obj:
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF
$(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@'
libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE)
$(depcomp) @AMDEPBACKSLASH@
address@hidden@ $(address@hidden@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
address@hidden@ $(address@hidden@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
.l.c:
$(AM_V_LEX)$(am__skiplex) $(SHELL) $(YLWRAP) $< $(LEX_OUTPUT_ROOT).c $@
-- $(LEXCOMPILE)
@@ -630,10 +631,16 @@ dist-xz: distdir
$(am__post_remove_distdir)
dist-tarZ: distdir
+ @echo WARNING: "Support for shar distribution archives is" \
+ "deprecated." >&2
+ @echo WARNING: "It will be removed altogether in Automake 2.0" >&2
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
$(am__post_remove_distdir)
dist-shar: distdir
+ @echo WARNING: "Support for distribution archives compressed with" \
+ "legacy program 'compress' is deprecated." >&2
+ @echo WARNING: "It will be removed altogether in Automake 2.0" >&2
shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
$(am__post_remove_distdir)
@@ -675,9 +682,10 @@ distcheck: dist
&& dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
&& am__cwd=`pwd` \
&& $(am__cd) $(distdir)/_build \
- && ../configure --srcdir=.. --prefix="$$dc_install_base" \
+ && ../configure \
$(AM_DISTCHECK_CONFIGURE_FLAGS) \
$(DISTCHECK_CONFIGURE_FLAGS) \
+ --srcdir=.. --prefix="$$dc_install_base" \
&& $(MAKE) $(AM_MAKEFLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
&& $(MAKE) $(AM_MAKEFLAGS) check \
diff --git a/NEWS b/NEWS
index 6c1bd19..087724c 100644
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,20 @@
-2013-09-27
-Version 1.4
+Version 1.5 (2015-04-10)
+
+* Add support for protected payloads. The new `intranpayload' option
+ can be used to specify a translation function translating payloads
+ to values of the translated type. This function will be used
+ instead of the `intran' function to to look up the receiving object
+ of a message in a server. This makes it easy to use the protected
+ payloads introduced in GNU Mach 1.5.
+
+* Emit `X_server_routine' functions that can be inlined reducing the
+ message dispatch overhead.
+
+* Improve support for variable-sized C strings.
+
+* Fix a warning when compiling generated files.
+
+Version 1.4 (2013-09-27)
* Don't accept the `-R' (msg_send) command line option anymore and make the
`-r' one (msg_rpc) a no-op.
@@ -17,8 +32,7 @@ Version 1.4
* Spurious deallocation of out-of-line memory has been fixed in case of an
error while processing the RPC.
-2002-08-29
-Version 1.3.1
+Version 1.3.1 (2002-08-29)
* Fix warnings when compiling generated files with GCC 3.x.
@@ -27,8 +41,7 @@ Version 1.3.1
* Alpha fixes.
-2002-03-08
-Version 1.3
+Version 1.3 (2002-03-08)
* Minor bug fixes.
@@ -39,8 +52,7 @@ Version 1.3
* The debian/ subdirectory of packaging files is now included in the
MIG source distribution.
-2001-07-07
-Version 1.2
+Version 1.2 (2001-07-07)
* New option -n to suppress default output file creation.
With -n, no output files are created except those named
@@ -63,25 +75,21 @@ Version 1.2
* Output files of C source now start by defining _GNU_SOURCE,
for compatibility with the GNU C library on GNU/Hurd.
-1999-06-22
-Version 1.1
+Version 1.1 (1999-06-22)
* First official net release.
-1999-05-23
-Version 1.0.2
+Version 1.0.2 (1999-05-23)
* Understand normal GNU --version and --help args.
* Find CPP in a more flexible fashion.
-1998-12-04
-Version 1.0.1
+Version 1.0.1 (1998-12-04)
* This release fixes a bug in the `mig' driver script that made it fail to
invoke the C preprocessor properly.
-1998-08-19
-Version 1.0
+Version 1.0 (1998-08-19)
* MIG has been split into a separate distribution to make it easier to set
up a compilation environment for GNU Mach and Hurd systems. The mig
diff --git a/aclocal.m4 b/aclocal.m4
index 2cb7ad0..89ff80a 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1,4 +1,4 @@
-# generated automatically by aclocal 1.13.3 -*- Autoconf -*-
+# generated automatically by aclocal 1.14.1 -*- Autoconf -*-
# Copyright (C) 1996-2013 Free Software Foundation, Inc.
@@ -32,10 +32,10 @@ To do so, use the procedure documented by the package,
typically 'autoreconf'.])
# generated from the m4 files accompanying Automake X.Y.
# (This private macro should not be called outside this file.)
AC_DEFUN([AM_AUTOMAKE_VERSION],
-[am__api_version='1.13'
+[am__api_version='1.14'
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
dnl require some minimum version. Point them to the right macro.
-m4_if([$1], [1.13.3], [],
+m4_if([$1], [1.14.1], [],
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
])
@@ -51,7 +51,7 @@ m4_define([_AM_AUTOCONF_VERSION], [])
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.13.3])dnl
+[AM_AUTOMAKE_VERSION([1.14.1])dnl
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
@@ -103,10 +103,9 @@ _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
# configured tree to be moved without reconfiguration.
AC_DEFUN([AM_AUX_DIR_EXPAND],
-[dnl Rely on autoconf to set up CDPATH properly.
-AC_PREREQ([2.50])dnl
-# expand $ac_aux_dir to an absolute path
-am_aux_dir=`cd $ac_aux_dir && pwd`
+[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
+# Expand $ac_aux_dir to an absolute path.
+am_aux_dir=`cd "$ac_aux_dir" && pwd`
])
# AM_CONDITIONAL -*- Autoconf -*-
@@ -418,6 +417,12 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
# 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.
+dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O.
+m4_define([AC_PROG_CC],
+m4_defn([AC_PROG_CC])
+[_AM_PROG_CC_C_O
+])
+
# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
# AM_INIT_AUTOMAKE([OPTIONS])
# -----------------------------------------------
@@ -526,6 +531,48 @@ dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see
below.
AC_CONFIG_COMMANDS_PRE(dnl
[m4_provide_if([_AM_COMPILER_EXEEXT],
[AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
+
+# POSIX will say in a future version that running "rm -f" with no argument
+# is OK; and we want to be able to make that assumption in our Makefile
+# recipes. So use an aggressive probe to check that the usage we want is
+# actually supported "in the wild" to an acceptable degree.
+# See automake bug#10828.
+# To make any issue more visible, cause the running configure to be aborted
+# by default if the 'rm' program in use doesn't match our expectations; the
+# user can still override this though.
+if rm -f && rm -fr && rm -rf; then : OK; else
+ cat >&2 <<'END'
+Oops!
+
+Your 'rm' program seems unable to run without file operands specified
+on the command line, even when the '-f' option is present. This is contrary
+to the behaviour of most rm programs out there, and not conforming with
+the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
+
+Please tell address@hidden about your system, including the value
+of your $PATH and any error possibly output before this message. This
+can help us improve future automake versions.
+
+END
+ if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
+ echo 'Configuration will proceed anyway, since you have set the' >&2
+ echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
+ echo >&2
+ else
+ cat >&2 <<'END'
+Aborting the configuration process, to ensure you take notice of the issue.
+
+You can download and install GNU coreutils to get an 'rm' implementation
+that behaves properly: <http://www.gnu.org/software/coreutils/>.
+
+If you want to complete the configuration process using your problematic
+'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
+to "yes", and re-run configure.
+
+END
+ AC_MSG_ERROR([Your 'rm' program is bad, sorry.])
+ fi
+fi
])
dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not
@@ -534,7 +581,6 @@ dnl mangled by Autoconf and run in a shell conditional
statement.
m4_define([_AC_COMPILER_EXEEXT],
m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
-
# When config.status generates a header, we must update the stamp-h file.
# This file resides in the same directory as the config header
# that is generated. The stamp files are numbered to have different names.
@@ -734,6 +780,70 @@ AC_DEFUN([_AM_SET_OPTIONS],
AC_DEFUN([_AM_IF_OPTION],
[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
+#
+# This file 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.
+
+# _AM_PROG_CC_C_O
+# ---------------
+# Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC
+# to automatically call this.
+AC_DEFUN([_AM_PROG_CC_C_O],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([compile])dnl
+AC_LANG_PUSH([C])dnl
+AC_CACHE_CHECK(
+ [whether $CC understands -c and -o together],
+ [am_cv_prog_cc_c_o],
+ [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])])
+ # Make sure it works both with $CC and with simple cc.
+ # Following AC_PROG_CC_C_O, we do the test twice because some
+ # compilers refuse to overwrite an existing .o file with -o,
+ # though they will create one.
+ am_cv_prog_cc_c_o=yes
+ for am_i in 1 2; do
+ if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \
+ && test -f conftest2.$ac_objext; then
+ : OK
+ else
+ am_cv_prog_cc_c_o=no
+ break
+ fi
+ done
+ rm -f core conftest*
+ unset am_i])
+if test "$am_cv_prog_cc_c_o" != yes; then
+ # Losing compiler, so override with the script.
+ # FIXME: It is wrong to rewrite CC.
+ # But if we don't then we get into trouble of one sort or another.
+ # A longer-term fix would be to have automake use am__CC in this case,
+ # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+ CC="$am_aux_dir/compile $CC"
+fi
+AC_LANG_POP([C])])
+
+# For backward compatibility.
+AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
+
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
+#
+# This file 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.
+
+# AM_RUN_LOG(COMMAND)
+# -------------------
+# Run COMMAND, save the exit status in ac_status, and log it.
+# (This has been adapted from Autoconf's _AC_RUN_LOG macro.)
+AC_DEFUN([AM_RUN_LOG],
+[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD
+ ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+ (exit $ac_status); }])
+
# Check to make sure that the build environment is sane. -*- Autoconf -*-
# Copyright (C) 1996-2013 Free Software Foundation, Inc.
diff --git a/build-aux/compile b/build-aux/compile
new file mode 100755
index 0000000..531136b
--- /dev/null
+++ b/build-aux/compile
@@ -0,0 +1,347 @@
+#! /bin/sh
+# Wrapper for compilers which do not understand '-c -o'.
+
+scriptversion=2012-10-14.11; # UTC
+
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
+# Written by Tom Tromey <address@hidden>.
+#
+# 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, see <http://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# This file is maintained in Automake, please report
+# bugs to <address@hidden> or send patches to
+# <address@hidden>.
+
+nl='
+'
+
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent tools from complaining about whitespace usage.
+IFS=" "" $nl"
+
+file_conv=
+
+# func_file_conv build_file lazy
+# Convert a $build file to $host form and store it in $file
+# Currently only supports Windows hosts. If the determined conversion
+# type is listed in (the comma separated) LAZY, no conversion will
+# take place.
+func_file_conv ()
+{
+ file=$1
+ case $file in
+ / | /[!/]*) # absolute file, and not a UNC file
+ if test -z "$file_conv"; then
+ # lazily determine how to convert abs files
+ case `uname -s` in
+ MINGW*)
+ file_conv=mingw
+ ;;
+ CYGWIN*)
+ file_conv=cygwin
+ ;;
+ *)
+ file_conv=wine
+ ;;
+ esac
+ fi
+ case $file_conv/,$2, in
+ *,$file_conv,*)
+ ;;
+ mingw/*)
+ file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
+ ;;
+ cygwin/*)
+ file=`cygpath -m "$file" || echo "$file"`
+ ;;
+ wine/*)
+ file=`winepath -w "$file" || echo "$file"`
+ ;;
+ esac
+ ;;
+ esac
+}
+
+# func_cl_dashL linkdir
+# Make cl look for libraries in LINKDIR
+func_cl_dashL ()
+{
+ func_file_conv "$1"
+ if test -z "$lib_path"; then
+ lib_path=$file
+ else
+ lib_path="$lib_path;$file"
+ fi
+ linker_opts="$linker_opts -LIBPATH:$file"
+}
+
+# func_cl_dashl library
+# Do a library search-path lookup for cl
+func_cl_dashl ()
+{
+ lib=$1
+ found=no
+ save_IFS=$IFS
+ IFS=';'
+ for dir in $lib_path $LIB
+ do
+ IFS=$save_IFS
+ if $shared && test -f "$dir/$lib.dll.lib"; then
+ found=yes
+ lib=$dir/$lib.dll.lib
+ break
+ fi
+ if test -f "$dir/$lib.lib"; then
+ found=yes
+ lib=$dir/$lib.lib
+ break
+ fi
+ if test -f "$dir/lib$lib.a"; then
+ found=yes
+ lib=$dir/lib$lib.a
+ break
+ fi
+ done
+ IFS=$save_IFS
+
+ if test "$found" != yes; then
+ lib=$lib.lib
+ fi
+}
+
+# func_cl_wrapper cl arg...
+# Adjust compile command to suit cl
+func_cl_wrapper ()
+{
+ # Assume a capable shell
+ lib_path=
+ shared=:
+ linker_opts=
+ for arg
+ do
+ if test -n "$eat"; then
+ eat=
+ else
+ case $1 in
+ -o)
+ # configure might choose to run compile as 'compile cc -o foo foo.c'.
+ eat=1
+ case $2 in
+ *.o | *.[oO][bB][jJ])
+ func_file_conv "$2"
+ set x "$@" -Fo"$file"
+ shift
+ ;;
+ *)
+ func_file_conv "$2"
+ set x "$@" -Fe"$file"
+ shift
+ ;;
+ esac
+ ;;
+ -I)
+ eat=1
+ func_file_conv "$2" mingw
+ set x "$@" -I"$file"
+ shift
+ ;;
+ -I*)
+ func_file_conv "${1#-I}" mingw
+ set x "$@" -I"$file"
+ shift
+ ;;
+ -l)
+ eat=1
+ func_cl_dashl "$2"
+ set x "$@" "$lib"
+ shift
+ ;;
+ -l*)
+ func_cl_dashl "${1#-l}"
+ set x "$@" "$lib"
+ shift
+ ;;
+ -L)
+ eat=1
+ func_cl_dashL "$2"
+ ;;
+ -L*)
+ func_cl_dashL "${1#-L}"
+ ;;
+ -static)
+ shared=false
+ ;;
+ -Wl,*)
+ arg=${1#-Wl,}
+ save_ifs="$IFS"; IFS=','
+ for flag in $arg; do
+ IFS="$save_ifs"
+ linker_opts="$linker_opts $flag"
+ done
+ IFS="$save_ifs"
+ ;;
+ -Xlinker)
+ eat=1
+ linker_opts="$linker_opts $2"
+ ;;
+ -*)
+ set x "$@" "$1"
+ shift
+ ;;
+ *.cc | *.CC | *.cxx | *.CXX | *.[cC]++)
+ func_file_conv "$1"
+ set x "$@" -Tp"$file"
+ shift
+ ;;
+ *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO])
+ func_file_conv "$1" mingw
+ set x "$@" "$file"
+ shift
+ ;;
+ *)
+ set x "$@" "$1"
+ shift
+ ;;
+ esac
+ fi
+ shift
+ done
+ if test -n "$linker_opts"; then
+ linker_opts="-link$linker_opts"
+ fi
+ exec "$@" $linker_opts
+ exit 1
+}
+
+eat=
+
+case $1 in
+ '')
+ echo "$0: No command. Try '$0 --help' for more information." 1>&2
+ exit 1;
+ ;;
+ -h | --h*)
+ cat <<\EOF
+Usage: compile [--help] [--version] PROGRAM [ARGS]
+
+Wrapper for compilers which do not understand '-c -o'.
+Remove '-o dest.o' from ARGS, run PROGRAM with the remaining
+arguments, and rename the output as expected.
+
+If you are trying to build a whole package this is not the
+right script to run: please start by reading the file 'INSTALL'.
+
+Report bugs to <address@hidden>.
+EOF
+ exit $?
+ ;;
+ -v | --v*)
+ echo "compile $scriptversion"
+ exit $?
+ ;;
+ cl | *[/\\]cl | cl.exe | *[/\\]cl.exe )
+ func_cl_wrapper "$@" # Doesn't return...
+ ;;
+esac
+
+ofile=
+cfile=
+
+for arg
+do
+ if test -n "$eat"; then
+ eat=
+ else
+ case $1 in
+ -o)
+ # configure might choose to run compile as 'compile cc -o foo foo.c'.
+ # So we strip '-o arg' only if arg is an object.
+ eat=1
+ case $2 in
+ *.o | *.obj)
+ ofile=$2
+ ;;
+ *)
+ set x "$@" -o "$2"
+ shift
+ ;;
+ esac
+ ;;
+ *.c)
+ cfile=$1
+ set x "$@" "$1"
+ shift
+ ;;
+ *)
+ set x "$@" "$1"
+ shift
+ ;;
+ esac
+ fi
+ shift
+done
+
+if test -z "$ofile" || test -z "$cfile"; then
+ # If no '-o' option was seen then we might have been invoked from a
+ # pattern rule where we don't need one. That is ok -- this is a
+ # normal compilation that the losing compiler can handle. If no
+ # '.c' file was seen then we are probably linking. That is also
+ # ok.
+ exec "$@"
+fi
+
+# Name of file we expect compiler to create.
+cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
+
+# Create the lock directory.
+# Note: use '[/\\:.-]' here to ensure that we don't use the same name
+# that we are using for the .o file. Also, base the name on the expected
+# object file name, since that is what matters with a parallel build.
+lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
+while true; do
+ if mkdir "$lockdir" >/dev/null 2>&1; then
+ break
+ fi
+ sleep 1
+done
+# FIXME: race condition here if user kills between mkdir and trap.
+trap "rmdir '$lockdir'; exit 1" 1 2 15
+
+# Run the compile.
+"$@"
+ret=$?
+
+if test -f "$cofile"; then
+ test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
+elif test -f "${cofile}bj"; then
+ test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
+fi
+
+rmdir "$lockdir"
+exit $ret
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/build-aux/config.guess b/build-aux/config.guess
index b79252d..1f5c50c 100755
--- a/build-aux/config.guess
+++ b/build-aux/config.guess
@@ -1,8 +1,8 @@
#! /bin/sh
# Attempt to guess a canonical system name.
-# Copyright 1992-2013 Free Software Foundation, Inc.
+# Copyright 1992-2014 Free Software Foundation, Inc.
-timestamp='2013-06-10'
+timestamp='2014-03-23'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -50,7 +50,7 @@ version="\
GNU config.guess ($timestamp)
Originally written by Per Bothner.
-Copyright 1992-2013 Free Software Foundation, Inc.
+Copyright 1992-2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -149,7 +149,7 @@ Linux|GNU|GNU/*)
LIBC=gnu
#endif
EOF
- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's,
,,g'`
;;
esac
@@ -826,7 +826,7 @@ EOF
*:MINGW*:*)
echo ${UNAME_MACHINE}-pc-mingw32
exit ;;
- i*:MSYS*:*)
+ *:MSYS*:*)
echo ${UNAME_MACHINE}-pc-msys
exit ;;
i*:windows32*:*)
@@ -969,10 +969,10 @@ EOF
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
;;
- or1k:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ openrisc*:Linux:*:*)
+ echo or1k-unknown-linux-${LIBC}
exit ;;
- or32:Linux:*:*)
+ or32:Linux:*:* | or1k*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
padre:Linux:*:*)
@@ -1260,16 +1260,26 @@ EOF
if test "$UNAME_PROCESSOR" = unknown ; then
UNAME_PROCESSOR=powerpc
fi
- if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
- if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
- (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
- grep IS_64BIT_ARCH >/dev/null
- then
- case $UNAME_PROCESSOR in
- i386) UNAME_PROCESSOR=x86_64 ;;
- powerpc) UNAME_PROCESSOR=powerpc64 ;;
- esac
+ if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
+ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+ if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif')
| \
+ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+ grep IS_64BIT_ARCH >/dev/null
+ then
+ case $UNAME_PROCESSOR in
+ i386) UNAME_PROCESSOR=x86_64 ;;
+ powerpc) UNAME_PROCESSOR=powerpc64 ;;
+ esac
+ fi
fi
+ elif test "$UNAME_PROCESSOR" = i386 ; then
+ # Avoid executing cc on OS X 10.9, as it ships with a stub
+ # that puts up a graphical alert prompting to install
+ # developer tools. Any system running Mac OS X 10.7 or
+ # later (Darwin 11 and later) is required to have a 64-bit
+ # processor. This is not true of the ARM version of Darwin
+ # that Apple uses in portable devices.
+ UNAME_PROCESSOR=x86_64
fi
echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
exit ;;
@@ -1361,154 +1371,6 @@ EOF
exit ;;
esac
-eval $set_cc_for_build
-cat >$dummy.c <<EOF
-#ifdef _SEQUENT_
-# include <sys/types.h>
-# include <sys/utsname.h>
-#endif
-main ()
-{
-#if defined (sony)
-#if defined (MIPSEB)
- /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
- I don't know.... */
- printf ("mips-sony-bsd\n"); exit (0);
-#else
-#include <sys/param.h>
- printf ("m68k-sony-newsos%s\n",
-#ifdef NEWSOS4
- "4"
-#else
- ""
-#endif
- ); exit (0);
-#endif
-#endif
-
-#if defined (__arm) && defined (__acorn) && defined (__unix)
- printf ("arm-acorn-riscix\n"); exit (0);
-#endif
-
-#if defined (hp300) && !defined (hpux)
- printf ("m68k-hp-bsd\n"); exit (0);
-#endif
-
-#if defined (NeXT)
-#if !defined (__ARCHITECTURE__)
-#define __ARCHITECTURE__ "m68k"
-#endif
- int version;
- version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
- if (version < 4)
- printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
- else
- printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
- exit (0);
-#endif
-
-#if defined (MULTIMAX) || defined (n16)
-#if defined (UMAXV)
- printf ("ns32k-encore-sysv\n"); exit (0);
-#else
-#if defined (CMU)
- printf ("ns32k-encore-mach\n"); exit (0);
-#else
- printf ("ns32k-encore-bsd\n"); exit (0);
-#endif
-#endif
-#endif
-
-#if defined (__386BSD__)
- printf ("i386-pc-bsd\n"); exit (0);
-#endif
-
-#if defined (sequent)
-#if defined (i386)
- printf ("i386-sequent-dynix\n"); exit (0);
-#endif
-#if defined (ns32000)
- printf ("ns32k-sequent-dynix\n"); exit (0);
-#endif
-#endif
-
-#if defined (_SEQUENT_)
- struct utsname un;
-
- uname(&un);
-
- if (strncmp(un.version, "V2", 2) == 0) {
- printf ("i386-sequent-ptx2\n"); exit (0);
- }
- if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
- printf ("i386-sequent-ptx1\n"); exit (0);
- }
- printf ("i386-sequent-ptx\n"); exit (0);
-
-#endif
-
-#if defined (vax)
-# if !defined (ultrix)
-# include <sys/param.h>
-# if defined (BSD)
-# if BSD == 43
- printf ("vax-dec-bsd4.3\n"); exit (0);
-# else
-# if BSD == 199006
- printf ("vax-dec-bsd4.3reno\n"); exit (0);
-# else
- printf ("vax-dec-bsd\n"); exit (0);
-# endif
-# endif
-# else
- printf ("vax-dec-bsd\n"); exit (0);
-# endif
-# else
- printf ("vax-dec-ultrix\n"); exit (0);
-# endif
-#endif
-
-#if defined (alliant) && defined (i860)
- printf ("i860-alliant-bsd\n"); exit (0);
-#endif
-
- exit (1);
-}
-EOF
-
-$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
- { echo "$SYSTEM_NAME"; exit; }
-
-# Apollos put the system type in the environment.
-
-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
-
-# Convex versions that predate uname can use getsysinfo(1)
-
-if [ -x /usr/convex/getsysinfo ]
-then
- case `getsysinfo -f cpu_type` in
- c1*)
- echo c1-convex-bsd
- exit ;;
- c2*)
- if getsysinfo -f scalar_acc
- then echo c32-convex-bsd
- else echo c2-convex-bsd
- fi
- exit ;;
- c34*)
- echo c34-convex-bsd
- exit ;;
- c38*)
- echo c38-convex-bsd
- exit ;;
- c4*)
- echo c4-convex-bsd
- exit ;;
- esac
-fi
-
cat >&2 <<EOF
$0: unable to guess system type
diff --git a/build-aux/config.sub b/build-aux/config.sub
index 9633db7..bba4efb 100755
--- a/build-aux/config.sub
+++ b/build-aux/config.sub
@@ -1,8 +1,8 @@
#! /bin/sh
# Configuration validation subroutine script.
-# Copyright 1992-2013 Free Software Foundation, Inc.
+# Copyright 1992-2014 Free Software Foundation, Inc.
-timestamp='2013-08-10'
+timestamp='2014-09-11'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -68,7 +68,7 @@ Report bugs and patches to <address@hidden>."
version="\
GNU config.sub ($timestamp)
-Copyright 1992-2013 Free Software Foundation, Inc.
+Copyright 1992-2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -265,6 +265,7 @@ case $basic_machine in
| hexagon \
| i370 | i860 | i960 | ia64 \
| ip2k | iq2000 \
+ | k1om \
| le32 | le64 \
| lm32 \
| m32c | m32r | m32rle | m68000 | m68k | m88k \
@@ -282,8 +283,10 @@ case $basic_machine in
| mips64vr5900 | mips64vr5900el \
| mipsisa32 | mipsisa32el \
| mipsisa32r2 | mipsisa32r2el \
+ | mipsisa32r6 | mipsisa32r6el \
| mipsisa64 | mipsisa64el \
| mipsisa64r2 | mipsisa64r2el \
+ | mipsisa64r6 | mipsisa64r6el \
| mipsisa64sb1 | mipsisa64sb1el \
| mipsisa64sr71k | mipsisa64sr71kel \
| mipsr5900 | mipsr5900el \
@@ -295,11 +298,11 @@ case $basic_machine in
| nds32 | nds32le | nds32be \
| nios | nios2 | nios2eb | nios2el \
| ns16k | ns32k \
- | open8 \
- | or1k | or32 \
+ | open8 | or1k | or1knd | or32 \
| pdp10 | pdp11 | pj | pjl \
| powerpc | powerpc64 | powerpc64le | powerpcle \
| pyramid \
+ | riscv32 | riscv64 \
| rl78 | rx \
| score \
| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb |
shbe | shle | sh[1234]le | sh3ele \
@@ -324,7 +327,7 @@ case $basic_machine in
c6x)
basic_machine=tic6x-unknown
;;
- m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip)
+ m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
basic_machine=$basic_machine-unknown
os=-none
;;
@@ -381,6 +384,7 @@ case $basic_machine in
| hexagon-* \
| i*86-* | i860-* | i960-* | ia64-* \
| ip2k-* | iq2000-* \
+ | k1om-* \
| le32-* | le64-* \
| lm32-* \
| m32c-* | m32r-* | m32rle-* \
@@ -400,8 +404,10 @@ case $basic_machine in
| mips64vr5900-* | mips64vr5900el-* \
| mipsisa32-* | mipsisa32el-* \
| mipsisa32r2-* | mipsisa32r2el-* \
+ | mipsisa32r6-* | mipsisa32r6el-* \
| mipsisa64-* | mipsisa64el-* \
| mipsisa64r2-* | mipsisa64r2el-* \
+ | mipsisa64r6-* | mipsisa64r6el-* \
| mipsisa64sb1-* | mipsisa64sb1el-* \
| mipsisa64sr71k-* | mipsisa64sr71kel-* \
| mipsr5900-* | mipsr5900el-* \
@@ -413,6 +419,7 @@ case $basic_machine in
| nios-* | nios2-* | nios2eb-* | nios2el-* \
| none-* | np1-* | ns16k-* | ns32k-* \
| open8-* \
+ | or1k*-* \
| orion-* \
| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
@@ -822,6 +829,10 @@ case $basic_machine in
basic_machine=powerpc-unknown
os=-morphos
;;
+ moxiebox)
+ basic_machine=moxie-unknown
+ os=-moxiebox
+ ;;
msdos)
basic_machine=i386-pc
os=-msdos
@@ -1367,14 +1378,14 @@ case $os in
| -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems*
\
| -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
| -linux-newlib* | -linux-musl* | -linux-uclibc* \
- | -uxpv* | -beos* | -mpeix* | -udk* \
+ | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
| -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
| -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
| -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
| -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
| -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
| -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
- | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
+ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* |
-tirtos*)
# Remember, each alternative MUST END IN *, to match a version number.
;;
-qnx*)
@@ -1592,9 +1603,6 @@ case $basic_machine in
mips*-*)
os=-elf
;;
- or1k-*)
- os=-elf
- ;;
or32-*)
os=-coff
;;
diff --git a/build-aux/missing b/build-aux/missing
index cdea514..db98974 100755
--- a/build-aux/missing
+++ b/build-aux/missing
@@ -1,7 +1,7 @@
#! /bin/sh
# Common wrapper for a few potentially missing GNU programs.
-scriptversion=2012-06-26.16; # UTC
+scriptversion=2013-10-28.13; # UTC
# Copyright (C) 1996-2013 Free Software Foundation, Inc.
# Originally written by Fran,cois Pinard <address@hidden>, 1996.
@@ -160,7 +160,7 @@ give_advice ()
;;
autom4te*)
echo "You might have modified some maintainer files that require"
- echo "the 'automa4te' program to be rebuilt."
+ echo "the 'autom4te' program to be rebuilt."
program_details 'autom4te'
;;
bison*|yacc*)
diff --git a/build-aux/ylwrap b/build-aux/ylwrap
index 1c4d776..8f072a8 100755
--- a/build-aux/ylwrap
+++ b/build-aux/ylwrap
@@ -1,7 +1,7 @@
#! /bin/sh
# ylwrap - wrapper for lex/yacc invocations.
-scriptversion=2012-12-21.17; # UTC
+scriptversion=2013-01-12.17; # UTC
# Copyright (C) 1996-2013 Free Software Foundation, Inc.
#
@@ -40,7 +40,7 @@ get_dirname ()
# guard FILE
# ----------
# The CPP macro used to guard inclusion of FILE.
-guard()
+guard ()
{
printf '%s\n' "$1" \
| sed \
@@ -96,17 +96,17 @@ esac
# The input.
-input="$1"
+input=$1
shift
# We'll later need for a correct munging of "#line" directives.
input_sub_rx=`get_dirname "$input" | quote_for_sed`
-case "$input" in
+case $input in
[\\/]* | ?:[\\/]*)
# Absolute path; do nothing.
;;
*)
# Relative path. Make it absolute.
- input="`pwd`/$input"
+ input=`pwd`/$input
;;
esac
input_rx=`get_dirname "$input" | quote_for_sed`
@@ -132,8 +132,8 @@ sed_fix_filenames=
# guard in its implementation file.
sed_fix_header_guards=
-while test "$#" -ne 0; do
- if test "$1" = "--"; then
+while test $# -ne 0; do
+ if test x"$1" = x"--"; then
shift
break
fi
@@ -153,16 +153,14 @@ while test "$#" -ne 0; do
done
# The program to run.
-prog="$1"
+prog=$1
shift
# Make any relative path in $prog absolute.
-case "$prog" in
+case $prog in
[\\/]* | ?:[\\/]*) ;;
- *[\\/]*) prog="`pwd`/$prog" ;;
+ *[\\/]*) prog=`pwd`/$prog ;;
esac
-# FIXME: add hostname here for parallel makes that run commands on
-# other machines. But that might take us over the 14-char limit.
dirname=ylwrap$$
do_exit="cd '`pwd`' && rm -rf $dirname > /dev/null 2>&1;"' (exit $ret); exit
$ret'
trap "ret=129; $do_exit" 1
@@ -188,7 +186,7 @@ if test $ret -eq 0; then
# otherwise prepend '../'.
case $to in
[\\/]* | ?:[\\/]*) target=$to;;
- *) target="../$to";;
+ *) target=../$to;;
esac
# Do not overwrite unchanged header files to avoid useless
@@ -197,7 +195,7 @@ if test $ret -eq 0; then
# output of all other files to a temporary file so we can
# compare them to existing versions.
if test $from != $parser; then
- realtarget="$target"
+ realtarget=$target
target=tmp-`printf '%s\n' "$target" | sed 's|.*[\\/]||g'`
fi
diff --git a/configure b/configure
index 1b10245..16fc8b4 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for GNU MIG 1.4.
+# Generated by GNU Autoconf 2.69 for GNU MIG 1.5.
#
# Report bugs to <address@hidden>.
#
@@ -580,8 +580,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='GNU MIG'
PACKAGE_TARNAME='mig'
-PACKAGE_VERSION='1.4'
-PACKAGE_STRING='GNU MIG 1.4'
+PACKAGE_VERSION='1.5'
+PACKAGE_STRING='GNU MIG 1.5'
PACKAGE_BUGREPORT='address@hidden'
PACKAGE_URL='http://www.gnu.org/software/mig/'
@@ -1254,7 +1254,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures GNU MIG 1.4 to adapt to many kinds of systems.
+\`configure' configures GNU MIG 1.5 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1325,7 +1325,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of GNU MIG 1.4:";;
+ short | recursive ) echo "Configuration of GNU MIG 1.5:";;
esac
cat <<\_ACEOF
@@ -1424,7 +1424,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-GNU MIG configure 1.4
+GNU MIG configure 1.5
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1671,7 +1671,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by GNU MIG $as_me 1.4, which was
+It was created by GNU MIG $as_me 1.5, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -2172,7 +2172,7 @@ ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
-am__api_version='1.13'
+am__api_version='1.14'
# Find a good install program. We prefer a C program (faster),
# so one script is as good as another. But avoid the broken or
@@ -2334,8 +2334,8 @@ fi
rm -f conftest.file
-# expand $ac_aux_dir to an absolute path
-am_aux_dir=`cd $ac_aux_dir && pwd`
+# Expand $ac_aux_dir to an absolute path.
+am_aux_dir=`cd "$ac_aux_dir" && pwd`
if test x"${MISSING+set}" != xset; then
case $am_aux_dir in
@@ -2648,7 +2648,7 @@ fi
# Define the identity of the package.
PACKAGE='mig'
- VERSION='1.4'
+ VERSION='1.5'
# Some tools Automake needs.
@@ -2690,6 +2690,48 @@ am__tar='$${TAR-tar} chof - "$$tardir"'
am__untar='$${TAR-tar} xf -'
+# POSIX will say in a future version that running "rm -f" with no argument
+# is OK; and we want to be able to make that assumption in our Makefile
+# recipes. So use an aggressive probe to check that the usage we want is
+# actually supported "in the wild" to an acceptable degree.
+# See automake bug#10828.
+# To make any issue more visible, cause the running configure to be aborted
+# by default if the 'rm' program in use doesn't match our expectations; the
+# user can still override this though.
+if rm -f && rm -fr && rm -rf; then : OK; else
+ cat >&2 <<'END'
+Oops!
+
+Your 'rm' program seems unable to run without file operands specified
+on the command line, even when the '-f' option is present. This is contrary
+to the behaviour of most rm programs out there, and not conforming with
+the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
+
+Please tell address@hidden about your system, including the value
+of your $PATH and any error possibly output before this message. This
+can help us improve future automake versions.
+
+END
+ if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
+ echo 'Configuration will proceed anyway, since you have set the' >&2
+ echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
+ echo >&2
+ else
+ cat >&2 <<'END'
+Aborting the configuration process, to ensure you take notice of the issue.
+
+You can download and install GNU coreutils to get an 'rm' implementation
+that behaves properly: <http://www.gnu.org/software/coreutils/>.
+
+If you want to complete the configuration process using your problematic
+'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
+to "yes", and re-run configure.
+
+END
+ as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5
+ fi
+fi
+
# Check whether --enable-silent-rules was given.
if test "${enable_silent_rules+set}" = set; then :
@@ -3519,6 +3561,65 @@ ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext
$LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext
$LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c
and -o together" >&5
+$as_echo_n "checking whether $CC understands -c and -o together... " >&6; }
+if ${am_cv_prog_cc_c_o+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+ # Make sure it works both with $CC and with simple cc.
+ # Following AC_PROG_CC_C_O, we do the test twice because some
+ # compilers refuse to overwrite an existing .o file with -o,
+ # though they will create one.
+ am_cv_prog_cc_c_o=yes
+ for am_i in 1 2; do
+ if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o
conftest2.$ac_objext" >&5
+ ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } \
+ && test -f conftest2.$ac_objext; then
+ : OK
+ else
+ am_cv_prog_cc_c_o=no
+ break
+ fi
+ done
+ rm -f core conftest*
+ unset am_i
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
+$as_echo "$am_cv_prog_cc_c_o" >&6; }
+if test "$am_cv_prog_cc_c_o" != yes; then
+ # Losing compiler, so override with the script.
+ # FIXME: It is wrong to rewrite CC.
+ # But if we don't then we get into trouble of one sort or another.
+ # A longer-term fix would be to have automake use am__CC in this case,
+ # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+ CC="$am_aux_dir/compile $CC"
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext
$LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
DEPDIR="${am__leading_dot}deps"
ac_config_commands="$ac_config_commands depfiles"
@@ -3892,6 +3993,12 @@ done
test -n "$YACC" || YACC="yacc"
+yacc_is_bison=`$YACC --version | head -n 1 | cut '-d ' -f1`
+if [ x"$yacc_is_bison" != x"bison" ]; then
+ as_fn_error $? "yacc is not provided by bison, check your alternative
conf or your packages" "$LINENO" 5
+fi
+
+
for ac_prog in flex lex
do
# Extract the first word of "$ac_prog", so it can be a program name with
args.
@@ -4984,7 +5091,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by GNU MIG $as_me 1.4, which was
+This file was extended by GNU MIG $as_me 1.5, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -5043,7 +5150,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //;
s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-GNU MIG config.status 1.4
+GNU MIG config.status 1.5
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/configure.ac b/configure.ac
index efd542a..332c593 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@ dnl configure script for GNU MIG.
AC_PREREQ([2.53])
-AC_INIT([GNU MIG], [1.4], address@hidden)
+AC_INIT([GNU MIG], [1.5], address@hidden)
AC_CONFIG_SRCDIR([migcom.c])
AC_CONFIG_AUX_DIR([build-aux])
@@ -25,6 +25,12 @@ dnl Checks for programs.
AC_PROG_CC
AC_PROG_CPP
AC_PROG_YACC
+
+yacc_is_bison=`$YACC --version | head -n 1 | cut '-d ' -f1`
+[if [ x"$yacc_is_bison" != x"bison" ]; then ]
+ AC_MSG_ERROR([yacc is not provided by bison, check your alternative
conf or your packages])
+[fi]
+
AM_PROG_LEX
AC_PROG_AWK
AC_PROG_INSTALL
diff --git a/global.c b/global.c
index 0a938f2..5685186 100644
--- a/global.c
+++ b/global.c
@@ -48,6 +48,7 @@ const_string_t UserPrefix = "";
const_string_t ServerDemux = strNULL;
const_string_t SubrPrefix = "";
const_string_t RoutinePrefix = "";
+const_string_t OOLPostfix = "P";
string_t yyinname;
diff --git a/global.h b/global.h
index ca4d865..8dbb6fd 100644
--- a/global.h
+++ b/global.h
@@ -53,6 +53,7 @@ extern const_string_t UserPrefix;
extern const_string_t ServerDemux;
extern const_string_t SubrPrefix;
extern const_string_t RoutinePrefix;
+extern const_string_t OOLPostfix;
extern int yylineno;
extern string_t yyinname;
diff --git a/header.c b/header.c
index 150412a..23e5686 100644
--- a/header.c
+++ b/header.c
@@ -41,6 +41,7 @@ WriteIncludes(FILE *file)
static void
WriteDefines(FILE *file)
{
+ (void) file; /* Avoid the warning. */
}
static void
@@ -153,6 +154,8 @@ WriteServerHeader(FILE *file, const statement_t *stats)
const char *protect = strconcat(SubsystemName, "_server_");
WriteProlog(file, protect);
+ fprintf(file, "#include <mach/mig_errors.h>\n"); /* For mig_routine_t. */
+
for (stat = stats; stat != stNULL; stat = stat->stNext)
switch (stat->stKind)
{
@@ -169,6 +172,14 @@ WriteServerHeader(FILE *file, const statement_t *stats)
fatal("WriteServerHeader(): bad statement_kind_t (%d)",
(int) stat->stKind);
}
+ fprintf(file, "\n");
+
+ /*
+ * Include the x_server_routine function so it can be inlined.
+ */
+ fprintf(file, "extern mig_routine_t %s_routines[];\n", ServerDemux);
+ WriteSubsystemServerRoutine(file, "extern inline");
+
WriteEpilog(file, protect);
}
diff --git a/lexxer.c b/lexxer.c
index 592b59e..d5e2238 100644
--- a/lexxer.c
+++ b/lexxer.c
@@ -8,7 +8,7 @@
#define FLEX_SCANNER
#define YY_FLEX_MAJOR_VERSION 2
#define YY_FLEX_MINOR_VERSION 5
-#define YY_FLEX_SUBMINOR_VERSION 35
+#define YY_FLEX_SUBMINOR_VERSION 39
#if YY_FLEX_SUBMINOR_VERSION > 0
#define FLEX_BETA
#endif
@@ -161,7 +161,12 @@ typedef unsigned int flex_uint32_t;
typedef struct yy_buffer_state *YY_BUFFER_STATE;
#endif
-extern int yyleng;
+#ifndef YY_TYPEDEF_YY_SIZE_T
+#define YY_TYPEDEF_YY_SIZE_T
+typedef size_t yy_size_t;
+#endif
+
+extern yy_size_t yyleng;
extern FILE *yyin, *yyout;
@@ -170,6 +175,7 @@ extern FILE *yyin, *yyout;
#define EOB_ACT_LAST_MATCH 2
#define YY_LESS_LINENO(n)
+ #define YY_LINENO_REWIND_TO(ptr)
/* Return all but the first "n" matched characters back to the input stream. */
#define yyless(n) \
@@ -187,11 +193,6 @@ extern FILE *yyin, *yyout;
#define unput(c) yyunput( c, (yytext_ptr) )
-#ifndef YY_TYPEDEF_YY_SIZE_T
-#define YY_TYPEDEF_YY_SIZE_T
-typedef size_t yy_size_t;
-#endif
-
#ifndef YY_STRUCT_YY_BUFFER_STATE
#define YY_STRUCT_YY_BUFFER_STATE
struct yy_buffer_state
@@ -209,7 +210,7 @@ struct yy_buffer_state
/* Number of characters read into yy_ch_buf, not including EOB
* characters.
*/
- int yy_n_chars;
+ yy_size_t yy_n_chars;
/* Whether we "own" the buffer - i.e., we know we created it,
* and can realloc() it to grow it, and should free() it to
@@ -279,8 +280,8 @@ static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as
an array. */
/* yy_hold_char holds the character lost when yytext is formed. */
static char yy_hold_char;
-static int yy_n_chars; /* number of characters read into yy_ch_buf */
-int yyleng;
+static yy_size_t yy_n_chars; /* number of characters read into
yy_ch_buf */
+yy_size_t yyleng;
/* Points to current character in buffer. */
static char *yy_c_buf_p = (char *) 0;
@@ -308,7 +309,7 @@ static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file );
YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size );
YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str );
-YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len );
+YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len );
void *yyalloc (yy_size_t );
void *yyrealloc (void *,yy_size_t );
@@ -368,8 +369,8 @@ static void yy_fatal_error (yyconst char msg[] );
*yy_cp = '\0'; \
(yy_c_buf_p) = yy_cp;
-#define YY_NUM_RULES 102
-#define YY_END_OF_BUFFER 103
+#define YY_NUM_RULES 103
+#define YY_END_OF_BUFFER 104
/* This struct is not used in this scanner,
but its presence is necessary. */
struct yy_trans_info
@@ -377,66 +378,67 @@ struct yy_trans_info
flex_int32_t yy_verify;
flex_int32_t yy_nxt;
};
-static yyconst flex_int16_t yy_accept[527] =
+static yyconst flex_int16_t yy_accept[534] =
{ 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 103, 101, 99, 100, 96, 78, 79, 76,
- 74, 73, 75, 77, 89, 71, 72, 83, 80, 84,
- 88, 88, 88, 88, 88, 88, 88, 88, 88, 88,
- 88, 88, 88, 88, 88, 88, 88, 85, 86, 81,
- 88, 87, 82, 90, 101, 101, 101, 98, 98, 97,
- 96, 0, 0, 94, 0, 89, 88, 88, 88, 88,
- 88, 88, 88, 88, 88, 88, 88, 11, 88, 88,
- 88, 88, 88, 19, 88, 88, 88, 88, 88, 88,
- 88, 88, 88, 88, 88, 88, 88, 88, 88, 88,
-
- 88, 90, 0, 91, 0, 0, 92, 0, 0, 0,
- 0, 88, 88, 88, 88, 88, 88, 88, 88, 88,
- 88, 88, 88, 88, 88, 88, 88, 88, 88, 88,
- 88, 12, 88, 88, 88, 88, 88, 88, 88, 88,
- 88, 88, 88, 88, 88, 88, 88, 88, 88, 88,
- 0, 93, 0, 88, 88, 88, 88, 88, 88, 88,
- 88, 88, 88, 88, 88, 88, 88, 88, 88, 88,
- 88, 88, 88, 88, 88, 88, 88, 88, 88, 88,
- 88, 88, 88, 88, 31, 88, 88, 88, 28, 88,
- 88, 88, 88, 0, 18, 88, 88, 36, 88, 88,
-
- 88, 88, 20, 88, 88, 13, 88, 88, 88, 88,
- 88, 88, 88, 88, 88, 88, 88, 88, 24, 88,
- 88, 88, 88, 88, 88, 88, 88, 88, 88, 88,
- 88, 88, 88, 0, 88, 88, 88, 88, 88, 88,
- 88, 25, 33, 40, 88, 88, 88, 88, 88, 88,
- 88, 88, 88, 88, 88, 88, 88, 88, 88, 88,
- 88, 88, 32, 88, 88, 88, 88, 88, 0, 88,
- 88, 88, 88, 42, 88, 88, 88, 88, 88, 88,
- 88, 88, 88, 88, 34, 88, 88, 88, 88, 46,
- 1, 88, 88, 88, 88, 88, 27, 88, 88, 26,
-
- 88, 88, 88, 95, 88, 88, 88, 39, 88, 2,
- 88, 88, 88, 88, 88, 8, 88, 88, 88, 88,
- 88, 88, 88, 88, 88, 88, 88, 88, 88, 88,
- 88, 9, 88, 88, 37, 88, 41, 88, 88, 88,
- 7, 88, 88, 88, 3, 15, 88, 88, 88, 88,
- 88, 88, 88, 6, 88, 88, 45, 88, 35, 88,
- 30, 88, 43, 10, 88, 88, 44, 88, 88, 88,
- 88, 17, 16, 22, 38, 88, 88, 47, 14, 23,
- 88, 88, 88, 29, 88, 21, 88, 88, 88, 88,
- 5, 88, 88, 88, 88, 88, 88, 88, 88, 88,
-
- 88, 4, 88, 88, 88, 88, 88, 88, 88, 88,
- 88, 88, 88, 88, 49, 88, 88, 88, 88, 88,
- 88, 88, 88, 88, 88, 88, 88, 88, 55, 54,
- 88, 88, 88, 88, 88, 88, 57, 88, 88, 88,
- 88, 88, 88, 88, 88, 88, 88, 88, 88, 88,
- 88, 88, 88, 88, 88, 88, 88, 88, 58, 88,
- 50, 88, 88, 88, 88, 88, 88, 88, 88, 88,
- 88, 88, 88, 88, 88, 88, 88, 88, 88, 88,
- 88, 59, 88, 61, 88, 88, 88, 56, 62, 88,
- 63, 88, 66, 88, 68, 88, 51, 52, 53, 88,
-
- 88, 88, 88, 88, 88, 88, 88, 88, 88, 70,
- 88, 88, 88, 88, 60, 88, 67, 88, 48, 88,
- 88, 88, 64, 65, 69, 0
+ 0, 0, 104, 102, 100, 101, 97, 79, 80, 77,
+ 75, 74, 76, 78, 90, 72, 73, 84, 81, 85,
+ 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
+ 89, 89, 89, 89, 89, 89, 89, 86, 87, 82,
+ 89, 88, 83, 91, 102, 102, 102, 99, 99, 98,
+ 97, 0, 0, 95, 0, 90, 89, 89, 89, 89,
+ 89, 89, 89, 89, 89, 89, 89, 11, 89, 89,
+ 89, 89, 89, 19, 89, 89, 89, 89, 89, 89,
+ 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
+
+ 89, 91, 0, 92, 0, 0, 93, 0, 0, 0,
+ 0, 89, 89, 89, 89, 89, 89, 89, 89, 89,
+ 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
+ 89, 12, 89, 89, 89, 89, 89, 89, 89, 89,
+ 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
+ 0, 94, 0, 89, 89, 89, 89, 89, 89, 89,
+ 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
+ 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
+ 89, 89, 89, 89, 31, 89, 89, 89, 28, 89,
+ 89, 89, 89, 0, 18, 89, 89, 37, 89, 89,
+
+ 89, 89, 20, 89, 89, 13, 89, 89, 89, 89,
+ 89, 89, 89, 89, 89, 89, 89, 89, 24, 89,
+ 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
+ 89, 89, 89, 0, 89, 89, 89, 89, 89, 89,
+ 89, 25, 33, 41, 89, 89, 89, 89, 89, 89,
+ 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
+ 89, 89, 32, 89, 89, 89, 89, 89, 0, 89,
+ 89, 89, 89, 43, 89, 89, 89, 89, 89, 89,
+ 89, 89, 89, 89, 89, 35, 89, 89, 89, 89,
+ 47, 1, 89, 89, 89, 89, 89, 27, 89, 89,
+
+ 26, 89, 89, 89, 96, 89, 89, 89, 40, 89,
+ 2, 89, 89, 89, 89, 89, 89, 8, 89, 89,
+ 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
+ 89, 89, 89, 9, 89, 89, 38, 89, 89, 42,
+ 89, 89, 89, 7, 89, 89, 89, 3, 15, 89,
+ 89, 89, 89, 89, 89, 89, 6, 89, 89, 46,
+ 89, 36, 89, 89, 30, 89, 44, 10, 89, 89,
+ 45, 89, 89, 89, 89, 17, 16, 22, 39, 89,
+ 89, 89, 48, 14, 23, 89, 89, 89, 89, 29,
+ 89, 21, 89, 89, 34, 89, 89, 5, 89, 89,
+
+ 89, 89, 89, 89, 89, 89, 89, 89, 4, 89,
+ 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
+ 89, 50, 89, 89, 89, 89, 89, 89, 89, 89,
+ 89, 89, 89, 89, 89, 56, 55, 89, 89, 89,
+ 89, 89, 89, 58, 89, 89, 89, 89, 89, 89,
+ 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
+ 89, 89, 89, 89, 89, 59, 89, 51, 89, 89,
+ 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
+ 89, 89, 89, 89, 89, 89, 89, 89, 60, 89,
+ 62, 89, 89, 89, 57, 63, 89, 64, 89, 67,
+
+ 89, 69, 89, 52, 53, 54, 89, 89, 89, 89,
+ 89, 89, 89, 89, 89, 89, 71, 89, 89, 89,
+ 89, 61, 89, 68, 89, 49, 89, 89, 89, 65,
+ 66, 70, 0
} ;
static yyconst flex_int32_t yy_ec[256] =
@@ -483,135 +485,137 @@ static yyconst flex_int32_t yy_meta[79] =
4, 4, 4, 4, 4, 4, 1, 1
} ;
-static yyconst flex_int16_t yy_base[536] =
+static yyconst flex_int16_t yy_base[543] =
{ 0,
- 0, 3, 9, 1002, 87, 165, 98, 102, 112, 125,
- 116, 130, 1007, 1009, 1009, 1009, 133, 1009, 1009, 1009,
- 1009, 1009, 1009, 1009, 140, 1009, 1009, 1009, 1009, 1009,
+ 0, 3, 9, 1016, 87, 165, 98, 102, 112, 125,
+ 116, 130, 1021, 1023, 1023, 1023, 133, 1023, 1023, 1023,
+ 1023, 1023, 1023, 1023, 140, 1023, 1023, 1023, 1023, 1023,
50, 0, 138, 112, 134, 134, 155, 149, 159, 155,
- 167, 185, 203, 242, 87, 195, 179, 1009, 1009, 1009,
- 153, 1009, 1009, 0, 1001, 979, 999, 1009, 1009, 1009,
- 276, 306, 326, 334, 943, 230, 0, 189, 190, 205,
+ 167, 185, 203, 242, 87, 195, 179, 1023, 1023, 1023,
+ 153, 1023, 1023, 0, 1015, 993, 1013, 1023, 1023, 1023,
+ 276, 306, 326, 334, 957, 230, 0, 189, 190, 205,
162, 210, 212, 231, 227, 213, 220, 288, 318, 230,
- 973, 237, 291, 0, 239, 245, 263, 288, 320, 301,
+ 987, 237, 291, 0, 239, 245, 263, 288, 320, 301,
321, 292, 332, 337, 327, 342, 330, 334, 343, 345,
- 342, 0, 996, 1009, 974, 994, 1009, 405, 140, 993,
- 936, 352, 343, 341, 345, 357, 343, 353, 356, 363,
- 384, 377, 367, 383, 387, 389, 391, 962, 392, 404,
+ 342, 0, 1010, 1023, 988, 1008, 1023, 405, 140, 1007,
+ 950, 352, 343, 341, 345, 357, 343, 353, 356, 363,
+ 384, 377, 367, 383, 387, 389, 391, 976, 392, 404,
409, 389, 224, 409, 404, 405, 398, 411, 401, 400,
407, 408, 409, 406, 410, 413, 415, 418, 422, 424,
- 990, 1009, 930, 318, 430, 433, 452, 440, 442, 449,
- 445, 446, 445, 448, 448, 468, 458, 450, 468, 938,
+ 1004, 1023, 944, 318, 430, 433, 452, 440, 442, 449,
+ 445, 446, 445, 448, 448, 468, 458, 450, 468, 952,
459, 471, 473, 470, 456, 468, 478, 480, 469, 483,
481, 490, 499, 499, 0, 494, 512, 485, 0, 503,
- 508, 505, 496, 924, 0, 513, 518, 0, 506, 516,
+ 508, 505, 496, 938, 0, 513, 518, 0, 506, 516,
512, 508, 0, 521, 511, 0, 518, 529, 526, 528,
- 952, 517, 947, 540, 525, 546, 535, 553, 0, 545,
+ 966, 517, 961, 540, 525, 546, 535, 553, 0, 545,
544, 558, 553, 551, 566, 556, 548, 555, 558, 561,
- 555, 563, 573, 929, 570, 565, 563, 573, 582, 589,
- 579, 0, 0, 0, 582, 588, 943, 590, 589, 604,
- 573, 603, 601, 602, 609, 606, 613, 622, 626, 617,
- 617, 616, 0, 618, 619, 624, 638, 628, 121, 633,
- 631, 633, 647, 0, 635, 643, 649, 662, 652, 954,
- 658, 659, 663, 670, 0, 665, 662, 666, 670, 0,
- 0, 672, 683, 671, 674, 675, 0, 678, 689, 0,
-
- 682, 689, 694, 1009, 679, 679, 700, 0, 695, 0,
- 699, 694, 708, 931, 706, 0, 707, 713, 722, 726,
- 716, 718, 721, 727, 736, 728, 724, 728, 734, 731,
- 742, 0, 732, 737, 0, 737, 0, 734, 739, 939,
- 0, 755, 757, 755, 0, 0, 749, 719, 753, 760,
- 774, 758, 765, 0, 766, 934, 0, 783, 0, 784,
- 0, 932, 0, 0, 787, 776, 0, 932, 783, 792,
- 789, 0, 0, 0, 0, 784, 939, 0, 0, 0,
- 930, 795, 789, 0, 948, 0, 786, 799, 923, 790,
- 0, 834, 804, 805, 807, 937, 174, 935, 944, 928,
-
- 933, 0, 926, 930, 924, 942, 926, 921, 929, 917,
- 159, 937, 919, 917, 0, 923, 929, 915, 907, 926,
- 925, 924, 903, 907, 914, 916, 904, 918, 0, 0,
- 893, 914, 891, 890, 905, 888, 0, 902, 897, 913,
- 894, 907, 892, 102, 895, 176, 902, 887, 893, 901,
- 887, 899, 898, 897, 883, 899, 894, 893, 868, 893,
- 0, 881, 865, 879, 889, 877, 874, 876, 885, 873,
- 883, 859, 871, 850, 867, 849, 847, 841, 843, 841,
- 837, 0, 818, 0, 838, 834, 831, 0, 787, 802,
- 781, 791, 0, 723, 451, 408, 0, 0, 0, 354,
-
- 334, 340, 351, 330, 279, 288, 278, 286, 274, 0,
- 278, 265, 239, 239, 0, 223, 0, 173, 0, 151,
- 131, 93, 0, 0, 0, 1009, 881, 885, 889, 4,
- 891, 895, 899, 903, 907
+ 555, 563, 573, 943, 570, 565, 563, 573, 582, 589,
+ 579, 0, 581, 0, 584, 588, 957, 594, 602, 605,
+ 573, 604, 605, 603, 604, 606, 623, 624, 627, 617,
+ 617, 622, 0, 620, 621, 626, 643, 639, 121, 639,
+ 629, 639, 649, 0, 643, 651, 668, 658, 668, 655,
+ 968, 660, 663, 667, 672, 0, 668, 668, 669, 672,
+ 0, 0, 674, 686, 674, 676, 680, 0, 681, 692,
+
+ 0, 684, 698, 700, 1023, 687, 686, 704, 0, 700,
+ 0, 697, 718, 700, 723, 945, 716, 0, 716, 719,
+ 729, 734, 709, 726, 726, 731, 741, 733, 719, 732,
+ 738, 735, 740, 0, 735, 745, 0, 745, 752, 0,
+ 749, 755, 953, 0, 749, 757, 756, 0, 0, 756,
+ 758, 763, 779, 783, 773, 775, 0, 776, 948, 0,
+ 782, 0, 782, 783, 0, 946, 0, 0, 796, 782,
+ 0, 946, 794, 799, 796, 0, 0, 0, 0, 805,
+ 791, 953, 0, 0, 0, 944, 806, 798, 809, 0,
+ 962, 0, 797, 814, 0, 937, 806, 0, 828, 816,
+
+ 843, 845, 951, 174, 949, 958, 942, 947, 0, 940,
+ 944, 938, 956, 940, 935, 943, 931, 159, 951, 933,
+ 931, 0, 937, 943, 929, 921, 940, 939, 938, 917,
+ 921, 928, 930, 918, 932, 0, 0, 907, 928, 905,
+ 904, 919, 902, 0, 916, 911, 927, 908, 921, 906,
+ 102, 909, 176, 916, 901, 907, 915, 901, 913, 912,
+ 911, 897, 913, 908, 907, 882, 907, 0, 895, 879,
+ 893, 903, 891, 888, 890, 899, 887, 897, 879, 888,
+ 867, 884, 879, 863, 858, 860, 859, 859, 0, 835,
+ 0, 861, 863, 850, 0, 809, 818, 797, 798, 0,
+
+ 630, 451, 408, 0, 0, 0, 354, 334, 340, 351,
+ 330, 279, 288, 278, 286, 274, 0, 278, 265, 239,
+ 239, 0, 223, 0, 173, 0, 151, 131, 93, 0,
+ 0, 0, 1023, 894, 898, 902, 4, 904, 908, 912,
+ 916, 920
} ;
-static yyconst flex_int16_t yy_def[536] =
+static yyconst flex_int16_t yy_def[543] =
{ 0,
- 527, 527, 526, 3, 528, 528, 527, 527, 527, 527,
- 529, 529, 526, 526, 526, 526, 526, 526, 526, 526,
- 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
- 530, 530, 530, 530, 530, 530, 530, 530, 530, 530,
- 530, 530, 530, 530, 530, 530, 530, 526, 526, 526,
- 530, 526, 526, 531, 532, 533, 534, 526, 526, 526,
- 526, 526, 526, 526, 526, 526, 530, 530, 530, 530,
- 530, 530, 530, 530, 530, 530, 530, 530, 530, 530,
- 530, 530, 530, 530, 530, 530, 530, 530, 530, 530,
- 530, 530, 530, 530, 530, 530, 530, 530, 530, 530,
-
- 530, 531, 532, 526, 533, 534, 526, 526, 526, 535,
- 526, 530, 530, 530, 530, 530, 530, 530, 530, 530,
- 530, 530, 530, 530, 530, 530, 530, 530, 530, 530,
- 530, 530, 530, 530, 530, 530, 530, 530, 530, 530,
- 530, 530, 530, 530, 530, 530, 530, 530, 530, 530,
- 535, 526, 526, 530, 530, 530, 530, 530, 530, 530,
- 530, 530, 530, 530, 530, 530, 530, 530, 530, 530,
- 530, 530, 530, 530, 530, 530, 530, 530, 530, 530,
- 530, 530, 530, 530, 530, 530, 530, 530, 530, 530,
- 530, 530, 530, 526, 530, 530, 530, 530, 530, 530,
-
- 530, 530, 530, 530, 530, 530, 530, 530, 530, 530,
- 530, 530, 530, 530, 530, 530, 530, 530, 530, 530,
- 530, 530, 530, 530, 530, 530, 530, 530, 530, 530,
- 530, 530, 530, 526, 530, 530, 530, 530, 530, 530,
- 530, 530, 530, 530, 530, 530, 530, 530, 530, 530,
- 530, 530, 530, 530, 530, 530, 530, 530, 530, 530,
- 530, 530, 530, 530, 530, 530, 530, 530, 526, 530,
- 530, 530, 530, 530, 530, 530, 530, 530, 530, 530,
- 530, 530, 530, 530, 530, 530, 530, 530, 530, 530,
- 530, 530, 530, 530, 530, 530, 530, 530, 530, 530,
-
- 530, 530, 530, 526, 530, 530, 530, 530, 530, 530,
- 530, 530, 530, 530, 530, 530, 530, 530, 530, 530,
- 530, 530, 530, 530, 530, 530, 530, 530, 530, 530,
- 530, 530, 530, 530, 530, 530, 530, 530, 530, 530,
- 530, 530, 530, 530, 530, 530, 530, 530, 530, 530,
- 530, 530, 530, 530, 530, 530, 530, 530, 530, 530,
- 530, 530, 530, 530, 530, 530, 530, 530, 530, 530,
- 530, 530, 530, 530, 530, 530, 530, 530, 530, 530,
- 530, 530, 530, 530, 530, 530, 530, 530, 530, 530,
- 530, 530, 530, 530, 530, 530, 530, 530, 530, 530,
-
- 530, 530, 530, 530, 530, 530, 530, 530, 530, 530,
- 530, 530, 530, 530, 530, 530, 530, 530, 530, 530,
- 530, 530, 530, 530, 530, 530, 530, 530, 530, 530,
- 530, 530, 530, 530, 530, 530, 530, 530, 530, 530,
- 530, 530, 530, 530, 530, 530, 530, 530, 530, 530,
- 530, 530, 530, 530, 530, 530, 530, 530, 530, 530,
- 530, 530, 530, 530, 530, 530, 530, 530, 530, 530,
- 530, 530, 530, 530, 530, 530, 530, 530, 530, 530,
- 530, 530, 530, 530, 530, 530, 530, 530, 530, 530,
- 530, 530, 530, 530, 530, 530, 530, 530, 530, 530,
-
- 530, 530, 530, 530, 530, 530, 530, 530, 530, 530,
- 530, 530, 530, 530, 530, 530, 530, 530, 530, 530,
- 530, 530, 530, 530, 530, 0, 526, 526, 526, 526,
- 526, 526, 526, 526, 526
+ 534, 534, 533, 3, 535, 535, 534, 534, 534, 534,
+ 536, 536, 533, 533, 533, 533, 533, 533, 533, 533,
+ 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
+ 537, 537, 537, 537, 537, 537, 537, 537, 537, 537,
+ 537, 537, 537, 537, 537, 537, 537, 533, 533, 533,
+ 537, 533, 533, 538, 539, 540, 541, 533, 533, 533,
+ 533, 533, 533, 533, 533, 533, 537, 537, 537, 537,
+ 537, 537, 537, 537, 537, 537, 537, 537, 537, 537,
+ 537, 537, 537, 537, 537, 537, 537, 537, 537, 537,
+ 537, 537, 537, 537, 537, 537, 537, 537, 537, 537,
+
+ 537, 538, 539, 533, 540, 541, 533, 533, 533, 542,
+ 533, 537, 537, 537, 537, 537, 537, 537, 537, 537,
+ 537, 537, 537, 537, 537, 537, 537, 537, 537, 537,
+ 537, 537, 537, 537, 537, 537, 537, 537, 537, 537,
+ 537, 537, 537, 537, 537, 537, 537, 537, 537, 537,
+ 542, 533, 533, 537, 537, 537, 537, 537, 537, 537,
+ 537, 537, 537, 537, 537, 537, 537, 537, 537, 537,
+ 537, 537, 537, 537, 537, 537, 537, 537, 537, 537,
+ 537, 537, 537, 537, 537, 537, 537, 537, 537, 537,
+ 537, 537, 537, 533, 537, 537, 537, 537, 537, 537,
+
+ 537, 537, 537, 537, 537, 537, 537, 537, 537, 537,
+ 537, 537, 537, 537, 537, 537, 537, 537, 537, 537,
+ 537, 537, 537, 537, 537, 537, 537, 537, 537, 537,
+ 537, 537, 537, 533, 537, 537, 537, 537, 537, 537,
+ 537, 537, 537, 537, 537, 537, 537, 537, 537, 537,
+ 537, 537, 537, 537, 537, 537, 537, 537, 537, 537,
+ 537, 537, 537, 537, 537, 537, 537, 537, 533, 537,
+ 537, 537, 537, 537, 537, 537, 537, 537, 537, 537,
+ 537, 537, 537, 537, 537, 537, 537, 537, 537, 537,
+ 537, 537, 537, 537, 537, 537, 537, 537, 537, 537,
+
+ 537, 537, 537, 537, 533, 537, 537, 537, 537, 537,
+ 537, 537, 537, 537, 537, 537, 537, 537, 537, 537,
+ 537, 537, 537, 537, 537, 537, 537, 537, 537, 537,
+ 537, 537, 537, 537, 537, 537, 537, 537, 537, 537,
+ 537, 537, 537, 537, 537, 537, 537, 537, 537, 537,
+ 537, 537, 537, 537, 537, 537, 537, 537, 537, 537,
+ 537, 537, 537, 537, 537, 537, 537, 537, 537, 537,
+ 537, 537, 537, 537, 537, 537, 537, 537, 537, 537,
+ 537, 537, 537, 537, 537, 537, 537, 537, 537, 537,
+ 537, 537, 537, 537, 537, 537, 537, 537, 537, 537,
+
+ 537, 537, 537, 537, 537, 537, 537, 537, 537, 537,
+ 537, 537, 537, 537, 537, 537, 537, 537, 537, 537,
+ 537, 537, 537, 537, 537, 537, 537, 537, 537, 537,
+ 537, 537, 537, 537, 537, 537, 537, 537, 537, 537,
+ 537, 537, 537, 537, 537, 537, 537, 537, 537, 537,
+ 537, 537, 537, 537, 537, 537, 537, 537, 537, 537,
+ 537, 537, 537, 537, 537, 537, 537, 537, 537, 537,
+ 537, 537, 537, 537, 537, 537, 537, 537, 537, 537,
+ 537, 537, 537, 537, 537, 537, 537, 537, 537, 537,
+ 537, 537, 537, 537, 537, 537, 537, 537, 537, 537,
+
+ 537, 537, 537, 537, 537, 537, 537, 537, 537, 537,
+ 537, 537, 537, 537, 537, 537, 537, 537, 537, 537,
+ 537, 537, 537, 537, 537, 537, 537, 537, 537, 537,
+ 537, 537, 0, 533, 533, 533, 533, 533, 533, 533,
+ 533, 533
} ;
-static yyconst flex_int16_t yy_nxt[1088] =
+static yyconst flex_int16_t yy_nxt[1102] =
{ 0,
- 526, 15, 16, 15, 15, 16, 15, 67, 17, 14,
+ 533, 15, 16, 15, 15, 16, 15, 67, 17, 14,
15, 16, 15, 14, 14, 14, 18, 19, 20, 21,
22, 23, 24, 25, 25, 25, 25, 25, 25, 25,
26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
@@ -624,49 +628,49 @@ static yyconst flex_int16_t yy_nxt[1088] =
16, 15, 55, 15, 16, 15, 55, 17, 14, 14,
14, 14, 14, 15, 16, 15, 57, 59, 60, 59,
- 68, 56, 304, 525, 304, 56, 15, 16, 15, 57,
+ 68, 56, 305, 532, 305, 56, 15, 16, 15, 57,
17, 59, 60, 59, 62, 61, 63, 97, 14, 14,
- 14, 109, 74, 109, 110, 453, 454, 64, 64, 64,
+ 14, 109, 74, 109, 110, 460, 461, 64, 64, 64,
64, 64, 64, 64, 66, 66, 66, 66, 66, 66,
- 66, 524, 97, 14, 14, 14, 15, 16, 15, 14,
+ 66, 531, 97, 14, 14, 14, 15, 16, 15, 14,
17, 74, 14, 14, 14, 14, 14, 75, 69, 80,
- 76, 523, 70, 71, 72, 81, 14, 14, 14, 14,
- 14, 65, 73, 77, 78, 83, 423, 82, 84, 79,
+ 76, 530, 70, 71, 72, 81, 14, 14, 14, 14,
+ 14, 65, 73, 77, 78, 83, 430, 82, 84, 79,
- 409, 522, 424, 82, 75, 101, 69, 76, 80, 70,
- 71, 72, 115, 85, 410, 456, 14, 14, 14, 457,
- 458, 77, 78, 83, 82, 86, 79, 84, 87, 98,
+ 416, 529, 431, 82, 75, 101, 69, 76, 80, 70,
+ 71, 72, 115, 85, 417, 463, 14, 14, 14, 464,
+ 465, 77, 78, 83, 82, 86, 79, 84, 87, 98,
82, 88, 112, 89, 101, 114, 113, 115, 99, 100,
85, 14, 14, 90, 66, 66, 66, 66, 66, 66,
- 66, 521, 121, 86, 116, 87, 117, 118, 98, 112,
- 88, 122, 89, 113, 114, 99, 100, 520, 519, 129,
+ 66, 528, 121, 86, 116, 87, 117, 118, 98, 112,
+ 88, 122, 89, 113, 114, 99, 100, 527, 526, 129,
120, 90, 91, 127, 176, 119, 92, 62, 93, 63,
121, 116, 133, 117, 132, 94, 118, 95, 96, 122,
64, 64, 64, 64, 64, 64, 64, 120, 129, 176,
- 127, 91, 119, 134, 518, 92, 93, 62, 517, 62,
- 133, 132, 94, 516, 95, 96, 515, 514, 513, 512,
+ 127, 91, 119, 134, 525, 92, 93, 62, 524, 62,
+ 133, 132, 94, 523, 95, 96, 522, 521, 520, 519,
108, 108, 108, 108, 108, 108, 108, 62, 123, 63,
141, 134, 135, 124, 65, 109, 130, 109, 110, 131,
64, 64, 64, 64, 64, 64, 64, 139, 64, 64,
64, 64, 64, 64, 64, 125, 123, 126, 141, 135,
124, 136, 137, 130, 140, 138, 142, 143, 195, 145,
- 144, 146, 147, 148, 139, 149, 150, 511, 154, 510,
- 509, 508, 155, 125, 156, 126, 157, 158, 159, 136,
- 160, 140, 138, 195, 507, 142, 143, 144, 145, 146,
+ 144, 146, 147, 148, 139, 149, 150, 518, 154, 517,
+ 516, 515, 155, 125, 156, 126, 157, 158, 159, 136,
+ 160, 140, 138, 195, 514, 142, 143, 144, 145, 146,
147, 161, 148, 162, 149, 150, 109, 154, 109, 110,
155, 156, 163, 165, 157, 159, 158, 164, 160, 108,
108, 108, 108, 108, 108, 108, 166, 167, 161, 168,
169, 162, 171, 173, 175, 174, 172, 177, 178, 181,
165, 163, 179, 189, 180, 164, 182, 183, 184, 185,
- 186, 506, 187, 166, 188, 167, 190, 168, 169, 191,
+ 186, 513, 187, 166, 188, 167, 190, 168, 169, 191,
171, 175, 173, 172, 174, 192, 177, 178, 181, 193,
179, 180, 189, 182, 183, 196, 184, 185, 186, 187,
197, 188, 198, 199, 190, 200, 201, 191, 202, 203,
204, 205, 192, 206, 207, 209, 193, 208, 210, 216,
- 212, 213, 196, 214, 215, 505, 217, 197, 218, 219,
+ 212, 213, 196, 214, 215, 512, 217, 197, 218, 219,
199, 198, 200, 221, 201, 202, 203, 204, 205, 220,
206, 222, 209, 207, 223, 208, 216, 210, 212, 224,
213, 227, 214, 215, 217, 229, 225, 218, 219, 226,
@@ -678,63 +682,66 @@ static yyconst flex_int16_t yy_nxt[1088] =
244, 245, 258, 246, 259, 250, 260, 251, 262, 261,
263, 252, 264, 253, 265, 266, 267, 268, 271, 270,
- 274, 254, 273, 272, 255, 256, 257, 275, 284, 276,
- 258, 259, 277, 262, 281, 260, 261, 263, 282, 264,
- 266, 265, 278, 267, 279, 271, 268, 270, 272, 274,
- 273, 283, 285, 290, 286, 284, 275, 276, 287, 288,
- 277, 289, 291, 281, 292, 293, 282, 298, 295, 278,
- 296, 279, 297, 299, 300, 301, 303, 294, 302, 283,
- 285, 286, 290, 305, 307, 287, 306, 288, 289, 308,
- 309, 291, 310, 292, 293, 298, 295, 296, 311, 297,
- 299, 300, 312, 301, 303, 294, 313, 302, 315, 316,
-
- 317, 305, 307, 306, 318, 320, 319, 309, 308, 321,
- 310, 322, 323, 324, 325, 327, 311, 326, 328, 329,
- 331, 312, 330, 313, 332, 333, 315, 316, 317, 334,
- 335, 337, 320, 318, 319, 336, 321, 338, 339, 322,
- 323, 325, 324, 327, 326, 341, 328, 342, 329, 331,
- 330, 343, 333, 332, 334, 344, 345, 504, 347, 335,
- 337, 346, 348, 336, 338, 349, 350, 339, 351, 367,
- 352, 353, 354, 341, 355, 342, 356, 357, 358, 343,
- 359, 360, 361, 363, 344, 345, 347, 364, 346, 365,
- 348, 369, 366, 349, 367, 350, 351, 352, 353, 368,
-
- 354, 355, 370, 371, 357, 356, 358, 359, 360, 361,
- 372, 373, 363, 375, 376, 378, 364, 381, 365, 366,
- 369, 379, 382, 383, 387, 503, 368, 384, 388, 391,
- 371, 370, 390, 393, 402, 502, 501, 372, 373, 403,
- 406, 500, 375, 376, 378, 404, 381, 407, 379, 499,
- 498, 382, 383, 387, 384, 405, 388, 497, 391, 390,
- 393, 394, 395, 402, 496, 485, 495, 486, 396, 487,
- 488, 494, 397, 493, 492, 398, 491, 399, 400, 490,
- 401, 14, 14, 14, 14, 54, 54, 54, 54, 58,
- 58, 58, 58, 102, 102, 103, 489, 103, 103, 105,
-
- 484, 105, 105, 106, 483, 106, 106, 151, 151, 151,
- 151, 482, 481, 480, 479, 478, 477, 476, 475, 474,
- 473, 472, 471, 470, 469, 468, 467, 466, 465, 464,
- 463, 462, 461, 460, 459, 455, 452, 451, 450, 449,
- 448, 447, 446, 445, 444, 443, 442, 441, 440, 439,
- 438, 437, 436, 435, 434, 433, 432, 431, 430, 429,
- 428, 427, 426, 425, 422, 421, 420, 419, 418, 417,
- 416, 415, 414, 413, 412, 411, 408, 392, 389, 386,
- 385, 380, 377, 374, 362, 340, 314, 280, 269, 249,
- 247, 234, 211, 194, 152, 170, 153, 152, 107, 104,
-
- 104, 128, 111, 107, 104, 104, 526, 17, 13, 526,
- 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
- 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
- 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
- 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
- 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
- 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
- 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
- 526, 526, 526, 526, 526, 526, 526
+ 274, 254, 273, 272, 255, 256, 257, 275, 285, 276,
+ 258, 259, 277, 262, 278, 260, 261, 263, 282, 264,
+ 266, 265, 279, 267, 280, 271, 268, 270, 272, 274,
+ 273, 283, 284, 286, 289, 285, 275, 276, 287, 288,
+ 277, 290, 278, 291, 292, 293, 294, 282, 296, 279,
+ 297, 280, 298, 299, 511, 300, 301, 302, 295, 283,
+ 284, 286, 289, 303, 307, 287, 288, 304, 290, 306,
+ 308, 309, 291, 292, 293, 294, 296, 297, 310, 298,
+ 311, 299, 300, 301, 312, 302, 295, 313, 314, 315,
+
+ 317, 307, 303, 318, 319, 304, 320, 306, 308, 321,
+ 309, 322, 323, 324, 325, 310, 326, 327, 311, 328,
+ 329, 330, 331, 312, 332, 313, 315, 314, 317, 333,
+ 334, 318, 319, 335, 337, 320, 336, 321, 322, 323,
+ 338, 324, 325, 341, 327, 326, 328, 339, 329, 330,
+ 340, 331, 332, 342, 349, 344, 345, 346, 333, 334,
+ 335, 336, 347, 337, 348, 355, 350, 351, 338, 352,
+ 341, 353, 339, 354, 359, 356, 357, 367, 358, 340,
+ 360, 349, 342, 344, 345, 346, 361, 368, 362, 363,
+ 369, 347, 355, 348, 350, 351, 364, 352, 365, 370,
+
+ 353, 354, 356, 359, 357, 358, 367, 360, 371, 372,
+ 373, 374, 379, 381, 361, 362, 368, 363, 375, 369,
+ 376, 377, 380, 364, 383, 365, 370, 384, 386, 387,
+ 388, 389, 510, 371, 390, 393, 372, 394, 395, 373,
+ 374, 379, 381, 397, 398, 375, 409, 376, 377, 400,
+ 380, 509, 508, 383, 384, 401, 402, 386, 387, 388,
+ 389, 390, 403, 507, 393, 394, 404, 395, 506, 405,
+ 397, 406, 407, 398, 408, 409, 400, 410, 413, 505,
+ 504, 503, 492, 411, 493, 414, 494, 495, 502, 501,
+ 500, 499, 498, 412, 14, 14, 14, 14, 54, 54,
+
+ 54, 54, 58, 58, 58, 58, 102, 102, 103, 497,
+ 103, 103, 105, 496, 105, 105, 106, 491, 106, 106,
+ 151, 151, 151, 151, 490, 489, 488, 487, 486, 485,
+ 484, 483, 482, 481, 480, 479, 478, 477, 476, 475,
+ 474, 473, 472, 471, 470, 469, 468, 467, 466, 462,
+ 459, 458, 457, 456, 455, 454, 453, 452, 451, 450,
+ 449, 448, 447, 446, 445, 444, 443, 442, 441, 440,
+ 439, 438, 437, 436, 435, 434, 433, 432, 429, 428,
+ 427, 426, 425, 424, 423, 422, 421, 420, 419, 418,
+ 415, 399, 396, 392, 391, 385, 382, 378, 366, 343,
+
+ 316, 281, 269, 249, 247, 234, 211, 194, 152, 170,
+ 153, 152, 107, 104, 104, 128, 111, 107, 104, 104,
+ 533, 17, 13, 533, 533, 533, 533, 533, 533, 533,
+ 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
+ 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
+ 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
+ 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
+ 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
+ 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
+ 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
+
+ 533
} ;
-static yyconst flex_int16_t yy_chk[1088] =
+static yyconst flex_int16_t yy_chk[1102] =
{ 0,
- 0, 1, 1, 1, 2, 2, 2, 530, 2, 3,
+ 0, 1, 1, 1, 2, 2, 2, 537, 2, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
@@ -747,49 +754,49 @@ static yyconst flex_int16_t yy_chk[1088] =
7, 7, 7, 8, 8, 8, 8, 8, 5, 5,
5, 5, 5, 9, 9, 9, 9, 11, 11, 11,
- 31, 7, 269, 522, 269, 8, 10, 10, 10, 10,
+ 31, 7, 269, 529, 269, 8, 10, 10, 10, 10,
10, 12, 12, 12, 17, 12, 17, 45, 5, 5,
- 5, 109, 34, 109, 109, 444, 444, 17, 17, 17,
+ 5, 109, 34, 109, 109, 451, 451, 17, 17, 17,
17, 17, 17, 17, 25, 25, 25, 25, 25, 25,
- 25, 521, 45, 5, 5, 6, 6, 6, 6, 6,
+ 25, 528, 45, 5, 5, 6, 6, 6, 6, 6,
6, 34, 6, 6, 6, 6, 6, 35, 33, 38,
- 36, 520, 33, 33, 33, 39, 6, 6, 6, 6,
- 6, 17, 33, 37, 37, 40, 411, 51, 41, 37,
+ 36, 527, 33, 33, 33, 39, 6, 6, 6, 6,
+ 6, 17, 33, 37, 37, 40, 418, 51, 41, 37,
- 397, 518, 411, 39, 35, 47, 33, 36, 38, 33,
- 33, 33, 71, 41, 397, 446, 6, 6, 6, 446,
- 446, 37, 37, 40, 51, 42, 37, 41, 42, 46,
+ 404, 525, 418, 39, 35, 47, 33, 36, 38, 33,
+ 33, 33, 71, 41, 404, 453, 6, 6, 6, 453,
+ 453, 37, 37, 40, 51, 42, 37, 41, 42, 46,
39, 43, 68, 43, 47, 70, 69, 71, 46, 46,
41, 6, 6, 43, 66, 66, 66, 66, 66, 66,
- 66, 516, 76, 42, 72, 42, 73, 74, 46, 68,
- 43, 77, 43, 69, 70, 46, 46, 514, 513, 82,
+ 66, 523, 76, 42, 72, 42, 73, 74, 46, 68,
+ 43, 77, 43, 69, 70, 46, 46, 521, 520, 82,
75, 43, 44, 80, 133, 74, 44, 61, 44, 61,
76, 72, 86, 73, 85, 44, 74, 44, 44, 77,
61, 61, 61, 61, 61, 61, 61, 75, 82, 133,
- 80, 44, 74, 87, 512, 44, 44, 62, 511, 62,
- 86, 85, 44, 509, 44, 44, 508, 507, 506, 505,
+ 80, 44, 74, 87, 519, 44, 44, 62, 518, 62,
+ 86, 85, 44, 516, 44, 44, 515, 514, 513, 512,
62, 62, 62, 62, 62, 62, 62, 63, 78, 63,
92, 87, 88, 78, 61, 64, 83, 64, 64, 83,
63, 63, 63, 63, 63, 63, 63, 90, 64, 64,
64, 64, 64, 64, 64, 79, 78, 79, 92, 88,
78, 89, 89, 83, 91, 89, 93, 94, 154, 96,
- 95, 97, 98, 99, 90, 100, 101, 504, 112, 503,
- 502, 501, 113, 79, 114, 79, 115, 116, 117, 89,
- 118, 91, 89, 154, 500, 93, 94, 95, 96, 97,
+ 95, 97, 98, 99, 90, 100, 101, 511, 112, 510,
+ 509, 508, 113, 79, 114, 79, 115, 116, 117, 89,
+ 118, 91, 89, 154, 507, 93, 94, 95, 96, 97,
98, 119, 99, 120, 100, 101, 108, 112, 108, 108,
113, 114, 121, 123, 115, 117, 116, 122, 118, 108,
108, 108, 108, 108, 108, 108, 124, 125, 119, 126,
127, 120, 129, 130, 132, 131, 129, 134, 135, 138,
123, 121, 136, 146, 137, 122, 139, 140, 141, 142,
- 143, 496, 144, 124, 145, 125, 147, 126, 127, 148,
+ 143, 503, 144, 124, 145, 125, 147, 126, 127, 148,
129, 132, 130, 129, 131, 149, 134, 135, 138, 150,
136, 137, 146, 139, 140, 155, 141, 142, 143, 144,
156, 145, 157, 158, 147, 159, 160, 148, 161, 162,
163, 164, 149, 165, 166, 168, 150, 167, 169, 175,
- 171, 172, 155, 173, 174, 495, 176, 156, 177, 178,
+ 171, 172, 155, 173, 174, 502, 176, 156, 177, 178,
158, 157, 159, 180, 160, 161, 162, 163, 164, 179,
165, 181, 168, 166, 182, 167, 175, 169, 171, 183,
172, 186, 173, 174, 176, 188, 184, 177, 178, 184,
@@ -802,57 +809,60 @@ static yyconst flex_int16_t yy_chk[1088] =
228, 216, 229, 217, 230, 231, 232, 233, 236, 235,
239, 218, 238, 237, 220, 221, 222, 240, 251, 241,
- 223, 224, 245, 227, 248, 225, 226, 228, 249, 229,
+ 223, 224, 243, 227, 245, 225, 226, 228, 248, 229,
231, 230, 246, 232, 246, 236, 233, 235, 237, 239,
- 238, 250, 252, 257, 253, 251, 240, 241, 254, 255,
- 245, 256, 258, 248, 259, 259, 249, 262, 260, 246,
- 260, 246, 261, 264, 265, 266, 268, 259, 267, 250,
- 252, 253, 257, 270, 272, 254, 271, 255, 256, 273,
- 275, 258, 276, 259, 259, 262, 260, 260, 277, 261,
- 264, 265, 278, 266, 268, 259, 279, 267, 281, 282,
-
- 283, 270, 272, 271, 284, 287, 286, 275, 273, 288,
- 276, 289, 292, 293, 294, 296, 277, 295, 298, 299,
- 302, 278, 301, 279, 303, 305, 281, 282, 283, 306,
- 307, 311, 287, 284, 286, 309, 288, 312, 313, 289,
- 292, 294, 293, 296, 295, 315, 298, 317, 299, 302,
- 301, 318, 305, 303, 306, 319, 320, 494, 322, 307,
- 311, 321, 323, 309, 312, 324, 325, 313, 326, 348,
- 327, 328, 329, 315, 330, 317, 331, 333, 334, 318,
- 336, 338, 339, 342, 319, 320, 322, 343, 321, 344,
- 323, 350, 347, 324, 348, 325, 326, 327, 328, 349,
-
- 329, 330, 351, 352, 333, 331, 334, 336, 338, 339,
- 353, 355, 342, 358, 360, 365, 343, 369, 344, 347,
- 350, 366, 370, 371, 382, 492, 349, 376, 383, 388,
- 352, 351, 387, 390, 393, 491, 490, 353, 355, 394,
- 395, 489, 358, 360, 365, 394, 369, 395, 366, 487,
- 486, 370, 371, 382, 376, 394, 383, 485, 388, 387,
- 390, 392, 392, 393, 483, 474, 481, 474, 392, 474,
- 474, 480, 392, 479, 478, 392, 477, 392, 392, 476,
- 392, 527, 527, 527, 527, 528, 528, 528, 528, 529,
- 529, 529, 529, 531, 531, 532, 475, 532, 532, 533,
-
- 473, 533, 533, 534, 472, 534, 534, 535, 535, 535,
- 535, 471, 470, 469, 468, 467, 466, 465, 464, 463,
- 462, 460, 459, 458, 457, 456, 455, 454, 453, 452,
- 451, 450, 449, 448, 447, 445, 443, 442, 441, 440,
- 439, 438, 436, 435, 434, 433, 432, 431, 428, 427,
- 426, 425, 424, 423, 422, 421, 420, 419, 418, 417,
- 416, 414, 413, 412, 410, 409, 408, 407, 406, 405,
- 404, 403, 401, 400, 399, 398, 396, 389, 385, 381,
- 377, 368, 362, 356, 340, 314, 280, 247, 234, 213,
- 211, 194, 170, 153, 151, 128, 111, 110, 106, 105,
-
- 103, 81, 65, 57, 56, 55, 13, 4, 526, 526,
- 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
- 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
- 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
- 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
- 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
- 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
- 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
- 526, 526, 526, 526, 526, 526, 526
+ 238, 249, 250, 252, 255, 251, 240, 241, 253, 254,
+ 243, 256, 245, 257, 258, 259, 259, 248, 260, 246,
+ 260, 246, 261, 262, 501, 264, 265, 266, 259, 249,
+ 250, 252, 255, 267, 271, 253, 254, 268, 256, 270,
+ 272, 273, 257, 258, 259, 259, 260, 260, 275, 261,
+ 276, 262, 264, 265, 277, 266, 259, 278, 279, 280,
+
+ 282, 271, 267, 283, 284, 268, 285, 270, 272, 287,
+ 273, 288, 289, 290, 293, 275, 294, 295, 276, 296,
+ 297, 299, 300, 277, 302, 278, 280, 279, 282, 303,
+ 304, 283, 284, 306, 308, 285, 307, 287, 288, 289,
+ 310, 290, 293, 314, 295, 294, 296, 312, 297, 299,
+ 313, 300, 302, 315, 323, 317, 319, 320, 303, 304,
+ 306, 307, 321, 308, 322, 329, 324, 325, 310, 326,
+ 314, 327, 312, 328, 333, 330, 331, 345, 332, 313,
+ 335, 323, 315, 317, 319, 320, 336, 346, 338, 339,
+ 347, 321, 329, 322, 324, 325, 341, 326, 342, 350,
+
+ 327, 328, 330, 333, 331, 332, 345, 335, 351, 352,
+ 353, 354, 361, 364, 336, 338, 346, 339, 355, 347,
+ 356, 358, 363, 341, 369, 342, 350, 370, 373, 374,
+ 375, 380, 499, 351, 381, 387, 352, 388, 389, 353,
+ 354, 361, 364, 393, 394, 355, 400, 356, 358, 397,
+ 363, 498, 497, 369, 370, 399, 399, 373, 374, 375,
+ 380, 381, 399, 496, 387, 388, 399, 389, 494, 399,
+ 393, 399, 399, 394, 399, 400, 397, 401, 402, 493,
+ 492, 490, 481, 401, 481, 402, 481, 481, 488, 487,
+ 486, 485, 484, 401, 534, 534, 534, 534, 535, 535,
+
+ 535, 535, 536, 536, 536, 536, 538, 538, 539, 483,
+ 539, 539, 540, 482, 540, 540, 541, 480, 541, 541,
+ 542, 542, 542, 542, 479, 478, 477, 476, 475, 474,
+ 473, 472, 471, 470, 469, 467, 466, 465, 464, 463,
+ 462, 461, 460, 459, 458, 457, 456, 455, 454, 452,
+ 450, 449, 448, 447, 446, 445, 443, 442, 441, 440,
+ 439, 438, 435, 434, 433, 432, 431, 430, 429, 428,
+ 427, 426, 425, 424, 423, 421, 420, 419, 417, 416,
+ 415, 414, 413, 412, 411, 410, 408, 407, 406, 405,
+ 403, 396, 391, 386, 382, 372, 366, 359, 343, 316,
+
+ 281, 247, 234, 213, 211, 194, 170, 153, 151, 128,
+ 111, 110, 106, 105, 103, 81, 65, 57, 56, 55,
+ 13, 4, 533, 533, 533, 533, 533, 533, 533, 533,
+ 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
+ 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
+ 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
+ 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
+ 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
+ 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
+ 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
+
+ 533
} ;
static yy_state_type yy_last_accepting_state;
@@ -869,8 +879,8 @@ int yy_flex_debug = 0;
#define YY_MORE_ADJ 0
#define YY_RESTORE_YY_MORE_OFFSET
char *yytext;
-#line 1 "../lexxer.l"
-#line 17 "../lexxer.l"
+#line 1 "../release/lexxer.l"
+#line 17 "../release/lexxer.l"
/*
* Mach Operating System
* Copyright (c) 1991,1990 Carnegie Mellon University
@@ -907,6 +917,9 @@ char *yytext;
#include "lexxer.h"
#include "cpu.h"
+/* We do not need the input function. */
+#define YY_NO_INPUT
+
#define stringize(x) #x
#ifdef LDEBUG
@@ -954,7 +967,7 @@ static struct yysvf *oldYYBegin;
static void doSharp(const char *body); /* process body of # directives */
-#line 958 "lexxer.c"
+#line 971 "lexxer.c"
#define INITIAL 0
#define Normal 1
@@ -998,7 +1011,7 @@ FILE *yyget_out (void );
void yyset_out (FILE * out_str );
-int yyget_leng (void );
+yy_size_t yyget_leng (void );
char *yyget_text (void );
@@ -1147,11 +1160,6 @@ YY_DECL
register char *yy_cp, *yy_bp;
register int yy_act;
-#line 103 "../lexxer.l"
-
-
-#line 1154 "lexxer.c"
-
if ( !(yy_init) )
{
(yy_init) = 1;
@@ -1178,6 +1186,12 @@ YY_DECL
yy_load_buffer_state( );
}
+ {
+#line 106 "../release/lexxer.l"
+
+
+#line 1194 "lexxer.c"
+
while ( 1 ) /* loops until end-of-file is reached */
{
yy_cp = (yy_c_buf_p);
@@ -1195,7 +1209,7 @@ YY_DECL
yy_match:
do
{
- register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
+ register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
if ( yy_accept[yy_current_state] )
{
(yy_last_accepting_state) = yy_current_state;
@@ -1204,13 +1218,13 @@ yy_match:
while ( yy_chk[yy_base[yy_current_state] + yy_c] !=
yy_current_state )
{
yy_current_state = (int)
yy_def[yy_current_state];
- if ( yy_current_state >= 527 )
+ if ( yy_current_state >= 534 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] +
(unsigned int) yy_c];
++yy_cp;
}
- while ( yy_base[yy_current_state] != 1009 );
+ while ( yy_base[yy_current_state] != 1023 );
yy_find_action:
yy_act = yy_accept[yy_current_state];
@@ -1236,530 +1250,535 @@ do_action: /* This label is used only to access
EOF actions. */
case 1:
YY_RULE_SETUP
-#line 105 "../lexxer.l"
+#line 108 "../release/lexxer.l"
RETURN(syRoutine);
YY_BREAK
case 2:
YY_RULE_SETUP
-#line 106 "../lexxer.l"
+#line 109 "../release/lexxer.l"
RETURN(syFunction);
YY_BREAK
case 3:
YY_RULE_SETUP
-#line 107 "../lexxer.l"
+#line 110 "../release/lexxer.l"
RETURN(syProcedure);
YY_BREAK
case 4:
YY_RULE_SETUP
-#line 108 "../lexxer.l"
+#line 111 "../release/lexxer.l"
RETURN(sySimpleProcedure);
YY_BREAK
case 5:
YY_RULE_SETUP
-#line 109 "../lexxer.l"
+#line 112 "../release/lexxer.l"
RETURN(sySimpleRoutine);
YY_BREAK
case 6:
YY_RULE_SETUP
-#line 110 "../lexxer.l"
+#line 113 "../release/lexxer.l"
RETURN(sySubsystem);
YY_BREAK
case 7:
YY_RULE_SETUP
-#line 111 "../lexxer.l"
+#line 114 "../release/lexxer.l"
RETURN(syMsgOption);
YY_BREAK
case 8:
YY_RULE_SETUP
-#line 112 "../lexxer.l"
+#line 115 "../release/lexxer.l"
RETURN(syMsgSeqno);
YY_BREAK
case 9:
YY_RULE_SETUP
-#line 113 "../lexxer.l"
+#line 116 "../release/lexxer.l"
RETURN(syWaitTime);
YY_BREAK
case 10:
YY_RULE_SETUP
-#line 114 "../lexxer.l"
+#line 117 "../release/lexxer.l"
RETURN(syNoWaitTime);
YY_BREAK
case 11:
YY_RULE_SETUP
-#line 115 "../lexxer.l"
+#line 118 "../release/lexxer.l"
RETURN(syIn);
YY_BREAK
case 12:
YY_RULE_SETUP
-#line 116 "../lexxer.l"
+#line 119 "../release/lexxer.l"
RETURN(syOut);
YY_BREAK
case 13:
YY_RULE_SETUP
-#line 117 "../lexxer.l"
+#line 120 "../release/lexxer.l"
RETURN(syInOut);
YY_BREAK
case 14:
YY_RULE_SETUP
-#line 118 "../lexxer.l"
+#line 121 "../release/lexxer.l"
RETURN(syRequestPort);
YY_BREAK
case 15:
YY_RULE_SETUP
-#line 119 "../lexxer.l"
+#line 122 "../release/lexxer.l"
RETURN(syReplyPort);
YY_BREAK
case 16:
YY_RULE_SETUP
-#line 120 "../lexxer.l"
+#line 123 "../release/lexxer.l"
RETURN(syUReplyPort);
YY_BREAK
case 17:
YY_RULE_SETUP
-#line 121 "../lexxer.l"
+#line 124 "../release/lexxer.l"
RETURN(sySReplyPort);
YY_BREAK
case 18:
YY_RULE_SETUP
-#line 122 "../lexxer.l"
+#line 125 "../release/lexxer.l"
RETURN(syArray);
YY_BREAK
case 19:
YY_RULE_SETUP
-#line 123 "../lexxer.l"
+#line 126 "../release/lexxer.l"
RETURN(syOf);
YY_BREAK
case 20:
YY_RULE_SETUP
-#line 124 "../lexxer.l"
+#line 127 "../release/lexxer.l"
RETURN(syErrorProc);
YY_BREAK
case 21:
YY_RULE_SETUP
-#line 125 "../lexxer.l"
+#line 128 "../release/lexxer.l"
RETURN(syServerPrefix);
YY_BREAK
case 22:
YY_RULE_SETUP
-#line 126 "../lexxer.l"
+#line 129 "../release/lexxer.l"
RETURN(syUserPrefix);
YY_BREAK
case 23:
YY_RULE_SETUP
-#line 127 "../lexxer.l"
+#line 130 "../release/lexxer.l"
RETURN(syServerDemux);
YY_BREAK
case 24:
YY_RULE_SETUP
-#line 128 "../lexxer.l"
+#line 131 "../release/lexxer.l"
RETURN(syRCSId);
YY_BREAK
case 25:
YY_RULE_SETUP
-#line 129 "../lexxer.l"
+#line 132 "../release/lexxer.l"
RETURN(syImport);
YY_BREAK
case 26:
YY_RULE_SETUP
-#line 130 "../lexxer.l"
+#line 133 "../release/lexxer.l"
RETURN(syUImport);
YY_BREAK
case 27:
YY_RULE_SETUP
-#line 131 "../lexxer.l"
+#line 134 "../release/lexxer.l"
RETURN(sySImport);
YY_BREAK
case 28:
YY_RULE_SETUP
-#line 132 "../lexxer.l"
+#line 135 "../release/lexxer.l"
RETURN(syType);
YY_BREAK
case 29:
YY_RULE_SETUP
-#line 133 "../lexxer.l"
+#line 136 "../release/lexxer.l"
RETURN(syKernelServer);
YY_BREAK
case 30:
YY_RULE_SETUP
-#line 134 "../lexxer.l"
+#line 137 "../release/lexxer.l"
RETURN(syKernelUser);
YY_BREAK
case 31:
YY_RULE_SETUP
-#line 135 "../lexxer.l"
+#line 138 "../release/lexxer.l"
RETURN(sySkip);
YY_BREAK
case 32:
YY_RULE_SETUP
-#line 136 "../lexxer.l"
+#line 139 "../release/lexxer.l"
RETURN(syStruct);
YY_BREAK
case 33:
YY_RULE_SETUP
-#line 137 "../lexxer.l"
+#line 140 "../release/lexxer.l"
RETURN(syInTran);
YY_BREAK
case 34:
YY_RULE_SETUP
-#line 138 "../lexxer.l"
-RETURN(syOutTran);
+#line 141 "../release/lexxer.l"
+RETURN(syInTranPayload);
YY_BREAK
case 35:
YY_RULE_SETUP
-#line 139 "../lexxer.l"
-RETURN(syDestructor);
+#line 142 "../release/lexxer.l"
+RETURN(syOutTran);
YY_BREAK
case 36:
YY_RULE_SETUP
-#line 140 "../lexxer.l"
-RETURN(syCType);
+#line 143 "../release/lexxer.l"
+RETURN(syDestructor);
YY_BREAK
case 37:
YY_RULE_SETUP
-#line 141 "../lexxer.l"
-RETURN(syCUserType);
+#line 144 "../release/lexxer.l"
+RETURN(syCType);
YY_BREAK
case 38:
YY_RULE_SETUP
-#line 142 "../lexxer.l"
-RETURN(syCServerType);
+#line 145 "../release/lexxer.l"
+RETURN(syCUserType);
YY_BREAK
case 39:
YY_RULE_SETUP
-#line 143 "../lexxer.l"
-RETURN(syCString);
+#line 146 "../release/lexxer.l"
+RETURN(syCServerType);
YY_BREAK
case 40:
YY_RULE_SETUP
-#line 145 "../lexxer.l"
-FRETURN(flLong);
+#line 147 "../release/lexxer.l"
+RETURN(syCString);
YY_BREAK
case 41:
YY_RULE_SETUP
-#line 146 "../lexxer.l"
-FRETURN(flNotLong);
+#line 149 "../release/lexxer.l"
+FRETURN(flLong);
YY_BREAK
case 42:
YY_RULE_SETUP
-#line 147 "../lexxer.l"
-FRETURN(flDealloc);
+#line 150 "../release/lexxer.l"
+FRETURN(flNotLong);
YY_BREAK
case 43:
YY_RULE_SETUP
-#line 148 "../lexxer.l"
-FRETURN(flNotDealloc);
+#line 151 "../release/lexxer.l"
+FRETURN(flDealloc);
YY_BREAK
case 44:
YY_RULE_SETUP
-#line 149 "../lexxer.l"
-FRETURN(flServerCopy);
+#line 152 "../release/lexxer.l"
+FRETURN(flNotDealloc);
YY_BREAK
case 45:
YY_RULE_SETUP
-#line 150 "../lexxer.l"
-FRETURN(flCountInOut);
+#line 153 "../release/lexxer.l"
+FRETURN(flServerCopy);
YY_BREAK
case 46:
YY_RULE_SETUP
-#line 151 "../lexxer.l"
-FRETURN(flNone);
+#line 154 "../release/lexxer.l"
+FRETURN(flCountInOut);
YY_BREAK
case 47:
YY_RULE_SETUP
-#line 153 "../lexxer.l"
-TRETURN(MACH_MSG_TYPE_POLYMORPHIC,word_size_in_bits);
+#line 155 "../release/lexxer.l"
+FRETURN(flNone);
YY_BREAK
case 48:
YY_RULE_SETUP
-#line 155 "../lexxer.l"
-TRETURN(MACH_MSG_TYPE_UNSTRUCTURED,0);
+#line 157 "../release/lexxer.l"
+TRETURN(MACH_MSG_TYPE_POLYMORPHIC,word_size_in_bits);
YY_BREAK
case 49:
YY_RULE_SETUP
-#line 156 "../lexxer.l"
-TRETURN(MACH_MSG_TYPE_BIT,1);
+#line 159 "../release/lexxer.l"
+TRETURN(MACH_MSG_TYPE_UNSTRUCTURED,0);
YY_BREAK
case 50:
YY_RULE_SETUP
-#line 157 "../lexxer.l"
-TRETURN(MACH_MSG_TYPE_BOOLEAN,32);
+#line 160 "../release/lexxer.l"
+TRETURN(MACH_MSG_TYPE_BIT,1);
YY_BREAK
case 51:
YY_RULE_SETUP
-#line 158 "../lexxer.l"
-TRETURN(MACH_MSG_TYPE_INTEGER_16,16);
+#line 161 "../release/lexxer.l"
+TRETURN(MACH_MSG_TYPE_BOOLEAN,32);
YY_BREAK
case 52:
YY_RULE_SETUP
-#line 159 "../lexxer.l"
-TRETURN(MACH_MSG_TYPE_INTEGER_32,32);
+#line 162 "../release/lexxer.l"
+TRETURN(MACH_MSG_TYPE_INTEGER_16,16);
YY_BREAK
case 53:
YY_RULE_SETUP
-#line 160 "../lexxer.l"
-TRETURN(MACH_MSG_TYPE_INTEGER_64,64);
+#line 163 "../release/lexxer.l"
+TRETURN(MACH_MSG_TYPE_INTEGER_32,32);
YY_BREAK
case 54:
YY_RULE_SETUP
-#line 161 "../lexxer.l"
-TRETURN(MACH_MSG_TYPE_CHAR,8);
+#line 164 "../release/lexxer.l"
+TRETURN(MACH_MSG_TYPE_INTEGER_64,64);
YY_BREAK
case 55:
YY_RULE_SETUP
-#line 162 "../lexxer.l"
-TRETURN(MACH_MSG_TYPE_BYTE,8);
+#line 165 "../release/lexxer.l"
+TRETURN(MACH_MSG_TYPE_CHAR,8);
YY_BREAK
case 56:
YY_RULE_SETUP
-#line 163 "../lexxer.l"
-TRETURN(MACH_MSG_TYPE_INTEGER_8,8);
+#line 166 "../release/lexxer.l"
+TRETURN(MACH_MSG_TYPE_BYTE,8);
YY_BREAK
case 57:
YY_RULE_SETUP
-#line 164 "../lexxer.l"
-TRETURN(MACH_MSG_TYPE_REAL,0);
+#line 167 "../release/lexxer.l"
+TRETURN(MACH_MSG_TYPE_INTEGER_8,8);
YY_BREAK
case 58:
YY_RULE_SETUP
-#line 165 "../lexxer.l"
-TRETURN(MACH_MSG_TYPE_STRING,0);
+#line 168 "../release/lexxer.l"
+TRETURN(MACH_MSG_TYPE_REAL,0);
YY_BREAK
case 59:
YY_RULE_SETUP
-#line 166 "../lexxer.l"
-TRETURN(MACH_MSG_TYPE_STRING_C,0);
+#line 169 "../release/lexxer.l"
+TRETURN(MACH_MSG_TYPE_STRING,0);
YY_BREAK
case 60:
YY_RULE_SETUP
-#line 168 "../lexxer.l"
-TPRETURN(MACH_MSG_TYPE_MOVE_RECEIVE,MACH_MSG_TYPE_PORT_RECEIVE,word_size_in_bits);
+#line 170 "../release/lexxer.l"
+TRETURN(MACH_MSG_TYPE_STRING_C,0);
YY_BREAK
case 61:
YY_RULE_SETUP
-#line 169 "../lexxer.l"
-TPRETURN(MACH_MSG_TYPE_COPY_SEND,MACH_MSG_TYPE_PORT_SEND,word_size_in_bits);
+#line 172 "../release/lexxer.l"
+TPRETURN(MACH_MSG_TYPE_MOVE_RECEIVE,MACH_MSG_TYPE_PORT_RECEIVE,word_size_in_bits);
YY_BREAK
case 62:
YY_RULE_SETUP
-#line 170 "../lexxer.l"
-TPRETURN(MACH_MSG_TYPE_MAKE_SEND,MACH_MSG_TYPE_PORT_SEND,word_size_in_bits);
+#line 173 "../release/lexxer.l"
+TPRETURN(MACH_MSG_TYPE_COPY_SEND,MACH_MSG_TYPE_PORT_SEND,word_size_in_bits);
YY_BREAK
case 63:
YY_RULE_SETUP
-#line 171 "../lexxer.l"
-TPRETURN(MACH_MSG_TYPE_MOVE_SEND,MACH_MSG_TYPE_PORT_SEND,word_size_in_bits);
+#line 174 "../release/lexxer.l"
+TPRETURN(MACH_MSG_TYPE_MAKE_SEND,MACH_MSG_TYPE_PORT_SEND,word_size_in_bits);
YY_BREAK
case 64:
YY_RULE_SETUP
-#line 172 "../lexxer.l"
-TPRETURN(MACH_MSG_TYPE_MAKE_SEND_ONCE,MACH_MSG_TYPE_PORT_SEND_ONCE,word_size_in_bits);
+#line 175 "../release/lexxer.l"
+TPRETURN(MACH_MSG_TYPE_MOVE_SEND,MACH_MSG_TYPE_PORT_SEND,word_size_in_bits);
YY_BREAK
case 65:
YY_RULE_SETUP
-#line 173 "../lexxer.l"
-TPRETURN(MACH_MSG_TYPE_MOVE_SEND_ONCE,MACH_MSG_TYPE_PORT_SEND_ONCE,word_size_in_bits);
+#line 176 "../release/lexxer.l"
+TPRETURN(MACH_MSG_TYPE_MAKE_SEND_ONCE,MACH_MSG_TYPE_PORT_SEND_ONCE,word_size_in_bits);
YY_BREAK
case 66:
YY_RULE_SETUP
-#line 175 "../lexxer.l"
-TRETURN(MACH_MSG_TYPE_PORT_NAME,word_size_in_bits);
+#line 177 "../release/lexxer.l"
+TPRETURN(MACH_MSG_TYPE_MOVE_SEND_ONCE,MACH_MSG_TYPE_PORT_SEND_ONCE,word_size_in_bits);
YY_BREAK
case 67:
YY_RULE_SETUP
-#line 176 "../lexxer.l"
-TPRETURN(MACH_MSG_TYPE_POLYMORPHIC,MACH_MSG_TYPE_PORT_RECEIVE,word_size_in_bits);
+#line 179 "../release/lexxer.l"
+TRETURN(MACH_MSG_TYPE_PORT_NAME,word_size_in_bits);
YY_BREAK
case 68:
YY_RULE_SETUP
-#line 177 "../lexxer.l"
-TPRETURN(MACH_MSG_TYPE_POLYMORPHIC,MACH_MSG_TYPE_PORT_SEND,word_size_in_bits);
+#line 180 "../release/lexxer.l"
+TPRETURN(MACH_MSG_TYPE_POLYMORPHIC,MACH_MSG_TYPE_PORT_RECEIVE,word_size_in_bits);
YY_BREAK
case 69:
YY_RULE_SETUP
-#line 178 "../lexxer.l"
-TPRETURN(MACH_MSG_TYPE_POLYMORPHIC,MACH_MSG_TYPE_PORT_SEND_ONCE,word_size_in_bits);
+#line 181 "../release/lexxer.l"
+TPRETURN(MACH_MSG_TYPE_POLYMORPHIC,MACH_MSG_TYPE_PORT_SEND,word_size_in_bits);
YY_BREAK
case 70:
YY_RULE_SETUP
-#line 179 "../lexxer.l"
-TRETURN(MACH_MSG_TYPE_POLYMORPHIC,0);
+#line 182 "../release/lexxer.l"
+TPRETURN(MACH_MSG_TYPE_POLYMORPHIC,MACH_MSG_TYPE_PORT_SEND_ONCE,word_size_in_bits);
YY_BREAK
case 71:
YY_RULE_SETUP
-#line 181 "../lexxer.l"
-RETURN(syColon);
+#line 183 "../release/lexxer.l"
+TRETURN(MACH_MSG_TYPE_POLYMORPHIC,0);
YY_BREAK
case 72:
YY_RULE_SETUP
-#line 182 "../lexxer.l"
-RETURN(sySemi);
+#line 185 "../release/lexxer.l"
+RETURN(syColon);
YY_BREAK
case 73:
YY_RULE_SETUP
-#line 183 "../lexxer.l"
-RETURN(syComma);
+#line 186 "../release/lexxer.l"
+RETURN(sySemi);
YY_BREAK
case 74:
YY_RULE_SETUP
-#line 184 "../lexxer.l"
-RETURN(syPlus);
+#line 187 "../release/lexxer.l"
+RETURN(syComma);
YY_BREAK
case 75:
YY_RULE_SETUP
-#line 185 "../lexxer.l"
-RETURN(syMinus);
+#line 188 "../release/lexxer.l"
+RETURN(syPlus);
YY_BREAK
case 76:
YY_RULE_SETUP
-#line 186 "../lexxer.l"
-RETURN(syStar);
+#line 189 "../release/lexxer.l"
+RETURN(syMinus);
YY_BREAK
case 77:
YY_RULE_SETUP
-#line 187 "../lexxer.l"
-RETURN(syDiv);
+#line 190 "../release/lexxer.l"
+RETURN(syStar);
YY_BREAK
case 78:
YY_RULE_SETUP
-#line 188 "../lexxer.l"
-RETURN(syLParen);
+#line 191 "../release/lexxer.l"
+RETURN(syDiv);
YY_BREAK
case 79:
YY_RULE_SETUP
-#line 189 "../lexxer.l"
-RETURN(syRParen);
+#line 192 "../release/lexxer.l"
+RETURN(syLParen);
YY_BREAK
case 80:
YY_RULE_SETUP
-#line 190 "../lexxer.l"
-RETURN(syEqual);
+#line 193 "../release/lexxer.l"
+RETURN(syRParen);
YY_BREAK
case 81:
YY_RULE_SETUP
-#line 191 "../lexxer.l"
-RETURN(syCaret);
+#line 194 "../release/lexxer.l"
+RETURN(syEqual);
YY_BREAK
case 82:
YY_RULE_SETUP
-#line 192 "../lexxer.l"
-RETURN(syTilde);
+#line 195 "../release/lexxer.l"
+RETURN(syCaret);
YY_BREAK
case 83:
YY_RULE_SETUP
-#line 193 "../lexxer.l"
-RETURN(syLAngle);
+#line 196 "../release/lexxer.l"
+RETURN(syTilde);
YY_BREAK
case 84:
YY_RULE_SETUP
-#line 194 "../lexxer.l"
-RETURN(syRAngle);
+#line 197 "../release/lexxer.l"
+RETURN(syLAngle);
YY_BREAK
case 85:
YY_RULE_SETUP
-#line 195 "../lexxer.l"
-RETURN(syLBrack);
+#line 198 "../release/lexxer.l"
+RETURN(syRAngle);
YY_BREAK
case 86:
YY_RULE_SETUP
-#line 196 "../lexxer.l"
-RETURN(syRBrack);
+#line 199 "../release/lexxer.l"
+RETURN(syLBrack);
YY_BREAK
case 87:
YY_RULE_SETUP
-#line 197 "../lexxer.l"
-RETURN(syBar);
+#line 200 "../release/lexxer.l"
+RETURN(syRBrack);
YY_BREAK
case 88:
YY_RULE_SETUP
-#line 199 "../lexxer.l"
+#line 201 "../release/lexxer.l"
+RETURN(syBar);
+ YY_BREAK
+case 89:
+YY_RULE_SETUP
+#line 203 "../release/lexxer.l"
{ yylval.identifier = strmake(yytext);
RETURN(syIdentifier); }
YY_BREAK
-case 89:
+case 90:
YY_RULE_SETUP
-#line 201 "../lexxer.l"
+#line 205 "../release/lexxer.l"
{ yylval.number = atoi(yytext); RETURN(syNumber); }
YY_BREAK
-case 90:
+case 91:
YY_RULE_SETUP
-#line 203 "../lexxer.l"
+#line 207 "../release/lexxer.l"
{ yylval.string = strmake(yytext);
BEGIN Normal; RETURN(syString); }
YY_BREAK
-case 91:
+case 92:
YY_RULE_SETUP
-#line 205 "../lexxer.l"
+#line 209 "../release/lexxer.l"
{ yylval.string = strmake(yytext);
BEGIN Normal; RETURN(syFileName); }
YY_BREAK
-case 92:
+case 93:
YY_RULE_SETUP
-#line 207 "../lexxer.l"
+#line 211 "../release/lexxer.l"
{ yylval.string = strmake(yytext);
BEGIN Normal; RETURN(syQString); }
YY_BREAK
-case 93:
-/* rule 93 can match eol */
+case 94:
+/* rule 94 can match eol */
YY_RULE_SETUP
-#line 210 "../lexxer.l"
+#line 214 "../release/lexxer.l"
{ doSharp(yytext+1);
SAVE_BEGIN;
BEGIN SkipToEOL; }
YY_BREAK
-case 94:
+case 95:
YY_RULE_SETUP
-#line 213 "../lexxer.l"
+#line 217 "../release/lexxer.l"
{ doSharp(yytext+1);
SAVE_BEGIN;
BEGIN SkipToEOL; }
YY_BREAK
-case 95:
+case 96:
YY_RULE_SETUP
-#line 216 "../lexxer.l"
+#line 220 "../release/lexxer.l"
{ /* GCC's pre-processor might emit those. */
SAVE_BEGIN;
BEGIN SkipToEOL; }
YY_BREAK
-case 96:
+case 97:
YY_RULE_SETUP
-#line 219 "../lexxer.l"
+#line 223 "../release/lexxer.l"
{ yyerror("illegal # directive");
SAVE_BEGIN;
BEGIN SkipToEOL; }
YY_BREAK
-case 97:
-/* rule 97 can match eol */
+case 98:
+/* rule 98 can match eol */
YY_RULE_SETUP
-#line 223 "../lexxer.l"
+#line 227 "../release/lexxer.l"
RSTR_BEGIN;
YY_BREAK
-case 98:
+case 99:
YY_RULE_SETUP
-#line 224 "../lexxer.l"
+#line 228 "../release/lexxer.l"
;
YY_BREAK
-case 99:
+case 100:
YY_RULE_SETUP
-#line 226 "../lexxer.l"
+#line 230 "../release/lexxer.l"
;
YY_BREAK
-case 100:
-/* rule 100 can match eol */
+case 101:
+/* rule 101 can match eol */
YY_RULE_SETUP
-#line 227 "../lexxer.l"
+#line 231 "../release/lexxer.l"
{ lineno++; }
YY_BREAK
-case 101:
+case 102:
YY_RULE_SETUP
-#line 228 "../lexxer.l"
+#line 232 "../release/lexxer.l"
{ BEGIN Normal; RETURN(syError); }
YY_BREAK
-case 102:
+case 103:
YY_RULE_SETUP
-#line 230 "../lexxer.l"
+#line 234 "../release/lexxer.l"
ECHO;
YY_BREAK
-#line 1763 "lexxer.c"
+#line 1782 "lexxer.c"
case YY_STATE_EOF(INITIAL):
case YY_STATE_EOF(Normal):
case YY_STATE_EOF(String):
@@ -1895,6 +1914,7 @@ case YY_STATE_EOF(SkipToEOL):
"fatal flex scanner internal error--no action found" );
} /* end of action switch */
} /* end of scanning one token */
+ } /* end of user's declarations */
} /* end of yylex */
/* yy_get_next_buffer - try to read in a new buffer
@@ -1950,21 +1970,21 @@ static int yy_get_next_buffer (void)
else
{
- int num_to_read =
+ yy_size_t num_to_read =
YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move
- 1;
while ( num_to_read <= 0 )
{ /* Not enough room in the buffer - grow it. */
/* just a shorter name for the current buffer */
- YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
+ YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
int yy_c_buf_p_offset =
(int) ((yy_c_buf_p) - b->yy_ch_buf);
if ( b->yy_is_our_buffer )
{
- int new_size = b->yy_buf_size * 2;
+ yy_size_t new_size = b->yy_buf_size * 2;
if ( new_size <= 0 )
b->yy_buf_size += b->yy_buf_size / 8;
@@ -1995,7 +2015,7 @@ static int yy_get_next_buffer (void)
/* Read in more data. */
YY_INPUT(
(&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
- (yy_n_chars), (size_t) num_to_read );
+ (yy_n_chars), num_to_read );
YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
}
@@ -2057,7 +2077,7 @@ static int yy_get_next_buffer (void)
while ( yy_chk[yy_base[yy_current_state] + yy_c] !=
yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 527 )
+ if ( yy_current_state >= 534 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned
int) yy_c];
@@ -2085,13 +2105,13 @@ static int yy_get_next_buffer (void)
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 527 )
+ if ( yy_current_state >= 534 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int)
yy_c];
- yy_is_jam = (yy_current_state == 526);
+ yy_is_jam = (yy_current_state == 533);
- return yy_is_jam ? 0 : yy_current_state;
+ return yy_is_jam ? 0 : yy_current_state;
}
#ifndef YY_NO_INPUT
@@ -2118,7 +2138,7 @@ static int yy_get_next_buffer (void)
else
{ /* need more input */
- int offset = (yy_c_buf_p) - (yytext_ptr);
+ yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
++(yy_c_buf_p);
switch ( yy_get_next_buffer( ) )
@@ -2280,10 +2300,6 @@ static void yy_load_buffer_state (void)
yyfree((void *) b );
}
-#ifndef __cplusplus
-extern int isatty (int );
-#endif /* __cplusplus */
-
/* Initializes or reinitializes a buffer.
* This function is sometimes called more than once on the same buffer,
* such as during a yyrestart() or at EOF.
@@ -2396,7 +2412,7 @@ void yypop_buffer_state (void)
*/
static void yyensure_buffer_stack (void)
{
- int num_to_alloc;
+ yy_size_t num_to_alloc;
if (!(yy_buffer_stack)) {
@@ -2493,12 +2509,12 @@ YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
*
* @return the newly allocated buffer state object.
*/
-YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, int _yybytes_len )
+YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, yy_size_t
_yybytes_len )
{
YY_BUFFER_STATE b;
char *buf;
yy_size_t n;
- int i;
+ yy_size_t i;
/* Get memory for full buffer, including space for trailing EOB's. */
n = _yybytes_len + 2;
@@ -2580,7 +2596,7 @@ FILE *yyget_out (void)
/** Get the length of the current token.
*
*/
-int yyget_leng (void)
+yy_size_t yyget_leng (void)
{
return yyleng;
}
@@ -2728,7 +2744,7 @@ void yyfree (void * ptr )
#define YYTABLES_NAME "yytables"
-#line 230 "../lexxer.l"
+#line 233 "../release/lexxer.l"
diff --git a/lexxer.l b/lexxer.l
index 6686b55..7ff5677 100644
--- a/lexxer.l
+++ b/lexxer.l
@@ -50,6 +50,9 @@ FileName ({QString}|{AString})
#include "lexxer.h"
#include "cpu.h"
+/* We do not need the input function. */
+#define YY_NO_INPUT
+
#define stringize(x) #x
#ifdef LDEBUG
@@ -135,6 +138,7 @@ static void doSharp(const char *body); /* process body of #
directives */
<Normal>[Ss][Kk][Ii][Pp] RETURN(sySkip);
<Normal>[Ss][Tt][Rr][Uu][Cc][Tt] RETURN(syStruct);
<Normal>[Ii][Nn][Tt][Rr][Aa][Nn] RETURN(syInTran);
+<Normal>[Ii][Nn][Tt][Rr][Aa][Nn][Pp][Aa][Yy][Ll][Oo][Aa][Dd]
RETURN(syInTranPayload);
<Normal>[Oo][Uu][Tt][Tt][Rr][Aa][Nn] RETURN(syOutTran);
<Normal>[Dd][Ee][Ss][Tt][Rr][Uu][Cc][Tt][Oo][Rr] RETURN(syDestructor);
<Normal>[Cc][Tt][Yy][Pp][Ee] RETURN(syCType);
diff --git a/parser.c b/parser.c
index 4c8556a..3ce61d4 100644
--- a/parser.c
+++ b/parser.c
@@ -1,19 +1,19 @@
-/* A Bison parser, made by GNU Bison 2.7.12-4996. */
+/* A Bison parser, made by GNU Bison 3.0.2. */
/* Bison implementation for Yacc-like parsers in C
-
- Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
-
+
+ Copyright (C) 1984, 1989-1990, 2000-2013 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 3 of the License, or
(at your option) any later version.
-
+
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
-
+
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
@@ -26,7 +26,7 @@
special exception, which will cause the skeleton and the resulting
Bison output files to be licensed under the GNU General Public
License without this special exception.
-
+
This special exception was added by the Free Software Foundation in
version 2.2 of Bison. */
@@ -44,7 +44,7 @@
#define YYBISON 1
/* Bison version. */
-#define YYBISON_VERSION "2.7.12-4996"
+#define YYBISON_VERSION "3.0.2"
/* Skeleton name. */
#define YYSKELETON_NAME "yacc.c"
@@ -62,8 +62,7 @@
/* Copy the first part of user declarations. */
-/* Line 371 of yacc.c */
-#line 117 "../parser.y"
+#line 119 "../release/parser.y" /* yacc.c:339 */
#include <stdio.h>
@@ -84,14 +83,13 @@ yyerror(const char *s)
error("%s", s);
}
-/* Line 371 of yacc.c */
-#line 89 "parser.c"
+#line 87 "parser.c" /* yacc.c:339 */
-# ifndef YY_NULL
+# ifndef YY_NULLPTR
# if defined __cplusplus && 201103L <= __cplusplus
-# define YY_NULL nullptr
+# define YY_NULLPTR nullptr
# else
-# define YY_NULL 0
+# define YY_NULLPTR 0
# endif
# endif
@@ -104,7 +102,7 @@ yyerror(const char *s)
#endif
-/* Enabling traces. */
+/* Debug traces. */
#ifndef YYDEBUG
# define YYDEBUG 0
#endif
@@ -112,77 +110,77 @@ yyerror(const char *s)
extern int yydebug;
#endif
-/* Tokens. */
+/* Token type. */
#ifndef YYTOKENTYPE
# define YYTOKENTYPE
- /* Put the tokens into the symbol table, so that GDB and other debuggers
- know about them. */
- enum yytokentype {
- sySkip = 258,
- syRoutine = 259,
- sySimpleRoutine = 260,
- sySimpleProcedure = 261,
- syProcedure = 262,
- syFunction = 263,
- sySubsystem = 264,
- syKernelUser = 265,
- syKernelServer = 266,
- syMsgOption = 267,
- syMsgSeqno = 268,
- syWaitTime = 269,
- syNoWaitTime = 270,
- syErrorProc = 271,
- syServerPrefix = 272,
- syUserPrefix = 273,
- syServerDemux = 274,
- syRCSId = 275,
- syImport = 276,
- syUImport = 277,
- sySImport = 278,
- syIn = 279,
- syOut = 280,
- syInOut = 281,
- syRequestPort = 282,
- syReplyPort = 283,
- sySReplyPort = 284,
- syUReplyPort = 285,
- syType = 286,
- syArray = 287,
- syStruct = 288,
- syOf = 289,
- syInTran = 290,
- syOutTran = 291,
- syDestructor = 292,
- syCType = 293,
- syCUserType = 294,
- syCServerType = 295,
- syCString = 296,
- syColon = 297,
- sySemi = 298,
- syComma = 299,
- syPlus = 300,
- syMinus = 301,
- syStar = 302,
- syDiv = 303,
- syLParen = 304,
- syRParen = 305,
- syEqual = 306,
- syCaret = 307,
- syTilde = 308,
- syLAngle = 309,
- syRAngle = 310,
- syLBrack = 311,
- syRBrack = 312,
- syBar = 313,
- syError = 314,
- syNumber = 315,
- sySymbolicType = 316,
- syIdentifier = 317,
- syString = 318,
- syQString = 319,
- syFileName = 320,
- syIPCFlag = 321
- };
+ enum yytokentype
+ {
+ sySkip = 258,
+ syRoutine = 259,
+ sySimpleRoutine = 260,
+ sySimpleProcedure = 261,
+ syProcedure = 262,
+ syFunction = 263,
+ sySubsystem = 264,
+ syKernelUser = 265,
+ syKernelServer = 266,
+ syMsgOption = 267,
+ syMsgSeqno = 268,
+ syWaitTime = 269,
+ syNoWaitTime = 270,
+ syErrorProc = 271,
+ syServerPrefix = 272,
+ syUserPrefix = 273,
+ syServerDemux = 274,
+ syRCSId = 275,
+ syImport = 276,
+ syUImport = 277,
+ sySImport = 278,
+ syIn = 279,
+ syOut = 280,
+ syInOut = 281,
+ syRequestPort = 282,
+ syReplyPort = 283,
+ sySReplyPort = 284,
+ syUReplyPort = 285,
+ syType = 286,
+ syArray = 287,
+ syStruct = 288,
+ syOf = 289,
+ syInTran = 290,
+ syOutTran = 291,
+ syDestructor = 292,
+ syCType = 293,
+ syCUserType = 294,
+ syCServerType = 295,
+ syCString = 296,
+ syColon = 297,
+ sySemi = 298,
+ syComma = 299,
+ syPlus = 300,
+ syMinus = 301,
+ syStar = 302,
+ syDiv = 303,
+ syLParen = 304,
+ syRParen = 305,
+ syEqual = 306,
+ syCaret = 307,
+ syTilde = 308,
+ syLAngle = 309,
+ syRAngle = 310,
+ syLBrack = 311,
+ syRBrack = 312,
+ syBar = 313,
+ syError = 314,
+ syNumber = 315,
+ sySymbolicType = 316,
+ syIdentifier = 317,
+ syString = 318,
+ syQString = 319,
+ syFileName = 320,
+ syIPCFlag = 321,
+ syInTranPayload = 322
+ };
#endif
/* Tokens. */
#define sySkip 258
@@ -249,14 +247,14 @@ extern int yydebug;
#define syQString 319
#define syFileName 320
#define syIPCFlag 321
+#define syInTranPayload 322
-
-
+/* Value type. */
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-typedef union YYSTYPE
+typedef union YYSTYPE YYSTYPE;
+union YYSTYPE
{
-/* Line 387 of yacc.c */
-#line 139 "../parser.y"
+#line 141 "../release/parser.y" /* yacc.c:355 */
u_int number;
identifier_t identifier;
@@ -276,37 +274,22 @@ typedef union YYSTYPE
argument_t *argument;
ipc_flags_t flag;
-
-/* Line 387 of yacc.c */
-#line 282 "parser.c"
-} YYSTYPE;
+#line 278 "parser.c" /* yacc.c:355 */
+};
# define YYSTYPE_IS_TRIVIAL 1
-# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
#endif
+
extern YYSTYPE yylval;
-#ifdef YYPARSE_PARAM
-#if defined __STDC__ || defined __cplusplus
-int yyparse (void *YYPARSE_PARAM);
-#else
-int yyparse ();
-#endif
-#else /* ! YYPARSE_PARAM */
-#if defined __STDC__ || defined __cplusplus
int yyparse (void);
-#else
-int yyparse ();
-#endif
-#endif /* ! YYPARSE_PARAM */
/* Copy the second part of user declarations. */
-/* Line 390 of yacc.c */
-#line 310 "parser.c"
+#line 293 "parser.c" /* yacc.c:358 */
#ifdef short
# undef short
@@ -320,11 +303,8 @@ typedef unsigned char yytype_uint8;
#ifdef YYTYPE_INT8
typedef YYTYPE_INT8 yytype_int8;
-#elif (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-typedef signed char yytype_int8;
#else
-typedef short int yytype_int8;
+typedef signed char yytype_int8;
#endif
#ifdef YYTYPE_UINT16
@@ -344,8 +324,7 @@ typedef short int yytype_int16;
# define YYSIZE_T __SIZE_TYPE__
# elif defined size_t
# define YYSIZE_T size_t
-# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
+# elif ! defined YYSIZE_T
# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
# define YYSIZE_T size_t
# else
@@ -367,11 +346,30 @@ typedef short int yytype_int16;
# endif
#endif
-#ifndef __attribute__
-/* This feature is available in gcc versions 2.5 and later. */
-# if (! defined __GNUC__ || __GNUC__ < 2 \
- || (__GNUC__ == 2 && __GNUC_MINOR__ < 5))
-# define __attribute__(Spec) /* empty */
+#ifndef YY_ATTRIBUTE
+# if (defined __GNUC__ \
+ && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \
+ || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
+# define YY_ATTRIBUTE(Spec) __attribute__(Spec)
+# else
+# define YY_ATTRIBUTE(Spec) /* empty */
+# endif
+#endif
+
+#ifndef YY_ATTRIBUTE_PURE
+# define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__))
+#endif
+
+#ifndef YY_ATTRIBUTE_UNUSED
+# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
+#endif
+
+#if !defined _Noreturn \
+ && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
+# if defined _MSC_VER && 1200 <= _MSC_VER
+# define _Noreturn __declspec (noreturn)
+# else
+# define _Noreturn YY_ATTRIBUTE ((__noreturn__))
# endif
#endif
@@ -382,24 +380,25 @@ typedef short int yytype_int16;
# define YYUSE(E) /* empty */
#endif
-
-/* Identity function, used to suppress warnings about constant conditions. */
-#ifndef lint
-# define YYID(N) (N)
+#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
+/* Suppress an incorrect diagnostic about yylval being uninitialized. */
+# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
+ _Pragma ("GCC diagnostic push") \
+ _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
+ _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
+# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
+ _Pragma ("GCC diagnostic pop")
#else
-#if (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-static int
-YYID (int yyi)
-#else
-static int
-YYID (yyi)
- int yyi;
+# define YY_INITIAL_VALUE(Value) Value
#endif
-{
- return yyi;
-}
+#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
+# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
+# define YY_IGNORE_MAYBE_UNINITIALIZED_END
#endif
+#ifndef YY_INITIAL_VALUE
+# define YY_INITIAL_VALUE(Value) /* Nothing. */
+#endif
+
#if ! defined yyoverflow || YYERROR_VERBOSE
@@ -418,8 +417,7 @@ YYID (yyi)
# define alloca _alloca
# else
# define YYSTACK_ALLOC alloca
-# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ ||
defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
+# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
/* Use EXIT_SUCCESS as a witness for stdlib.h. */
# ifndef EXIT_SUCCESS
@@ -431,8 +429,8 @@ YYID (yyi)
# endif
# ifdef YYSTACK_ALLOC
- /* Pacify GCC's `empty if-body' warning. */
-# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
+ /* Pacify GCC's 'empty if-body' warning. */
+# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
# ifndef YYSTACK_ALLOC_MAXIMUM
/* The OS might guarantee only one guard page at the bottom of the stack,
and a page size can be as small as 4096 bytes. So we cannot safely
@@ -448,7 +446,7 @@ YYID (yyi)
# endif
# if (defined __cplusplus && ! defined EXIT_SUCCESS \
&& ! ((defined YYMALLOC || defined malloc) \
- && (defined YYFREE || defined free)))
+ && (defined YYFREE || defined free)))
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
# ifndef EXIT_SUCCESS
# define EXIT_SUCCESS 0
@@ -456,15 +454,13 @@ YYID (yyi)
# endif
# ifndef YYMALLOC
# define YYMALLOC malloc
-# if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ ||
defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
+# if ! defined malloc && ! defined EXIT_SUCCESS
void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
# endif
# endif
# ifndef YYFREE
# define YYFREE free
-# if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ ||
defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
+# if ! defined free && ! defined EXIT_SUCCESS
void free (void *); /* INFRINGES ON USER NAME SPACE */
# endif
# endif
@@ -474,7 +470,7 @@ void free (void *); /* INFRINGES ON USER NAME SPACE */
#if (! defined yyoverflow \
&& (! defined __cplusplus \
- || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
+ || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
/* A type that is properly aligned for any stack member. */
union yyalloc
@@ -499,16 +495,16 @@ union yyalloc
elements in the stack, and YYPTR gives the new location of the
stack. Advance YYPTR to a properly aligned location for the next
stack. */
-# define YYSTACK_RELOCATE(Stack_alloc, Stack) \
- do \
- {
\
- YYSIZE_T yynewbytes; \
- YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
- Stack = &yyptr->Stack_alloc; \
- yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
- yyptr += yynewbytes / sizeof (*yyptr); \
- }
\
- while (YYID (0))
+# define YYSTACK_RELOCATE(Stack_alloc, Stack) \
+ do \
+ { \
+ YYSIZE_T yynewbytes; \
+ YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
+ Stack = &yyptr->Stack_alloc; \
+ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
+ yyptr += yynewbytes / sizeof (*yyptr); \
+ } \
+ while (0)
#endif
@@ -527,7 +523,7 @@ union yyalloc
for (yyi = 0; yyi < (Count); yyi++) \
(Dst)[yyi] = (Src)[yyi]; \
} \
- while (YYID (0))
+ while (0)
# endif
# endif
#endif /* !YYCOPY_NEEDED */
@@ -535,25 +531,27 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 2
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 219
+#define YYLAST 223
/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 67
+#define YYNTOKENS 68
/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 46
/* YYNRULES -- Number of rules. */
-#define YYNRULES 108
-/* YYNRULES -- Number of states. */
-#define YYNSTATES 213
+#define YYNRULES 109
+/* YYNSTATES -- Number of states. */
+#define YYNSTATES 217
-/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
+/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
+ by yylex, with out-of-bounds checking. */
#define YYUNDEFTOK 2
-#define YYMAXUTOK 321
+#define YYMAXUTOK 322
-#define YYTRANSLATE(YYX) \
+#define YYTRANSLATE(YYX) \
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
-/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
+/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
+ as returned by yylex, without out-of-bounds checking. */
static const yytype_uint8 yytranslate[] =
{
0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
@@ -588,82 +586,24 @@ static const yytype_uint8 yytranslate[] =
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
+ 65, 66, 67
};
#if YYDEBUG
-/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
- YYRHS. */
-static const yytype_uint16 yyprhs[] =
-{
- 0, 0, 3, 4, 7, 10, 13, 16, 19, 22,
- 25, 28, 31, 34, 37, 41, 44, 47, 49, 52,
- 57, 59, 60, 63, 65, 67, 69, 71, 75, 79,
- 81, 84, 87, 90, 93, 97, 99, 101, 103, 107,
- 110, 114, 116, 125, 134, 142, 147, 152, 157, 159,
- 161, 164, 167, 170, 173, 175, 177, 184, 185, 189,
- 195, 197, 199, 201, 205, 207, 212, 218, 226, 232,
- 238, 243, 250, 254, 258, 262, 266, 268, 272, 274,
- 276, 278, 280, 282, 286, 290, 294, 298, 303, 306,
- 310, 312, 316, 321, 322, 324, 326, 328, 330, 332,
- 334, 336, 338, 340, 342, 345, 348, 349, 350
-};
-
-/* YYRHS -- A `-1'-separated list of the rules' RHS. */
-static const yytype_int8 yyrhs[] =
-{
- 68, 0, -1, -1, 68, 69, -1, 70, 43, -1,
- 77, 43, -1, 76, 43, -1, 78, 43, -1, 79,
- 43, -1, 80, 43, -1, 81, 43, -1, 85, 43,
- -1, 99, 43, -1, 3, 43, -1, 3, 60, 43,
- -1, 82, 43, -1, 84, 43, -1, 43, -1, 1,
- 43, -1, 71, 72, 74, 75, -1, 9, -1, -1,
- 72, 73, -1, 10, -1, 11, -1, 62, -1, 60,
- -1, 110, 12, 63, -1, 110, 14, 63, -1, 15,
- -1, 16, 62, -1, 17, 62, -1, 18, 62, -1,
- 19, 62, -1, 111, 83, 65, -1, 21, -1, 22,
- -1, 23, -1, 112, 20, 64, -1, 31, 86, -1,
- 62, 51, 87, -1, 88, -1, 87, 35, 42, 62,
- 62, 49, 62, 50, -1, 87, 36, 42, 62, 62,
- 49, 62, 50, -1, 87, 37, 42, 62, 49, 62,
- 50, -1, 87, 38, 42, 62, -1, 87, 39, 42,
- 62, -1, 87, 40, 42, 62, -1, 89, -1, 93,
- -1, 94, 88, -1, 95, 88, -1, 52, 88, -1,
- 96, 88, -1, 97, -1, 92, -1, 49, 92, 44,
- 98, 90, 50, -1, -1, 90, 44, 66, -1, 90,
- 44, 66, 56, 57, -1, 60, -1, 61, -1, 91,
- -1, 91, 58, 91, -1, 62, -1, 32, 56, 57,
- 34, -1, 32, 56, 47, 57, 34, -1, 32, 56,
- 47, 42, 98, 57, 34, -1, 32, 56, 98, 57,
- 34, -1, 33, 56, 98, 57, 34, -1, 41, 56,
- 98, 57, -1, 41, 56, 47, 42, 98, 57, -1,
- 98, 45, 98, -1, 98, 46, 98, -1, 98, 47,
- 98, -1, 98, 48, 98, -1, 60, -1, 49, 98,
- 50, -1, 100, -1, 101, -1, 102, -1, 103, -1,
- 104, -1, 4, 62, 105, -1, 5, 62, 105, -1,
- 7, 62, 105, -1, 6, 62, 105, -1, 8, 62,
- 105, 109, -1, 49, 50, -1, 49, 106, 50, -1,
- 107, -1, 107, 43, 106, -1, 108, 62, 109, 90,
- -1, -1, 24, -1, 25, -1, 26, -1, 27, -1,
- 28, -1, 29, -1, 30, -1, 14, -1, 12, -1,
- 13, -1, 42, 62, -1, 42, 86, -1, -1, -1,
- -1
-};
-
-/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
+ /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
- 0, 161, 161, 162, 165, 166, 167, 168, 169, 170,
- 171, 172, 173, 183, 185, 187, 188, 189, 190, 194,
- 207, 219, 220, 223, 229, 237, 240, 243, 260, 266,
- 274, 282, 290, 298, 306, 317, 318, 319, 322, 332,
- 342, 346, 348, 368, 388, 403, 417, 426, 438, 440,
- 442, 444, 446, 448, 450, 454, 460, 470, 471, 478,
- 487, 493, 497, 499, 523, 527, 529, 531, 536, 540,
- 544, 546, 551, 553, 555, 557, 559, 561, 566, 567,
- 568, 569, 570, 573, 577, 581, 585, 589, 593, 595,
- 600, 602, 609, 619, 620, 621, 622, 623, 624, 625,
- 626, 627, 628, 629, 632, 638, 643, 647, 651
+ 0, 163, 163, 164, 167, 168, 169, 170, 171, 172,
+ 173, 174, 175, 185, 187, 189, 190, 191, 192, 196,
+ 209, 221, 222, 225, 231, 239, 242, 245, 262, 268,
+ 276, 284, 292, 300, 308, 319, 320, 321, 324, 334,
+ 344, 348, 350, 370, 385, 405, 420, 434, 443, 455,
+ 457, 459, 461, 463, 465, 467, 471, 477, 487, 488,
+ 495, 504, 510, 514, 516, 540, 544, 546, 548, 553,
+ 557, 561, 563, 568, 570, 572, 574, 576, 578, 583,
+ 584, 585, 586, 587, 590, 594, 598, 602, 606, 610,
+ 612, 617, 619, 626, 636, 637, 638, 639, 640, 641,
+ 642, 643, 644, 645, 646, 649, 655, 660, 664, 668
};
#endif
@@ -684,8 +624,8 @@ static const char *const yytname[] =
"syMinus", "syStar", "syDiv", "syLParen", "syRParen", "syEqual",
"syCaret", "syTilde", "syLAngle", "syRAngle", "syLBrack", "syRBrack",
"syBar", "syError", "syNumber", "sySymbolicType", "syIdentifier",
- "syString", "syQString", "syFileName", "syIPCFlag", "$accept",
- "Statements", "Statement", "Subsystem", "SubsystemStart",
+ "syString", "syQString", "syFileName", "syIPCFlag", "syInTranPayload",
+ "$accept", "Statements", "Statement", "Subsystem", "SubsystemStart",
"SubsystemMods", "SubsystemMod", "SubsystemName", "SubsystemBase",
"MsgOption", "WaitTime", "Error", "ServerPrefix", "UserPrefix",
"ServerDemux", "Import", "ImportIndicant", "RCSDecl", "TypeDecl",
@@ -694,13 +634,13 @@ static const char *const yytname[] =
"ArrayHead", "StructHead", "CStringSpec", "IntExp", "RoutineDecl",
"Routine", "SimpleRoutine", "Procedure", "SimpleProcedure", "Function",
"Arguments", "ArgumentList", "Argument", "Direction", "ArgumentType",
- "LookString", "LookFileName", "LookQString", YY_NULL
+ "LookString", "LookFileName", "LookQString", YY_NULLPTR
};
#endif
# ifdef YYPRINT
-/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
- token YYLEX-NUM. */
+/* YYTOKNUM[NUM] -- (External) token number corresponding to the
+ (internal) symbol number NUM (which must be that of a token). */
static const yytype_uint16 yytoknum[] =
{
0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
@@ -709,234 +649,224 @@ static const yytype_uint16 yytoknum[] =
285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
- 315, 316, 317, 318, 319, 320, 321
+ 315, 316, 317, 318, 319, 320, 321, 322
};
# endif
-/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
-static const yytype_uint8 yyr1[] =
-{
- 0, 67, 68, 68, 69, 69, 69, 69, 69, 69,
- 69, 69, 69, 69, 69, 69, 69, 69, 69, 70,
- 71, 72, 72, 73, 73, 74, 75, 76, 77, 77,
- 78, 79, 80, 81, 82, 83, 83, 83, 84, 85,
- 86, 87, 87, 87, 87, 87, 87, 87, 88, 88,
- 88, 88, 88, 88, 88, 89, 89, 90, 90, 90,
- 91, 91, 92, 92, 93, 94, 94, 94, 95, 96,
- 97, 97, 98, 98, 98, 98, 98, 98, 99, 99,
- 99, 99, 99, 100, 101, 102, 103, 104, 105, 105,
- 106, 106, 107, 108, 108, 108, 108, 108, 108, 108,
- 108, 108, 108, 108, 109, 109, 110, 111, 112
-};
+#define YYPACT_NINF -130
-/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
-static const yytype_uint8 yyr2[] =
+#define yypact_value_is_default(Yystate) \
+ (!!((Yystate) == (-130)))
+
+#define YYTABLE_NINF -110
+
+#define yytable_value_is_error(Yytable_value) \
+ 0
+
+ /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
+ STATE-NUM. */
+static const yytype_int16 yypact[] =
{
- 0, 2, 0, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 3, 2, 2, 1, 2, 4,
- 1, 0, 2, 1, 1, 1, 1, 3, 3, 1,
- 2, 2, 2, 2, 3, 1, 1, 1, 3, 2,
- 3, 1, 8, 8, 7, 4, 4, 4, 1, 1,
- 2, 2, 2, 2, 1, 1, 6, 0, 3, 5,
- 1, 1, 1, 3, 1, 4, 5, 7, 5, 5,
- 4, 6, 3, 3, 3, 3, 1, 3, 1, 1,
- 1, 1, 1, 3, 3, 3, 3, 4, 2, 3,
- 1, 3, 4, 0, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 2, 2, 0, 0, 0
+ -130, 50, -130, -29, -22, -43, -1, 1, 33, 49,
+ -130, -130, 55, 70, 75, 76, 88, -130, -130, -3,
+ -130, 93, 101, 108, 109, 110, 111, 112, 113, 114,
+ 115, -130, -130, -130, -130, -130, 34, 81, 139, -130,
+ -130, 117, 116, 116, 116, 116, 116, -130, -130, -130,
+ -130, 118, -130, -130, -10, -130, -130, -130, -130, -130,
+ -130, -130, -130, -130, -130, 98, 99, -130, -130, -130,
+ 102, 100, -130, 62, -130, -130, -130, -130, 121, 64,
+ -130, -130, -130, -130, 106, -130, -130, -130, -130, -130,
+ -130, -130, -130, -130, -130, -130, -130, -130, -130, -130,
+ 120, 125, 119, 122, -130, 123, 124, 126, -49, 64,
+ -130, -130, -130, -31, -130, -130, 127, -130, -130, 64,
+ 64, 64, -130, -130, -130, -130, 4, 121, 118, -130,
+ -34, 0, -25, 128, -130, 129, 131, 132, 133, 134,
+ 135, 136, -49, -130, -130, -130, -130, -130, -32, 0,
+ 149, -130, 37, 53, 144, 61, 0, 130, 137, 138,
+ 140, 141, 142, 143, -130, 145, 0, 153, 95, -130,
+ 0, 0, 0, 0, 154, 156, 0, -130, 32, 146,
+ 147, 148, -130, -130, -130, 150, 151, 74, -130, -130,
+ 67, 67, -130, -130, -130, -130, 82, -5, 152, 157,
+ 158, -130, 155, 159, -130, -130, 160, 161, 163, 162,
+ -130, 164, 165, -130, -130, -130, -130
};
-/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
- Performed when YYTABLE doesn't specify something else to do. Zero
- means the default is an error. */
+ /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
+ Performed when YYTABLE does not specify something else to do. Zero
+ means the default is an error. */
static const yytype_uint8 yydefact[] =
{
2, 0, 1, 0, 0, 0, 0, 0, 0, 0,
20, 29, 0, 0, 0, 0, 0, 17, 3, 0,
21, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 78, 79, 80, 81, 82, 0, 0, 0, 18,
+ 0, 79, 80, 81, 82, 83, 0, 0, 0, 18,
13, 0, 0, 0, 0, 0, 0, 30, 31, 32,
33, 0, 39, 4, 0, 6, 5, 7, 8, 9,
10, 15, 16, 11, 12, 0, 0, 35, 36, 37,
- 0, 0, 14, 93, 83, 84, 86, 85, 0, 0,
- 23, 24, 25, 22, 0, 27, 28, 34, 38, 102,
- 103, 101, 94, 95, 96, 97, 98, 99, 100, 88,
- 0, 90, 0, 0, 87, 0, 0, 0, 0, 0,
- 60, 61, 64, 40, 41, 48, 62, 55, 49, 0,
- 0, 0, 54, 26, 19, 89, 93, 0, 104, 105,
- 0, 0, 0, 0, 52, 0, 0, 0, 0, 0,
- 0, 0, 50, 51, 53, 91, 57, 0, 0, 0,
- 76, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 63, 92, 0, 0, 0, 65, 0, 0,
- 0, 0, 0, 0, 0, 70, 57, 0, 0, 0,
- 45, 46, 47, 0, 0, 66, 77, 72, 73, 74,
- 75, 68, 69, 0, 0, 0, 0, 0, 58, 0,
- 71, 56, 0, 0, 0, 0, 67, 0, 0, 44,
- 59, 42, 43
+ 0, 0, 14, 94, 84, 85, 87, 86, 0, 0,
+ 23, 24, 25, 22, 0, 27, 28, 34, 38, 103,
+ 104, 102, 95, 96, 97, 98, 99, 100, 101, 89,
+ 0, 91, 0, 0, 88, 0, 0, 0, 0, 0,
+ 61, 62, 65, 40, 41, 49, 63, 56, 50, 0,
+ 0, 0, 55, 26, 19, 90, 94, 0, 105, 106,
+ 0, 0, 0, 0, 53, 0, 0, 0, 0, 0,
+ 0, 0, 0, 51, 52, 54, 92, 58, 0, 0,
+ 0, 77, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 64, 93, 0, 0, 0, 66,
+ 0, 0, 0, 0, 0, 0, 0, 71, 58, 0,
+ 0, 0, 46, 47, 48, 0, 0, 0, 67, 78,
+ 73, 74, 75, 76, 69, 70, 0, 0, 0, 0,
+ 0, 43, 59, 0, 72, 57, 0, 0, 0, 0,
+ 68, 0, 0, 45, 60, 42, 44
};
-/* YYDEFGOTO[NTERM-NUM]. */
+ /* YYPGOTO[NTERM-NUM]. */
+static const yytype_int16 yypgoto[] =
+{
+ -130, -130, -130, -130, -130, -130, -130, -130, -130, -130,
+ -130, -130, -130, -130, -130, -130, -130, -130, -130, 91,
+ -130, 14, -130, 13, 54, 87, -130, -130, -130, -130,
+ -130, -129, -130, -130, -130, -130, -130, -130, 103, 72,
+ -130, -130, 80, -130, -130, -130
+};
+
+ /* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
-1, 1, 18, 19, 20, 54, 83, 84, 124, 21,
22, 23, 24, 25, 26, 27, 70, 28, 29, 52,
- 113, 114, 115, 163, 116, 117, 118, 119, 120, 121,
- 122, 151, 30, 31, 32, 33, 34, 35, 74, 100,
+ 113, 114, 115, 165, 116, 117, 118, 119, 120, 121,
+ 122, 152, 30, 31, 32, 33, 34, 35, 74, 100,
101, 102, 104, 36, 37, 38
};
-/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
- STATE-NUM. */
-#define YYPACT_NINF -106
-static const yytype_int16 yypact[] =
-{
- -106, 2, -106, -5, -31, -16, 27, 28, 30, 33,
- -106, -106, 35, 49, 71, 72, 89, -106, -106, 6,
- -106, 60, 67, 107, 109, 110, 111, 112, 113, 114,
- 115, -106, -106, -106, -106, -106, 56, 9, 51, -106,
- -106, 116, 117, 117, 117, 117, 117, -106, -106, -106,
- -106, 118, -106, -106, -10, -106, -106, -106, -106, -106,
- -106, -106, -106, -106, -106, 98, 99, -106, -106, -106,
- 95, 100, -106, 48, -106, -106, -106, -106, 121, 47,
- -106, -106, -106, -106, 105, -106, -106, -106, -106, -106,
- -106, -106, -106, -106, -106, -106, -106, -106, -106, -106,
- 120, 124, 106, 119, -106, 122, 123, 126, -7, 47,
- -106, -106, -106, 101, -106, -106, 125, -106, -106, 47,
- 47, 47, -106, -106, -106, -106, 88, 121, 118, -106,
- -13, -45, -12, 127, -106, 130, 131, 132, 133, 134,
- 135, -7, -106, -106, -106, -106, -106, -29, -45, 146,
- -106, -6, 10, 142, 36, -45, 128, 129, 136, 137,
- 138, 139, -106, 141, -45, 152, 82, -106, -45, -45,
- -45, -45, 153, 154, -45, -106, 97, 140, 143, 144,
- -106, -106, -106, 145, 74, -106, -106, 39, 39, -106,
- -106, -106, -106, 78, 41, 147, 148, 150, 151, 155,
- -106, -106, 156, 157, 158, 149, -106, 159, 160, -106,
- -106, -106, -106
-};
-
-/* YYPGOTO[NTERM-NUM]. */
-static const yytype_int8 yypgoto[] =
-{
- -106, -106, -106, -106, -106, -106, -106, -106, -106, -106,
- -106, -106, -106, -106, -106, -106, -106, -106, -106, 91,
- -106, -15, -106, 16, 54, 96, -106, -106, -106, -106,
- -106, -105, -106, -106, -106, -106, -106, -106, 103, 77,
- -106, -106, 86, -106, -106, -106
-};
-
-/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
- positive, shift that token. If negative, reduce the rule which
- number is the opposite. If YYTABLE_NINF, syntax error. */
-#define YYTABLE_NINF -109
+ /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
+ positive, shift that token. If negative, reduce the rule whose
+ number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_int16 yytable[] =
{
- 80, 81, 2, 3, 148, 4, 5, 6, 7, 8,
- 9, 10, 40, 164, -106, 150, -106, 11, 12, 13,
- 14, 15, -108, -107, -107, -107, 152, 154, 165, 41,
- 67, 68, 69, 16, 147, 153, 148, 148, 39, 168,
- 169, 170, 171, 166, 149, 17, 42, 150, 150, 53,
- 176, 172, 82, 110, 111, 168, 169, 170, 171, 184,
- 89, 90, 91, 187, 188, 189, 190, 173, 65, 193,
- 66, 71, 92, 93, 94, 95, 96, 97, 98, 105,
- 106, 168, 169, 170, 171, 183, 170, 171, 107, 43,
- 44, 201, 45, 175, 134, 46, 108, 47, 99, 109,
- 89, 90, 91, 55, 142, 143, 144, 110, 111, 112,
- 56, 48, 92, 93, 94, 95, 96, 97, 98, 168,
- 169, 170, 171, 168, 169, 170, 171, 168, 169, 170,
- 171, 199, 186, 49, 50, 200, 135, 136, 137, 138,
- 139, 140, 168, 169, 170, 171, 75, 76, 77, 78,
- 57, 51, 58, 59, 60, 61, 62, 63, 64, 72,
- 87, 85, 86, 103, 88, 123, 73, 126, 127, 79,
- 125, 155, 156, 157, 158, 159, 160, 161, 130, 131,
- 167, 128, 132, 141, 174, 183, 185, 191, 192, 206,
- 177, 178, 194, 197, 129, 162, 202, 203, 179, 180,
- 181, 182, 195, 145, 133, 196, 210, 205, 209, 211,
- 212, 198, 204, 146, 0, 0, 0, 0, 207, 208
+ 80, 81, 153, 155, 135, 136, 137, 138, 139, 140,
+ 166, 110, 111, 148, 39, 149, 89, 90, 91, 42,
+ 168, 40, 154, 150, 149, 167, 151, 178, 92, 93,
+ 94, 95, 96, 97, 98, 151, 141, 187, 41, 186,
+ 53, 190, 191, 192, 193, 205, 65, 196, 66, 149,
+ 2, 3, 82, 4, 5, 6, 7, 8, 9, 10,
+ 151, 43, -107, 44, -107, 11, 12, 13, 14, 15,
+ -109, -108, -108, -108, 89, 90, 91, 170, 171, 172,
+ 173, 16, 170, 171, 172, 173, 92, 93, 94, 95,
+ 96, 97, 98, 17, 174, 45, 105, 106, 170, 171,
+ 172, 173, 67, 68, 69, 107, 170, 171, 172, 173,
+ 175, 46, 99, 108, 172, 173, 109, 47, 177, 170,
+ 171, 172, 173, 134, 110, 111, 112, 170, 171, 172,
+ 173, 203, 48, 143, 144, 145, 55, 49, 50, 204,
+ 170, 171, 172, 173, 56, 189, 75, 76, 77, 78,
+ 51, 57, 58, 59, 60, 61, 62, 63, 64, 71,
+ 72, 85, 86, 103, 88, 73, 123, 87, 126, 79,
+ 125, 157, 156, 158, 159, 160, 161, 162, 163, 130,
+ 131, 127, 132, 169, 128, 142, 176, 188, 194, 186,
+ 195, 197, 179, 210, 129, 133, 164, 200, 146, 180,
+ 181, 206, 182, 183, 184, 185, 207, 147, 198, 199,
+ 0, 209, 201, 213, 215, 216, 0, 202, 0, 214,
+ 208, 0, 211, 212
};
-#define yypact_value_is_default(Yystate) \
- (!!((Yystate) == (-106)))
-
-#define yytable_value_is_error(Yytable_value) \
- YYID (0)
-
static const yytype_int16 yycheck[] =
{
- 10, 11, 0, 1, 49, 3, 4, 5, 6, 7,
- 8, 9, 43, 42, 12, 60, 14, 15, 16, 17,
- 18, 19, 20, 21, 22, 23, 131, 132, 57, 60,
- 21, 22, 23, 31, 47, 47, 49, 49, 43, 45,
- 46, 47, 48, 148, 57, 43, 62, 60, 60, 43,
- 155, 57, 62, 60, 61, 45, 46, 47, 48, 164,
- 12, 13, 14, 168, 169, 170, 171, 57, 12, 174,
- 14, 20, 24, 25, 26, 27, 28, 29, 30, 32,
- 33, 45, 46, 47, 48, 44, 47, 48, 41, 62,
- 62, 50, 62, 57, 109, 62, 49, 62, 50, 52,
- 12, 13, 14, 43, 119, 120, 121, 60, 61, 62,
- 43, 62, 24, 25, 26, 27, 28, 29, 30, 45,
- 46, 47, 48, 45, 46, 47, 48, 45, 46, 47,
- 48, 57, 50, 62, 62, 57, 35, 36, 37, 38,
- 39, 40, 45, 46, 47, 48, 43, 44, 45, 46,
- 43, 62, 43, 43, 43, 43, 43, 43, 43, 43,
- 65, 63, 63, 42, 64, 60, 49, 43, 62, 51,
- 50, 44, 42, 42, 42, 42, 42, 42, 56, 56,
- 34, 62, 56, 58, 42, 44, 34, 34, 34, 34,
- 62, 62, 176, 49, 103, 141, 49, 49, 62, 62,
- 62, 62, 62, 126, 108, 62, 57, 56, 50, 50,
- 50, 66, 62, 127, -1, -1, -1, -1, 62, 62
+ 10, 11, 131, 132, 35, 36, 37, 38, 39, 40,
+ 42, 60, 61, 47, 43, 49, 12, 13, 14, 62,
+ 149, 43, 47, 57, 49, 57, 60, 156, 24, 25,
+ 26, 27, 28, 29, 30, 60, 67, 166, 60, 44,
+ 43, 170, 171, 172, 173, 50, 12, 176, 14, 49,
+ 0, 1, 62, 3, 4, 5, 6, 7, 8, 9,
+ 60, 62, 12, 62, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 23, 12, 13, 14, 45, 46, 47,
+ 48, 31, 45, 46, 47, 48, 24, 25, 26, 27,
+ 28, 29, 30, 43, 57, 62, 32, 33, 45, 46,
+ 47, 48, 21, 22, 23, 41, 45, 46, 47, 48,
+ 57, 62, 50, 49, 47, 48, 52, 62, 57, 45,
+ 46, 47, 48, 109, 60, 61, 62, 45, 46, 47,
+ 48, 57, 62, 119, 120, 121, 43, 62, 62, 57,
+ 45, 46, 47, 48, 43, 50, 43, 44, 45, 46,
+ 62, 43, 43, 43, 43, 43, 43, 43, 43, 20,
+ 43, 63, 63, 42, 64, 49, 60, 65, 43, 51,
+ 50, 42, 44, 42, 42, 42, 42, 42, 42, 56,
+ 56, 62, 56, 34, 62, 58, 42, 34, 34, 44,
+ 34, 178, 62, 34, 103, 108, 142, 49, 126, 62,
+ 62, 49, 62, 62, 62, 62, 49, 127, 62, 62,
+ -1, 56, 62, 50, 50, 50, -1, 66, -1, 57,
+ 62, -1, 62, 62
};
-/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
- symbol of state STATE-NUM. */
+ /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
+ symbol of state STATE-NUM. */
static const yytype_uint8 yystos[] =
{
- 0, 68, 0, 1, 3, 4, 5, 6, 7, 8,
- 9, 15, 16, 17, 18, 19, 31, 43, 69, 70,
- 71, 76, 77, 78, 79, 80, 81, 82, 84, 85,
- 99, 100, 101, 102, 103, 104, 110, 111, 112, 43,
+ 0, 69, 0, 1, 3, 4, 5, 6, 7, 8,
+ 9, 15, 16, 17, 18, 19, 31, 43, 70, 71,
+ 72, 77, 78, 79, 80, 81, 82, 83, 85, 86,
+ 100, 101, 102, 103, 104, 105, 111, 112, 113, 43,
43, 60, 62, 62, 62, 62, 62, 62, 62, 62,
- 62, 62, 86, 43, 72, 43, 43, 43, 43, 43,
+ 62, 62, 87, 43, 73, 43, 43, 43, 43, 43,
43, 43, 43, 43, 43, 12, 14, 21, 22, 23,
- 83, 20, 43, 49, 105, 105, 105, 105, 105, 51,
- 10, 11, 62, 73, 74, 63, 63, 65, 64, 12,
+ 84, 20, 43, 49, 106, 106, 106, 106, 106, 51,
+ 10, 11, 62, 74, 75, 63, 63, 65, 64, 12,
13, 14, 24, 25, 26, 27, 28, 29, 30, 50,
- 106, 107, 108, 42, 109, 32, 33, 41, 49, 52,
- 60, 61, 62, 87, 88, 89, 91, 92, 93, 94,
- 95, 96, 97, 60, 75, 50, 43, 62, 62, 86,
- 56, 56, 56, 92, 88, 35, 36, 37, 38, 39,
- 40, 58, 88, 88, 88, 106, 109, 47, 49, 57,
- 60, 98, 98, 47, 98, 44, 42, 42, 42, 42,
- 42, 42, 91, 90, 42, 57, 98, 34, 45, 46,
- 47, 48, 57, 57, 42, 57, 98, 62, 62, 62,
- 62, 62, 62, 44, 98, 34, 50, 98, 98, 98,
- 98, 34, 34, 98, 90, 62, 62, 49, 66, 57,
- 57, 50, 49, 49, 62, 56, 34, 62, 62, 50,
- 57, 50, 50
+ 107, 108, 109, 42, 110, 32, 33, 41, 49, 52,
+ 60, 61, 62, 88, 89, 90, 92, 93, 94, 95,
+ 96, 97, 98, 60, 76, 50, 43, 62, 62, 87,
+ 56, 56, 56, 93, 89, 35, 36, 37, 38, 39,
+ 40, 67, 58, 89, 89, 89, 107, 110, 47, 49,
+ 57, 60, 99, 99, 47, 99, 44, 42, 42, 42,
+ 42, 42, 42, 42, 92, 91, 42, 57, 99, 34,
+ 45, 46, 47, 48, 57, 57, 42, 57, 99, 62,
+ 62, 62, 62, 62, 62, 62, 44, 99, 34, 50,
+ 99, 99, 99, 99, 34, 34, 99, 91, 62, 62,
+ 49, 62, 66, 57, 57, 50, 49, 49, 62, 56,
+ 34, 62, 62, 50, 57, 50, 50
};
-#define yyerrok (yyerrstatus = 0)
-#define yyclearin (yychar = YYEMPTY)
-#define YYEMPTY (-2)
-#define YYEOF 0
-
-#define YYACCEPT goto yyacceptlab
-#define YYABORT goto yyabortlab
-#define YYERROR goto yyerrorlab
-
-
-/* Like YYERROR except do call yyerror. This remains here temporarily
- to ease the transition to the new meaning of YYERROR, for GCC.
- Once GCC version 2 has supplanted version 1, this can go. However,
- YYFAIL appears to be in use. Nevertheless, it is formally deprecated
- in Bison 2.4.2's NEWS entry, where a plan to phase it out is
- discussed. */
-
-#define YYFAIL goto yyerrlab
-#if defined YYFAIL
- /* This is here to suppress warnings from the GCC cpp's
- -Wunused-macros. Normally we don't worry about that warning, but
- some users do, and we want to make it easy for users to remove
- YYFAIL uses, which will produce warnings from Bison 2.5. */
-#endif
+ /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
+static const yytype_uint8 yyr1[] =
+{
+ 0, 68, 69, 69, 70, 70, 70, 70, 70, 70,
+ 70, 70, 70, 70, 70, 70, 70, 70, 70, 71,
+ 72, 73, 73, 74, 74, 75, 76, 77, 78, 78,
+ 79, 80, 81, 82, 83, 84, 84, 84, 85, 86,
+ 87, 88, 88, 88, 88, 88, 88, 88, 88, 89,
+ 89, 89, 89, 89, 89, 89, 90, 90, 91, 91,
+ 91, 92, 92, 93, 93, 94, 95, 95, 95, 96,
+ 97, 98, 98, 99, 99, 99, 99, 99, 99, 100,
+ 100, 100, 100, 100, 101, 102, 103, 104, 105, 106,
+ 106, 107, 107, 108, 109, 109, 109, 109, 109, 109,
+ 109, 109, 109, 109, 109, 110, 110, 111, 112, 113
+};
+
+ /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
+static const yytype_uint8 yyr2[] =
+{
+ 0, 2, 0, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 3, 2, 2, 1, 2, 4,
+ 1, 0, 2, 1, 1, 1, 1, 3, 3, 1,
+ 2, 2, 2, 2, 3, 1, 1, 1, 3, 2,
+ 3, 1, 8, 5, 8, 7, 4, 4, 4, 1,
+ 1, 2, 2, 2, 2, 1, 1, 6, 0, 3,
+ 5, 1, 1, 1, 3, 1, 4, 5, 7, 5,
+ 5, 4, 6, 3, 3, 3, 3, 1, 3, 1,
+ 1, 1, 1, 1, 3, 3, 3, 3, 4, 2,
+ 3, 1, 3, 4, 0, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 2, 2, 0, 0, 0
+};
+
+
+#define yyerrok (yyerrstatus = 0)
+#define yyclearin (yychar = YYEMPTY)
+#define YYEMPTY (-2)
+#define YYEOF 0
+
+#define YYACCEPT goto yyacceptlab
+#define YYABORT goto yyabortlab
+#define YYERROR goto yyerrorlab
+
#define YYRECOVERING() (!!yyerrstatus)
@@ -953,27 +883,15 @@ do
\
else \
{ \
yyerror (YY_("syntax error: cannot back up")); \
- YYERROR; \
- } \
-while (YYID (0))
+ YYERROR; \
+ } \
+while (0)
/* Error token number */
-#define YYTERROR 1
-#define YYERRCODE 256
-
-
-/* This macro is provided for backward compatibility. */
-#ifndef YY_LOCATION_PRINT
-# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
-#endif
+#define YYTERROR 1
+#define YYERRCODE 256
-/* YYLEX -- calling `yylex' with the right arguments. */
-#ifdef YYLEX_PARAM
-# define YYLEX yylex (YYLEX_PARAM)
-#else
-# define YYLEX yylex ()
-#endif
/* Enable debugging if requested. */
#if YYDEBUG
@@ -983,40 +901,36 @@ while (YYID (0))
# define YYFPRINTF fprintf
# endif
-# define YYDPRINTF(Args) \
-do { \
- if (yydebug) \
- YYFPRINTF Args; \
-} while (YYID (0))
+# define YYDPRINTF(Args) \
+do { \
+ if (yydebug) \
+ YYFPRINTF Args; \
+} while (0)
-# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
-do { \
- if (yydebug) \
- { \
- YYFPRINTF (stderr, "%s ", Title);
\
- yy_symbol_print (stderr, \
- Type, Value); \
- YYFPRINTF (stderr, "\n");
\
- } \
-} while (YYID (0))
+/* This macro is provided for backward compatibility. */
+#ifndef YY_LOCATION_PRINT
+# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
+#endif
-/*--------------------------------.
-| Print this symbol on YYOUTPUT. |
-`--------------------------------*/
+# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
+do { \
+ if (yydebug) \
+ { \
+ YYFPRINTF (stderr, "%s ", Title); \
+ yy_symbol_print (stderr, \
+ Type, Value); \
+ YYFPRINTF (stderr, "\n"); \
+ } \
+} while (0)
+
+
+/*----------------------------------------.
+| Print this symbol's value on YYOUTPUT. |
+`----------------------------------------*/
-/*ARGSUSED*/
-#if (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
static void
yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const
yyvaluep)
-#else
-static void
-yy_symbol_value_print (yyoutput, yytype, yyvaluep)
- FILE *yyoutput;
- int yytype;
- YYSTYPE const * const yyvaluep;
-#endif
{
FILE *yyo = yyoutput;
YYUSE (yyo);
@@ -1025,8 +939,6 @@ yy_symbol_value_print (yyoutput, yytype, yyvaluep)
# ifdef YYPRINT
if (yytype < YYNTOKENS)
YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
-# else
- YYUSE (yyoutput);
# endif
YYUSE (yytype);
}
@@ -1036,22 +948,11 @@ yy_symbol_value_print (yyoutput, yytype, yyvaluep)
| Print this symbol on YYOUTPUT. |
`--------------------------------*/
-#if (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
static void
yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
-#else
-static void
-yy_symbol_print (yyoutput, yytype, yyvaluep)
- FILE *yyoutput;
- int yytype;
- YYSTYPE const * const yyvaluep;
-#endif
{
- if (yytype < YYNTOKENS)
- YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
- else
- YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
+ YYFPRINTF (yyoutput, "%s %s (",
+ yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
yy_symbol_value_print (yyoutput, yytype, yyvaluep);
YYFPRINTF (yyoutput, ")");
@@ -1062,16 +963,8 @@ yy_symbol_print (yyoutput, yytype, yyvaluep)
| TOP (included). |
`------------------------------------------------------------------*/
-#if (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
static void
yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
-#else
-static void
-yy_stack_print (yybottom, yytop)
- yytype_int16 *yybottom;
- yytype_int16 *yytop;
-#endif
{
YYFPRINTF (stderr, "Stack now");
for (; yybottom <= yytop; yybottom++)
@@ -1082,49 +975,42 @@ yy_stack_print (yybottom, yytop)
YYFPRINTF (stderr, "\n");
}
-# define YY_STACK_PRINT(Bottom, Top) \
-do { \
- if (yydebug) \
- yy_stack_print ((Bottom), (Top)); \
-} while (YYID (0))
+# define YY_STACK_PRINT(Bottom, Top) \
+do { \
+ if (yydebug) \
+ yy_stack_print ((Bottom), (Top)); \
+} while (0)
/*------------------------------------------------.
| Report that the YYRULE is going to be reduced. |
`------------------------------------------------*/
-#if (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
static void
-yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
-#else
-static void
-yy_reduce_print (yyvsp, yyrule)
- YYSTYPE *yyvsp;
- int yyrule;
-#endif
+yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule)
{
+ unsigned long int yylno = yyrline[yyrule];
int yynrhs = yyr2[yyrule];
int yyi;
- unsigned long int yylno = yyrline[yyrule];
YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
- yyrule - 1, yylno);
+ yyrule - 1, yylno);
/* The symbols being reduced. */
for (yyi = 0; yyi < yynrhs; yyi++)
{
YYFPRINTF (stderr, " $%d = ", yyi + 1);
- yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
- &(yyvsp[(yyi + 1) - (yynrhs)])
- );
+ yy_symbol_print (stderr,
+ yystos[yyssp[yyi + 1 - yynrhs]],
+ &(yyvsp[(yyi + 1) - (yynrhs)])
+ );
YYFPRINTF (stderr, "\n");
}
}
-# define YY_REDUCE_PRINT(Rule) \
-do { \
- if (yydebug) \
- yy_reduce_print (yyvsp, Rule); \
-} while (YYID (0))
+# define YY_REDUCE_PRINT(Rule) \
+do { \
+ if (yydebug) \
+ yy_reduce_print (yyssp, yyvsp, Rule); \
+} while (0)
/* Nonzero means print parse trace. It is left uninitialized so that
multiple parsers can coexist. */
@@ -1138,7 +1024,7 @@ int yydebug;
/* YYINITDEPTH -- initial size of the parser's stacks. */
-#ifndef YYINITDEPTH
+#ifndef YYINITDEPTH
# define YYINITDEPTH 200
#endif
@@ -1161,15 +1047,8 @@ int yydebug;
# define yystrlen strlen
# else
/* Return the length of YYSTR. */
-#if (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
static YYSIZE_T
yystrlen (const char *yystr)
-#else
-static YYSIZE_T
-yystrlen (yystr)
- const char *yystr;
-#endif
{
YYSIZE_T yylen;
for (yylen = 0; yystr[yylen]; yylen++)
@@ -1185,16 +1064,8 @@ yystrlen (yystr)
# else
/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
YYDEST. */
-#if (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
static char *
yystpcpy (char *yydest, const char *yysrc)
-#else
-static char *
-yystpcpy (yydest, yysrc)
- char *yydest;
- const char *yysrc;
-#endif
{
char *yyd = yydest;
const char *yys = yysrc;
@@ -1224,27 +1095,27 @@ yytnamerr (char *yyres, const char *yystr)
char const *yyp = yystr;
for (;;)
- switch (*++yyp)
- {
- case '\'':
- case ',':
- goto do_not_strip_quotes;
-
- case '\\':
- if (*++yyp != '\\')
- goto do_not_strip_quotes;
- /* Fall through. */
- default:
- if (yyres)
- yyres[yyn] = *yyp;
- yyn++;
- break;
-
- case '"':
- if (yyres)
- yyres[yyn] = '\0';
- return yyn;
- }
+ switch (*++yyp)
+ {
+ case '\'':
+ case ',':
+ goto do_not_strip_quotes;
+
+ case '\\':
+ if (*++yyp != '\\')
+ goto do_not_strip_quotes;
+ /* Fall through. */
+ default:
+ if (yyres)
+ yyres[yyn] = *yyp;
+ yyn++;
+ break;
+
+ case '"':
+ if (yyres)
+ yyres[yyn] = '\0';
+ return yyn;
+ }
do_not_strip_quotes: ;
}
@@ -1267,11 +1138,11 @@ static int
yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
yytype_int16 *yyssp, int yytoken)
{
- YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
+ YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
YYSIZE_T yysize = yysize0;
enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
/* Internationalized format string. */
- const char *yyformat = YY_NULL;
+ const char *yyformat = YY_NULLPTR;
/* Arguments of yyformat. */
char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
/* Number of reported tokens (one for the "unexpected", one per
@@ -1279,10 +1150,6 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
int yycount = 0;
/* There are many possibilities here to consider:
- - Assume YYFAIL is not used. It's too flawed to consider. See
- <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
- for details. YYERROR is fine as it does not invoke this
- function.
- If this state is a consistent state with a default action, then
the only way this function was invoked is if the default action
is an error action. In that case, don't check for expected
@@ -1332,7 +1199,7 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
}
yyarg[yycount++] = yytname[yyx];
{
- YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL,
yytname[yyx]);
+ YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR,
yytname[yyx]);
if (! (yysize <= yysize1
&& yysize1 <= YYSTACK_ALLOC_MAXIMUM))
return 2;
@@ -1399,26 +1266,17 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
| Release the memory associated to this symbol. |
`-----------------------------------------------*/
-/*ARGSUSED*/
-#if (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
static void
yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
-#else
-static void
-yydestruct (yymsg, yytype, yyvaluep)
- const char *yymsg;
- int yytype;
- YYSTYPE *yyvaluep;
-#endif
{
YYUSE (yyvaluep);
-
if (!yymsg)
yymsg = "Deleting";
YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
+ YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
YYUSE (yytype);
+ YY_IGNORE_MAYBE_UNINITIALIZED_END
}
@@ -1427,18 +1285,8 @@ yydestruct (yymsg, yytype, yyvaluep)
/* The lookahead symbol. */
int yychar;
-
-#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-# define YY_IGNORE_MAYBE_UNINITIALIZED_END
-#endif
-#ifndef YY_INITIAL_VALUE
-# define YY_INITIAL_VALUE(Value) /* Nothing. */
-#endif
-
/* The semantic value of the lookahead symbol. */
-YYSTYPE yylval YY_INITIAL_VALUE(yyval_default);
-
+YYSTYPE yylval;
/* Number of syntax errors so far. */
int yynerrs;
@@ -1447,35 +1295,16 @@ int yynerrs;
| yyparse. |
`----------*/
-#ifdef YYPARSE_PARAM
-#if (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-int
-yyparse (void *YYPARSE_PARAM)
-#else
-int
-yyparse (YYPARSE_PARAM)
- void *YYPARSE_PARAM;
-#endif
-#else /* ! YYPARSE_PARAM */
-#if (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
int
yyparse (void)
-#else
-int
-yyparse ()
-
-#endif
-#endif
{
int yystate;
/* Number of tokens to shift before error messages enabled. */
int yyerrstatus;
/* The stacks and their tools:
- `yyss': related to states.
- `yyvs': related to semantic values.
+ 'yyss': related to states.
+ 'yyvs': related to semantic values.
Refer to the stacks through separate pointers, to allow yyoverflow
to reallocate them elsewhere. */
@@ -1543,23 +1372,23 @@ yyparse ()
#ifdef yyoverflow
{
- /* Give user a chance to reallocate the stack. Use copies of
- these so that the &'s don't force the real ones into
- memory. */
- YYSTYPE *yyvs1 = yyvs;
- yytype_int16 *yyss1 = yyss;
-
- /* Each stack pointer address is followed by the size of the
- data in use in that stack, in bytes. This used to be a
- conditional around just the two extra args, but that might
- be undefined if yyoverflow is a macro. */
- yyoverflow (YY_("memory exhausted"),
- &yyss1, yysize * sizeof (*yyssp),
- &yyvs1, yysize * sizeof (*yyvsp),
- &yystacksize);
-
- yyss = yyss1;
- yyvs = yyvs1;
+ /* Give user a chance to reallocate the stack. Use copies of
+ these so that the &'s don't force the real ones into
+ memory. */
+ YYSTYPE *yyvs1 = yyvs;
+ yytype_int16 *yyss1 = yyss;
+
+ /* Each stack pointer address is followed by the size of the
+ data in use in that stack, in bytes. This used to be a
+ conditional around just the two extra args, but that might
+ be undefined if yyoverflow is a macro. */
+ yyoverflow (YY_("memory exhausted"),
+ &yyss1, yysize * sizeof (*yyssp),
+ &yyvs1, yysize * sizeof (*yyvsp),
+ &yystacksize);
+
+ yyss = yyss1;
+ yyvs = yyvs1;
}
#else /* no yyoverflow */
# ifndef YYSTACK_RELOCATE
@@ -1567,22 +1396,22 @@ yyparse ()
# else
/* Extend the stack our own way. */
if (YYMAXDEPTH <= yystacksize)
- goto yyexhaustedlab;
+ goto yyexhaustedlab;
yystacksize *= 2;
if (YYMAXDEPTH < yystacksize)
- yystacksize = YYMAXDEPTH;
+ yystacksize = YYMAXDEPTH;
{
- yytype_int16 *yyss1 = yyss;
- union yyalloc *yyptr =
- (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
- if (! yyptr)
- goto yyexhaustedlab;
- YYSTACK_RELOCATE (yyss_alloc, yyss);
- YYSTACK_RELOCATE (yyvs_alloc, yyvs);
+ yytype_int16 *yyss1 = yyss;
+ union yyalloc *yyptr =
+ (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
+ if (! yyptr)
+ goto yyexhaustedlab;
+ YYSTACK_RELOCATE (yyss_alloc, yyss);
+ YYSTACK_RELOCATE (yyvs_alloc, yyvs);
# undef YYSTACK_RELOCATE
- if (yyss1 != yyssa)
- YYSTACK_FREE (yyss1);
+ if (yyss1 != yyssa)
+ YYSTACK_FREE (yyss1);
}
# endif
#endif /* no yyoverflow */
@@ -1591,10 +1420,10 @@ yyparse ()
yyvsp = yyvs + yysize - 1;
YYDPRINTF ((stderr, "Stack size increased to %lu\n",
- (unsigned long int) yystacksize));
+ (unsigned long int) yystacksize));
if (yyss + yystacksize - 1 <= yyssp)
- YYABORT;
+ YYABORT;
}
YYDPRINTF ((stderr, "Entering state %d\n", yystate));
@@ -1623,7 +1452,7 @@ yybackup:
if (yychar == YYEMPTY)
{
YYDPRINTF ((stderr, "Reading a token: "));
- yychar = YYLEX;
+ yychar = yylex ();
}
if (yychar <= YYEOF)
@@ -1688,7 +1517,7 @@ yyreduce:
yylen = yyr2[yyn];
/* If YYLEN is nonzero, implement the default value of the action:
- `$$ = $1'.
+ '$$ = $1'.
Otherwise, the following line sets YYVAL to garbage.
This behavior is undocumented and Bison
@@ -1702,40 +1531,39 @@ yyreduce:
switch (yyn)
{
case 12:
-/* Line 1787 of yacc.c */
-#line 174 "../parser.y"
+#line 176 "../release/parser.y" /* yacc.c:1646 */
{
statement_t *st = stAlloc();
st->stKind = skRoutine;
- st->stRoutine = (yyvsp[(1) - (2)].routine);
- rtCheckRoutine((yyvsp[(1) - (2)].routine));
+ st->stRoutine = (yyvsp[-1].routine);
+ rtCheckRoutine((yyvsp[-1].routine));
if (BeVerbose)
- rtPrintRoutine((yyvsp[(1) - (2)].routine));
+ rtPrintRoutine((yyvsp[-1].routine));
}
+#line 1545 "parser.c" /* yacc.c:1646 */
break;
case 13:
-/* Line 1787 of yacc.c */
-#line 184 "../parser.y"
+#line 186 "../release/parser.y" /* yacc.c:1646 */
{ rtSkip(1); }
+#line 1551 "parser.c" /* yacc.c:1646 */
break;
case 14:
-/* Line 1787 of yacc.c */
-#line 186 "../parser.y"
- { rtSkip((yyvsp[(2) - (3)].number)); }
+#line 188 "../release/parser.y" /* yacc.c:1646 */
+ { rtSkip((yyvsp[-1].number)); }
+#line 1557 "parser.c" /* yacc.c:1646 */
break;
case 18:
-/* Line 1787 of yacc.c */
-#line 191 "../parser.y"
+#line 193 "../release/parser.y" /* yacc.c:1646 */
{ yyerrok; }
+#line 1563 "parser.c" /* yacc.c:1646 */
break;
case 19:
-/* Line 1787 of yacc.c */
-#line 196 "../parser.y"
+#line 198 "../release/parser.y" /* yacc.c:1646 */
{
if (BeVerbose)
{
@@ -1745,11 +1573,11 @@ yyreduce:
IsKernelServer ? ", KernelServer" : "");
}
}
+#line 1577 "parser.c" /* yacc.c:1646 */
break;
case 20:
-/* Line 1787 of yacc.c */
-#line 208 "../parser.y"
+#line 210 "../release/parser.y" /* yacc.c:1646 */
{
if (SubsystemName != strNULL)
{
@@ -1759,45 +1587,45 @@ yyreduce:
strfree((string_t) SubsystemName);
}
}
+#line 1591 "parser.c" /* yacc.c:1646 */
break;
case 23:
-/* Line 1787 of yacc.c */
-#line 224 "../parser.y"
+#line 226 "../release/parser.y" /* yacc.c:1646 */
{
if (IsKernelUser)
warn("duplicate KernelUser keyword");
IsKernelUser = TRUE;
}
+#line 1601 "parser.c" /* yacc.c:1646 */
break;
case 24:
-/* Line 1787 of yacc.c */
-#line 230 "../parser.y"
+#line 232 "../release/parser.y" /* yacc.c:1646 */
{
if (IsKernelServer)
warn("duplicate KernelServer keyword");
IsKernelServer = TRUE;
}
+#line 1611 "parser.c" /* yacc.c:1646 */
break;
case 25:
-/* Line 1787 of yacc.c */
-#line 237 "../parser.y"
- { SubsystemName = (yyvsp[(1) - (1)].identifier); }
+#line 239 "../release/parser.y" /* yacc.c:1646 */
+ { SubsystemName = (yyvsp[0].identifier); }
+#line 1617 "parser.c" /* yacc.c:1646 */
break;
case 26:
-/* Line 1787 of yacc.c */
-#line 240 "../parser.y"
- { SubsystemBase = (yyvsp[(1) - (1)].number); }
+#line 242 "../release/parser.y" /* yacc.c:1646 */
+ { SubsystemBase = (yyvsp[0].number); }
+#line 1623 "parser.c" /* yacc.c:1646 */
break;
case 27:
-/* Line 1787 of yacc.c */
-#line 244 "../parser.y"
+#line 246 "../release/parser.y" /* yacc.c:1646 */
{
- if (streql((yyvsp[(3) - (3)].string), "MACH_MSG_OPTION_NONE"))
+ if (streql((yyvsp[0].string), "MACH_MSG_OPTION_NONE"))
{
MsgOption = strNULL;
if (BeVerbose)
@@ -1805,672 +1633,690 @@ yyreduce:
}
else
{
- MsgOption = (yyvsp[(3) - (3)].string);
+ MsgOption = (yyvsp[0].string);
if (BeVerbose)
- printf("MsgOption %s\n\n",(yyvsp[(3) - (3)].string));
+ printf("MsgOption %s\n\n",(yyvsp[0].string));
}
}
+#line 1642 "parser.c" /* yacc.c:1646 */
break;
case 28:
-/* Line 1787 of yacc.c */
-#line 261 "../parser.y"
+#line 263 "../release/parser.y" /* yacc.c:1646 */
{
- WaitTime = (yyvsp[(3) - (3)].string);
+ WaitTime = (yyvsp[0].string);
if (BeVerbose)
printf("WaitTime %s\n\n", WaitTime);
}
+#line 1652 "parser.c" /* yacc.c:1646 */
break;
case 29:
-/* Line 1787 of yacc.c */
-#line 267 "../parser.y"
+#line 269 "../release/parser.y" /* yacc.c:1646 */
{
WaitTime = strNULL;
if (BeVerbose)
printf("NoWaitTime\n\n");
}
+#line 1662 "parser.c" /* yacc.c:1646 */
break;
case 30:
-/* Line 1787 of yacc.c */
-#line 275 "../parser.y"
+#line 277 "../release/parser.y" /* yacc.c:1646 */
{
- ErrorProc = (yyvsp[(2) - (2)].identifier);
+ ErrorProc = (yyvsp[0].identifier);
if (BeVerbose)
printf("ErrorProc %s\n\n", ErrorProc);
}
+#line 1672 "parser.c" /* yacc.c:1646 */
break;
case 31:
-/* Line 1787 of yacc.c */
-#line 283 "../parser.y"
+#line 285 "../release/parser.y" /* yacc.c:1646 */
{
- ServerPrefix = (yyvsp[(2) - (2)].identifier);
+ ServerPrefix = (yyvsp[0].identifier);
if (BeVerbose)
printf("ServerPrefix %s\n\n", ServerPrefix);
}
+#line 1682 "parser.c" /* yacc.c:1646 */
break;
case 32:
-/* Line 1787 of yacc.c */
-#line 291 "../parser.y"
+#line 293 "../release/parser.y" /* yacc.c:1646 */
{
- UserPrefix = (yyvsp[(2) - (2)].identifier);
+ UserPrefix = (yyvsp[0].identifier);
if (BeVerbose)
printf("UserPrefix %s\n\n", UserPrefix);
}
+#line 1692 "parser.c" /* yacc.c:1646 */
break;
case 33:
-/* Line 1787 of yacc.c */
-#line 299 "../parser.y"
+#line 301 "../release/parser.y" /* yacc.c:1646 */
{
- ServerDemux = (yyvsp[(2) - (2)].identifier);
+ ServerDemux = (yyvsp[0].identifier);
if (BeVerbose)
printf("ServerDemux %s\n\n", ServerDemux);
}
+#line 1702 "parser.c" /* yacc.c:1646 */
break;
case 34:
-/* Line 1787 of yacc.c */
-#line 307 "../parser.y"
+#line 309 "../release/parser.y" /* yacc.c:1646 */
{
statement_t *st = stAlloc();
- st->stKind = (yyvsp[(2) - (3)].statement_kind);
- st->stFileName = (yyvsp[(3) - (3)].string);
+ st->stKind = (yyvsp[-1].statement_kind);
+ st->stFileName = (yyvsp[0].string);
if (BeVerbose)
- printf("%s %s\n\n", import_name((yyvsp[(2) - (3)].statement_kind)),
(yyvsp[(3) - (3)].string));
+ printf("%s %s\n\n", import_name((yyvsp[-1].statement_kind)),
(yyvsp[0].string));
}
+#line 1715 "parser.c" /* yacc.c:1646 */
break;
case 35:
-/* Line 1787 of yacc.c */
-#line 317 "../parser.y"
+#line 319 "../release/parser.y" /* yacc.c:1646 */
{ (yyval.statement_kind) = skImport; }
+#line 1721 "parser.c" /* yacc.c:1646 */
break;
case 36:
-/* Line 1787 of yacc.c */
-#line 318 "../parser.y"
+#line 320 "../release/parser.y" /* yacc.c:1646 */
{ (yyval.statement_kind) = skUImport; }
+#line 1727 "parser.c" /* yacc.c:1646 */
break;
case 37:
-/* Line 1787 of yacc.c */
-#line 319 "../parser.y"
+#line 321 "../release/parser.y" /* yacc.c:1646 */
{ (yyval.statement_kind) = skSImport; }
+#line 1733 "parser.c" /* yacc.c:1646 */
break;
case 38:
-/* Line 1787 of yacc.c */
-#line 323 "../parser.y"
+#line 325 "../release/parser.y" /* yacc.c:1646 */
{
if (RCSId != strNULL)
warn("previous RCS decl will be ignored");
if (BeVerbose)
- printf("RCSId %s\n\n", (yyvsp[(3) - (3)].string));
- RCSId = (yyvsp[(3) - (3)].string);
+ printf("RCSId %s\n\n", (yyvsp[0].string));
+ RCSId = (yyvsp[0].string);
}
+#line 1745 "parser.c" /* yacc.c:1646 */
break;
case 39:
-/* Line 1787 of yacc.c */
-#line 333 "../parser.y"
+#line 335 "../release/parser.y" /* yacc.c:1646 */
{
- identifier_t name = (yyvsp[(2) - (2)].type)->itName;
+ identifier_t name = (yyvsp[0].type)->itName;
if (itLookUp(name) != itNULL)
warn("overriding previous definition of %s", name);
- itInsert(name, (yyvsp[(2) - (2)].type));
+ itInsert(name, (yyvsp[0].type));
}
+#line 1757 "parser.c" /* yacc.c:1646 */
break;
case 40:
-/* Line 1787 of yacc.c */
-#line 343 "../parser.y"
- { itTypeDecl((yyvsp[(1) - (3)].identifier), (yyval.type) = (yyvsp[(3) -
(3)].type)); }
+#line 345 "../release/parser.y" /* yacc.c:1646 */
+ { itTypeDecl((yyvsp[-2].identifier), (yyval.type) = (yyvsp[0].type)); }
+#line 1763 "parser.c" /* yacc.c:1646 */
break;
case 41:
-/* Line 1787 of yacc.c */
-#line 347 "../parser.y"
- { (yyval.type) = itResetType((yyvsp[(1) - (1)].type)); }
+#line 349 "../release/parser.y" /* yacc.c:1646 */
+ { (yyval.type) = itResetType((yyvsp[0].type)); }
+#line 1769 "parser.c" /* yacc.c:1646 */
break;
case 42:
-/* Line 1787 of yacc.c */
-#line 350 "../parser.y"
+#line 352 "../release/parser.y" /* yacc.c:1646 */
{
- (yyval.type) = (yyvsp[(1) - (8)].type);
+ (yyval.type) = (yyvsp[-7].type);
- if (((yyval.type)->itTransType != strNULL) &&
!streql((yyval.type)->itTransType, (yyvsp[(4) - (8)].identifier)))
+ if (((yyval.type)->itTransType != strNULL) &&
!streql((yyval.type)->itTransType, (yyvsp[-4].identifier)))
warn("conflicting translation types (%s, %s)",
- (yyval.type)->itTransType, (yyvsp[(4) - (8)].identifier));
- (yyval.type)->itTransType = (yyvsp[(4) - (8)].identifier);
+ (yyval.type)->itTransType, (yyvsp[-4].identifier));
+ (yyval.type)->itTransType = (yyvsp[-4].identifier);
- if (((yyval.type)->itInTrans != strNULL) &&
!streql((yyval.type)->itInTrans, (yyvsp[(5) - (8)].identifier)))
+ if (((yyval.type)->itInTrans != strNULL) &&
!streql((yyval.type)->itInTrans, (yyvsp[-3].identifier)))
warn("conflicting in-translation functions (%s, %s)",
- (yyval.type)->itInTrans, (yyvsp[(5) - (8)].identifier));
- (yyval.type)->itInTrans = (yyvsp[(5) - (8)].identifier);
+ (yyval.type)->itInTrans, (yyvsp[-3].identifier));
+ (yyval.type)->itInTrans = (yyvsp[-3].identifier);
- if (((yyval.type)->itServerType != strNULL) &&
!streql((yyval.type)->itServerType, (yyvsp[(7) - (8)].identifier)))
+ if (((yyval.type)->itServerType != strNULL) &&
!streql((yyval.type)->itServerType, (yyvsp[-1].identifier)))
warn("conflicting server types (%s, %s)",
- (yyval.type)->itServerType, (yyvsp[(7) - (8)].identifier));
- (yyval.type)->itServerType = (yyvsp[(7) - (8)].identifier);
+ (yyval.type)->itServerType, (yyvsp[-1].identifier));
+ (yyval.type)->itServerType = (yyvsp[-1].identifier);
}
+#line 1792 "parser.c" /* yacc.c:1646 */
break;
case 43:
-/* Line 1787 of yacc.c */
-#line 370 "../parser.y"
+#line 372 "../release/parser.y" /* yacc.c:1646 */
{
- (yyval.type) = (yyvsp[(1) - (8)].type);
+ (yyval.type) = (yyvsp[-4].type);
- if (((yyval.type)->itServerType != strNULL) &&
!streql((yyval.type)->itServerType, (yyvsp[(4) - (8)].identifier)))
+ if (((yyval.type)->itTransType != strNULL) &&
!streql((yyval.type)->itTransType, (yyvsp[-1].identifier)))
+ warn("conflicting translation types (%s, %s)",
+ (yyval.type)->itTransType, (yyvsp[-1].identifier));
+ (yyval.type)->itTransType = (yyvsp[-1].identifier);
+
+ if (((yyval.type)->itInTransPayload != strNULL) &&
!streql((yyval.type)->itInTransPayload, (yyvsp[0].identifier)))
+ warn("conflicting in-translation functions (%s, %s)",
+ (yyval.type)->itInTransPayload, (yyvsp[0].identifier));
+ (yyval.type)->itInTransPayload = (yyvsp[0].identifier);
+}
+#line 1810 "parser.c" /* yacc.c:1646 */
+ break;
+
+ case 44:
+#line 387 "../release/parser.y" /* yacc.c:1646 */
+ {
+ (yyval.type) = (yyvsp[-7].type);
+
+ if (((yyval.type)->itServerType != strNULL) &&
!streql((yyval.type)->itServerType, (yyvsp[-4].identifier)))
warn("conflicting server types (%s, %s)",
- (yyval.type)->itServerType, (yyvsp[(4) - (8)].identifier));
- (yyval.type)->itServerType = (yyvsp[(4) - (8)].identifier);
+ (yyval.type)->itServerType, (yyvsp[-4].identifier));
+ (yyval.type)->itServerType = (yyvsp[-4].identifier);
- if (((yyval.type)->itOutTrans != strNULL) &&
!streql((yyval.type)->itOutTrans, (yyvsp[(5) - (8)].identifier)))
+ if (((yyval.type)->itOutTrans != strNULL) &&
!streql((yyval.type)->itOutTrans, (yyvsp[-3].identifier)))
warn("conflicting out-translation functions (%s, %s)",
- (yyval.type)->itOutTrans, (yyvsp[(5) - (8)].identifier));
- (yyval.type)->itOutTrans = (yyvsp[(5) - (8)].identifier);
+ (yyval.type)->itOutTrans, (yyvsp[-3].identifier));
+ (yyval.type)->itOutTrans = (yyvsp[-3].identifier);
- if (((yyval.type)->itTransType != strNULL) &&
!streql((yyval.type)->itTransType, (yyvsp[(7) - (8)].identifier)))
+ if (((yyval.type)->itTransType != strNULL) &&
!streql((yyval.type)->itTransType, (yyvsp[-1].identifier)))
warn("conflicting translation types (%s, %s)",
- (yyval.type)->itTransType, (yyvsp[(7) - (8)].identifier));
- (yyval.type)->itTransType = (yyvsp[(7) - (8)].identifier);
+ (yyval.type)->itTransType, (yyvsp[-1].identifier));
+ (yyval.type)->itTransType = (yyvsp[-1].identifier);
}
+#line 1833 "parser.c" /* yacc.c:1646 */
break;
- case 44:
-/* Line 1787 of yacc.c */
-#line 390 "../parser.y"
+ case 45:
+#line 407 "../release/parser.y" /* yacc.c:1646 */
{
- (yyval.type) = (yyvsp[(1) - (7)].type);
+ (yyval.type) = (yyvsp[-6].type);
- if (((yyval.type)->itDestructor != strNULL) &&
!streql((yyval.type)->itDestructor, (yyvsp[(4) - (7)].identifier)))
+ if (((yyval.type)->itDestructor != strNULL) &&
!streql((yyval.type)->itDestructor, (yyvsp[-3].identifier)))
warn("conflicting destructor functions (%s, %s)",
- (yyval.type)->itDestructor, (yyvsp[(4) - (7)].identifier));
- (yyval.type)->itDestructor = (yyvsp[(4) - (7)].identifier);
+ (yyval.type)->itDestructor, (yyvsp[-3].identifier));
+ (yyval.type)->itDestructor = (yyvsp[-3].identifier);
- if (((yyval.type)->itTransType != strNULL) &&
!streql((yyval.type)->itTransType, (yyvsp[(6) - (7)].identifier)))
+ if (((yyval.type)->itTransType != strNULL) &&
!streql((yyval.type)->itTransType, (yyvsp[-1].identifier)))
warn("conflicting translation types (%s, %s)",
- (yyval.type)->itTransType, (yyvsp[(6) - (7)].identifier));
- (yyval.type)->itTransType = (yyvsp[(6) - (7)].identifier);
+ (yyval.type)->itTransType, (yyvsp[-1].identifier));
+ (yyval.type)->itTransType = (yyvsp[-1].identifier);
}
+#line 1851 "parser.c" /* yacc.c:1646 */
break;
- case 45:
-/* Line 1787 of yacc.c */
-#line 404 "../parser.y"
+ case 46:
+#line 421 "../release/parser.y" /* yacc.c:1646 */
{
- (yyval.type) = (yyvsp[(1) - (4)].type);
+ (yyval.type) = (yyvsp[-3].type);
- if (((yyval.type)->itUserType != strNULL) &&
!streql((yyval.type)->itUserType, (yyvsp[(4) - (4)].identifier)))
+ if (((yyval.type)->itUserType != strNULL) &&
!streql((yyval.type)->itUserType, (yyvsp[0].identifier)))
warn("conflicting user types (%s, %s)",
- (yyval.type)->itUserType, (yyvsp[(4) - (4)].identifier));
- (yyval.type)->itUserType = (yyvsp[(4) - (4)].identifier);
+ (yyval.type)->itUserType, (yyvsp[0].identifier));
+ (yyval.type)->itUserType = (yyvsp[0].identifier);
- if (((yyval.type)->itServerType != strNULL) &&
!streql((yyval.type)->itServerType, (yyvsp[(4) - (4)].identifier)))
+ if (((yyval.type)->itServerType != strNULL) &&
!streql((yyval.type)->itServerType, (yyvsp[0].identifier)))
warn("conflicting server types (%s, %s)",
- (yyval.type)->itServerType, (yyvsp[(4) - (4)].identifier));
- (yyval.type)->itServerType = (yyvsp[(4) - (4)].identifier);
+ (yyval.type)->itServerType, (yyvsp[0].identifier));
+ (yyval.type)->itServerType = (yyvsp[0].identifier);
}
+#line 1869 "parser.c" /* yacc.c:1646 */
break;
- case 46:
-/* Line 1787 of yacc.c */
-#line 418 "../parser.y"
+ case 47:
+#line 435 "../release/parser.y" /* yacc.c:1646 */
{
- (yyval.type) = (yyvsp[(1) - (4)].type);
+ (yyval.type) = (yyvsp[-3].type);
- if (((yyval.type)->itUserType != strNULL) &&
!streql((yyval.type)->itUserType, (yyvsp[(4) - (4)].identifier)))
+ if (((yyval.type)->itUserType != strNULL) &&
!streql((yyval.type)->itUserType, (yyvsp[0].identifier)))
warn("conflicting user types (%s, %s)",
- (yyval.type)->itUserType, (yyvsp[(4) - (4)].identifier));
- (yyval.type)->itUserType = (yyvsp[(4) - (4)].identifier);
+ (yyval.type)->itUserType, (yyvsp[0].identifier));
+ (yyval.type)->itUserType = (yyvsp[0].identifier);
}
+#line 1882 "parser.c" /* yacc.c:1646 */
break;
- case 47:
-/* Line 1787 of yacc.c */
-#line 428 "../parser.y"
+ case 48:
+#line 445 "../release/parser.y" /* yacc.c:1646 */
{
- (yyval.type) = (yyvsp[(1) - (4)].type);
+ (yyval.type) = (yyvsp[-3].type);
- if (((yyval.type)->itServerType != strNULL) &&
!streql((yyval.type)->itServerType, (yyvsp[(4) - (4)].identifier)))
+ if (((yyval.type)->itServerType != strNULL) &&
!streql((yyval.type)->itServerType, (yyvsp[0].identifier)))
warn("conflicting server types (%s, %s)",
- (yyval.type)->itServerType, (yyvsp[(4) - (4)].identifier));
- (yyval.type)->itServerType = (yyvsp[(4) - (4)].identifier);
+ (yyval.type)->itServerType, (yyvsp[0].identifier));
+ (yyval.type)->itServerType = (yyvsp[0].identifier);
}
- break;
-
- case 48:
-/* Line 1787 of yacc.c */
-#line 439 "../parser.y"
- { (yyval.type) = (yyvsp[(1) - (1)].type); }
+#line 1895 "parser.c" /* yacc.c:1646 */
break;
case 49:
-/* Line 1787 of yacc.c */
-#line 441 "../parser.y"
- { (yyval.type) = (yyvsp[(1) - (1)].type); }
+#line 456 "../release/parser.y" /* yacc.c:1646 */
+ { (yyval.type) = (yyvsp[0].type); }
+#line 1901 "parser.c" /* yacc.c:1646 */
break;
case 50:
-/* Line 1787 of yacc.c */
-#line 443 "../parser.y"
- { (yyval.type) = itVarArrayDecl((yyvsp[(1) - (2)].number), (yyvsp[(2) -
(2)].type)); }
+#line 458 "../release/parser.y" /* yacc.c:1646 */
+ { (yyval.type) = (yyvsp[0].type); }
+#line 1907 "parser.c" /* yacc.c:1646 */
break;
case 51:
-/* Line 1787 of yacc.c */
-#line 445 "../parser.y"
- { (yyval.type) = itArrayDecl((yyvsp[(1) - (2)].number), (yyvsp[(2) -
(2)].type)); }
+#line 460 "../release/parser.y" /* yacc.c:1646 */
+ { (yyval.type) = itVarArrayDecl((yyvsp[-1].number), (yyvsp[0].type)); }
+#line 1913 "parser.c" /* yacc.c:1646 */
break;
case 52:
-/* Line 1787 of yacc.c */
-#line 447 "../parser.y"
- { (yyval.type) = itPtrDecl((yyvsp[(2) - (2)].type)); }
+#line 462 "../release/parser.y" /* yacc.c:1646 */
+ { (yyval.type) = itArrayDecl((yyvsp[-1].number), (yyvsp[0].type)); }
+#line 1919 "parser.c" /* yacc.c:1646 */
break;
case 53:
-/* Line 1787 of yacc.c */
-#line 449 "../parser.y"
- { (yyval.type) = itStructDecl((yyvsp[(1) - (2)].number), (yyvsp[(2) -
(2)].type)); }
+#line 464 "../release/parser.y" /* yacc.c:1646 */
+ { (yyval.type) = itPtrDecl((yyvsp[0].type)); }
+#line 1925 "parser.c" /* yacc.c:1646 */
break;
case 54:
-/* Line 1787 of yacc.c */
-#line 451 "../parser.y"
- { (yyval.type) = (yyvsp[(1) - (1)].type); }
+#line 466 "../release/parser.y" /* yacc.c:1646 */
+ { (yyval.type) = itStructDecl((yyvsp[-1].number), (yyvsp[0].type)); }
+#line 1931 "parser.c" /* yacc.c:1646 */
break;
case 55:
-/* Line 1787 of yacc.c */
-#line 455 "../parser.y"
- {
- (yyval.type) = itShortDecl((yyvsp[(1) - (1)].symtype).innumber, (yyvsp[(1)
- (1)].symtype).instr,
- (yyvsp[(1) - (1)].symtype).outnumber, (yyvsp[(1) -
(1)].symtype).outstr,
- (yyvsp[(1) - (1)].symtype).size);
-}
+#line 468 "../release/parser.y" /* yacc.c:1646 */
+ { (yyval.type) = (yyvsp[0].type); }
+#line 1937 "parser.c" /* yacc.c:1646 */
break;
case 56:
-/* Line 1787 of yacc.c */
-#line 462 "../parser.y"
+#line 472 "../release/parser.y" /* yacc.c:1646 */
{
- (yyval.type) = itLongDecl((yyvsp[(2) - (6)].symtype).innumber, (yyvsp[(2)
- (6)].symtype).instr,
- (yyvsp[(2) - (6)].symtype).outnumber, (yyvsp[(2) -
(6)].symtype).outstr,
- (yyvsp[(2) - (6)].symtype).size, (yyvsp[(4) - (6)].number),
(yyvsp[(5) - (6)].flag));
+ (yyval.type) = itShortDecl((yyvsp[0].symtype).innumber,
(yyvsp[0].symtype).instr,
+ (yyvsp[0].symtype).outnumber, (yyvsp[0].symtype).outstr,
+ (yyvsp[0].symtype).size);
}
+#line 1947 "parser.c" /* yacc.c:1646 */
break;
case 57:
-/* Line 1787 of yacc.c */
-#line 470 "../parser.y"
- { (yyval.flag) = flNone; }
+#line 479 "../release/parser.y" /* yacc.c:1646 */
+ {
+ (yyval.type) = itLongDecl((yyvsp[-4].symtype).innumber,
(yyvsp[-4].symtype).instr,
+ (yyvsp[-4].symtype).outnumber, (yyvsp[-4].symtype).outstr,
+ (yyvsp[-4].symtype).size, (yyvsp[-2].number),
(yyvsp[-1].flag));
+}
+#line 1957 "parser.c" /* yacc.c:1646 */
break;
case 58:
-/* Line 1787 of yacc.c */
-#line 472 "../parser.y"
+#line 487 "../release/parser.y" /* yacc.c:1646 */
+ { (yyval.flag) = flNone; }
+#line 1963 "parser.c" /* yacc.c:1646 */
+ break;
+
+ case 59:
+#line 489 "../release/parser.y" /* yacc.c:1646 */
{
- if ((yyvsp[(1) - (3)].flag) & (yyvsp[(3) - (3)].flag))
+ if ((yyvsp[-2].flag) & (yyvsp[0].flag))
warn("redundant IPC flag ignored");
else
- (yyval.flag) = (yyvsp[(1) - (3)].flag) | (yyvsp[(3) - (3)].flag);
+ (yyval.flag) = (yyvsp[-2].flag) | (yyvsp[0].flag);
}
+#line 1974 "parser.c" /* yacc.c:1646 */
break;
- case 59:
-/* Line 1787 of yacc.c */
-#line 479 "../parser.y"
+ case 60:
+#line 496 "../release/parser.y" /* yacc.c:1646 */
{
- if ((yyvsp[(3) - (5)].flag) != flDealloc)
+ if ((yyvsp[-2].flag) != flDealloc)
warn("only Dealloc is variable");
else
- (yyval.flag) = (yyvsp[(1) - (5)].flag) | flMaybeDealloc;
+ (yyval.flag) = (yyvsp[-4].flag) | flMaybeDealloc;
}
+#line 1985 "parser.c" /* yacc.c:1646 */
break;
- case 60:
-/* Line 1787 of yacc.c */
-#line 488 "../parser.y"
+ case 61:
+#line 505 "../release/parser.y" /* yacc.c:1646 */
{
- (yyval.symtype).innumber = (yyval.symtype).outnumber = (yyvsp[(1) -
(1)].number);
+ (yyval.symtype).innumber = (yyval.symtype).outnumber = (yyvsp[0].number);
(yyval.symtype).instr = (yyval.symtype).outstr = strNULL;
(yyval.symtype).size = 0;
}
- break;
-
- case 61:
-/* Line 1787 of yacc.c */
-#line 494 "../parser.y"
- { (yyval.symtype) = (yyvsp[(1) - (1)].symtype); }
+#line 1995 "parser.c" /* yacc.c:1646 */
break;
case 62:
-/* Line 1787 of yacc.c */
-#line 498 "../parser.y"
- { (yyval.symtype) = (yyvsp[(1) - (1)].symtype); }
+#line 511 "../release/parser.y" /* yacc.c:1646 */
+ { (yyval.symtype) = (yyvsp[0].symtype); }
+#line 2001 "parser.c" /* yacc.c:1646 */
break;
case 63:
-/* Line 1787 of yacc.c */
-#line 500 "../parser.y"
+#line 515 "../release/parser.y" /* yacc.c:1646 */
+ { (yyval.symtype) = (yyvsp[0].symtype); }
+#line 2007 "parser.c" /* yacc.c:1646 */
+ break;
+
+ case 64:
+#line 517 "../release/parser.y" /* yacc.c:1646 */
{
- if ((yyvsp[(1) - (3)].symtype).size != (yyvsp[(3) - (3)].symtype).size)
+ if ((yyvsp[-2].symtype).size != (yyvsp[0].symtype).size)
{
- if ((yyvsp[(1) - (3)].symtype).size == 0)
- (yyval.symtype).size = (yyvsp[(3) - (3)].symtype).size;
- else if ((yyvsp[(3) - (3)].symtype).size == 0)
- (yyval.symtype).size = (yyvsp[(1) - (3)].symtype).size;
+ if ((yyvsp[-2].symtype).size == 0)
+ (yyval.symtype).size = (yyvsp[0].symtype).size;
+ else if ((yyvsp[0].symtype).size == 0)
+ (yyval.symtype).size = (yyvsp[-2].symtype).size;
else
{
error("sizes in IPCTypes (%d, %d) aren't equal",
- (yyvsp[(1) - (3)].symtype).size, (yyvsp[(3) -
(3)].symtype).size);
+ (yyvsp[-2].symtype).size, (yyvsp[0].symtype).size);
(yyval.symtype).size = 0;
}
}
else
- (yyval.symtype).size = (yyvsp[(1) - (3)].symtype).size;
- (yyval.symtype).innumber = (yyvsp[(1) - (3)].symtype).innumber;
- (yyval.symtype).instr = (yyvsp[(1) - (3)].symtype).instr;
- (yyval.symtype).outnumber = (yyvsp[(3) - (3)].symtype).outnumber;
- (yyval.symtype).outstr = (yyvsp[(3) - (3)].symtype).outstr;
+ (yyval.symtype).size = (yyvsp[-2].symtype).size;
+ (yyval.symtype).innumber = (yyvsp[-2].symtype).innumber;
+ (yyval.symtype).instr = (yyvsp[-2].symtype).instr;
+ (yyval.symtype).outnumber = (yyvsp[0].symtype).outnumber;
+ (yyval.symtype).outstr = (yyvsp[0].symtype).outstr;
}
- break;
-
- case 64:
-/* Line 1787 of yacc.c */
-#line 524 "../parser.y"
- { (yyval.type) = itPrevDecl((yyvsp[(1) - (1)].identifier)); }
+#line 2033 "parser.c" /* yacc.c:1646 */
break;
case 65:
-/* Line 1787 of yacc.c */
-#line 528 "../parser.y"
- { (yyval.number) = 0; }
+#line 541 "../release/parser.y" /* yacc.c:1646 */
+ { (yyval.type) = itPrevDecl((yyvsp[0].identifier)); }
+#line 2039 "parser.c" /* yacc.c:1646 */
break;
case 66:
-/* Line 1787 of yacc.c */
-#line 530 "../parser.y"
+#line 545 "../release/parser.y" /* yacc.c:1646 */
{ (yyval.number) = 0; }
+#line 2045 "parser.c" /* yacc.c:1646 */
break;
case 67:
-/* Line 1787 of yacc.c */
-#line 533 "../parser.y"
- { (yyval.number) = (yyvsp[(5) - (7)].number); }
+#line 547 "../release/parser.y" /* yacc.c:1646 */
+ { (yyval.number) = 0; }
+#line 2051 "parser.c" /* yacc.c:1646 */
break;
case 68:
-/* Line 1787 of yacc.c */
-#line 537 "../parser.y"
- { (yyval.number) = (yyvsp[(3) - (5)].number); }
+#line 550 "../release/parser.y" /* yacc.c:1646 */
+ { (yyval.number) = (yyvsp[-2].number); }
+#line 2057 "parser.c" /* yacc.c:1646 */
break;
case 69:
-/* Line 1787 of yacc.c */
-#line 541 "../parser.y"
- { (yyval.number) = (yyvsp[(3) - (5)].number); }
+#line 554 "../release/parser.y" /* yacc.c:1646 */
+ { (yyval.number) = (yyvsp[-2].number); }
+#line 2063 "parser.c" /* yacc.c:1646 */
break;
case 70:
-/* Line 1787 of yacc.c */
-#line 545 "../parser.y"
- { (yyval.type) = itCStringDecl((yyvsp[(3) - (4)].number), FALSE); }
+#line 558 "../release/parser.y" /* yacc.c:1646 */
+ { (yyval.number) = (yyvsp[-2].number); }
+#line 2069 "parser.c" /* yacc.c:1646 */
break;
case 71:
-/* Line 1787 of yacc.c */
-#line 548 "../parser.y"
- { (yyval.type) = itCStringDecl((yyvsp[(5) - (6)].number), TRUE); }
+#line 562 "../release/parser.y" /* yacc.c:1646 */
+ { (yyval.type) = itCStringDecl((yyvsp[-1].number), FALSE); }
+#line 2075 "parser.c" /* yacc.c:1646 */
break;
case 72:
-/* Line 1787 of yacc.c */
-#line 552 "../parser.y"
- { (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number);
}
+#line 565 "../release/parser.y" /* yacc.c:1646 */
+ { (yyval.type) = itCStringDecl((yyvsp[-1].number), TRUE); }
+#line 2081 "parser.c" /* yacc.c:1646 */
break;
case 73:
-/* Line 1787 of yacc.c */
-#line 554 "../parser.y"
- { (yyval.number) = (yyvsp[(1) - (3)].number) - (yyvsp[(3) - (3)].number);
}
+#line 569 "../release/parser.y" /* yacc.c:1646 */
+ { (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number); }
+#line 2087 "parser.c" /* yacc.c:1646 */
break;
case 74:
-/* Line 1787 of yacc.c */
-#line 556 "../parser.y"
- { (yyval.number) = (yyvsp[(1) - (3)].number) * (yyvsp[(3) - (3)].number);
}
+#line 571 "../release/parser.y" /* yacc.c:1646 */
+ { (yyval.number) = (yyvsp[-2].number) - (yyvsp[0].number); }
+#line 2093 "parser.c" /* yacc.c:1646 */
break;
case 75:
-/* Line 1787 of yacc.c */
-#line 558 "../parser.y"
- { (yyval.number) = (yyvsp[(1) - (3)].number) / (yyvsp[(3) - (3)].number);
}
+#line 573 "../release/parser.y" /* yacc.c:1646 */
+ { (yyval.number) = (yyvsp[-2].number) * (yyvsp[0].number); }
+#line 2099 "parser.c" /* yacc.c:1646 */
break;
case 76:
-/* Line 1787 of yacc.c */
-#line 560 "../parser.y"
- { (yyval.number) = (yyvsp[(1) - (1)].number); }
+#line 575 "../release/parser.y" /* yacc.c:1646 */
+ { (yyval.number) = (yyvsp[-2].number) / (yyvsp[0].number); }
+#line 2105 "parser.c" /* yacc.c:1646 */
break;
case 77:
-/* Line 1787 of yacc.c */
-#line 562 "../parser.y"
- { (yyval.number) = (yyvsp[(2) - (3)].number); }
+#line 577 "../release/parser.y" /* yacc.c:1646 */
+ { (yyval.number) = (yyvsp[0].number); }
+#line 2111 "parser.c" /* yacc.c:1646 */
break;
case 78:
-/* Line 1787 of yacc.c */
-#line 566 "../parser.y"
- { (yyval.routine) = (yyvsp[(1) - (1)].routine); }
+#line 579 "../release/parser.y" /* yacc.c:1646 */
+ { (yyval.number) = (yyvsp[-1].number); }
+#line 2117 "parser.c" /* yacc.c:1646 */
break;
case 79:
-/* Line 1787 of yacc.c */
-#line 567 "../parser.y"
- { (yyval.routine) = (yyvsp[(1) - (1)].routine); }
+#line 583 "../release/parser.y" /* yacc.c:1646 */
+ { (yyval.routine) = (yyvsp[0].routine); }
+#line 2123 "parser.c" /* yacc.c:1646 */
break;
case 80:
-/* Line 1787 of yacc.c */
-#line 568 "../parser.y"
- { (yyval.routine) = (yyvsp[(1) - (1)].routine); }
+#line 584 "../release/parser.y" /* yacc.c:1646 */
+ { (yyval.routine) = (yyvsp[0].routine); }
+#line 2129 "parser.c" /* yacc.c:1646 */
break;
case 81:
-/* Line 1787 of yacc.c */
-#line 569 "../parser.y"
- { (yyval.routine) = (yyvsp[(1) - (1)].routine); }
+#line 585 "../release/parser.y" /* yacc.c:1646 */
+ { (yyval.routine) = (yyvsp[0].routine); }
+#line 2135 "parser.c" /* yacc.c:1646 */
break;
case 82:
-/* Line 1787 of yacc.c */
-#line 570 "../parser.y"
- { (yyval.routine) = (yyvsp[(1) - (1)].routine); }
+#line 586 "../release/parser.y" /* yacc.c:1646 */
+ { (yyval.routine) = (yyvsp[0].routine); }
+#line 2141 "parser.c" /* yacc.c:1646 */
break;
case 83:
-/* Line 1787 of yacc.c */
-#line 574 "../parser.y"
- { (yyval.routine) = rtMakeRoutine((yyvsp[(2) - (3)].identifier),
(yyvsp[(3) - (3)].argument)); }
+#line 587 "../release/parser.y" /* yacc.c:1646 */
+ { (yyval.routine) = (yyvsp[0].routine); }
+#line 2147 "parser.c" /* yacc.c:1646 */
break;
case 84:
-/* Line 1787 of yacc.c */
-#line 578 "../parser.y"
- { (yyval.routine) = rtMakeSimpleRoutine((yyvsp[(2) - (3)].identifier),
(yyvsp[(3) - (3)].argument)); }
+#line 591 "../release/parser.y" /* yacc.c:1646 */
+ { (yyval.routine) = rtMakeRoutine((yyvsp[-1].identifier),
(yyvsp[0].argument)); }
+#line 2153 "parser.c" /* yacc.c:1646 */
break;
case 85:
-/* Line 1787 of yacc.c */
-#line 582 "../parser.y"
- { (yyval.routine) = rtMakeProcedure((yyvsp[(2) - (3)].identifier),
(yyvsp[(3) - (3)].argument)); }
+#line 595 "../release/parser.y" /* yacc.c:1646 */
+ { (yyval.routine) = rtMakeSimpleRoutine((yyvsp[-1].identifier),
(yyvsp[0].argument)); }
+#line 2159 "parser.c" /* yacc.c:1646 */
break;
case 86:
-/* Line 1787 of yacc.c */
-#line 586 "../parser.y"
- { (yyval.routine) = rtMakeSimpleProcedure((yyvsp[(2) - (3)].identifier),
(yyvsp[(3) - (3)].argument)); }
+#line 599 "../release/parser.y" /* yacc.c:1646 */
+ { (yyval.routine) = rtMakeProcedure((yyvsp[-1].identifier),
(yyvsp[0].argument)); }
+#line 2165 "parser.c" /* yacc.c:1646 */
break;
case 87:
-/* Line 1787 of yacc.c */
-#line 590 "../parser.y"
- { (yyval.routine) = rtMakeFunction((yyvsp[(2) - (4)].identifier),
(yyvsp[(3) - (4)].argument), (yyvsp[(4) - (4)].type)); }
+#line 603 "../release/parser.y" /* yacc.c:1646 */
+ { (yyval.routine) = rtMakeSimpleProcedure((yyvsp[-1].identifier),
(yyvsp[0].argument)); }
+#line 2171 "parser.c" /* yacc.c:1646 */
break;
case 88:
-/* Line 1787 of yacc.c */
-#line 594 "../parser.y"
- { (yyval.argument) = argNULL; }
+#line 607 "../release/parser.y" /* yacc.c:1646 */
+ { (yyval.routine) = rtMakeFunction((yyvsp[-2].identifier),
(yyvsp[-1].argument), (yyvsp[0].type)); }
+#line 2177 "parser.c" /* yacc.c:1646 */
break;
case 89:
-/* Line 1787 of yacc.c */
-#line 596 "../parser.y"
- { (yyval.argument) = (yyvsp[(2) - (3)].argument); }
+#line 611 "../release/parser.y" /* yacc.c:1646 */
+ { (yyval.argument) = argNULL; }
+#line 2183 "parser.c" /* yacc.c:1646 */
break;
case 90:
-/* Line 1787 of yacc.c */
-#line 601 "../parser.y"
- { (yyval.argument) = (yyvsp[(1) - (1)].argument); }
+#line 613 "../release/parser.y" /* yacc.c:1646 */
+ { (yyval.argument) = (yyvsp[-1].argument); }
+#line 2189 "parser.c" /* yacc.c:1646 */
break;
case 91:
-/* Line 1787 of yacc.c */
-#line 603 "../parser.y"
+#line 618 "../release/parser.y" /* yacc.c:1646 */
+ { (yyval.argument) = (yyvsp[0].argument); }
+#line 2195 "parser.c" /* yacc.c:1646 */
+ break;
+
+ case 92:
+#line 620 "../release/parser.y" /* yacc.c:1646 */
{
- (yyval.argument) = (yyvsp[(1) - (3)].argument);
- (yyval.argument)->argNext = (yyvsp[(3) - (3)].argument);
+ (yyval.argument) = (yyvsp[-2].argument);
+ (yyval.argument)->argNext = (yyvsp[0].argument);
}
+#line 2204 "parser.c" /* yacc.c:1646 */
break;
- case 92:
-/* Line 1787 of yacc.c */
-#line 610 "../parser.y"
+ case 93:
+#line 627 "../release/parser.y" /* yacc.c:1646 */
{
(yyval.argument) = argAlloc();
- (yyval.argument)->argKind = (yyvsp[(1) - (4)].direction);
- (yyval.argument)->argName = (yyvsp[(2) - (4)].identifier);
- (yyval.argument)->argType = (yyvsp[(3) - (4)].type);
- (yyval.argument)->argFlags = (yyvsp[(4) - (4)].flag);
+ (yyval.argument)->argKind = (yyvsp[-3].direction);
+ (yyval.argument)->argName = (yyvsp[-2].identifier);
+ (yyval.argument)->argType = (yyvsp[-1].type);
+ (yyval.argument)->argFlags = (yyvsp[0].flag);
}
+#line 2216 "parser.c" /* yacc.c:1646 */
break;
- case 93:
-/* Line 1787 of yacc.c */
-#line 619 "../parser.y"
+ case 94:
+#line 636 "../release/parser.y" /* yacc.c:1646 */
{ (yyval.direction) = akNone; }
+#line 2222 "parser.c" /* yacc.c:1646 */
break;
- case 94:
-/* Line 1787 of yacc.c */
-#line 620 "../parser.y"
+ case 95:
+#line 637 "../release/parser.y" /* yacc.c:1646 */
{ (yyval.direction) = akIn; }
+#line 2228 "parser.c" /* yacc.c:1646 */
break;
- case 95:
-/* Line 1787 of yacc.c */
-#line 621 "../parser.y"
+ case 96:
+#line 638 "../release/parser.y" /* yacc.c:1646 */
{ (yyval.direction) = akOut; }
+#line 2234 "parser.c" /* yacc.c:1646 */
break;
- case 96:
-/* Line 1787 of yacc.c */
-#line 622 "../parser.y"
+ case 97:
+#line 639 "../release/parser.y" /* yacc.c:1646 */
{ (yyval.direction) = akInOut; }
+#line 2240 "parser.c" /* yacc.c:1646 */
break;
- case 97:
-/* Line 1787 of yacc.c */
-#line 623 "../parser.y"
+ case 98:
+#line 640 "../release/parser.y" /* yacc.c:1646 */
{ (yyval.direction) = akRequestPort; }
+#line 2246 "parser.c" /* yacc.c:1646 */
break;
- case 98:
-/* Line 1787 of yacc.c */
-#line 624 "../parser.y"
+ case 99:
+#line 641 "../release/parser.y" /* yacc.c:1646 */
{ (yyval.direction) = akReplyPort; }
+#line 2252 "parser.c" /* yacc.c:1646 */
break;
- case 99:
-/* Line 1787 of yacc.c */
-#line 625 "../parser.y"
+ case 100:
+#line 642 "../release/parser.y" /* yacc.c:1646 */
{ (yyval.direction) = akSReplyPort; }
+#line 2258 "parser.c" /* yacc.c:1646 */
break;
- case 100:
-/* Line 1787 of yacc.c */
-#line 626 "../parser.y"
+ case 101:
+#line 643 "../release/parser.y" /* yacc.c:1646 */
{ (yyval.direction) = akUReplyPort; }
+#line 2264 "parser.c" /* yacc.c:1646 */
break;
- case 101:
-/* Line 1787 of yacc.c */
-#line 627 "../parser.y"
+ case 102:
+#line 644 "../release/parser.y" /* yacc.c:1646 */
{ (yyval.direction) = akWaitTime; }
+#line 2270 "parser.c" /* yacc.c:1646 */
break;
- case 102:
-/* Line 1787 of yacc.c */
-#line 628 "../parser.y"
+ case 103:
+#line 645 "../release/parser.y" /* yacc.c:1646 */
{ (yyval.direction) = akMsgOption; }
+#line 2276 "parser.c" /* yacc.c:1646 */
break;
- case 103:
-/* Line 1787 of yacc.c */
-#line 629 "../parser.y"
+ case 104:
+#line 646 "../release/parser.y" /* yacc.c:1646 */
{ (yyval.direction) = akMsgSeqno; }
+#line 2282 "parser.c" /* yacc.c:1646 */
break;
- case 104:
-/* Line 1787 of yacc.c */
-#line 633 "../parser.y"
+ case 105:
+#line 650 "../release/parser.y" /* yacc.c:1646 */
{
- (yyval.type) = itLookUp((yyvsp[(2) - (2)].identifier));
+ (yyval.type) = itLookUp((yyvsp[0].identifier));
if ((yyval.type) == itNULL)
- error("type '%s' not defined", (yyvsp[(2) - (2)].identifier));
+ error("type '%s' not defined", (yyvsp[0].identifier));
}
+#line 2292 "parser.c" /* yacc.c:1646 */
break;
- case 105:
-/* Line 1787 of yacc.c */
-#line 639 "../parser.y"
- { (yyval.type) = (yyvsp[(2) - (2)].type); }
+ case 106:
+#line 656 "../release/parser.y" /* yacc.c:1646 */
+ { (yyval.type) = (yyvsp[0].type); }
+#line 2298 "parser.c" /* yacc.c:1646 */
break;
- case 106:
-/* Line 1787 of yacc.c */
-#line 643 "../parser.y"
+ case 107:
+#line 660 "../release/parser.y" /* yacc.c:1646 */
{ LookString(); }
+#line 2304 "parser.c" /* yacc.c:1646 */
break;
- case 107:
-/* Line 1787 of yacc.c */
-#line 647 "../parser.y"
+ case 108:
+#line 664 "../release/parser.y" /* yacc.c:1646 */
{ LookFileName(); }
+#line 2310 "parser.c" /* yacc.c:1646 */
break;
- case 108:
-/* Line 1787 of yacc.c */
-#line 651 "../parser.y"
+ case 109:
+#line 668 "../release/parser.y" /* yacc.c:1646 */
{ LookQString(); }
+#line 2316 "parser.c" /* yacc.c:1646 */
break;
-/* Line 1787 of yacc.c */
-#line 2474 "parser.c"
+#line 2320 "parser.c" /* yacc.c:1646 */
default: break;
}
/* User semantic actions sometimes alter yychar, and that requires
@@ -2492,7 +2338,7 @@ yyreduce:
*++yyvsp = yyval;
- /* Now `shift' the result of the reduction. Determine what state
+ /* 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. */
@@ -2507,9 +2353,9 @@ yyreduce:
goto yynewstate;
-/*------------------------------------.
-| yyerrlab -- here on detecting error |
-`------------------------------------*/
+/*--------------------------------------.
+| yyerrlab -- here on detecting error. |
+`--------------------------------------*/
yyerrlab:
/* Make sure we have latest lookahead translation. See comments at
user semantic actions for why this is necessary. */
@@ -2560,20 +2406,20 @@ yyerrlab:
if (yyerrstatus == 3)
{
/* If just tried and failed to reuse lookahead token after an
- error, discard it. */
+ error, discard it. */
if (yychar <= YYEOF)
- {
- /* Return failure if at end of input. */
- if (yychar == YYEOF)
- YYABORT;
- }
+ {
+ /* Return failure if at end of input. */
+ if (yychar == YYEOF)
+ YYABORT;
+ }
else
- {
- yydestruct ("Error: discarding",
- yytoken, &yylval);
- yychar = YYEMPTY;
- }
+ {
+ yydestruct ("Error: discarding",
+ yytoken, &yylval);
+ yychar = YYEMPTY;
+ }
}
/* Else will try to reuse lookahead token after shifting the error
@@ -2592,7 +2438,7 @@ yyerrorlab:
if (/*CONSTCOND*/ 0)
goto yyerrorlab;
- /* Do not reclaim the symbols of the rule which action triggered
+ /* Do not reclaim the symbols of the rule whose action triggered
this YYERROR. */
YYPOPSTACK (yylen);
yylen = 0;
@@ -2605,29 +2451,29 @@ yyerrorlab:
| yyerrlab1 -- common code for both syntax error and YYERROR. |
`-------------------------------------------------------------*/
yyerrlab1:
- yyerrstatus = 3; /* Each real token shifted decrements this. */
+ yyerrstatus = 3; /* Each real token shifted decrements this. */
for (;;)
{
yyn = yypact[yystate];
if (!yypact_value_is_default (yyn))
- {
- yyn += YYTERROR;
- if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
- {
- yyn = yytable[yyn];
- if (0 < yyn)
- break;
- }
- }
+ {
+ yyn += YYTERROR;
+ if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
+ {
+ yyn = yytable[yyn];
+ if (0 < yyn)
+ break;
+ }
+ }
/* Pop the current state because it cannot handle the error token. */
if (yyssp == yyss)
- YYABORT;
+ YYABORT;
yydestruct ("Error: popping",
- yystos[yystate], yyvsp);
+ yystos[yystate], yyvsp);
YYPOPSTACK (1);
yystate = *yyssp;
YY_STACK_PRINT (yyss, yyssp);
@@ -2678,14 +2524,14 @@ yyreturn:
yydestruct ("Cleanup: discarding lookahead",
yytoken, &yylval);
}
- /* Do not reclaim the symbols of the rule which action triggered
+ /* Do not reclaim the symbols of the rule whose action triggered
this YYABORT or YYACCEPT. */
YYPOPSTACK (yylen);
YY_STACK_PRINT (yyss, yyssp);
while (yyssp != yyss)
{
yydestruct ("Cleanup: popping",
- yystos[*yyssp], yyvsp);
+ yystos[*yyssp], yyvsp);
YYPOPSTACK (1);
}
#ifndef yyoverflow
@@ -2696,13 +2542,9 @@ yyreturn:
if (yymsg != yymsgbuf)
YYSTACK_FREE (yymsg);
#endif
- /* Make sure YYID is used. */
- return YYID (yyresult);
+ return yyresult;
}
-
-
-/* Line 2050 of yacc.c */
-#line 654 "../parser.y"
+#line 671 "../release/parser.y" /* yacc.c:1906 */
static const char *
diff --git a/parser.h b/parser.h
index 651b66e..96e9b5d 100644
--- a/parser.h
+++ b/parser.h
@@ -82,6 +82,7 @@ typedef union
#define syQString 319
#define syFileName 320
#define syIPCFlag 321
+#define syInTranPayload 322
extern YYSTYPE yylval;
diff --git a/parser.y b/parser.y
index a916cb3..e88fd22 100644
--- a/parser.y
+++ b/parser.y
@@ -98,6 +98,8 @@
%token <string> syFileName
%token <flag> syIPCFlag
+%token syInTranPayload
+
%left syPlus syMinus
%left syStar syDiv
@@ -365,6 +367,21 @@ TransTypeSpec : TypeSpec
$$->itServerType, $7);
$$->itServerType = $7;
}
+ | TransTypeSpec syInTranPayload syColon
+ syIdentifier syIdentifier
+{
+ $$ = $1;
+
+ if (($$->itTransType != strNULL) && !streql($$->itTransType, $4))
+ warn("conflicting translation types (%s, %s)",
+ $$->itTransType, $4);
+ $$->itTransType = $4;
+
+ if (($$->itInTransPayload != strNULL) && !streql($$->itInTransPayload, $5))
+ warn("conflicting in-translation functions (%s, %s)",
+ $$->itInTransPayload, $5);
+ $$->itInTransPayload = $5;
+}
| TransTypeSpec syOutTran syColon syIdentifier
syIdentifier syLParen syIdentifier syRParen
{
diff --git a/routine.c b/routine.c
index 94e2b4c..ddf5770 100644
--- a/routine.c
+++ b/routine.c
@@ -540,6 +540,7 @@ rtAugmentArgKind(argument_t *arg)
* 6) This is a dealloc arg, being returned. The name can't be
* stored directly into the msg_type, because the msg-type
* field is a bit-field.
+ * 7) There is a payload-aware translate-in function defined.
*/
if (((it->itOutTrans != strNULL) &&
@@ -555,7 +556,8 @@ rtAugmentArgKind(argument_t *arg)
((akIdent(arg->argKind) == akePoly) &&
akCheck(arg->argKind, akbReturnSnd)) ||
((akIdent(arg->argKind) == akeDealloc) &&
- akCheck(arg->argKind, akbReturnSnd)))
+ akCheck(arg->argKind, akbReturnSnd)) ||
+ (it->itInTransPayload != strNULL))
{
arg->argKind = akRemFeature(arg->argKind, akbReplyCopy);
arg->argKind = akAddFeature(arg->argKind, akbVarNeeded);
diff --git a/server.c b/server.c
index 8496da7..15fc128 100644
--- a/server.c
+++ b/server.c
@@ -133,6 +133,26 @@ WriteArrayEntries(FILE *file, const statement_t *stats)
fprintf(file, "\t\t\t0,\n");
}
+void
+WriteSubsystemServerRoutine(FILE *file, const char *typeModifier)
+{
+ fprintf(file, "%s mig_routine_t %s_routine\n", typeModifier,
+ ServerDemux);
+ fprintf(file, "\t(const mach_msg_header_t *InHeadP)\n");
+
+ fprintf(file, "{\n");
+ fprintf(file, "\tint msgh_id;\n");
+ fprintf(file, "\n");
+ fprintf(file, "\tmsgh_id = InHeadP->msgh_id - %d;\n", SubsystemBase);
+ fprintf(file, "\n");
+ fprintf(file, "\tif ((msgh_id > %d) || (msgh_id < 0))\n",
+ rtNumber - 1);
+ fprintf(file, "\t\treturn 0;\n");
+ fprintf(file, "\n");
+ fprintf(file, "\treturn %s_routines[msgh_id];\n", ServerDemux);
+ fprintf(file, "}\n");
+}
+
static void
WriteEpilog(FILE *file, const statement_t *stats)
{
@@ -141,7 +161,7 @@ WriteEpilog(FILE *file, const statement_t *stats)
/*
* First, the symbol table
*/
- fprintf(file, "static mig_routine_t %s_routines[] = {\n", ServerDemux);
+ fprintf(file, "mig_routine_t %s_routines[] = {\n", ServerDemux);
WriteArrayEntries(file, stats);
@@ -199,20 +219,7 @@ WriteEpilog(FILE *file, const statement_t *stats)
/*
* Then, the <subsystem>_server_routine routine
*/
- fprintf(file, "mig_external mig_routine_t %s_routine\n", ServerDemux);
- fprintf(file, "\t(const mach_msg_header_t *InHeadP)\n");
-
- fprintf(file, "{\n");
- fprintf(file, "\tint msgh_id;\n");
- fprintf(file, "\n");
- fprintf(file, "\tmsgh_id = InHeadP->msgh_id - %d;\n", SubsystemBase);
- fprintf(file, "\n");
- fprintf(file, "\tif ((msgh_id > %d) || (msgh_id < 0))\n",
- rtNumber - 1);
- fprintf(file, "\t\treturn 0;\n");
- fprintf(file, "\n");
- fprintf(file, "\treturn %s_routines[msgh_id];\n", ServerDemux);
- fprintf(file, "}\n");
+ WriteSubsystemServerRoutine(file, "mig_external");
fprintf(file, "\n");
/* symtab */
@@ -296,11 +303,11 @@ WriteVarDecls(FILE *file, const routine_t *rt)
fprintf(file, "\n");
if (!rt->rtSimpleFixedReply)
- fprintf(file, "\tboolean_t msgh_simple;\n");
+ fprintf(file, "\tboolean_t msgh_simple = msgh_simple;\n");
else if (!rt->rtSimpleCheckRequest)
{
fprintf(file, "#if\tTypeCheck\n");
- fprintf(file, "\tboolean_t msgh_simple;\n");
+ fprintf(file, "\tboolean_t msgh_simple = msgh_simple;\n");
fprintf(file, "#endif\t/* TypeCheck */\n");
fprintf(file, "\n");
}
@@ -395,16 +402,16 @@ WriteCheckHead(FILE *file, const routine_t *rt)
fprintf(file, "\tmsgh_simple = !(In0P->Head.msgh_bits &
MACH_MSGH_BITS_COMPLEX);\n");
if (rt->rtNumRequestVar > 0)
- fprintf(file, "\tif ((msgh_size < %d)",
+ fprintf(file, "\tif (mig_unlikely ((msgh_size < %d)",
rt->rtRequestSize);
else
- fprintf(file, "\tif ((In0P->Head.msgh_size != %d)",
+ fprintf(file, "\tif (mig_unlikely ((In0P->Head.msgh_size != %d)",
rt->rtRequestSize);
if (rt->rtSimpleCheckRequest)
fprintf(file, " ||\n\t %s(In0P->Head.msgh_bits &
MACH_MSGH_BITS_COMPLEX)",
rt->rtSimpleReceiveRequest ? "" : "!");
- fprintf(file, ")\n");
+ fprintf(file, "))\n");
WriteMsgError(file, "MIG_BAD_ARGUMENTS");
fprintf(file, "#endif\t/* TypeCheck */\n");
fprintf(file, "\n");
@@ -422,7 +429,7 @@ WriteTypeCheck(FILE *file, const argument_t *arg)
arg->argRequestPos, arg->argTTName, arg->argVarName);
else
{
- fprintf(file, "\tif (");
+ fprintf(file, "\tif (mig_unlikely (");
if (!it->itIndefinite) {
fprintf(file, "(In%dP->%s%s.msgt_inline != %s) ||\n\t ",
arg->argRequestPos, arg->argTTName,
@@ -450,7 +457,7 @@ WriteTypeCheck(FILE *file, const argument_t *arg)
arg->argRequestPos, arg->argTTName,
arg->argLongForm ? "l" : "",
it->itNumber);
- fprintf(file, "\t (In%dP->%s.msgt%s_size != %d))\n",
+ fprintf(file, "\t (In%dP->%s.msgt%s_size != %d)))\n",
arg->argRequestPos, arg->argTTName,
arg->argLongForm ? "l" : "",
it->itSize);
@@ -508,9 +515,10 @@ WriteCheckMsgSize(FILE *file, const argument_t *arg)
if (arg->argRequestPos == rt->rtMaxRequestPos)
{
fprintf(file, "#if\tTypeCheck\n");
- fprintf(file, "\tif (msgh_size != %d + (", rt->rtRequestSize);
+ fprintf(file, "\tif (mig_unlikely (msgh_size != %d + (",
+ rt->rtRequestSize);
WriteCheckArgSize(file, arg);
- fprintf(file, "))\n");
+ fprintf(file, ")))\n");
WriteMsgError(file, "MIG_BAD_ARGUMENTS");
fprintf(file, "#endif\t/* TypeCheck */\n");
@@ -538,10 +546,12 @@ WriteCheckMsgSize(FILE *file, const argument_t *arg)
it won't underflow. */
if (LastVarArg)
- fprintf(file, "\tif (msgh_size != %d + msgh_size_delta)\n",
+ fprintf(file,
+ "\tif (mig_unlikely (msgh_size != %d + msgh_size_delta))\n",
rt->rtRequestSize);
else
- fprintf(file, "\tif (msgh_size < %d + msgh_size_delta)\n",
+ fprintf(file,
+ "\tif (mig_unlikely (msgh_size < %d + msgh_size_delta))\n",
rt->rtRequestSize);
WriteMsgError(file, "MIG_BAD_ARGUMENTS");
@@ -580,14 +590,45 @@ static void
WriteExtractArgValue(FILE *file, const argument_t *arg)
{
const ipc_type_t *it = arg->argType;
+ boolean_t have_payload;
if (arg->argMultiplier > 1)
WriteCopyType(file, it, "%s", "/* %s */ %s / %d",
arg->argVarName, InArgMsgField(arg), arg->argMultiplier);
- else if (it->itInTrans != strNULL)
- WriteCopyType(file, it, "%s", "/* %s */ %s(%s)",
- arg->argVarName, it->itInTrans, InArgMsgField(arg));
- else
+ else if ((have_payload = (it->itInTransPayload != strNULL &&
+ strcmp(arg->argMsgField, "Head.msgh_request_port") == 0)) ||
+ it->itInTrans != strNULL) {
+
+ if (have_payload) {
+ argument_t argPayload = *arg;
+ argPayload.argMsgField = "Head.msgh_bits";
+ fprintf(file,
+ "\tif (MACH_MSGH_BITS_LOCAL (%s) == "
+ "MACH_MSG_TYPE_PROTECTED_PAYLOAD)\n"
+ "\t", InArgMsgField(&argPayload));
+
+ argPayload.argMsgField = "Head.msgh_protected_payload";
+ WriteCopyType(file, it, "%s", "/* %s */ %s(%s)",
+ arg->argVarName, it->itInTransPayload,
+ InArgMsgField(&argPayload));
+
+ fprintf(file,
+ "\telse\n"
+ "\t");
+
+ if (it->itInTrans == strNULL)
+ fprintf(file, "\t%s = %s;",
+ arg->argVarName, InArgMsgField(arg));
+ else
+ WriteCopyType(file, it, "%s", "/* %s */ %s(%s)",
+ arg->argVarName, it->itInTrans,
+ InArgMsgField(arg));
+ } else {
+ WriteCopyType(file, it, "%s", "/* %s */ %s(%s)",
+ arg->argVarName, it->itInTrans,
+ InArgMsgField(arg));
+ }
+ } else
WriteCopyType(file, it, "%s", "/* %s */ %s",
arg->argVarName, InArgMsgField(arg));
fprintf(file, "\n");
@@ -736,9 +777,9 @@ WriteServerCallArg(FILE *file, const argument_t *arg)
arg->argTTName,
arg->argLongForm ? ".msgtl_header" : "");
fprintf(file, "? %s ", InArgMsgField(arg));
- fprintf(file, ": *((%s **)%s)",
- FetchServerType(arg->argType->itElement),
- InArgMsgField(arg));
+ fprintf(file, ": %s%s",
+ InArgMsgField(arg),
+ OOLPostfix);
}
else
fprintf(file, "%s", InArgMsgField(arg));
@@ -775,8 +816,8 @@ WriteDestroyArg(FILE *file, const argument_t *arg)
arg->argRequestPos,
arg->argTTName,
arg->argLongForm ? ".msgtl_header" : "");
- fprintf(file, "\t\t\t%smig_deallocate(* (vm_offset_t *) %s, ",
- SubrPrefix, InArgMsgField(arg));
+ fprintf(file, "\t\t\t%smig_deallocate((vm_offset_t) %s%s, ",
+ SubrPrefix, InArgMsgField(arg), OOLPostfix);
if (multiplier > 1)
fprintf(file, "%d * ", multiplier);
fprintf(file, " %s);\n", InArgMsgField(count));
@@ -905,6 +946,11 @@ WritePackArgValue(FILE *file, const argument_t *arg)
arg->argMsgField,
arg->argVarName,
it->itNumber);
+ fprintf(file,
+ "\tif (OutP->%s < %d) OutP->%s += 1;\n",
+ arg->argCount->argMsgField,
+ it->itNumber,
+ arg->argCount->argMsgField);
}
else {
argument_t *count = arg->argCount;
@@ -932,9 +978,9 @@ WritePackArgValue(FILE *file, const argument_t *arg)
arg->argTTName,
arg->argLongForm ? ".msgtl_header" : "",
arg->argDealloc->argVarName);
- fprintf(file, "\t\t*((%s **)OutP->%s) = %sP;\n",
- FetchServerType(btype),
+ fprintf(file, "\t\tOutP->%s%s = %sP;\n",
arg->argMsgField,
+ OOLPostfix,
arg->argVarName);
if (!arg->argRoutine->rtSimpleFixedReply)
fprintf(file, "\t\tmsgh_simple = FALSE;\n");
@@ -1157,9 +1203,9 @@ WritePackArg(FILE *file, const argument_t *arg)
arg->argTTName,
arg->argLongForm ? ".msgtl_header" : "",
arg->argDealloc->argVarName);
- fprintf(file, "\t\t*((%s **)OutP->%s) = %sP;\n",
- FetchServerType(it->itElement),
+ fprintf(file, "\t\tOutP->%s%s = %sP;\n",
arg->argMsgField,
+ OOLPostfix,
arg->argVarName);
if (!arg->argRoutine->rtSimpleFixedReply)
fprintf(file, "\t\tmsgh_simple = FALSE;\n");
@@ -1236,6 +1282,28 @@ WriteFieldDecl(FILE *file, const argument_t *arg)
}
static void
+WriteDefaultRoutine(FILE *file, const routine_t *rt)
+{
+ fprintf(file, "\n/* Default implementation of %s */\n",
+ rt->rtServerName);
+
+ fprintf(file, "#ifdef\tMIG_EOPNOTSUPP\n");
+
+ fprintf(file, "%s __attribute__ ((weak))\n%s\n",
+ ReturnTypeStr(rt), rt->rtServerName);
+ fprintf(file, "(\n");
+ WriteList(file, rt->rtArgs, WriteServerVarDecl,
+ akbServerArg, ",\n", "\n");
+
+ if (rt->rtReturn == argNULL)
+ fprintf(file, ") {}\n");
+ else
+ fprintf(file, ") { return MIG_EOPNOTSUPP; }\n");
+
+ fprintf(file, "#endif\t/* MIG_EOPNOTSUPP */\n");
+}
+
+static void
WriteRoutine(FILE *file, const routine_t *rt)
{
fprintf(file, "\n");
@@ -1303,6 +1371,8 @@ WriteRoutine(FILE *file, const routine_t *rt)
}
fprintf(file, "}\n");
+
+ WriteDefaultRoutine(file, rt);
}
void
diff --git a/type.c b/type.c
index 3078dab..7565f34 100644
--- a/type.c
+++ b/type.c
@@ -118,6 +118,7 @@ itAlloc(void)
strNULL, /* identifier_t itServerType */
strNULL, /* identifier_t itTransType */
strNULL, /* identifier_t itInTrans */
+ strNULL, /* identifier_t itInTransPayload */
strNULL, /* identifier_t itOutTrans */
strNULL, /* identifier_t itDestructor */
};
@@ -376,7 +377,9 @@ itCheckDecl(identifier_t name, ipc_type_t *it)
limitations in Mig */
if (it->itVarArray) {
- if ((it->itInTrans != strNULL) || (it->itOutTrans != strNULL))
+ if ((it->itInTrans != strNULL) ||
+ (it->itInTransPayload != strNULL) ||
+ (it->itOutTrans != strNULL))
error("%s: can't translate variable-sized arrays", name);
if (it->itDestructor != strNULL)
@@ -419,6 +422,10 @@ itPrintTrans(const ipc_type_t *it)
printf("\tInTran:\t\t%s %s(%s)\n",
it->itTransType, it->itInTrans, it->itServerType);
+ if (it->itInTransPayload != strNULL)
+ printf("\tInTranPayload:\t\t%s %s\n",
+ it->itTransType, it->itInTransPayload);
+
if (it->itOutTrans != strNULL)
printf("\tOutTran:\t%s %s(%s)\n",
it->itServerType, it->itOutTrans, it->itTransType);
@@ -556,6 +563,7 @@ itResetType(ipc_type_t *old)
/* reset all special translation/destruction/type info */
old->itInTrans = strNULL;
+ old->itInTransPayload = strNULL;
old->itOutTrans = strNULL;
old->itDestructor = strNULL;
old->itUserType = strNULL;
diff --git a/type.h b/type.h
index f199059..50de063 100644
--- a/type.h
+++ b/type.h
@@ -107,6 +107,7 @@ typedef enum dealloc {
* cusertype: itUserType
* cservertype: itServerType
* intran: itTransType itInTrans(itServerType)
+ * intranpayload: itTransType itInTransPayload
* outtran: itServerType itOutTrans(itTransType)
* destructor: itDestructor(itTransType);
*
@@ -165,6 +166,7 @@ typedef struct ipc_type
identifier_t itTransType;
identifier_t itInTrans; /* may be NULL */
+ identifier_t itInTransPayload; /* may be NULL */
identifier_t itOutTrans; /* may be NULL */
identifier_t itDestructor; /* may be NULL */
} ipc_type_t;
diff --git a/user.c b/user.c
index 37f53d2..1f3ba3d 100644
--- a/user.c
+++ b/user.c
@@ -411,6 +411,11 @@ WritePackArgValue(FILE *file, const argument_t *arg)
arg->argMsgField,
arg->argVarName,
it->itNumber);
+ fprintf(file,
+ "\tif (InP->%s < %d) InP->%s += 1;\n",
+ arg->argCount->argMsgField,
+ it->itNumber,
+ arg->argCount->argMsgField);
}
else {
@@ -442,9 +447,9 @@ WritePackArgValue(FILE *file, const argument_t *arg)
arg->argLongForm ? ".msgtl_header" : "",
arg->argDealloc->argByReferenceUser ? "*" : "",
arg->argDealloc->argVarName);
- fprintf(file, "\t\t*((%s **)InP->%s) = %s%s;\n",
- FetchUserType(btype),
+ fprintf(file, "\t\tInP->%s%s = %s%s;\n",
arg->argMsgField,
+ OOLPostfix,
ref, arg->argVarName);
if (!arg->argRoutine->rtSimpleFixedRequest)
fprintf(file, "\t\tmsgh_simple = FALSE;\n");
@@ -681,7 +686,7 @@ WriteRequestArgs(FILE *file, const routine_t *rt)
static void
WriteCheckIdentity(FILE *file, const routine_t *rt)
{
- fprintf(file, "\tif (OutP->Head.msgh_id != %d) {\n",
+ fprintf(file, "\tif (mig_unlikely (OutP->Head.msgh_id != %d)) {\n",
rt->rtNumber + SubsystemBase + 100);
fprintf(file, "\t\tif (OutP->Head.msgh_id == MACH_NOTIFY_SEND_ONCE)\n\t");
WriteMsgError(file, rt, "MIG_SERVER_DIED");
@@ -703,16 +708,17 @@ WriteCheckIdentity(FILE *file, const routine_t *rt)
fprintf(file, "\tmsgh_size = OutP->Head.msgh_size;\n\n");
fprintf(file,
- "\tif ((OutP->Head.msgh_bits & MACH_MSGH_BITS_COMPLEX) ||\n");
+ "\tif (mig_unlikely ("
+ "(OutP->Head.msgh_bits & MACH_MSGH_BITS_COMPLEX) ||\n");
if (rt->rtNoReplyArgs)
- fprintf(file, "\t (OutP->Head.msgh_size != %d))\n",
+ fprintf(file, "\t (OutP->Head.msgh_size != %d)))\n",
rt->rtReplySize);
else {
fprintf(file, "\t ((msgh_size %s %d) &&\n",
(rt->rtNumReplyVar > 0) ? "<" : "!=",
rt->rtReplySize);
fprintf(file, "\t ((msgh_size != sizeof(mig_reply_header_t))
||\n");
- fprintf(file, "\t (OutP->RetCode == KERN_SUCCESS))))\n");
+ fprintf(file, "\t (OutP->RetCode == KERN_SUCCESS)))))\n");
}
}
else {
@@ -722,7 +728,7 @@ WriteCheckIdentity(FILE *file, const routine_t *rt)
fprintf(file, "\tmsgh_simple = !(OutP->Head.msgh_bits &
MACH_MSGH_BITS_COMPLEX);\n");
fprintf(file, "\n");
- fprintf(file, "\tif (((msgh_size %s %d)",
+ fprintf(file, "\tif (mig_unlikely (((msgh_size %s %d)",
(rt->rtNumReplyVar > 0) ? "<" : "!=",
rt->rtReplySize);
@@ -735,7 +741,7 @@ WriteCheckIdentity(FILE *file, const routine_t *rt)
fprintf(file, "\t ((msgh_size != sizeof(mig_reply_header_t)) ||\n");
fprintf(file, "\t !msgh_simple ||\n");
- fprintf(file, "\t (OutP->RetCode == KERN_SUCCESS)))\n");
+ fprintf(file, "\t (OutP->RetCode == KERN_SUCCESS))))\n");
}
WriteMsgError(file, rt, "MIG_TYPE_ERROR");
fprintf(file, "#endif\t/* TypeCheck */\n");
@@ -773,7 +779,7 @@ WriteTypeCheck(FILE *file, const argument_t *arg)
}
else
{
- fprintf(file, "\tif (");
+ fprintf(file, "\tif (mig_unlikely (");
if (!it->itIndefinite) {
fprintf(file, "(OutP->%s%s.msgt_inline != %s) ||\n\t ",
arg->argTTName,
@@ -801,7 +807,7 @@ WriteTypeCheck(FILE *file, const argument_t *arg)
arg->argTTName,
arg->argLongForm ? "l" : "",
it->itNumber);
- fprintf(file, "\t (OutP->%s.msgt%s_size != %d))\n",
+ fprintf(file, "\t (OutP->%s.msgt%s_size != %d)))\n",
arg->argTTName,
arg->argLongForm ? "l" : "",
it->itSize);
@@ -856,10 +862,10 @@ WriteCheckMsgSize(FILE *file, const argument_t *arg)
if (arg->argReplyPos == rt->rtMaxReplyPos)
{
fprintf(file, "#if\tTypeCheck\n");
- fprintf(file, "\tif (msgh_size != %d + (",
+ fprintf(file, "\tif (mig_unlikely (msgh_size != %d + (",
rt->rtReplySize);
WriteCheckArgSize(file, arg);
- fprintf(file, "))\n");
+ fprintf(file, ")))\n");
WriteMsgError(file, rt, "MIG_TYPE_ERROR");
fprintf(file, "#endif\t/* TypeCheck */\n");
@@ -887,10 +893,12 @@ WriteCheckMsgSize(FILE *file, const argument_t *arg)
it won't underflow. */
if (LastVarArg)
- fprintf(file, "\tif (msgh_size != %d + msgh_size_delta)\n",
+ fprintf(file,
+ "\tif (mig_unlikely (msgh_size != %d + msgh_size_delta))\n",
rt->rtReplySize);
else
- fprintf(file, "\tif (msgh_size < %d + msgh_size_delta)\n",
+ fprintf(file,
+ "\tif (mig_unlikely (msgh_size < %d + msgh_size_delta))\n",
rt->rtReplySize);
WriteMsgError(file, rt, "MIG_TYPE_ERROR");
@@ -943,9 +951,10 @@ WriteExtractArgValue(FILE *file, const argument_t *arg)
fprintf(file, "\tif (!OutP->%s%s.msgt_inline)\n",
arg->argTTName,
arg->argLongForm ? ".msgtl_header" : "");
- fprintf(file, "\t %s%s = *((%s **)OutP->%s);\n",
+ fprintf(file, "\t %s%s = OutP->%s%s;\n",
ref, arg->argVarName,
- FetchUserType(btype), arg->argMsgField);
+ arg->argMsgField,
+ OOLPostfix);
fprintf(file, "\telse if (OutP->%s", count->argMsgField);
if (btype->itNumber > 1)
fprintf(file, " / %d", btype->itNumber);
diff --git a/utils.c b/utils.c
index 6c42bc3..4c2a87b 100644
--- a/utils.c
+++ b/utils.c
@@ -60,6 +60,11 @@ WriteBogusDefines(FILE *file)
fprintf(file, "#endif\n");
fprintf(file, "\n");
+ fprintf(file, "#ifndef\tmig_unlikely\n");
+ fprintf(file, "#define\tmig_unlikely(X)\t__builtin_expect (!! (X), 0)\n");
+ fprintf(file, "#endif\n");
+ fprintf(file, "\n");
+
fprintf(file, "#ifndef\tTypeCheck\n");
fprintf(file, "#define\tTypeCheck 1\n");
fprintf(file, "#endif\n");
@@ -70,11 +75,11 @@ WriteBogusDefines(FILE *file)
fprintf(file, "#endif\n");
fprintf(file, "\n");
- fprintf(file, "#define BAD_TYPECHECK(type, check) ({\\\n");
+ fprintf(file, "#define BAD_TYPECHECK(type, check) mig_unlikely (({\\\n");
fprintf(file,
" union { mach_msg_type_t t; unsigned32_t w; } _t, _c;\\\n");
fprintf(file,
- " _t.t = *(type); _c.t = *(check); _t.w != _c.w; })\n");
+ " _t.t = *(type); _c.t = *(check);_t.w != _c.w; }))\n");
}
void
@@ -234,10 +239,16 @@ WriteFieldDeclPrim(FILE *file, const argument_t *arg,
* use the element type and maximum size specified.
* Note arg->argCount->argMultiplier == btype->itNumber.
*/
- fprintf(file, "\t\t%s %s[%d];",
+ fprintf(file, "\t\tunion {\n");
+ fprintf(file, "\t\t\t%s %s[%d];\n",
(*tfunc)(btype),
arg->argMsgField,
it->itNumber/btype->itNumber);
+ fprintf(file, "\t\t\t%s *%s%s;\n",
+ (*tfunc)(btype),
+ arg->argMsgField,
+ OOLPostfix);
+ fprintf(file, "\t\t};");
}
else
fprintf(file, "\t\t%s %s;", (*tfunc)(it), arg->argMsgField);
diff --git a/write.h b/write.h
index b5180df..4d24e63 100644
--- a/write.h
+++ b/write.h
@@ -38,5 +38,6 @@ extern void WriteUser(FILE *file, const statement_t *stats);
extern void WriteUserIndividual(const statement_t *stats);
extern void WriteServer(FILE *file, const statement_t *stats);
extern void WriteRoutineList(FILE *file, const statement_t *stats);
+extern void WriteSubsystemServerRoutine(FILE *file, const char *typeModifier);
#endif /* _WRITE_H */
--
Alioth's /usr/local/bin/git-commit-notice on
/srv/git.debian.org/git/pkg-hurd/mig.git