]> andersk Git - splint.git/commitdiff
Fixed off by one bug involving arrays initialized with a block of values.
authordrl7x <drl7x>
Mon, 8 Dec 2003 07:28:10 +0000 (07:28 +0000)
committerdrl7x <drl7x>
Mon, 8 Dec 2003 07:28:10 +0000 (07:28 +0000)
For example.  int tmp[] = {0,0, 3, 3, 4};

Bug was reported by Kevin Abrams

19 files changed:
configure
src/Headers/cgrammar_tokens.h
src/Headers/llgrammar_gen.h
src/Headers/llgrammar_gen2.h
src/Headers/mtgrammar_tokens.h
src/Headers/signature_gen.h
src/cgrammar.c.der
src/constraintExpr.c
src/constraintGeneration.c
src/constraintResolve.c
src/functionClauseList.c
src/llgrammar.c.der
src/loopHeuristics.c
src/mtgrammar.c
src/mtgrammar.c.der
src/signature.c.der
test/moreBufferTests2.expect
test/moreBufferTests2/Makefile
test/moreBufferTests2/initBlock.c [new file with mode: 0644]

index 82b83789dc8e44dae90f6842df8c8df523be7a71..12a289b9da946458423092bb124f2c3c08f37f7a 100755 (executable)
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.53 for Splint 3.1.1.2.
+# Generated by GNU Autoconf 2.57 for Splint 3.1.1.2.
 #
 # Report bugs to <splint-bug@splint.org>.
 #
 #
 # Report bugs to <splint-bug@splint.org>.
 #
@@ -8,14 +8,6 @@
 # Free Software Foundation, Inc.
 # This configure script is free software; the Free Software Foundation
 # gives unlimited permission to copy, distribute and modify it.
 # Free Software Foundation, Inc.
 # This configure script is free software; the Free Software Foundation
 # gives unlimited permission to copy, distribute and modify it.
-
-if expr a : '\(a\)' >/dev/null 2>&1; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-
 ## --------------------- ##
 ## M4sh Initialization.  ##
 ## --------------------- ##
 ## --------------------- ##
 ## M4sh Initialization.  ##
 ## --------------------- ##
@@ -24,11 +16,13 @@ fi
 if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
   emulate sh
   NULLCMD=:
 if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
   emulate sh
   NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
 elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
   set -o posix
 fi
 
 elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
   set -o posix
 fi
 
-# NLS nuisances.
 # Support unset when possible.
 if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
   as_unset=unset
 # Support unset when possible.
 if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
   as_unset=unset
@@ -36,34 +30,42 @@ else
   as_unset=false
 fi
 
   as_unset=false
 fi
 
-(set +x; test -n "`(LANG=C; export LANG) 2>&1`") &&
-    { $as_unset LANG || test "${LANG+set}" != set; } ||
-      { LANG=C; export LANG; }
-(set +x; test -n "`(LC_ALL=C; export LC_ALL) 2>&1`") &&
-    { $as_unset LC_ALL || test "${LC_ALL+set}" != set; } ||
-      { LC_ALL=C; export LC_ALL; }
-(set +x; test -n "`(LC_TIME=C; export LC_TIME) 2>&1`") &&
-    { $as_unset LC_TIME || test "${LC_TIME+set}" != set; } ||
-      { LC_TIME=C; export LC_TIME; }
-(set +x; test -n "`(LC_CTYPE=C; export LC_CTYPE) 2>&1`") &&
-    { $as_unset LC_CTYPE || test "${LC_CTYPE+set}" != set; } ||
-      { LC_CTYPE=C; export LC_CTYPE; }
-(set +x; test -n "`(LANGUAGE=C; export LANGUAGE) 2>&1`") &&
-    { $as_unset LANGUAGE || test "${LANGUAGE+set}" != set; } ||
-      { LANGUAGE=C; export LANGUAGE; }
-(set +x; test -n "`(LC_COLLATE=C; export LC_COLLATE) 2>&1`") &&
-    { $as_unset LC_COLLATE || test "${LC_COLLATE+set}" != set; } ||
-      { LC_COLLATE=C; export LC_COLLATE; }
-(set +x; test -n "`(LC_NUMERIC=C; export LC_NUMERIC) 2>&1`") &&
-    { $as_unset LC_NUMERIC || test "${LC_NUMERIC+set}" != set; } ||
-      { LC_NUMERIC=C; export LC_NUMERIC; }
-(set +x; test -n "`(LC_MESSAGES=C; export LC_MESSAGES) 2>&1`") &&
-    { $as_unset LC_MESSAGES || test "${LC_MESSAGES+set}" != set; } ||
-      { LC_MESSAGES=C; export LC_MESSAGES; }
+
+# Work around bugs in pre-3.0 UWIN ksh.
+$as_unset ENV MAIL MAILPATH
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+for as_var in \
+  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
+  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
+  LC_TELEPHONE LC_TIME
+do
+  if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then
+    eval $as_var=C; export $as_var
+  else
+    $as_unset $as_var
+  fi
+done
+
+# Required to use basename.
+if expr a : '\(a\)' >/dev/null 2>&1; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
+  as_basename=basename
+else
+  as_basename=false
+fi
 
 
 # Name of the executable.
 
 
 # Name of the executable.
-as_me=`(basename "$0") 2>/dev/null ||
+as_me=`$as_basename "$0" ||
 $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
         X"$0" : 'X\(//\)$' \| \
         X"$0" : 'X\(/\)$' \| \
 $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
         X"$0" : 'X\(//\)$' \| \
         X"$0" : 'X\(/\)$' \| \
@@ -74,6 +76,7 @@ echo X/"$0" |
          /^X\/\(\/\).*/{ s//\1/; q; }
          s/.*/./; q'`
 
          /^X\/\(\/\).*/{ s//\1/; q; }
          s/.*/./; q'`
 
+
 # PATH needs CR, and LINENO needs CR and PATH.
 # Avoid depending upon Character Ranges.
 as_cr_letters='abcdefghijklmnopqrstuvwxyz'
 # PATH needs CR, and LINENO needs CR and PATH.
 # Avoid depending upon Character Ranges.
 as_cr_letters='abcdefghijklmnopqrstuvwxyz'
@@ -84,15 +87,15 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits
 
 # The user is always right.
 if test "${PATH_SEPARATOR+set}" != set; then
 
 # The user is always right.
 if test "${PATH_SEPARATOR+set}" != set; then
-  echo "#! /bin/sh" >conftest.sh
-  echo  "exit 0"   >>conftest.sh
-  chmod +x conftest.sh
-  if (PATH=".;."; conftest.sh) >/dev/null 2>&1; then
+  echo "#! /bin/sh" >conf$$.sh
+  echo  "exit 0"   >>conf$$.sh
+  chmod +x conf$$.sh
+  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
     PATH_SEPARATOR=';'
   else
     PATH_SEPARATOR=:
   fi
     PATH_SEPARATOR=';'
   else
     PATH_SEPARATOR=:
   fi
-  rm -f conftest.sh
+  rm -f conf$$.sh
 fi
 
 
 fi
 
 
@@ -140,6 +143,8 @@ do
   as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
   test "x$as_lineno_1" != "x$as_lineno_2" &&
   test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
   as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
   test "x$as_lineno_1" != "x$as_lineno_2" &&
   test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
+            $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
+            $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
             CONFIG_SHELL=$as_dir/$as_base
             export CONFIG_SHELL
             exec "$CONFIG_SHELL" "$0" ${1+"$@"}
             CONFIG_SHELL=$as_dir/$as_base
             export CONFIG_SHELL
             exec "$CONFIG_SHELL" "$0" ${1+"$@"}
@@ -212,6 +217,12 @@ else
 fi
 rm -f conf$$ conf$$.exe conf$$.file
 
 fi
 rm -f conf$$ conf$$.exe conf$$.file
 
+if mkdir -p . 2>/dev/null; then
+  as_mkdir_p=:
+else
+  as_mkdir_p=false
+fi
+
 as_executable_p="test -f"
 
 # Sed expression to map a string onto a valid CPP name.
 as_executable_p="test -f"
 
 # Sed expression to map a string onto a valid CPP name.
@@ -228,7 +239,7 @@ as_nl='
 IFS="  $as_nl"
 
 # CDPATH.
 IFS="  $as_nl"
 
 # CDPATH.
-$as_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=$PATH_SEPARATOR; export CDPATH; }
+$as_unset CDPATH
 
 
 # Name of the host.
 
 
 # Name of the host.
@@ -242,6 +253,7 @@ exec 6>&1
 # Initializations.
 #
 ac_default_prefix=/usr/local
 # Initializations.
 #
 ac_default_prefix=/usr/local
+ac_config_libobj_dir=.
 cross_compiling=no
 subdirs=
 MFLAGS=
 cross_compiling=no
 subdirs=
 MFLAGS=
@@ -261,6 +273,8 @@ PACKAGE_STRING='Splint 3.1.1.2'
 PACKAGE_BUGREPORT='splint-bug@splint.org'
 
 ac_unique_file="src/lclinit.c"
 PACKAGE_BUGREPORT='splint-bug@splint.org'
 
 ac_unique_file="src/lclinit.c"
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO AMTAR install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM AWK SET_MAKE CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE CPP LEX LEXLIB LEX_OUTPUT_ROOT LN_S BISON GREP DIFF CAT RM MV CP SED LCLOBJ LIBOBJS LTLIBOBJS'
+ac_subst_files=''
 
 # Initialize some variables set by options.
 ac_init_help=
 
 # Initialize some variables set by options.
 ac_init_help=
@@ -684,6 +698,9 @@ if test ! -r $srcdir/$ac_unique_file; then
    { (exit 1); exit 1; }; }
   fi
 fi
    { (exit 1); exit 1; }; }
   fi
 fi
+(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null ||
+  { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2
+   { (exit 1); exit 1; }; }
 srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
 ac_env_build_alias_set=${build_alias+set}
 ac_env_build_alias_value=$build_alias
 srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
 ac_env_build_alias_set=${build_alias+set}
 ac_env_build_alias_value=$build_alias
@@ -856,7 +873,7 @@ esac
 # Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
 # absolute.
 ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
 # Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
 # absolute.
 ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
-ac_abs_top_builddir=`cd "$ac_dir" && cd $ac_top_builddir && pwd`
+ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
 ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
 ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
 
 ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
 ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
 
@@ -875,7 +892,7 @@ ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
     else
       echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
     fi
     else
       echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
     fi
-    cd $ac_popdir
+    cd "$ac_popdir"
   done
 fi
 
   done
 fi
 
@@ -883,7 +900,7 @@ test -n "$ac_init_help" && exit 0
 if $ac_init_version; then
   cat <<\_ACEOF
 Splint configure 3.1.1.2
 if $ac_init_version; then
   cat <<\_ACEOF
 Splint configure 3.1.1.2
-generated by GNU Autoconf 2.53
+generated by GNU Autoconf 2.57
 
 Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
 Free Software Foundation, Inc.
 
 Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
 Free Software Foundation, Inc.
@@ -898,7 +915,7 @@ This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
 It was created by Splint $as_me 3.1.1.2, which was
 running configure, to aid debugging if configure makes a mistake.
 
 It was created by Splint $as_me 3.1.1.2, which was
-generated by GNU Autoconf 2.53.  Invocation command line was
+generated by GNU Autoconf 2.57.  Invocation command line was
 
   $ $0 $@
 
 
   $ $0 $@
 
@@ -950,27 +967,54 @@ _ACEOF
 
 # Keep a trace of the command line.
 # Strip out --no-create and --no-recursion so they do not pile up.
 
 # Keep a trace of the command line.
 # Strip out --no-create and --no-recursion so they do not pile up.
+# Strip out --silent because we don't want to record it for future runs.
 # Also quote any args containing shell meta-characters.
 # Also quote any args containing shell meta-characters.
+# Make two passes to allow for proper duplicate-argument suppression.
 ac_configure_args=
 ac_configure_args=
+ac_configure_args0=
+ac_configure_args1=
 ac_sep=
 ac_sep=
-for ac_arg
+ac_must_keep_next=false
+for ac_pass in 1 2
 do
 do
-  case $ac_arg in
-  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
-  | --no-cr | --no-c | -n ) continue ;;
-  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
-  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
-    continue ;;
-  *" "*|*"     "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
-    ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
-  esac
-  case " $ac_configure_args " in
-    *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
-    *) ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
-       ac_sep=" " ;;
-  esac
-  # Get rid of the leading space.
+  for ac_arg
+  do
+    case $ac_arg in
+    -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
+    -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+    | -silent | --silent | --silen | --sile | --sil)
+      continue ;;
+    *" "*|*"   "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
+      ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    esac
+    case $ac_pass in
+    1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
+    2)
+      ac_configure_args1="$ac_configure_args1 '$ac_arg'"
+      if test $ac_must_keep_next = true; then
+        ac_must_keep_next=false # Got value, back to normal.
+      else
+        case $ac_arg in
+          *=* | --config-cache | -C | -disable-* | --disable-* \
+          | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+          | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+          | -with-* | --with-* | -without-* | --without-* | --x)
+            case "$ac_configure_args0 " in
+              "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+            esac
+            ;;
+          -* ) ac_must_keep_next=true ;;
+        esac
+      fi
+      ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
+      # Get rid of the leading space.
+      ac_sep=" "
+      ;;
+    esac
+  done
 done
 done
+$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
+$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
 
 # When interrupted or exit'd, cleanup temporary files, and complete
 # config.log.  We remove comments because anyway the quotes in there
 
 # When interrupted or exit'd, cleanup temporary files, and complete
 # config.log.  We remove comments because anyway the quotes in there
@@ -981,6 +1025,7 @@ trap 'exit_status=$?
   # Save into config.log some information that might help in debugging.
   {
     echo
   # Save into config.log some information that might help in debugging.
   {
     echo
+
     cat <<\_ASBOX
 ## ---------------- ##
 ## Cache variables. ##
     cat <<\_ASBOX
 ## ---------------- ##
 ## Cache variables. ##
@@ -1003,6 +1048,35 @@ _ASBOX
     esac;
 }
     echo
     esac;
 }
     echo
+
+    cat <<\_ASBOX
+## ----------------- ##
+## Output variables. ##
+## ----------------- ##
+_ASBOX
+    echo
+    for ac_var in $ac_subst_vars
+    do
+      eval ac_val=$`echo $ac_var`
+      echo "$ac_var='"'"'$ac_val'"'"'"
+    done | sort
+    echo
+
+    if test -n "$ac_subst_files"; then
+      cat <<\_ASBOX
+## ------------- ##
+## Output files. ##
+## ------------- ##
+_ASBOX
+      echo
+      for ac_var in $ac_subst_files
+      do
+       eval ac_val=$`echo $ac_var`
+        echo "$ac_var='"'"'$ac_val'"'"'"
+      done | sort
+      echo
+    fi
+
     if test -s confdefs.h; then
       cat <<\_ASBOX
 ## ----------- ##
     if test -s confdefs.h; then
       cat <<\_ASBOX
 ## ----------- ##
@@ -1010,14 +1084,14 @@ _ASBOX
 ## ----------- ##
 _ASBOX
       echo
 ## ----------- ##
 _ASBOX
       echo
-      sed "/^$/d" confdefs.h
+      sed "/^$/d" confdefs.h | sort
       echo
     fi
     test "$ac_signal" != 0 &&
       echo "$as_me: caught signal $ac_signal"
     echo "$as_me: exit $exit_status"
   } >&5
       echo
     fi
     test "$ac_signal" != 0 &&
       echo "$as_me: caught signal $ac_signal"
     echo "$as_me: exit $exit_status"
   } >&5
-  rm -f core core.* *.core &&
+  rm -f core *.core &&
   rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
     exit $exit_status
      ' 0
   rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
     exit $exit_status
      ' 0
@@ -1174,6 +1248,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
 
 
 
 
+
 
 
 ac_aux_dir=
 
 
 ac_aux_dir=
@@ -1477,15 +1552,15 @@ fi
   test -n "$AWK" && break
 done
 
   test -n "$AWK" && break
 done
 
-echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \${MAKE}" >&5
-echo $ECHO_N "checking whether ${MAKE-make} sets \${MAKE}... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6
 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'`
 if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.make <<\_ACEOF
 all:
 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'`
 if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.make <<\_ACEOF
 all:
-       @echo 'ac_maketemp="${MAKE}"'
+       @echo 'ac_maketemp="$(MAKE)"'
 _ACEOF
 # GNU make sometimes prints "make[1]: Entering...", which would confuse us.
 eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=`
 _ACEOF
 # GNU make sometimes prints "make[1]: Entering...", which would confuse us.
 eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=`
@@ -1635,7 +1710,7 @@ INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
 
 # Add the stamp file to the list of files AC keeps track of,
 # along with our hook.
 
 # Add the stamp file to the list of files AC keeps track of,
 # along with our hook.
-ac_config_headers="$ac_config_headers config.h:config.hin"
+          ac_config_headers="$ac_config_headers config.h:config.hin"
 
 
 
 
 
 
@@ -1851,9 +1926,7 @@ if test $ac_prog_rejected = yes; then
     # However, it has the same basename, so the bogon will be chosen
     # first if we set CC to just the basename; use the full file name.
     shift
     # However, it has the same basename, so the bogon will be chosen
     # first if we set CC to just the basename; use the full file name.
     shift
-    set dummy "$as_dir/$ac_word" ${1+"$@"}
-    shift
-    ac_cv_prog_CC="$@"
+    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
   fi
 fi
 fi
   fi
 fi
 fi
@@ -1958,8 +2031,10 @@ fi
 fi
 
 
 fi
 
 
-test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH" >&5
-echo "$as_me: error: no acceptable C compiler found in \$PATH" >&2;}
+test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
+See \`config.log' for more details." >&5
+echo "$as_me: error: no acceptable C compiler found in \$PATH
+See \`config.log' for more details." >&2;}
    { (exit 1); exit 1; }; }
 
 # Provide some information about the compiler.
    { (exit 1); exit 1; }; }
 
 # Provide some information about the compiler.
@@ -1984,14 +2059,12 @@ ac_compiler=`set X $ac_compile; echo $2`
 
 cat >conftest.$ac_ext <<_ACEOF
 #line $LINENO "configure"
 
 cat >conftest.$ac_ext <<_ACEOF
 #line $LINENO "configure"
-#include "confdefs.h"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
 
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
 int
 main ()
 {
 int
 main ()
 {
@@ -2001,7 +2074,7 @@ main ()
 }
 _ACEOF
 ac_clean_files_save=$ac_clean_files
 }
 _ACEOF
 ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files a.out a.exe"
+ac_clean_files="$ac_clean_files a.out a.exe b.out"
 # Try to create an executable without -o first, disregard a.out.
 # It will help us diagnose broken compilers, and finding out an intuition
 # of exeext.
 # Try to create an executable without -o first, disregard a.out.
 # It will help us diagnose broken compilers, and finding out an intuition
 # of exeext.
@@ -2020,26 +2093,39 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5
 # Be careful to initialize this variable, since it used to be cached.
 # Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile.
 ac_cv_exeext=
 # Be careful to initialize this variable, since it used to be cached.
 # Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile.
 ac_cv_exeext=
-for ac_file in `ls a_out.exe a.exe conftest.exe 2>/dev/null;
-                ls a.out conftest 2>/dev/null;
-                ls a.* conftest.* 2>/dev/null`; do
+# b.out is created by i960 compilers.
+for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out
+do
+  test -f "$ac_file" || continue
   case $ac_file in
   case $ac_file in
-    *.$ac_ext | *.o | *.obj | *.xcoff | *.tds | *.d | *.pdb | *.xSYM ) ;;
-    a.out ) # We found the default executable, but exeext='' is most
-            # certainly right.
-            break;;
-    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
-          # FIXME: I believe we export ac_cv_exeext for Libtool --akim.
-          export ac_cv_exeext
-          break;;
-    * ) break;;
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj )
+        ;;
+    conftest.$ac_ext )
+        # This is the source file.
+        ;;
+    [ab].out )
+        # We found the default executable, but exeext='' is most
+        # certainly right.
+        break;;
+    *.* )
+        ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+        # FIXME: I believe we export ac_cv_exeext for Libtool,
+        # but it would be cool to find out if it's true.  Does anybody
+        # maintain Libtool? --akim.
+        export ac_cv_exeext
+        break;;
+    * )
+        break;;
   esac
 done
 else
   echo "$as_me: failed program was:" >&5
   esac
 done
 else
   echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-{ { echo "$as_me:$LINENO: error: C compiler cannot create executables" >&5
-echo "$as_me: error: C compiler cannot create executables" >&2;}
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { echo "$as_me:$LINENO: error: C compiler cannot create executables
+See \`config.log' for more details." >&5
+echo "$as_me: error: C compiler cannot create executables
+See \`config.log' for more details." >&2;}
    { (exit 77); exit 77; }; }
 fi
 
    { (exit 77); exit 77; }; }
 fi
 
@@ -2066,9 +2152,11 @@ if test "$cross_compiling" != yes; then
        cross_compiling=yes
     else
        { { echo "$as_me:$LINENO: error: cannot run C compiled programs.
        cross_compiling=yes
     else
        { { echo "$as_me:$LINENO: error: cannot run C compiled programs.
-If you meant to cross compile, use \`--host'." >&5
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details." >&5
 echo "$as_me: error: cannot run C compiled programs.
 echo "$as_me: error: cannot run C compiled programs.
-If you meant to cross compile, use \`--host'." >&2;}
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details." >&2;}
    { (exit 1); exit 1; }; }
     fi
   fi
    { (exit 1); exit 1; }; }
     fi
   fi
@@ -2076,7 +2164,7 @@ fi
 echo "$as_me:$LINENO: result: yes" >&5
 echo "${ECHO_T}yes" >&6
 
 echo "$as_me:$LINENO: result: yes" >&5
 echo "${ECHO_T}yes" >&6
 
-rm -f a.out a.exe conftest$ac_cv_exeext
+rm -f a.out a.exe conftest$ac_cv_exeext b.out
 ac_clean_files=$ac_clean_files_save
 # Check the compiler produces executables we can run.  If not, either
 # the compiler is broken, or we cross compile.
 ac_clean_files=$ac_clean_files_save
 # Check the compiler produces executables we can run.  If not, either
 # the compiler is broken, or we cross compile.
@@ -2096,9 +2184,10 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
 # catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
 # work properly (i.e., refer to `conftest.exe'), while it won't with
 # `rm'.
 # catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
 # work properly (i.e., refer to `conftest.exe'), while it won't with
 # `rm'.
-for ac_file in `(ls conftest.exe; ls conftest; ls conftest.*) 2>/dev/null`; do
+for ac_file in conftest.exe conftest conftest.*; do
+  test -f "$ac_file" || continue
   case $ac_file in
   case $ac_file in
-    *.$ac_ext | *.o | *.obj | *.xcoff | *.tds | *.d | *.pdb ) ;;
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;;
     *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
           export ac_cv_exeext
           break;;
     *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
           export ac_cv_exeext
           break;;
@@ -2106,8 +2195,10 @@ for ac_file in `(ls conftest.exe; ls conftest; ls conftest.*) 2>/dev/null`; do
   esac
 done
 else
   esac
 done
 else
-  { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link" >&5
-echo "$as_me: error: cannot compute suffix of executables: cannot compile and link" >&2;}
+  { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details." >&2;}
    { (exit 1); exit 1; }; }
 fi
 
    { (exit 1); exit 1; }; }
 fi
 
@@ -2125,14 +2216,12 @@ if test "${ac_cv_objext+set}" = set; then
 else
   cat >conftest.$ac_ext <<_ACEOF
 #line $LINENO "configure"
 else
   cat >conftest.$ac_ext <<_ACEOF
 #line $LINENO "configure"
-#include "confdefs.h"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
 
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
 int
 main ()
 {
 int
 main ()
 {
@@ -2149,16 +2238,19 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   (exit $ac_status); }; then
   for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
   case $ac_file in
   (exit $ac_status); }; then
   for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
   case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb ) ;;
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;;
     *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
        break;;
   esac
 done
 else
   echo "$as_me: failed program was:" >&5
     *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
        break;;
   esac
 done
 else
   echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile" >&5
-echo "$as_me: error: cannot compute suffix of object files: cannot compile" >&2;}
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute suffix of object files: cannot compile
+See \`config.log' for more details." >&2;}
    { (exit 1); exit 1; }; }
 fi
 
    { (exit 1); exit 1; }; }
 fi
 
@@ -2175,14 +2267,12 @@ if test "${ac_cv_c_compiler_gnu+set}" = set; then
 else
   cat >conftest.$ac_ext <<_ACEOF
 #line $LINENO "configure"
 else
   cat >conftest.$ac_ext <<_ACEOF
 #line $LINENO "configure"
-#include "confdefs.h"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
 
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
 int
 main ()
 {
 int
 main ()
 {
@@ -2209,7 +2299,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   ac_compiler_gnu=yes
 else
   echo "$as_me: failed program was:" >&5
   ac_compiler_gnu=yes
 else
   echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
 ac_compiler_gnu=no
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 ac_compiler_gnu=no
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
@@ -2229,14 +2320,12 @@ if test "${ac_cv_prog_cc_g+set}" = set; then
 else
   cat >conftest.$ac_ext <<_ACEOF
 #line $LINENO "configure"
 else
   cat >conftest.$ac_ext <<_ACEOF
 #line $LINENO "configure"
-#include "confdefs.h"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
 
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
 int
 main ()
 {
 int
 main ()
 {
@@ -2260,7 +2349,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   ac_cv_prog_cc_g=yes
 else
   echo "$as_me: failed program was:" >&5
   ac_cv_prog_cc_g=yes
 else
   echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
 ac_cv_prog_cc_g=no
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 ac_cv_prog_cc_g=no
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
@@ -2282,6 +2372,102 @@ else
     CFLAGS=
   fi
 fi
     CFLAGS=
   fi
 fi
+echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5
+echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
+if test "${ac_cv_prog_cc_stdc+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_prog_cc_stdc=no
+ac_save_CC=$CC
+cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdarg.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+     char **p;
+     int i;
+{
+  return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+  char *s;
+  va_list v;
+  va_start (v,p);
+  s = g (p, va_arg (v,int));
+  va_end (v);
+  return s;
+}
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
+  ;
+  return 0;
+}
+_ACEOF
+# Don't try gcc -ansi; that turns off useful extensions and
+# breaks some systems' header files.
+# AIX                  -qlanglvl=ansi
+# Ultrix and OSF/1     -std1
+# HP-UX 10.20 and later        -Ae
+# HP-UX older versions -Aa -D_HPUX_SOURCE
+# SVR4                 -Xc -D__EXTENSIONS__
+for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+  CC="$ac_save_CC $ac_arg"
+  rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_prog_cc_stdc=$ac_arg
+break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.$ac_objext
+done
+rm -f conftest.$ac_ext conftest.$ac_objext
+CC=$ac_save_CC
+
+fi
+
+case "x$ac_cv_prog_cc_stdc" in
+  x|xno)
+    echo "$as_me:$LINENO: result: none needed" >&5
+echo "${ECHO_T}none needed" >&6 ;;
+  *)
+    echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5
+echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
+    CC="$CC $ac_cv_prog_cc_stdc" ;;
+esac
+
 # Some people use a C++ compiler to compile C.  Since we use `exit',
 # in C++ we need to declare it.  In case someone uses the same compiler
 # for both compiling C and C++ we need to have the C++ compiler decide
 # Some people use a C++ compiler to compile C.  Since we use `exit',
 # in C++ we need to declare it.  In case someone uses the same compiler
 # for both compiling C and C++ we need to have the C++ compiler decide
@@ -2304,8 +2490,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   for ac_declaration in \
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   for ac_declaration in \
-   ''\
-   '#include <stdlib.h>' \
+   '' \
    'extern "C" void std::exit (int) throw (); using std::exit;' \
    'extern "C" void std::exit (int); using std::exit;' \
    'extern "C" void exit (int) throw ();' \
    'extern "C" void std::exit (int) throw (); using std::exit;' \
    'extern "C" void std::exit (int); using std::exit;' \
    'extern "C" void exit (int) throw ();' \
@@ -2314,15 +2499,13 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
 do
   cat >conftest.$ac_ext <<_ACEOF
 #line $LINENO "configure"
 do
   cat >conftest.$ac_ext <<_ACEOF
 #line $LINENO "configure"
-#include "confdefs.h"
-#include <stdlib.h>
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 $ac_declaration
 $ac_declaration
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
+#include <stdlib.h>
 int
 main ()
 {
 int
 main ()
 {
@@ -2346,20 +2529,19 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   :
 else
   echo "$as_me: failed program was:" >&5
   :
 else
   echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
 continue
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
   cat >conftest.$ac_ext <<_ACEOF
 #line $LINENO "configure"
 continue
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
   cat >conftest.$ac_ext <<_ACEOF
 #line $LINENO "configure"
-#include "confdefs.h"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 $ac_declaration
 $ac_declaration
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
 int
 main ()
 {
 int
 main ()
 {
@@ -2383,7 +2565,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   break
 else
   echo "$as_me: failed program was:" >&5
   break
 else
   echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 done
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 done
@@ -2396,7 +2579,8 @@ fi
 
 else
   echo "$as_me: failed program was:" >&5
 
 else
   echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 ac_ext=c
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 ac_ext=c
@@ -2415,7 +2599,7 @@ fi
 rmdir .deps 2>/dev/null
 
 
 rmdir .deps 2>/dev/null
 
 
-ac_config_commands="$ac_config_commands depfiles"
+          ac_config_commands="$ac_config_commands depfiles"
 
 
 am_make=${MAKE-make}
 
 
 am_make=${MAKE-make}
@@ -2570,18 +2754,28 @@ for ac_c_preproc_warn_flag in '' yes
 do
   # Use a header file that comes with gcc, so configuring glibc
   # with a fresh cross-compiler works.
 do
   # Use a header file that comes with gcc, so configuring glibc
   # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp. "Syntax error" is here to catch this case.
   cat >conftest.$ac_ext <<_ACEOF
 #line $LINENO "configure"
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp. "Syntax error" is here to catch this case.
   cat >conftest.$ac_ext <<_ACEOF
 #line $LINENO "configure"
-#include "confdefs.h"
-#include <assert.h>
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
                      Syntax error
 _ACEOF
 if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
                      Syntax error
 _ACEOF
 if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
-  egrep -v '^ *\+' conftest.er1 >conftest.err
+  grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
@@ -2598,7 +2792,8 @@ if test -z "$ac_cpp_err"; then
   :
 else
   echo "$as_me: failed program was:" >&5
   :
 else
   echo "$as_me: failed program was:" >&5
-  cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
   # Broken: fails on valid input.
 continue
 fi
   # Broken: fails on valid input.
 continue
 fi
@@ -2608,13 +2803,17 @@ rm -f conftest.err conftest.$ac_ext
   # can be detected and how.
   cat >conftest.$ac_ext <<_ACEOF
 #line $LINENO "configure"
   # can be detected and how.
   cat >conftest.$ac_ext <<_ACEOF
 #line $LINENO "configure"
-#include "confdefs.h"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 #include <ac_nonexistent.h>
 _ACEOF
 if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
 #include <ac_nonexistent.h>
 _ACEOF
 if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
-  egrep -v '^ *\+' conftest.er1 >conftest.err
+  grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
@@ -2632,7 +2831,8 @@ if test -z "$ac_cpp_err"; then
 continue
 else
   echo "$as_me: failed program was:" >&5
 continue
 else
   echo "$as_me: failed program was:" >&5
-  cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
   # Passes both tests.
 ac_preproc_ok=:
 break
   # Passes both tests.
 ac_preproc_ok=:
 break
@@ -2661,18 +2861,28 @@ for ac_c_preproc_warn_flag in '' yes
 do
   # Use a header file that comes with gcc, so configuring glibc
   # with a fresh cross-compiler works.
 do
   # Use a header file that comes with gcc, so configuring glibc
   # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp. "Syntax error" is here to catch this case.
   cat >conftest.$ac_ext <<_ACEOF
 #line $LINENO "configure"
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp. "Syntax error" is here to catch this case.
   cat >conftest.$ac_ext <<_ACEOF
 #line $LINENO "configure"
-#include "confdefs.h"
-#include <assert.h>
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
                      Syntax error
 _ACEOF
 if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
                      Syntax error
 _ACEOF
 if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
-  egrep -v '^ *\+' conftest.er1 >conftest.err
+  grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
@@ -2689,7 +2899,8 @@ if test -z "$ac_cpp_err"; then
   :
 else
   echo "$as_me: failed program was:" >&5
   :
 else
   echo "$as_me: failed program was:" >&5
-  cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
   # Broken: fails on valid input.
 continue
 fi
   # Broken: fails on valid input.
 continue
 fi
@@ -2699,13 +2910,17 @@ rm -f conftest.err conftest.$ac_ext
   # can be detected and how.
   cat >conftest.$ac_ext <<_ACEOF
 #line $LINENO "configure"
   # can be detected and how.
   cat >conftest.$ac_ext <<_ACEOF
 #line $LINENO "configure"
-#include "confdefs.h"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 #include <ac_nonexistent.h>
 _ACEOF
 if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
 #include <ac_nonexistent.h>
 _ACEOF
 if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
-  egrep -v '^ *\+' conftest.er1 >conftest.err
+  grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
@@ -2723,7 +2938,8 @@ if test -z "$ac_cpp_err"; then
 continue
 else
   echo "$as_me: failed program was:" >&5
 continue
 else
   echo "$as_me: failed program was:" >&5
-  cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
   # Passes both tests.
 ac_preproc_ok=:
 break
   # Passes both tests.
 ac_preproc_ok=:
 break
@@ -2736,8 +2952,10 @@ rm -f conftest.err conftest.$ac_ext
 if $ac_preproc_ok; then
   :
 else
 if $ac_preproc_ok; then
   :
 else
-  { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check" >&5
-echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check" >&2;}
+  { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details." >&5
+echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details." >&2;}
    { (exit 1); exit 1; }; }
 fi
 
    { (exit 1); exit 1; }; }
 fi
 
@@ -2800,7 +3018,11 @@ else
 LIBS="-lfl  $LIBS"
 cat >conftest.$ac_ext <<_ACEOF
 #line $LINENO "configure"
 LIBS="-lfl  $LIBS"
 cat >conftest.$ac_ext <<_ACEOF
 #line $LINENO "configure"
-#include "confdefs.h"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
 /* Override any gcc2 internal prototype to avoid an error.  */
 #ifdef __cplusplus
 
 /* Override any gcc2 internal prototype to avoid an error.  */
 #ifdef __cplusplus
@@ -2809,12 +3031,6 @@ extern "C"
 /* We use char because int might match the return type of a gcc2
    builtin and then its argument prototype would still apply.  */
 char yywrap ();
 /* We use char because int might match the return type of a gcc2
    builtin and then its argument prototype would still apply.  */
 char yywrap ();
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
 int
 main ()
 {
 int
 main ()
 {
@@ -2838,7 +3054,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
   ac_cv_lib_fl_yywrap=yes
 else
   echo "$as_me: failed program was:" >&5
   ac_cv_lib_fl_yywrap=yes
 else
   echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
 ac_cv_lib_fl_yywrap=no
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 ac_cv_lib_fl_yywrap=no
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
@@ -2858,7 +3075,11 @@ else
 LIBS="-ll  $LIBS"
 cat >conftest.$ac_ext <<_ACEOF
 #line $LINENO "configure"
 LIBS="-ll  $LIBS"
 cat >conftest.$ac_ext <<_ACEOF
 #line $LINENO "configure"
-#include "confdefs.h"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
 /* Override any gcc2 internal prototype to avoid an error.  */
 #ifdef __cplusplus
 
 /* Override any gcc2 internal prototype to avoid an error.  */
 #ifdef __cplusplus
@@ -2867,12 +3088,6 @@ extern "C"
 /* We use char because int might match the return type of a gcc2
    builtin and then its argument prototype would still apply.  */
 char yywrap ();
 /* We use char because int might match the return type of a gcc2
    builtin and then its argument prototype would still apply.  */
 char yywrap ();
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
 int
 main ()
 {
 int
 main ()
 {
@@ -2896,7 +3111,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
   ac_cv_lib_l_yywrap=yes
 else
   echo "$as_me: failed program was:" >&5
   ac_cv_lib_l_yywrap=yes
 else
   echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
 ac_cv_lib_l_yywrap=no
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 ac_cv_lib_l_yywrap=no
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
@@ -2974,7 +3190,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
   ac_cv_prog_lex_yytext_pointer=yes
 else
   echo "$as_me: failed program was:" >&5
   ac_cv_prog_lex_yytext_pointer=yes
 else
   echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_save_LIBS
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_save_LIBS
@@ -3072,15 +3289,15 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
 
 test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
 
 
 test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
 
-echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \${MAKE}" >&5
-echo $ECHO_N "checking whether ${MAKE-make} sets \${MAKE}... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6
 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'`
 if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.make <<\_ACEOF
 all:
 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'`
 if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.make <<\_ACEOF
 all:
-       @echo 'ac_maketemp="${MAKE}"'
+       @echo 'ac_maketemp="$(MAKE)"'
 _ACEOF
 # GNU make sometimes prints "make[1]: Entering...", which would confuse us.
 eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=`
 _ACEOF
 # GNU make sometimes prints "make[1]: Entering...", which would confuse us.
 eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=`
@@ -3410,17 +3627,15 @@ echo $ECHO_N "checking whether we need _ALL_SOURCE to expose mode_t... $ECHO_C"
 all=no
 cat >conftest.$ac_ext <<_ACEOF
 #line $LINENO "configure"
 all=no
 cat >conftest.$ac_ext <<_ACEOF
 #line $LINENO "configure"
-#include "confdefs.h"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
 #include <stdio.h>
 mode_t x;
 
 
 #include <stdio.h>
 mode_t x;
 
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
 int
 main ()
 {
 int
 main ()
 {
@@ -3444,25 +3659,24 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   :
 else
   echo "$as_me: failed program was:" >&5
   :
 else
   echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
 all=maybe
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 if test $all = maybe ; then
 cat >conftest.$ac_ext <<_ACEOF
 #line $LINENO "configure"
 all=maybe
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 if test $all = maybe ; then
 cat >conftest.$ac_ext <<_ACEOF
 #line $LINENO "configure"
-#include "confdefs.h"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
 #define _ALL_SOURCE
 #include <stdio.h>
 mode_t x;
 
 
 #define _ALL_SOURCE
 #include <stdio.h>
 mode_t x;
 
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
 int
 main ()
 {
 int
 main ()
 {
@@ -3489,7 +3703,8 @@ _ACEOF
  all=yes
 else
   echo "$as_me: failed program was:" >&5
  all=yes
 else
   echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 fi
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 fi
@@ -3698,7 +3913,7 @@ _ACEOF
 
 
 
 
 
 
-ac_config_files="$ac_config_files Makefile imports/Makefile lib/Makefile src/Makefile test/Makefile doc/Makefile bin/Makefile"
+                                                                      ac_config_files="$ac_config_files Makefile imports/Makefile lib/Makefile src/Makefile test/Makefile doc/Makefile bin/Makefile"
 
 cat >confcache <<\_ACEOF
 # This file is a shell script that caches the results of configure
 
 cat >confcache <<\_ACEOF
 # This file is a shell script that caches the results of configure
@@ -3710,7 +3925,7 @@ cat >confcache <<\_ACEOF
 # config.status only pays attention to the cache file if you give it
 # the --recheck option to rerun configure.
 #
 # config.status only pays attention to the cache file if you give it
 # the --recheck option to rerun configure.
 #
-# `ac_cv_env_foo' variables (set or unset) will be overriden when
+# `ac_cv_env_foo' variables (set or unset) will be overridden when
 # loading this file, other *unset* `ac_cv_foo' will be assigned the
 # following values.
 
 # loading this file, other *unset* `ac_cv_foo' will be assigned the
 # following values.
 
@@ -3745,7 +3960,7 @@ _ACEOF
      t end
      /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
      : end' >>confcache
      t end
      /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
      : end' >>confcache
-if cmp -s $cache_file confcache; then :; else
+if diff $cache_file confcache >/dev/null 2>&1; then :; else
   if test -w $cache_file; then
     test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
     cat confcache >$cache_file
   if test -w $cache_file; then
     test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
     cat confcache >$cache_file
@@ -3776,6 +3991,21 @@ fi
 
 DEFS=-DHAVE_CONFIG_H
 
 
 DEFS=-DHAVE_CONFIG_H
 
+ac_libobjs=
+ac_ltlibobjs=
+for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
+  # 1. Remove the extension, and $U if already installed.
+  ac_i=`echo "$ac_i" |
+         sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
+  # 2. Add them.
+  ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
+  ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
+done
+LIBOBJS=$ac_libobjs
+
+LTLIBOBJS=$ac_ltlibobjs
+
+
 if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
   { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined.
 Usually this means the macro was only invoked conditionally." >&5
 if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
   { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined.
 Usually this means the macro was only invoked conditionally." >&5
@@ -3797,11 +4027,12 @@ cat >$CONFIG_STATUS <<_ACEOF
 # configure, is in config.log if it exists.
 
 debug=false
 # configure, is in config.log if it exists.
 
 debug=false
+ac_cs_recheck=false
+ac_cs_silent=false
 SHELL=\${CONFIG_SHELL-$SHELL}
 _ACEOF
 
 cat >>$CONFIG_STATUS <<\_ACEOF
 SHELL=\${CONFIG_SHELL-$SHELL}
 _ACEOF
 
 cat >>$CONFIG_STATUS <<\_ACEOF
-
 ## --------------------- ##
 ## M4sh Initialization.  ##
 ## --------------------- ##
 ## --------------------- ##
 ## M4sh Initialization.  ##
 ## --------------------- ##
@@ -3810,11 +4041,13 @@ cat >>$CONFIG_STATUS <<\_ACEOF
 if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
   emulate sh
   NULLCMD=:
 if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
   emulate sh
   NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
 elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
   set -o posix
 fi
 
 elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
   set -o posix
 fi
 
-# NLS nuisances.
 # Support unset when possible.
 if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
   as_unset=unset
 # Support unset when possible.
 if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
   as_unset=unset
@@ -3822,34 +4055,42 @@ else
   as_unset=false
 fi
 
   as_unset=false
 fi
 
-(set +x; test -n "`(LANG=C; export LANG) 2>&1`") &&
-    { $as_unset LANG || test "${LANG+set}" != set; } ||
-      { LANG=C; export LANG; }
-(set +x; test -n "`(LC_ALL=C; export LC_ALL) 2>&1`") &&
-    { $as_unset LC_ALL || test "${LC_ALL+set}" != set; } ||
-      { LC_ALL=C; export LC_ALL; }
-(set +x; test -n "`(LC_TIME=C; export LC_TIME) 2>&1`") &&
-    { $as_unset LC_TIME || test "${LC_TIME+set}" != set; } ||
-      { LC_TIME=C; export LC_TIME; }
-(set +x; test -n "`(LC_CTYPE=C; export LC_CTYPE) 2>&1`") &&
-    { $as_unset LC_CTYPE || test "${LC_CTYPE+set}" != set; } ||
-      { LC_CTYPE=C; export LC_CTYPE; }
-(set +x; test -n "`(LANGUAGE=C; export LANGUAGE) 2>&1`") &&
-    { $as_unset LANGUAGE || test "${LANGUAGE+set}" != set; } ||
-      { LANGUAGE=C; export LANGUAGE; }
-(set +x; test -n "`(LC_COLLATE=C; export LC_COLLATE) 2>&1`") &&
-    { $as_unset LC_COLLATE || test "${LC_COLLATE+set}" != set; } ||
-      { LC_COLLATE=C; export LC_COLLATE; }
-(set +x; test -n "`(LC_NUMERIC=C; export LC_NUMERIC) 2>&1`") &&
-    { $as_unset LC_NUMERIC || test "${LC_NUMERIC+set}" != set; } ||
-      { LC_NUMERIC=C; export LC_NUMERIC; }
-(set +x; test -n "`(LC_MESSAGES=C; export LC_MESSAGES) 2>&1`") &&
-    { $as_unset LC_MESSAGES || test "${LC_MESSAGES+set}" != set; } ||
-      { LC_MESSAGES=C; export LC_MESSAGES; }
+
+# Work around bugs in pre-3.0 UWIN ksh.
+$as_unset ENV MAIL MAILPATH
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+for as_var in \
+  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
+  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
+  LC_TELEPHONE LC_TIME
+do
+  if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then
+    eval $as_var=C; export $as_var
+  else
+    $as_unset $as_var
+  fi
+done
+
+# Required to use basename.
+if expr a : '\(a\)' >/dev/null 2>&1; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
+  as_basename=basename
+else
+  as_basename=false
+fi
 
 
 # Name of the executable.
 
 
 # Name of the executable.
-as_me=`(basename "$0") 2>/dev/null ||
+as_me=`$as_basename "$0" ||
 $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
         X"$0" : 'X\(//\)$' \| \
         X"$0" : 'X\(/\)$' \| \
 $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
         X"$0" : 'X\(//\)$' \| \
         X"$0" : 'X\(/\)$' \| \
@@ -3860,6 +4101,7 @@ echo X/"$0" |
          /^X\/\(\/\).*/{ s//\1/; q; }
          s/.*/./; q'`
 
          /^X\/\(\/\).*/{ s//\1/; q; }
          s/.*/./; q'`
 
+
 # PATH needs CR, and LINENO needs CR and PATH.
 # Avoid depending upon Character Ranges.
 as_cr_letters='abcdefghijklmnopqrstuvwxyz'
 # PATH needs CR, and LINENO needs CR and PATH.
 # Avoid depending upon Character Ranges.
 as_cr_letters='abcdefghijklmnopqrstuvwxyz'
@@ -3870,15 +4112,15 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits
 
 # The user is always right.
 if test "${PATH_SEPARATOR+set}" != set; then
 
 # The user is always right.
 if test "${PATH_SEPARATOR+set}" != set; then
-  echo "#! /bin/sh" >conftest.sh
-  echo  "exit 0"   >>conftest.sh
-  chmod +x conftest.sh
-  if (PATH=".;."; conftest.sh) >/dev/null 2>&1; then
+  echo "#! /bin/sh" >conf$$.sh
+  echo  "exit 0"   >>conf$$.sh
+  chmod +x conf$$.sh
+  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
     PATH_SEPARATOR=';'
   else
     PATH_SEPARATOR=:
   fi
     PATH_SEPARATOR=';'
   else
     PATH_SEPARATOR=:
   fi
-  rm -f conftest.sh
+  rm -f conf$$.sh
 fi
 
 
 fi
 
 
@@ -3927,6 +4169,8 @@ do
   as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
   test "x$as_lineno_1" != "x$as_lineno_2" &&
   test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
   as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
   test "x$as_lineno_1" != "x$as_lineno_2" &&
   test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
+            $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
+            $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
             CONFIG_SHELL=$as_dir/$as_base
             export CONFIG_SHELL
             exec "$CONFIG_SHELL" "$0" ${1+"$@"}
             CONFIG_SHELL=$as_dir/$as_base
             export CONFIG_SHELL
             exec "$CONFIG_SHELL" "$0" ${1+"$@"}
@@ -4000,6 +4244,12 @@ else
 fi
 rm -f conf$$ conf$$.exe conf$$.file
 
 fi
 rm -f conf$$ conf$$.exe conf$$.file
 
+if mkdir -p . 2>/dev/null; then
+  as_mkdir_p=:
+else
+  as_mkdir_p=false
+fi
+
 as_executable_p="test -f"
 
 # Sed expression to map a string onto a valid CPP name.
 as_executable_p="test -f"
 
 # Sed expression to map a string onto a valid CPP name.
@@ -4016,7 +4266,7 @@ as_nl='
 IFS="  $as_nl"
 
 # CDPATH.
 IFS="  $as_nl"
 
 # CDPATH.
-$as_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=$PATH_SEPARATOR; export CDPATH; }
+$as_unset CDPATH
 
 exec 6>&1
 
 
 exec 6>&1
 
@@ -4033,7 +4283,7 @@ _ASBOX
 cat >&5 <<_CSEOF
 
 This file was extended by Splint $as_me 3.1.1.2, which was
 cat >&5 <<_CSEOF
 
 This file was extended by Splint $as_me 3.1.1.2, which was
-generated by GNU Autoconf 2.53.  Invocation command line was
+generated by GNU Autoconf 2.57.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
   CONFIG_HEADERS  = $CONFIG_HEADERS
 
   CONFIG_FILES    = $CONFIG_FILES
   CONFIG_HEADERS  = $CONFIG_HEADERS
@@ -4073,6 +4323,7 @@ Usage: $0 [OPTIONS] [FILE]...
 
   -h, --help       print this help, then exit
   -V, --version    print version number, then exit
 
   -h, --help       print this help, then exit
   -V, --version    print version number, then exit
+  -q, --quiet      do not print progress messages
   -d, --debug      don't remove temporary files
       --recheck    update $as_me by reconfiguring in the same conditions
   --file=FILE[:TEMPLATE]
   -d, --debug      don't remove temporary files
       --recheck    update $as_me by reconfiguring in the same conditions
   --file=FILE[:TEMPLATE]
@@ -4095,7 +4346,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF
 ac_cs_version="\\
 Splint config.status 3.1.1.2
 cat >>$CONFIG_STATUS <<_ACEOF
 ac_cs_version="\\
 Splint config.status 3.1.1.2
-configured by $0, generated by GNU Autoconf 2.53,
+configured by $0, generated by GNU Autoconf 2.57,
   with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
 
 Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
   with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
 
 Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
@@ -4116,25 +4367,25 @@ do
   --*=*)
     ac_option=`expr "x$1" : 'x\([^=]*\)='`
     ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
   --*=*)
     ac_option=`expr "x$1" : 'x\([^=]*\)='`
     ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
-    shift
-    set dummy "$ac_option" "$ac_optarg" ${1+"$@"}
-    shift
+    ac_shift=:
+    ;;
+  -*)
+    ac_option=$1
+    ac_optarg=$2
+    ac_shift=shift
     ;;
     ;;
-  -*);;
   *) # This is not an option, so the user has probably given explicit
      # arguments.
   *) # This is not an option, so the user has probably given explicit
      # arguments.
+     ac_option=$1
      ac_need_defaults=false;;
   esac
 
      ac_need_defaults=false;;
   esac
 
-  case $1 in
+  case $ac_option in
   # Handling of the options.
 _ACEOF
   # Handling of the options.
 _ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
-  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
-    echo "running $SHELL $0 " $ac_configure_args " --no-create --no-recursion"
-    exec $SHELL $0 $ac_configure_args --no-create --no-recursion ;;
-_ACEOF
 cat >>$CONFIG_STATUS <<\_ACEOF
 cat >>$CONFIG_STATUS <<\_ACEOF
+  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+    ac_cs_recheck=: ;;
   --version | --vers* | -V )
     echo "$ac_cs_version"; exit 0 ;;
   --he | --h)
   --version | --vers* | -V )
     echo "$ac_cs_version"; exit 0 ;;
   --he | --h)
@@ -4149,13 +4400,16 @@ Try \`$0 --help' for more information." >&2;}
   --debug | --d* | -d )
     debug=: ;;
   --file | --fil | --fi | --f )
   --debug | --d* | -d )
     debug=: ;;
   --file | --fil | --fi | --f )
-    shift
-    CONFIG_FILES="$CONFIG_FILES $1"
+    $ac_shift
+    CONFIG_FILES="$CONFIG_FILES $ac_optarg"
     ac_need_defaults=false;;
   --header | --heade | --head | --hea )
     ac_need_defaults=false;;
   --header | --heade | --head | --hea )
-    shift
-    CONFIG_HEADERS="$CONFIG_HEADERS $1"
+    $ac_shift
+    CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
     ac_need_defaults=false;;
     ac_need_defaults=false;;
+  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+  | -silent | --silent | --silen | --sile | --sil | --si | --s)
+    ac_cs_silent=: ;;
 
   # This is an error.
   -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
 
   # This is an error.
   -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
@@ -4170,6 +4424,20 @@ Try \`$0 --help' for more information." >&2;}
   shift
 done
 
   shift
 done
 
+ac_configure_extra_args=
+
+if $ac_cs_silent; then
+  exec 6>/dev/null
+  ac_configure_extra_args="$ac_configure_extra_args --silent"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF
+if \$ac_cs_recheck; then
+  echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
+  exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+fi
+
 _ACEOF
 
 cat >>$CONFIG_STATUS <<_ACEOF
 _ACEOF
 
 cat >>$CONFIG_STATUS <<_ACEOF
@@ -4213,6 +4481,9 @@ if $ac_need_defaults; then
   test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
 fi
 
   test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
 fi
 
+# Have a temporary directory for convenience.  Make it in the build tree
+# simply because there is no reason to put it here, and in addition,
+# creating and moving files from /tmp can sometimes cause problems.
 # Create a temporary directory, and hook for its removal unless debugging.
 $debug ||
 {
 # Create a temporary directory, and hook for its removal unless debugging.
 $debug ||
 {
@@ -4221,17 +4492,17 @@ $debug ||
 }
 
 # Create a (secure) tmp directory for tmp files.
 }
 
 # Create a (secure) tmp directory for tmp files.
-: ${TMPDIR=/tmp}
+
 {
 {
-  tmp=`(umask 077 && mktemp -d -q "$TMPDIR/csXXXXXX") 2>/dev/null` &&
+  tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` &&
   test -n "$tmp" && test -d "$tmp"
 }  ||
 {
   test -n "$tmp" && test -d "$tmp"
 }  ||
 {
-  tmp=$TMPDIR/cs$$-$RANDOM
+  tmp=./confstat$$-$RANDOM
   (umask 077 && mkdir $tmp)
 } ||
 {
   (umask 077 && mkdir $tmp)
 } ||
 {
-   echo "$me: cannot create a temporary directory in $TMPDIR" >&2
+   echo "$me: cannot create a temporary directory in ." >&2
    { (exit 1); exit 1; }
 }
 
    { (exit 1); exit 1; }
 }
 
@@ -4336,6 +4607,8 @@ s,@MV@,$MV,;t t
 s,@CP@,$CP,;t t
 s,@SED@,$SED,;t t
 s,@LCLOBJ@,$LCLOBJ,;t t
 s,@CP@,$CP,;t t
 s,@SED@,$SED,;t t
 s,@LCLOBJ@,$LCLOBJ,;t t
+s,@LIBOBJS@,$LIBOBJS,;t t
+s,@LTLIBOBJS@,$LTLIBOBJS,;t t
 CEOF
 
 _ACEOF
 CEOF
 
 _ACEOF
@@ -4406,25 +4679,30 @@ echo X"$ac_file" |
          /^X\(\/\/\)$/{ s//\1/; q; }
          /^X\(\/\).*/{ s//\1/; q; }
          s/.*/./; q'`
          /^X\(\/\/\)$/{ s//\1/; q; }
          /^X\(\/\).*/{ s//\1/; q; }
          s/.*/./; q'`
-  { case "$ac_dir" in
-  [\\/]* | ?:[\\/]* ) as_incr_dir=;;
-  *)                      as_incr_dir=.;;
-esac
-as_dummy="$ac_dir"
-for as_mkdir_dir in `IFS='/\\'; set X $as_dummy; shift; echo "$@"`; do
-  case $as_mkdir_dir in
-    # Skip DOS drivespec
-    ?:) as_incr_dir=$as_mkdir_dir ;;
-    *)
-      as_incr_dir=$as_incr_dir/$as_mkdir_dir
-      test -d "$as_incr_dir" ||
-        mkdir "$as_incr_dir" ||
-       { { echo "$as_me:$LINENO: error: cannot create \"$ac_dir\"" >&5
-echo "$as_me: error: cannot create \"$ac_dir\"" >&2;}
-   { (exit 1); exit 1; }; }
-    ;;
-  esac
-done; }
+  { if $as_mkdir_p; then
+    mkdir -p "$ac_dir"
+  else
+    as_dir="$ac_dir"
+    as_dirs=
+    while test ! -d "$as_dir"; do
+      as_dirs="$as_dir $as_dirs"
+      as_dir=`(dirname "$as_dir") 2>/dev/null ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+         X"$as_dir" : 'X\(//\)[^/]' \| \
+         X"$as_dir" : 'X\(//\)$' \| \
+         X"$as_dir" : 'X\(/\)' \| \
+         .     : '\(.\)' 2>/dev/null ||
+echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+         /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+         /^X\(\/\/\)$/{ s//\1/; q; }
+         /^X\(\/\).*/{ s//\1/; q; }
+         s/.*/./; q'`
+    done
+    test ! -n "$as_dirs" || mkdir $as_dirs
+  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
+echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
+   { (exit 1); exit 1; }; }; }
 
   ac_builddir=.
 
 
   ac_builddir=.
 
@@ -4454,7 +4732,7 @@ esac
 # Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
 # absolute.
 ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
 # Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
 # absolute.
 ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
-ac_abs_top_builddir=`cd "$ac_dir" && cd $ac_top_builddir && pwd`
+ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
 ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
 ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
 
 ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
 ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
 
@@ -4644,7 +4922,7 @@ _ACEOF
 # Break up conftest.defines because some shells have a limit on the size
 # of here documents, and old seds have small limits too (100 cmds).
 echo '  # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS
 # Break up conftest.defines because some shells have a limit on the size
 # of here documents, and old seds have small limits too (100 cmds).
 echo '  # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS
-echo '  if egrep "^[   ]*#[    ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS
+echo '  if grep "^[    ]*#[    ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS
 echo '  # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS
 echo '  :' >>$CONFIG_STATUS
 rm -f conftest.tail
 echo '  # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS
 echo '  :' >>$CONFIG_STATUS
 rm -f conftest.tail
@@ -4668,7 +4946,7 @@ do
   mv conftest.tail conftest.defines
 done
 rm -f conftest.defines
   mv conftest.tail conftest.defines
 done
 rm -f conftest.defines
-echo '  fi # egrep' >>$CONFIG_STATUS
+echo '  fi # grep' >>$CONFIG_STATUS
 echo >>$CONFIG_STATUS
 
 # Break up conftest.undefs because some shells have a limit on the size
 echo >>$CONFIG_STATUS
 
 # Break up conftest.undefs because some shells have a limit on the size
@@ -4708,7 +4986,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF
   cat $tmp/in >>$tmp/config.h
   rm -f $tmp/in
   if test x"$ac_file" != x-; then
   cat $tmp/in >>$tmp/config.h
   rm -f $tmp/in
   if test x"$ac_file" != x-; then
-    if cmp -s $ac_file $tmp/config.h 2>/dev/null; then
+    if diff $ac_file $tmp/config.h >/dev/null 2>&1; then
       { echo "$as_me:$LINENO: $ac_file is unchanged" >&5
 echo "$as_me: $ac_file is unchanged" >&6;}
     else
       { echo "$as_me:$LINENO: $ac_file is unchanged" >&5
 echo "$as_me: $ac_file is unchanged" >&6;}
     else
@@ -4724,25 +5002,30 @@ echo X"$ac_file" |
          /^X\(\/\/\)$/{ s//\1/; q; }
          /^X\(\/\).*/{ s//\1/; q; }
          s/.*/./; q'`
          /^X\(\/\/\)$/{ s//\1/; q; }
          /^X\(\/\).*/{ s//\1/; q; }
          s/.*/./; q'`
-      { case "$ac_dir" in
-  [\\/]* | ?:[\\/]* ) as_incr_dir=;;
-  *)                      as_incr_dir=.;;
-esac
-as_dummy="$ac_dir"
-for as_mkdir_dir in `IFS='/\\'; set X $as_dummy; shift; echo "$@"`; do
-  case $as_mkdir_dir in
-    # Skip DOS drivespec
-    ?:) as_incr_dir=$as_mkdir_dir ;;
-    *)
-      as_incr_dir=$as_incr_dir/$as_mkdir_dir
-      test -d "$as_incr_dir" ||
-        mkdir "$as_incr_dir" ||
-       { { echo "$as_me:$LINENO: error: cannot create \"$ac_dir\"" >&5
-echo "$as_me: error: cannot create \"$ac_dir\"" >&2;}
-   { (exit 1); exit 1; }; }
-    ;;
-  esac
-done; }
+      { if $as_mkdir_p; then
+    mkdir -p "$ac_dir"
+  else
+    as_dir="$ac_dir"
+    as_dirs=
+    while test ! -d "$as_dir"; do
+      as_dirs="$as_dir $as_dirs"
+      as_dir=`(dirname "$as_dir") 2>/dev/null ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+         X"$as_dir" : 'X\(//\)[^/]' \| \
+         X"$as_dir" : 'X\(//\)$' \| \
+         X"$as_dir" : 'X\(/\)' \| \
+         .     : '\(.\)' 2>/dev/null ||
+echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+         /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+         /^X\(\/\/\)$/{ s//\1/; q; }
+         /^X\(\/\).*/{ s//\1/; q; }
+         s/.*/./; q'`
+    done
+    test ! -n "$as_dirs" || mkdir $as_dirs
+  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
+echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
+   { (exit 1); exit 1; }; }; }
 
       rm -f $ac_file
       mv $tmp/config.h $ac_file
 
       rm -f $ac_file
       mv $tmp/config.h $ac_file
@@ -4807,7 +5090,7 @@ esac
 # Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
 # absolute.
 ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
 # Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
 # absolute.
 ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
-ac_abs_top_builddir=`cd "$ac_dir" && cd $ac_top_builddir && pwd`
+ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
 ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
 ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
 
 ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
 ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
 
@@ -4876,25 +5159,30 @@ echo X"$file" |
          /^X\(\/\/\)$/{ s//\1/; q; }
          /^X\(\/\).*/{ s//\1/; q; }
          s/.*/./; q'`
          /^X\(\/\/\)$/{ s//\1/; q; }
          /^X\(\/\).*/{ s//\1/; q; }
          s/.*/./; q'`
-    { case $dirpart/$fdir in
-  [\\/]* | ?:[\\/]* ) as_incr_dir=;;
-  *)                      as_incr_dir=.;;
-esac
-as_dummy=$dirpart/$fdir
-for as_mkdir_dir in `IFS='/\\'; set X $as_dummy; shift; echo "$@"`; do
-  case $as_mkdir_dir in
-    # Skip DOS drivespec
-    ?:) as_incr_dir=$as_mkdir_dir ;;
-    *)
-      as_incr_dir=$as_incr_dir/$as_mkdir_dir
-      test -d "$as_incr_dir" ||
-        mkdir "$as_incr_dir" ||
-       { { echo "$as_me:$LINENO: error: cannot create $dirpart/$fdir" >&5
-echo "$as_me: error: cannot create $dirpart/$fdir" >&2;}
-   { (exit 1); exit 1; }; }
-    ;;
-  esac
-done; }
+    { if $as_mkdir_p; then
+    mkdir -p $dirpart/$fdir
+  else
+    as_dir=$dirpart/$fdir
+    as_dirs=
+    while test ! -d "$as_dir"; do
+      as_dirs="$as_dir $as_dirs"
+      as_dir=`(dirname "$as_dir") 2>/dev/null ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+         X"$as_dir" : 'X\(//\)[^/]' \| \
+         X"$as_dir" : 'X\(//\)$' \| \
+         X"$as_dir" : 'X\(/\)' \| \
+         .     : '\(.\)' 2>/dev/null ||
+echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+         /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+         /^X\(\/\/\)$/{ s//\1/; q; }
+         /^X\(\/\).*/{ s//\1/; q; }
+         s/.*/./; q'`
+    done
+    test ! -n "$as_dirs" || mkdir $as_dirs
+  fi || { { echo "$as_me:$LINENO: error: cannot create directory $dirpart/$fdir" >&5
+echo "$as_me: error: cannot create directory $dirpart/$fdir" >&2;}
+   { (exit 1); exit 1; }; }; }
 
     # echo "creating $dirpart/$file"
     echo '# dummy' > "$dirpart/$file"
 
     # echo "creating $dirpart/$file"
     echo '# dummy' > "$dirpart/$file"
@@ -4923,8 +5211,11 @@ ac_clean_files=$ac_clean_files_save
 # need to make the FD available again.
 if test "$no_create" != yes; then
   ac_cs_success=:
 # need to make the FD available again.
 if test "$no_create" != yes; then
   ac_cs_success=:
+  ac_config_status_args=
+  test "$silent" = yes &&
+    ac_config_status_args="$ac_config_status_args --quiet"
   exec 5>/dev/null
   exec 5>/dev/null
-  $SHELL $CONFIG_STATUS || ac_cs_success=false
+  $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
   exec 5>>config.log
   # Use ||, not &&, to avoid exiting from the if with $? = 1, which
   # would make configure fail if this is the last instruction.
   exec 5>>config.log
   # Use ||, not &&, to avoid exiting from the if with $? = 1, which
   # would make configure fail if this is the last instruction.
index a862ccb4bf0e9793eb603b865a7a54ea53a4f998..04b48e993c6053d9dcde25f87a5ed116e751b52c 100644 (file)
 
 /* < end of bison.head > */
 
 
 /* < end of bison.head > */
 
-#ifndef BISON_CGRAMMAR_TAB_H
-# define BISON_CGRAMMAR_TAB_H
+/* A Bison parser, made by GNU Bison 1.875a.  */
 
 
-#ifndef cgrammar_YYSTYPE
-typedef union
-{
+/* Skeleton parser for Yacc-like parsing with Bison,
+   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+/* As a special exception, when this file is copied by Bison into a
+   Bison output file, you may use that output file without restriction.
+   This special exception was added by the Free Software Foundation
+   in version 1.24 of Bison.  */
+
+/* Tokens.  */
+#ifndef YYTOKENTYPE
+# define YYTOKENTYPE
+   /* Put the tokens into the symbol table, so that GDB and other debuggers
+      know about them.  */
+   enum yytokentype {
+     BADTOK = 258,
+     SKIPTOK = 259,
+     CTOK_ELIPSIS = 260,
+     CASE = 261,
+     DEFAULT = 262,
+     CIF = 263,
+     CELSE = 264,
+     SWITCH = 265,
+     WHILE = 266,
+     DO = 267,
+     CFOR = 268,
+     GOTO = 269,
+     CONTINUE = 270,
+     BREAK = 271,
+     RETURN = 272,
+     TSEMI = 273,
+     TLBRACE = 274,
+     TRBRACE = 275,
+     TCOMMA = 276,
+     TCOLON = 277,
+     TASSIGN = 278,
+     TLPAREN = 279,
+     TRPAREN = 280,
+     TLSQBR = 281,
+     TRSQBR = 282,
+     TDOT = 283,
+     TAMPERSAND = 284,
+     TEXCL = 285,
+     TTILDE = 286,
+     TMINUS = 287,
+     TPLUS = 288,
+     TMULT = 289,
+     TDIV = 290,
+     TPERCENT = 291,
+     TLT = 292,
+     TGT = 293,
+     TCIRC = 294,
+     TBAR = 295,
+     TQUEST = 296,
+     CSIZEOF = 297,
+     CALIGNOF = 298,
+     CTYPEOF = 299,
+     ARROW_OP = 300,
+     CTYPEDEF = 301,
+     COFFSETOF = 302,
+     INC_OP = 303,
+     DEC_OP = 304,
+     LEFT_OP = 305,
+     RIGHT_OP = 306,
+     LE_OP = 307,
+     GE_OP = 308,
+     EQ_OP = 309,
+     NE_OP = 310,
+     AND_OP = 311,
+     OR_OP = 312,
+     MUL_ASSIGN = 313,
+     DIV_ASSIGN = 314,
+     MOD_ASSIGN = 315,
+     ADD_ASSIGN = 316,
+     SUB_ASSIGN = 317,
+     LEFT_ASSIGN = 318,
+     RIGHT_ASSIGN = 319,
+     AND_ASSIGN = 320,
+     XOR_ASSIGN = 321,
+     OR_ASSIGN = 322,
+     CSTRUCT = 323,
+     CUNION = 324,
+     CENUM = 325,
+     VA_ARG = 326,
+     VA_DCL = 327,
+     QWARN = 328,
+     QGLOBALS = 329,
+     QMODIFIES = 330,
+     QNOMODS = 331,
+     QCONSTANT = 332,
+     QFUNCTION = 333,
+     QITER = 334,
+     QDEFINES = 335,
+     QUSES = 336,
+     QALLOCATES = 337,
+     QSETS = 338,
+     QRELEASES = 339,
+     QPRECLAUSE = 340,
+     QPOSTCLAUSE = 341,
+     QINVARIANT = 342,
+     QALT = 343,
+     QUNDEF = 344,
+     QKILLED = 345,
+     QENDMACRO = 346,
+     LLMACRO = 347,
+     LLMACROITER = 348,
+     LLMACROEND = 349,
+     TENDMACRO = 350,
+     QDREVEALSTATE = 351,
+     QSWITCHBREAK = 352,
+     QLOOPBREAK = 353,
+     QINNERBREAK = 354,
+     QSAFEBREAK = 355,
+     QINNERCONTINUE = 356,
+     QFALLTHROUGH = 357,
+     QLINTNOTREACHED = 358,
+     QLINTFALLTHROUGH = 359,
+     QLINTFALLTHRU = 360,
+     QARGSUSED = 361,
+     QPRINTFLIKE = 362,
+     QLINTPRINTFLIKE = 363,
+     QSCANFLIKE = 364,
+     QMESSAGELIKE = 365,
+     QNOTREACHED = 366,
+     QCONST = 367,
+     QRESTRICT = 368,
+     QVOLATILE = 369,
+     QINLINE = 370,
+     QEXTENSION = 371,
+     QEXTERN = 372,
+     QSTATIC = 373,
+     QAUTO = 374,
+     QREGISTER = 375,
+     QOUT = 376,
+     QIN = 377,
+     QYIELD = 378,
+     QONLY = 379,
+     QTEMP = 380,
+     QSHARED = 381,
+     QREF = 382,
+     QUNIQUE = 383,
+     QCHECKED = 384,
+     QUNCHECKED = 385,
+     QCHECKEDSTRICT = 386,
+     QCHECKMOD = 387,
+     QKEEP = 388,
+     QKEPT = 389,
+     QPARTIAL = 390,
+     QSPECIAL = 391,
+     QOWNED = 392,
+     QDEPENDENT = 393,
+     QRETURNED = 394,
+     QEXPOSED = 395,
+     QNULL = 396,
+     QOBSERVER = 397,
+     QISNULL = 398,
+     QEXITS = 399,
+     QMAYEXIT = 400,
+     QNEVEREXIT = 401,
+     QTRUEEXIT = 402,
+     QFALSEEXIT = 403,
+     QLONG = 404,
+     QSIGNED = 405,
+     QUNSIGNED = 406,
+     QSHORT = 407,
+     QUNUSED = 408,
+     QSEF = 409,
+     QNOTNULL = 410,
+     QRELNULL = 411,
+     QABSTRACT = 412,
+     QNUMABSTRACT = 413,
+     QCONCRETE = 414,
+     QMUTABLE = 415,
+     QIMMUTABLE = 416,
+     QTRUENULL = 417,
+     QFALSENULL = 418,
+     QEXTERNAL = 419,
+     QREFCOUNTED = 420,
+     QREFS = 421,
+     QNEWREF = 422,
+     QTEMPREF = 423,
+     QKILLREF = 424,
+     QRELDEF = 425,
+     CGCHAR = 426,
+     CBOOL = 427,
+     CINT = 428,
+     CGFLOAT = 429,
+     CDOUBLE = 430,
+     CVOID = 431,
+     QANYTYPE = 432,
+     QINTEGRALTYPE = 433,
+     QUNSIGNEDINTEGRALTYPE = 434,
+     QSIGNEDINTEGRALTYPE = 435,
+     QNULLTERMINATED = 436,
+     QSETBUFFERSIZE = 437,
+     QSETSTRINGLENGTH = 438,
+     QMAXSET = 439,
+     QMAXREAD = 440,
+     QTESTINRANGE = 441,
+     TCAND = 442,
+     IDENTIFIER = 443,
+     NEW_IDENTIFIER = 444,
+     TYPE_NAME_OR_ID = 445,
+     CANNOTATION = 446,
+     CCONSTANT = 447,
+     ITER_NAME = 448,
+     ITER_ENDNAME = 449,
+     TYPE_NAME = 450,
+     METASTATE_NAME = 451
+   };
+#endif
+#define BADTOK 258
+#define SKIPTOK 259
+#define CTOK_ELIPSIS 260
+#define CASE 261
+#define DEFAULT 262
+#define CIF 263
+#define CELSE 264
+#define SWITCH 265
+#define WHILE 266
+#define DO 267
+#define CFOR 268
+#define GOTO 269
+#define CONTINUE 270
+#define BREAK 271
+#define RETURN 272
+#define TSEMI 273
+#define TLBRACE 274
+#define TRBRACE 275
+#define TCOMMA 276
+#define TCOLON 277
+#define TASSIGN 278
+#define TLPAREN 279
+#define TRPAREN 280
+#define TLSQBR 281
+#define TRSQBR 282
+#define TDOT 283
+#define TAMPERSAND 284
+#define TEXCL 285
+#define TTILDE 286
+#define TMINUS 287
+#define TPLUS 288
+#define TMULT 289
+#define TDIV 290
+#define TPERCENT 291
+#define TLT 292
+#define TGT 293
+#define TCIRC 294
+#define TBAR 295
+#define TQUEST 296
+#define CSIZEOF 297
+#define CALIGNOF 298
+#define CTYPEOF 299
+#define ARROW_OP 300
+#define CTYPEDEF 301
+#define COFFSETOF 302
+#define INC_OP 303
+#define DEC_OP 304
+#define LEFT_OP 305
+#define RIGHT_OP 306
+#define LE_OP 307
+#define GE_OP 308
+#define EQ_OP 309
+#define NE_OP 310
+#define AND_OP 311
+#define OR_OP 312
+#define MUL_ASSIGN 313
+#define DIV_ASSIGN 314
+#define MOD_ASSIGN 315
+#define ADD_ASSIGN 316
+#define SUB_ASSIGN 317
+#define LEFT_ASSIGN 318
+#define RIGHT_ASSIGN 319
+#define AND_ASSIGN 320
+#define XOR_ASSIGN 321
+#define OR_ASSIGN 322
+#define CSTRUCT 323
+#define CUNION 324
+#define CENUM 325
+#define VA_ARG 326
+#define VA_DCL 327
+#define QWARN 328
+#define QGLOBALS 329
+#define QMODIFIES 330
+#define QNOMODS 331
+#define QCONSTANT 332
+#define QFUNCTION 333
+#define QITER 334
+#define QDEFINES 335
+#define QUSES 336
+#define QALLOCATES 337
+#define QSETS 338
+#define QRELEASES 339
+#define QPRECLAUSE 340
+#define QPOSTCLAUSE 341
+#define QINVARIANT 342
+#define QALT 343
+#define QUNDEF 344
+#define QKILLED 345
+#define QENDMACRO 346
+#define LLMACRO 347
+#define LLMACROITER 348
+#define LLMACROEND 349
+#define TENDMACRO 350
+#define QDREVEALSTATE 351
+#define QSWITCHBREAK 352
+#define QLOOPBREAK 353
+#define QINNERBREAK 354
+#define QSAFEBREAK 355
+#define QINNERCONTINUE 356
+#define QFALLTHROUGH 357
+#define QLINTNOTREACHED 358
+#define QLINTFALLTHROUGH 359
+#define QLINTFALLTHRU 360
+#define QARGSUSED 361
+#define QPRINTFLIKE 362
+#define QLINTPRINTFLIKE 363
+#define QSCANFLIKE 364
+#define QMESSAGELIKE 365
+#define QNOTREACHED 366
+#define QCONST 367
+#define QRESTRICT 368
+#define QVOLATILE 369
+#define QINLINE 370
+#define QEXTENSION 371
+#define QEXTERN 372
+#define QSTATIC 373
+#define QAUTO 374
+#define QREGISTER 375
+#define QOUT 376
+#define QIN 377
+#define QYIELD 378
+#define QONLY 379
+#define QTEMP 380
+#define QSHARED 381
+#define QREF 382
+#define QUNIQUE 383
+#define QCHECKED 384
+#define QUNCHECKED 385
+#define QCHECKEDSTRICT 386
+#define QCHECKMOD 387
+#define QKEEP 388
+#define QKEPT 389
+#define QPARTIAL 390
+#define QSPECIAL 391
+#define QOWNED 392
+#define QDEPENDENT 393
+#define QRETURNED 394
+#define QEXPOSED 395
+#define QNULL 396
+#define QOBSERVER 397
+#define QISNULL 398
+#define QEXITS 399
+#define QMAYEXIT 400
+#define QNEVEREXIT 401
+#define QTRUEEXIT 402
+#define QFALSEEXIT 403
+#define QLONG 404
+#define QSIGNED 405
+#define QUNSIGNED 406
+#define QSHORT 407
+#define QUNUSED 408
+#define QSEF 409
+#define QNOTNULL 410
+#define QRELNULL 411
+#define QABSTRACT 412
+#define QNUMABSTRACT 413
+#define QCONCRETE 414
+#define QMUTABLE 415
+#define QIMMUTABLE 416
+#define QTRUENULL 417
+#define QFALSENULL 418
+#define QEXTERNAL 419
+#define QREFCOUNTED 420
+#define QREFS 421
+#define QNEWREF 422
+#define QTEMPREF 423
+#define QKILLREF 424
+#define QRELDEF 425
+#define CGCHAR 426
+#define CBOOL 427
+#define CINT 428
+#define CGFLOAT 429
+#define CDOUBLE 430
+#define CVOID 431
+#define QANYTYPE 432
+#define QINTEGRALTYPE 433
+#define QUNSIGNEDINTEGRALTYPE 434
+#define QSIGNEDINTEGRALTYPE 435
+#define QNULLTERMINATED 436
+#define QSETBUFFERSIZE 437
+#define QSETSTRINGLENGTH 438
+#define QMAXSET 439
+#define QMAXREAD 440
+#define QTESTINRANGE 441
+#define TCAND 442
+#define IDENTIFIER 443
+#define NEW_IDENTIFIER 444
+#define TYPE_NAME_OR_ID 445
+#define CANNOTATION 446
+#define CCONSTANT 447
+#define ITER_NAME 448
+#define ITER_ENDNAME 449
+#define TYPE_NAME 450
+#define METASTATE_NAME 451
+
+
+
+
+#if ! defined (cgrammar_YYSTYPE) && ! defined (cgrammar_YYSTYPE_IS_DECLARED)
+
+typedef union cgrammar_YYSTYPE {
   lltok tok;
   int count;
   qual typequal;
   lltok tok;
   int count;
   qual typequal;
@@ -107,209 +529,18 @@ typedef union
   constraintList conL;
   constraintExpr conE;
   /* drl */  
   constraintList conL;
   constraintExpr conE;
   /* drl */  
-} yystype;
-# define cgrammar_YYSTYPE yystype
+} cgrammar_YYSTYPE;
+/* Line 1240 of yacc.c.  */
+
+# define yystype cgrammar_YYSTYPE /* obsolescent; will be withdrawn */
+# define cgrammar_YYSTYPE_IS_DECLARED 1
 # define cgrammar_YYSTYPE_IS_TRIVIAL 1
 #endif
 # define cgrammar_YYSTYPE_IS_TRIVIAL 1
 #endif
-# define       BADTOK  257
-# define       SKIPTOK 258
-# define       CTOK_ELIPSIS    259
-# define       CASE    260
-# define       DEFAULT 261
-# define       CIF     262
-# define       CELSE   263
-# define       SWITCH  264
-# define       WHILE   265
-# define       DO      266
-# define       CFOR    267
-# define       GOTO    268
-# define       CONTINUE        269
-# define       BREAK   270
-# define       RETURN  271
-# define       TSEMI   272
-# define       TLBRACE 273
-# define       TRBRACE 274
-# define       TCOMMA  275
-# define       TCOLON  276
-# define       TASSIGN 277
-# define       TLPAREN 278
-# define       TRPAREN 279
-# define       TLSQBR  280
-# define       TRSQBR  281
-# define       TDOT    282
-# define       TAMPERSAND      283
-# define       TEXCL   284
-# define       TTILDE  285
-# define       TMINUS  286
-# define       TPLUS   287
-# define       TMULT   288
-# define       TDIV    289
-# define       TPERCENT        290
-# define       TLT     291
-# define       TGT     292
-# define       TCIRC   293
-# define       TBAR    294
-# define       TQUEST  295
-# define       CSIZEOF 296
-# define       CALIGNOF        297
-# define       CTYPEOF 298
-# define       ARROW_OP        299
-# define       CTYPEDEF        300
-# define       COFFSETOF       301
-# define       INC_OP  302
-# define       DEC_OP  303
-# define       LEFT_OP 304
-# define       RIGHT_OP        305
-# define       LE_OP   306
-# define       GE_OP   307
-# define       EQ_OP   308
-# define       NE_OP   309
-# define       AND_OP  310
-# define       OR_OP   311
-# define       MUL_ASSIGN      312
-# define       DIV_ASSIGN      313
-# define       MOD_ASSIGN      314
-# define       ADD_ASSIGN      315
-# define       SUB_ASSIGN      316
-# define       LEFT_ASSIGN     317
-# define       RIGHT_ASSIGN    318
-# define       AND_ASSIGN      319
-# define       XOR_ASSIGN      320
-# define       OR_ASSIGN       321
-# define       CSTRUCT 322
-# define       CUNION  323
-# define       CENUM   324
-# define       VA_ARG  325
-# define       VA_DCL  326
-# define       QWARN   327
-# define       QGLOBALS        328
-# define       QMODIFIES       329
-# define       QNOMODS 330
-# define       QCONSTANT       331
-# define       QFUNCTION       332
-# define       QITER   333
-# define       QDEFINES        334
-# define       QUSES   335
-# define       QALLOCATES      336
-# define       QSETS   337
-# define       QRELEASES       338
-# define       QPRECLAUSE      339
-# define       QPOSTCLAUSE     340
-# define       QINVARIANT      341
-# define       QALT    342
-# define       QUNDEF  343
-# define       QKILLED 344
-# define       QENDMACRO       345
-# define       LLMACRO 346
-# define       LLMACROITER     347
-# define       LLMACROEND      348
-# define       TENDMACRO       349
-# define       QDREVEALSTATE   350
-# define       QSWITCHBREAK    351
-# define       QLOOPBREAK      352
-# define       QINNERBREAK     353
-# define       QSAFEBREAK      354
-# define       QINNERCONTINUE  355
-# define       QFALLTHROUGH    356
-# define       QLINTNOTREACHED 357
-# define       QLINTFALLTHROUGH        358
-# define       QLINTFALLTHRU   359
-# define       QARGSUSED       360
-# define       QPRINTFLIKE     361
-# define       QLINTPRINTFLIKE 362
-# define       QSCANFLIKE      363
-# define       QMESSAGELIKE    364
-# define       QNOTREACHED     365
-# define       QCONST  366
-# define       QRESTRICT       367
-# define       QVOLATILE       368
-# define       QINLINE 369
-# define       QEXTENSION      370
-# define       QEXTERN 371
-# define       QSTATIC 372
-# define       QAUTO   373
-# define       QREGISTER       374
-# define       QOUT    375
-# define       QIN     376
-# define       QYIELD  377
-# define       QONLY   378
-# define       QTEMP   379
-# define       QSHARED 380
-# define       QREF    381
-# define       QUNIQUE 382
-# define       QCHECKED        383
-# define       QUNCHECKED      384
-# define       QCHECKEDSTRICT  385
-# define       QCHECKMOD       386
-# define       QKEEP   387
-# define       QKEPT   388
-# define       QPARTIAL        389
-# define       QSPECIAL        390
-# define       QOWNED  391
-# define       QDEPENDENT      392
-# define       QRETURNED       393
-# define       QEXPOSED        394
-# define       QNULL   395
-# define       QOBSERVER       396
-# define       QISNULL 397
-# define       QEXITS  398
-# define       QMAYEXIT        399
-# define       QNEVEREXIT      400
-# define       QTRUEEXIT       401
-# define       QFALSEEXIT      402
-# define       QLONG   403
-# define       QSIGNED 404
-# define       QUNSIGNED       405
-# define       QSHORT  406
-# define       QUNUSED 407
-# define       QSEF    408
-# define       QNOTNULL        409
-# define       QRELNULL        410
-# define       QABSTRACT       411
-# define       QNUMABSTRACT    412
-# define       QCONCRETE       413
-# define       QMUTABLE        414
-# define       QIMMUTABLE      415
-# define       QTRUENULL       416
-# define       QFALSENULL      417
-# define       QEXTERNAL       418
-# define       QREFCOUNTED     419
-# define       QREFS   420
-# define       QNEWREF 421
-# define       QTEMPREF        422
-# define       QKILLREF        423
-# define       QRELDEF 424
-# define       CGCHAR  425
-# define       CBOOL   426
-# define       CINT    427
-# define       CGFLOAT 428
-# define       CDOUBLE 429
-# define       CVOID   430
-# define       QANYTYPE        431
-# define       QINTEGRALTYPE   432
-# define       QUNSIGNEDINTEGRALTYPE   433
-# define       QSIGNEDINTEGRALTYPE     434
-# define       QNULLTERMINATED 435
-# define       QSETBUFFERSIZE  436
-# define       QSETSTRINGLENGTH        437
-# define       QMAXSET 438
-# define       QMAXREAD        439
-# define       QTESTINRANGE    440
-# define       TCAND   441
-# define       IDENTIFIER      442
-# define       NEW_IDENTIFIER  443
-# define       TYPE_NAME_OR_ID 444
-# define       CANNOTATION     445
-# define       CCONSTANT       446
-# define       ITER_NAME       447
-# define       ITER_ENDNAME    448
-# define       TYPE_NAME       449
-# define       METASTATE_NAME  450
-
 
 extern cgrammar_YYSTYPE yylval;
 
 
 extern cgrammar_YYSTYPE yylval;
 
-#endif /* not BISON_CGRAMMAR_TAB_H */
+
+
 /*
 ** Resets all flags in bison.head
 */
 /*
 ** Resets all flags in bison.head
 */
index 205a8b1d576a3227aba67118fa9f11cd79482475..e2597534777395b9051e900ca0432b0f99ff1548 100644 (file)
 
 /* < end of bison.head > */
 
 
 /* < end of bison.head > */
 
-#ifndef BISON_LLGRAMMAR_TAB_H
-# define BISON_LLGRAMMAR_TAB_H
+/* A Bison parser, made by GNU Bison 1.875a.  */
 
 
-#ifndef YYSTYPE
-typedef union 
-{
+/* Skeleton parser for Yacc-like parsing with Bison,
+   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+/* As a special exception, when this file is copied by Bison into a
+   Bison output file, you may use that output file without restriction.
+   This special exception was added by the Free Software Foundation
+   in version 1.24 of Bison.  */
+
+/* Tokens.  */
+#ifndef YYTOKENTYPE
+# define YYTOKENTYPE
+   /* Put the tokens into the symbol table, so that GDB and other debuggers
+      know about them.  */
+   enum yytokentype {
+     simpleOp = 258,
+     PREFIX_OP = 259,
+     POSTFIX_OP = 260,
+     LLT_MULOP = 261,
+     LLT_SEMI = 262,
+     LLT_VERTICALBAR = 263,
+     ITERATION_OP = 264,
+     selectSym = 265,
+     LLT_LBRACKET = 266,
+     LLT_LPAR = 267,
+     LLT_IF_THEN_ELSE = 268,
+     logicalOp = 269,
+     eqSepSym = 270,
+     equationSym = 271,
+     commentSym = 272,
+     LLT_WHITESPACE = 273,
+     LLT_EOL = 274,
+     LLT_TYPEDEF_NAME = 275,
+     quantifierSym = 276,
+     openSym = 277,
+     closeSym = 278,
+     sepSym = 279,
+     simpleId = 280,
+     mapSym = 281,
+     markerSym = 282,
+     preSym = 283,
+     postSym = 284,
+     anySym = 285,
+     LLT_COLON = 286,
+     LLT_COMMA = 287,
+     LLT_EQUALS = 288,
+     LLT_LBRACE = 289,
+     LLT_RBRACE = 290,
+     LLT_RBRACKET = 291,
+     LLT_RPAR = 292,
+     LLT_QUOTE = 293,
+     eqOp = 294,
+     LLT_CCHAR = 295,
+     LLT_CFLOAT = 296,
+     LLT_CINTEGER = 297,
+     LLT_LCSTRING = 298,
+     LLT_ALL = 299,
+     LLT_ANYTHING = 300,
+     LLT_BE = 301,
+     LLT_BODY = 302,
+     LLT_CLAIMS = 303,
+     LLT_CHECKS = 304,
+     LLT_CONSTANT = 305,
+     LLT_ELSE = 306,
+     LLT_ENSURES = 307,
+     LLT_FOR = 308,
+     LLT_FRESH = 309,
+     LLT_IF = 310,
+     LLT_IMMUTABLE = 311,
+     LLT_IMPORTS = 312,
+     LLT_CONSTRAINT = 313,
+     LLT_ISSUB = 314,
+     LLT_LET = 315,
+     LLT_MODIFIES = 316,
+     LLT_MUTABLE = 317,
+     LLT_NOTHING = 318,
+     LLT_INTERNAL = 319,
+     LLT_FILESYS = 320,
+     LLT_OBJ = 321,
+     LLT_OUT = 322,
+     LLT_SEF = 323,
+     LLT_ONLY = 324,
+     LLT_PARTIAL = 325,
+     LLT_OWNED = 326,
+     LLT_DEPENDENT = 327,
+     LLT_KEEP = 328,
+     LLT_KEPT = 329,
+     LLT_TEMP = 330,
+     LLT_SHARED = 331,
+     LLT_UNIQUE = 332,
+     LLT_UNUSED = 333,
+     LLT_EXITS = 334,
+     LLT_MAYEXIT = 335,
+     LLT_NEVEREXIT = 336,
+     LLT_TRUEEXIT = 337,
+     LLT_FALSEEXIT = 338,
+     LLT_UNDEF = 339,
+     LLT_KILLED = 340,
+     LLT_CHECKMOD = 341,
+     LLT_CHECKED = 342,
+     LLT_UNCHECKED = 343,
+     LLT_CHECKEDSTRICT = 344,
+     LLT_TRUENULL = 345,
+     LLT_FALSENULL = 346,
+     LLT_LNULL = 347,
+     LLT_LNOTNULL = 348,
+     LLT_RETURNED = 349,
+     LLT_OBSERVER = 350,
+     LLT_EXPOSED = 351,
+     LLT_REFCOUNTED = 352,
+     LLT_REFS = 353,
+     LLT_RELNULL = 354,
+     LLT_RELDEF = 355,
+     LLT_KILLREF = 356,
+     LLT_NULLTERMINATED = 357,
+     LLT_TEMPREF = 358,
+     LLT_NEWREF = 359,
+     LLT_PRIVATE = 360,
+     LLT_REQUIRES = 361,
+     LLT_RESULT = 362,
+     LLT_SIZEOF = 363,
+     LLT_SPEC = 364,
+     LLT_TAGGEDUNION = 365,
+     LLT_THEN = 366,
+     LLT_TYPE = 367,
+     LLT_TYPEDEF = 368,
+     LLT_UNCHANGED = 369,
+     LLT_USES = 370,
+     LLT_CHAR = 371,
+     LLT_CONST = 372,
+     LLT_DOUBLE = 373,
+     LLT_ENUM = 374,
+     LLT_FLOAT = 375,
+     LLT_INT = 376,
+     LLT_ITER = 377,
+     LLT_YIELD = 378,
+     LLT_LONG = 379,
+     LLT_SHORT = 380,
+     LLT_SIGNED = 381,
+     LLT_UNKNOWN = 382,
+     LLT_STRUCT = 383,
+     LLT_TELIPSIS = 384,
+     LLT_UNION = 385,
+     LLT_UNSIGNED = 386,
+     LLT_VOID = 387,
+     LLT_VOLATILE = 388,
+     LLT_PRINTFLIKE = 389,
+     LLT_SCANFLIKE = 390,
+     LLT_MESSAGELIKE = 391
+   };
+#endif
+#define simpleOp 258
+#define PREFIX_OP 259
+#define POSTFIX_OP 260
+#define LLT_MULOP 261
+#define LLT_SEMI 262
+#define LLT_VERTICALBAR 263
+#define ITERATION_OP 264
+#define selectSym 265
+#define LLT_LBRACKET 266
+#define LLT_LPAR 267
+#define LLT_IF_THEN_ELSE 268
+#define logicalOp 269
+#define eqSepSym 270
+#define equationSym 271
+#define commentSym 272
+#define LLT_WHITESPACE 273
+#define LLT_EOL 274
+#define LLT_TYPEDEF_NAME 275
+#define quantifierSym 276
+#define openSym 277
+#define closeSym 278
+#define sepSym 279
+#define simpleId 280
+#define mapSym 281
+#define markerSym 282
+#define preSym 283
+#define postSym 284
+#define anySym 285
+#define LLT_COLON 286
+#define LLT_COMMA 287
+#define LLT_EQUALS 288
+#define LLT_LBRACE 289
+#define LLT_RBRACE 290
+#define LLT_RBRACKET 291
+#define LLT_RPAR 292
+#define LLT_QUOTE 293
+#define eqOp 294
+#define LLT_CCHAR 295
+#define LLT_CFLOAT 296
+#define LLT_CINTEGER 297
+#define LLT_LCSTRING 298
+#define LLT_ALL 299
+#define LLT_ANYTHING 300
+#define LLT_BE 301
+#define LLT_BODY 302
+#define LLT_CLAIMS 303
+#define LLT_CHECKS 304
+#define LLT_CONSTANT 305
+#define LLT_ELSE 306
+#define LLT_ENSURES 307
+#define LLT_FOR 308
+#define LLT_FRESH 309
+#define LLT_IF 310
+#define LLT_IMMUTABLE 311
+#define LLT_IMPORTS 312
+#define LLT_CONSTRAINT 313
+#define LLT_ISSUB 314
+#define LLT_LET 315
+#define LLT_MODIFIES 316
+#define LLT_MUTABLE 317
+#define LLT_NOTHING 318
+#define LLT_INTERNAL 319
+#define LLT_FILESYS 320
+#define LLT_OBJ 321
+#define LLT_OUT 322
+#define LLT_SEF 323
+#define LLT_ONLY 324
+#define LLT_PARTIAL 325
+#define LLT_OWNED 326
+#define LLT_DEPENDENT 327
+#define LLT_KEEP 328
+#define LLT_KEPT 329
+#define LLT_TEMP 330
+#define LLT_SHARED 331
+#define LLT_UNIQUE 332
+#define LLT_UNUSED 333
+#define LLT_EXITS 334
+#define LLT_MAYEXIT 335
+#define LLT_NEVEREXIT 336
+#define LLT_TRUEEXIT 337
+#define LLT_FALSEEXIT 338
+#define LLT_UNDEF 339
+#define LLT_KILLED 340
+#define LLT_CHECKMOD 341
+#define LLT_CHECKED 342
+#define LLT_UNCHECKED 343
+#define LLT_CHECKEDSTRICT 344
+#define LLT_TRUENULL 345
+#define LLT_FALSENULL 346
+#define LLT_LNULL 347
+#define LLT_LNOTNULL 348
+#define LLT_RETURNED 349
+#define LLT_OBSERVER 350
+#define LLT_EXPOSED 351
+#define LLT_REFCOUNTED 352
+#define LLT_REFS 353
+#define LLT_RELNULL 354
+#define LLT_RELDEF 355
+#define LLT_KILLREF 356
+#define LLT_NULLTERMINATED 357
+#define LLT_TEMPREF 358
+#define LLT_NEWREF 359
+#define LLT_PRIVATE 360
+#define LLT_REQUIRES 361
+#define LLT_RESULT 362
+#define LLT_SIZEOF 363
+#define LLT_SPEC 364
+#define LLT_TAGGEDUNION 365
+#define LLT_THEN 366
+#define LLT_TYPE 367
+#define LLT_TYPEDEF 368
+#define LLT_UNCHANGED 369
+#define LLT_USES 370
+#define LLT_CHAR 371
+#define LLT_CONST 372
+#define LLT_DOUBLE 373
+#define LLT_ENUM 374
+#define LLT_FLOAT 375
+#define LLT_INT 376
+#define LLT_ITER 377
+#define LLT_YIELD 378
+#define LLT_LONG 379
+#define LLT_SHORT 380
+#define LLT_SIGNED 381
+#define LLT_UNKNOWN 382
+#define LLT_STRUCT 383
+#define LLT_TELIPSIS 384
+#define LLT_UNION 385
+#define LLT_UNSIGNED 386
+#define LLT_VOID 387
+#define LLT_VOLATILE 388
+#define LLT_PRINTFLIKE 389
+#define LLT_SCANFLIKE 390
+#define LLT_MESSAGELIKE 391
+
+
+
+
+#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
+
+typedef union YYSTYPE {
   ltoken ltok;  /* a leaf is also an ltoken */
   qual typequal;
   unsigned int count;
   ltoken ltok;  /* a leaf is also an ltoken */
   qual typequal;
   unsigned int count;
@@ -124,149 +426,18 @@ typedef union
   /*@only@*/ interfaceNodeList interfacelist; 
   /*@only@*/ CTypesNode ctypes;
   /*@-redef@*/
   /*@only@*/ interfaceNodeList interfacelist; 
   /*@only@*/ CTypesNode ctypes;
   /*@-redef@*/
-} yystype;
-# define YYSTYPE yystype
+} YYSTYPE;
+/* Line 1240 of yacc.c.  */
+
+# define yystype YYSTYPE /* obsolescent; will be withdrawn */
+# define YYSTYPE_IS_DECLARED 1
 # define YYSTYPE_IS_TRIVIAL 1
 #endif
 # define YYSTYPE_IS_TRIVIAL 1
 #endif
-# define       simpleOp        257
-# define       PREFIX_OP       258
-# define       POSTFIX_OP      259
-# define       LLT_MULOP       260
-# define       LLT_SEMI        261
-# define       LLT_VERTICALBAR 262
-# define       ITERATION_OP    263
-# define       LLT_LPAR        264
-# define       LLT_LBRACKET    265
-# define       selectSym       266
-# define       LLT_IF_THEN_ELSE        267
-# define       logicalOp       268
-# define       eqSepSym        269
-# define       equationSym     270
-# define       commentSym      271
-# define       LLT_WHITESPACE  272
-# define       LLT_EOL 273
-# define       LLT_TYPEDEF_NAME        274
-# define       quantifierSym   275
-# define       openSym 276
-# define       closeSym        277
-# define       sepSym  278
-# define       simpleId        279
-# define       mapSym  280
-# define       markerSym       281
-# define       preSym  282
-# define       postSym 283
-# define       anySym  284
-# define       LLT_COLON       285
-# define       LLT_COMMA       286
-# define       LLT_EQUALS      287
-# define       LLT_LBRACE      288
-# define       LLT_RBRACE      289
-# define       LLT_RBRACKET    290
-# define       LLT_RPAR        291
-# define       LLT_QUOTE       292
-# define       eqOp    293
-# define       LLT_CCHAR       294
-# define       LLT_CFLOAT      295
-# define       LLT_CINTEGER    296
-# define       LLT_LCSTRING    297
-# define       LLT_ALL 298
-# define       LLT_ANYTHING    299
-# define       LLT_BE  300
-# define       LLT_BODY        301
-# define       LLT_CLAIMS      302
-# define       LLT_CHECKS      303
-# define       LLT_CONSTANT    304
-# define       LLT_ELSE        305
-# define       LLT_ENSURES     306
-# define       LLT_FOR 307
-# define       LLT_FRESH       308
-# define       LLT_IF  309
-# define       LLT_IMMUTABLE   310
-# define       LLT_IMPORTS     311
-# define       LLT_CONSTRAINT  312
-# define       LLT_ISSUB       313
-# define       LLT_LET 314
-# define       LLT_MODIFIES    315
-# define       LLT_MUTABLE     316
-# define       LLT_NOTHING     317
-# define       LLT_INTERNAL    318
-# define       LLT_FILESYS     319
-# define       LLT_OBJ 320
-# define       LLT_OUT 321
-# define       LLT_SEF 322
-# define       LLT_ONLY        323
-# define       LLT_PARTIAL     324
-# define       LLT_OWNED       325
-# define       LLT_DEPENDENT   326
-# define       LLT_KEEP        327
-# define       LLT_KEPT        328
-# define       LLT_TEMP        329
-# define       LLT_SHARED      330
-# define       LLT_UNIQUE      331
-# define       LLT_UNUSED      332
-# define       LLT_EXITS       333
-# define       LLT_MAYEXIT     334
-# define       LLT_NEVEREXIT   335
-# define       LLT_TRUEEXIT    336
-# define       LLT_FALSEEXIT   337
-# define       LLT_UNDEF       338
-# define       LLT_KILLED      339
-# define       LLT_CHECKMOD    340
-# define       LLT_CHECKED     341
-# define       LLT_UNCHECKED   342
-# define       LLT_CHECKEDSTRICT       343
-# define       LLT_TRUENULL    344
-# define       LLT_FALSENULL   345
-# define       LLT_LNULL       346
-# define       LLT_LNOTNULL    347
-# define       LLT_RETURNED    348
-# define       LLT_OBSERVER    349
-# define       LLT_EXPOSED     350
-# define       LLT_REFCOUNTED  351
-# define       LLT_REFS        352
-# define       LLT_RELNULL     353
-# define       LLT_RELDEF      354
-# define       LLT_KILLREF     355
-# define       LLT_NULLTERMINATED      356
-# define       LLT_TEMPREF     357
-# define       LLT_NEWREF      358
-# define       LLT_PRIVATE     359
-# define       LLT_REQUIRES    360
-# define       LLT_RESULT      361
-# define       LLT_SIZEOF      362
-# define       LLT_SPEC        363
-# define       LLT_TAGGEDUNION 364
-# define       LLT_THEN        365
-# define       LLT_TYPE        366
-# define       LLT_TYPEDEF     367
-# define       LLT_UNCHANGED   368
-# define       LLT_USES        369
-# define       LLT_CHAR        370
-# define       LLT_CONST       371
-# define       LLT_DOUBLE      372
-# define       LLT_ENUM        373
-# define       LLT_FLOAT       374
-# define       LLT_INT 375
-# define       LLT_ITER        376
-# define       LLT_YIELD       377
-# define       LLT_LONG        378
-# define       LLT_SHORT       379
-# define       LLT_SIGNED      380
-# define       LLT_UNKNOWN     381
-# define       LLT_STRUCT      382
-# define       LLT_TELIPSIS    383
-# define       LLT_UNION       384
-# define       LLT_UNSIGNED    385
-# define       LLT_VOID        386
-# define       LLT_VOLATILE    387
-# define       LLT_PRINTFLIKE  388
-# define       LLT_SCANFLIKE   389
-# define       LLT_MESSAGELIKE 390
-
 
 extern YYSTYPE yllval;
 
 
 extern YYSTYPE yllval;
 
-#endif /* not BISON_LLGRAMMAR_TAB_H */
+
+
 /*
 ** Resets all flags in bison.head
 */
 /*
 ** Resets all flags in bison.head
 */
index 205a8b1d576a3227aba67118fa9f11cd79482475..e2597534777395b9051e900ca0432b0f99ff1548 100644 (file)
 
 /* < end of bison.head > */
 
 
 /* < end of bison.head > */
 
-#ifndef BISON_LLGRAMMAR_TAB_H
-# define BISON_LLGRAMMAR_TAB_H
+/* A Bison parser, made by GNU Bison 1.875a.  */
 
 
-#ifndef YYSTYPE
-typedef union 
-{
+/* Skeleton parser for Yacc-like parsing with Bison,
+   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+/* As a special exception, when this file is copied by Bison into a
+   Bison output file, you may use that output file without restriction.
+   This special exception was added by the Free Software Foundation
+   in version 1.24 of Bison.  */
+
+/* Tokens.  */
+#ifndef YYTOKENTYPE
+# define YYTOKENTYPE
+   /* Put the tokens into the symbol table, so that GDB and other debuggers
+      know about them.  */
+   enum yytokentype {
+     simpleOp = 258,
+     PREFIX_OP = 259,
+     POSTFIX_OP = 260,
+     LLT_MULOP = 261,
+     LLT_SEMI = 262,
+     LLT_VERTICALBAR = 263,
+     ITERATION_OP = 264,
+     selectSym = 265,
+     LLT_LBRACKET = 266,
+     LLT_LPAR = 267,
+     LLT_IF_THEN_ELSE = 268,
+     logicalOp = 269,
+     eqSepSym = 270,
+     equationSym = 271,
+     commentSym = 272,
+     LLT_WHITESPACE = 273,
+     LLT_EOL = 274,
+     LLT_TYPEDEF_NAME = 275,
+     quantifierSym = 276,
+     openSym = 277,
+     closeSym = 278,
+     sepSym = 279,
+     simpleId = 280,
+     mapSym = 281,
+     markerSym = 282,
+     preSym = 283,
+     postSym = 284,
+     anySym = 285,
+     LLT_COLON = 286,
+     LLT_COMMA = 287,
+     LLT_EQUALS = 288,
+     LLT_LBRACE = 289,
+     LLT_RBRACE = 290,
+     LLT_RBRACKET = 291,
+     LLT_RPAR = 292,
+     LLT_QUOTE = 293,
+     eqOp = 294,
+     LLT_CCHAR = 295,
+     LLT_CFLOAT = 296,
+     LLT_CINTEGER = 297,
+     LLT_LCSTRING = 298,
+     LLT_ALL = 299,
+     LLT_ANYTHING = 300,
+     LLT_BE = 301,
+     LLT_BODY = 302,
+     LLT_CLAIMS = 303,
+     LLT_CHECKS = 304,
+     LLT_CONSTANT = 305,
+     LLT_ELSE = 306,
+     LLT_ENSURES = 307,
+     LLT_FOR = 308,
+     LLT_FRESH = 309,
+     LLT_IF = 310,
+     LLT_IMMUTABLE = 311,
+     LLT_IMPORTS = 312,
+     LLT_CONSTRAINT = 313,
+     LLT_ISSUB = 314,
+     LLT_LET = 315,
+     LLT_MODIFIES = 316,
+     LLT_MUTABLE = 317,
+     LLT_NOTHING = 318,
+     LLT_INTERNAL = 319,
+     LLT_FILESYS = 320,
+     LLT_OBJ = 321,
+     LLT_OUT = 322,
+     LLT_SEF = 323,
+     LLT_ONLY = 324,
+     LLT_PARTIAL = 325,
+     LLT_OWNED = 326,
+     LLT_DEPENDENT = 327,
+     LLT_KEEP = 328,
+     LLT_KEPT = 329,
+     LLT_TEMP = 330,
+     LLT_SHARED = 331,
+     LLT_UNIQUE = 332,
+     LLT_UNUSED = 333,
+     LLT_EXITS = 334,
+     LLT_MAYEXIT = 335,
+     LLT_NEVEREXIT = 336,
+     LLT_TRUEEXIT = 337,
+     LLT_FALSEEXIT = 338,
+     LLT_UNDEF = 339,
+     LLT_KILLED = 340,
+     LLT_CHECKMOD = 341,
+     LLT_CHECKED = 342,
+     LLT_UNCHECKED = 343,
+     LLT_CHECKEDSTRICT = 344,
+     LLT_TRUENULL = 345,
+     LLT_FALSENULL = 346,
+     LLT_LNULL = 347,
+     LLT_LNOTNULL = 348,
+     LLT_RETURNED = 349,
+     LLT_OBSERVER = 350,
+     LLT_EXPOSED = 351,
+     LLT_REFCOUNTED = 352,
+     LLT_REFS = 353,
+     LLT_RELNULL = 354,
+     LLT_RELDEF = 355,
+     LLT_KILLREF = 356,
+     LLT_NULLTERMINATED = 357,
+     LLT_TEMPREF = 358,
+     LLT_NEWREF = 359,
+     LLT_PRIVATE = 360,
+     LLT_REQUIRES = 361,
+     LLT_RESULT = 362,
+     LLT_SIZEOF = 363,
+     LLT_SPEC = 364,
+     LLT_TAGGEDUNION = 365,
+     LLT_THEN = 366,
+     LLT_TYPE = 367,
+     LLT_TYPEDEF = 368,
+     LLT_UNCHANGED = 369,
+     LLT_USES = 370,
+     LLT_CHAR = 371,
+     LLT_CONST = 372,
+     LLT_DOUBLE = 373,
+     LLT_ENUM = 374,
+     LLT_FLOAT = 375,
+     LLT_INT = 376,
+     LLT_ITER = 377,
+     LLT_YIELD = 378,
+     LLT_LONG = 379,
+     LLT_SHORT = 380,
+     LLT_SIGNED = 381,
+     LLT_UNKNOWN = 382,
+     LLT_STRUCT = 383,
+     LLT_TELIPSIS = 384,
+     LLT_UNION = 385,
+     LLT_UNSIGNED = 386,
+     LLT_VOID = 387,
+     LLT_VOLATILE = 388,
+     LLT_PRINTFLIKE = 389,
+     LLT_SCANFLIKE = 390,
+     LLT_MESSAGELIKE = 391
+   };
+#endif
+#define simpleOp 258
+#define PREFIX_OP 259
+#define POSTFIX_OP 260
+#define LLT_MULOP 261
+#define LLT_SEMI 262
+#define LLT_VERTICALBAR 263
+#define ITERATION_OP 264
+#define selectSym 265
+#define LLT_LBRACKET 266
+#define LLT_LPAR 267
+#define LLT_IF_THEN_ELSE 268
+#define logicalOp 269
+#define eqSepSym 270
+#define equationSym 271
+#define commentSym 272
+#define LLT_WHITESPACE 273
+#define LLT_EOL 274
+#define LLT_TYPEDEF_NAME 275
+#define quantifierSym 276
+#define openSym 277
+#define closeSym 278
+#define sepSym 279
+#define simpleId 280
+#define mapSym 281
+#define markerSym 282
+#define preSym 283
+#define postSym 284
+#define anySym 285
+#define LLT_COLON 286
+#define LLT_COMMA 287
+#define LLT_EQUALS 288
+#define LLT_LBRACE 289
+#define LLT_RBRACE 290
+#define LLT_RBRACKET 291
+#define LLT_RPAR 292
+#define LLT_QUOTE 293
+#define eqOp 294
+#define LLT_CCHAR 295
+#define LLT_CFLOAT 296
+#define LLT_CINTEGER 297
+#define LLT_LCSTRING 298
+#define LLT_ALL 299
+#define LLT_ANYTHING 300
+#define LLT_BE 301
+#define LLT_BODY 302
+#define LLT_CLAIMS 303
+#define LLT_CHECKS 304
+#define LLT_CONSTANT 305
+#define LLT_ELSE 306
+#define LLT_ENSURES 307
+#define LLT_FOR 308
+#define LLT_FRESH 309
+#define LLT_IF 310
+#define LLT_IMMUTABLE 311
+#define LLT_IMPORTS 312
+#define LLT_CONSTRAINT 313
+#define LLT_ISSUB 314
+#define LLT_LET 315
+#define LLT_MODIFIES 316
+#define LLT_MUTABLE 317
+#define LLT_NOTHING 318
+#define LLT_INTERNAL 319
+#define LLT_FILESYS 320
+#define LLT_OBJ 321
+#define LLT_OUT 322
+#define LLT_SEF 323
+#define LLT_ONLY 324
+#define LLT_PARTIAL 325
+#define LLT_OWNED 326
+#define LLT_DEPENDENT 327
+#define LLT_KEEP 328
+#define LLT_KEPT 329
+#define LLT_TEMP 330
+#define LLT_SHARED 331
+#define LLT_UNIQUE 332
+#define LLT_UNUSED 333
+#define LLT_EXITS 334
+#define LLT_MAYEXIT 335
+#define LLT_NEVEREXIT 336
+#define LLT_TRUEEXIT 337
+#define LLT_FALSEEXIT 338
+#define LLT_UNDEF 339
+#define LLT_KILLED 340
+#define LLT_CHECKMOD 341
+#define LLT_CHECKED 342
+#define LLT_UNCHECKED 343
+#define LLT_CHECKEDSTRICT 344
+#define LLT_TRUENULL 345
+#define LLT_FALSENULL 346
+#define LLT_LNULL 347
+#define LLT_LNOTNULL 348
+#define LLT_RETURNED 349
+#define LLT_OBSERVER 350
+#define LLT_EXPOSED 351
+#define LLT_REFCOUNTED 352
+#define LLT_REFS 353
+#define LLT_RELNULL 354
+#define LLT_RELDEF 355
+#define LLT_KILLREF 356
+#define LLT_NULLTERMINATED 357
+#define LLT_TEMPREF 358
+#define LLT_NEWREF 359
+#define LLT_PRIVATE 360
+#define LLT_REQUIRES 361
+#define LLT_RESULT 362
+#define LLT_SIZEOF 363
+#define LLT_SPEC 364
+#define LLT_TAGGEDUNION 365
+#define LLT_THEN 366
+#define LLT_TYPE 367
+#define LLT_TYPEDEF 368
+#define LLT_UNCHANGED 369
+#define LLT_USES 370
+#define LLT_CHAR 371
+#define LLT_CONST 372
+#define LLT_DOUBLE 373
+#define LLT_ENUM 374
+#define LLT_FLOAT 375
+#define LLT_INT 376
+#define LLT_ITER 377
+#define LLT_YIELD 378
+#define LLT_LONG 379
+#define LLT_SHORT 380
+#define LLT_SIGNED 381
+#define LLT_UNKNOWN 382
+#define LLT_STRUCT 383
+#define LLT_TELIPSIS 384
+#define LLT_UNION 385
+#define LLT_UNSIGNED 386
+#define LLT_VOID 387
+#define LLT_VOLATILE 388
+#define LLT_PRINTFLIKE 389
+#define LLT_SCANFLIKE 390
+#define LLT_MESSAGELIKE 391
+
+
+
+
+#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
+
+typedef union YYSTYPE {
   ltoken ltok;  /* a leaf is also an ltoken */
   qual typequal;
   unsigned int count;
   ltoken ltok;  /* a leaf is also an ltoken */
   qual typequal;
   unsigned int count;
@@ -124,149 +426,18 @@ typedef union
   /*@only@*/ interfaceNodeList interfacelist; 
   /*@only@*/ CTypesNode ctypes;
   /*@-redef@*/
   /*@only@*/ interfaceNodeList interfacelist; 
   /*@only@*/ CTypesNode ctypes;
   /*@-redef@*/
-} yystype;
-# define YYSTYPE yystype
+} YYSTYPE;
+/* Line 1240 of yacc.c.  */
+
+# define yystype YYSTYPE /* obsolescent; will be withdrawn */
+# define YYSTYPE_IS_DECLARED 1
 # define YYSTYPE_IS_TRIVIAL 1
 #endif
 # define YYSTYPE_IS_TRIVIAL 1
 #endif
-# define       simpleOp        257
-# define       PREFIX_OP       258
-# define       POSTFIX_OP      259
-# define       LLT_MULOP       260
-# define       LLT_SEMI        261
-# define       LLT_VERTICALBAR 262
-# define       ITERATION_OP    263
-# define       LLT_LPAR        264
-# define       LLT_LBRACKET    265
-# define       selectSym       266
-# define       LLT_IF_THEN_ELSE        267
-# define       logicalOp       268
-# define       eqSepSym        269
-# define       equationSym     270
-# define       commentSym      271
-# define       LLT_WHITESPACE  272
-# define       LLT_EOL 273
-# define       LLT_TYPEDEF_NAME        274
-# define       quantifierSym   275
-# define       openSym 276
-# define       closeSym        277
-# define       sepSym  278
-# define       simpleId        279
-# define       mapSym  280
-# define       markerSym       281
-# define       preSym  282
-# define       postSym 283
-# define       anySym  284
-# define       LLT_COLON       285
-# define       LLT_COMMA       286
-# define       LLT_EQUALS      287
-# define       LLT_LBRACE      288
-# define       LLT_RBRACE      289
-# define       LLT_RBRACKET    290
-# define       LLT_RPAR        291
-# define       LLT_QUOTE       292
-# define       eqOp    293
-# define       LLT_CCHAR       294
-# define       LLT_CFLOAT      295
-# define       LLT_CINTEGER    296
-# define       LLT_LCSTRING    297
-# define       LLT_ALL 298
-# define       LLT_ANYTHING    299
-# define       LLT_BE  300
-# define       LLT_BODY        301
-# define       LLT_CLAIMS      302
-# define       LLT_CHECKS      303
-# define       LLT_CONSTANT    304
-# define       LLT_ELSE        305
-# define       LLT_ENSURES     306
-# define       LLT_FOR 307
-# define       LLT_FRESH       308
-# define       LLT_IF  309
-# define       LLT_IMMUTABLE   310
-# define       LLT_IMPORTS     311
-# define       LLT_CONSTRAINT  312
-# define       LLT_ISSUB       313
-# define       LLT_LET 314
-# define       LLT_MODIFIES    315
-# define       LLT_MUTABLE     316
-# define       LLT_NOTHING     317
-# define       LLT_INTERNAL    318
-# define       LLT_FILESYS     319
-# define       LLT_OBJ 320
-# define       LLT_OUT 321
-# define       LLT_SEF 322
-# define       LLT_ONLY        323
-# define       LLT_PARTIAL     324
-# define       LLT_OWNED       325
-# define       LLT_DEPENDENT   326
-# define       LLT_KEEP        327
-# define       LLT_KEPT        328
-# define       LLT_TEMP        329
-# define       LLT_SHARED      330
-# define       LLT_UNIQUE      331
-# define       LLT_UNUSED      332
-# define       LLT_EXITS       333
-# define       LLT_MAYEXIT     334
-# define       LLT_NEVEREXIT   335
-# define       LLT_TRUEEXIT    336
-# define       LLT_FALSEEXIT   337
-# define       LLT_UNDEF       338
-# define       LLT_KILLED      339
-# define       LLT_CHECKMOD    340
-# define       LLT_CHECKED     341
-# define       LLT_UNCHECKED   342
-# define       LLT_CHECKEDSTRICT       343
-# define       LLT_TRUENULL    344
-# define       LLT_FALSENULL   345
-# define       LLT_LNULL       346
-# define       LLT_LNOTNULL    347
-# define       LLT_RETURNED    348
-# define       LLT_OBSERVER    349
-# define       LLT_EXPOSED     350
-# define       LLT_REFCOUNTED  351
-# define       LLT_REFS        352
-# define       LLT_RELNULL     353
-# define       LLT_RELDEF      354
-# define       LLT_KILLREF     355
-# define       LLT_NULLTERMINATED      356
-# define       LLT_TEMPREF     357
-# define       LLT_NEWREF      358
-# define       LLT_PRIVATE     359
-# define       LLT_REQUIRES    360
-# define       LLT_RESULT      361
-# define       LLT_SIZEOF      362
-# define       LLT_SPEC        363
-# define       LLT_TAGGEDUNION 364
-# define       LLT_THEN        365
-# define       LLT_TYPE        366
-# define       LLT_TYPEDEF     367
-# define       LLT_UNCHANGED   368
-# define       LLT_USES        369
-# define       LLT_CHAR        370
-# define       LLT_CONST       371
-# define       LLT_DOUBLE      372
-# define       LLT_ENUM        373
-# define       LLT_FLOAT       374
-# define       LLT_INT 375
-# define       LLT_ITER        376
-# define       LLT_YIELD       377
-# define       LLT_LONG        378
-# define       LLT_SHORT       379
-# define       LLT_SIGNED      380
-# define       LLT_UNKNOWN     381
-# define       LLT_STRUCT      382
-# define       LLT_TELIPSIS    383
-# define       LLT_UNION       384
-# define       LLT_UNSIGNED    385
-# define       LLT_VOID        386
-# define       LLT_VOLATILE    387
-# define       LLT_PRINTFLIKE  388
-# define       LLT_SCANFLIKE   389
-# define       LLT_MESSAGELIKE 390
-
 
 extern YYSTYPE yllval;
 
 
 extern YYSTYPE yllval;
 
-#endif /* not BISON_LLGRAMMAR_TAB_H */
+
+
 /*
 ** Resets all flags in bison.head
 */
 /*
 ** Resets all flags in bison.head
 */
index c4806b35afa1989d9b44e0543042acfeddaf4e27..88a3348137637af063d5c292423908675a7dc613 100644 (file)
 
 /* < end of bison.head > */
 
 
 /* < end of bison.head > */
 
-#ifndef BISON_MTGRAMMAR_TAB_H
-# define BISON_MTGRAMMAR_TAB_H
+/* A Bison parser, made by GNU Bison 1.875a.  */
 
 
-#ifndef YYSTYPE
-typedef union {
+/* Skeleton parser for Yacc-like parsing with Bison,
+   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+/* As a special exception, when this file is copied by Bison into a
+   Bison output file, you may use that output file without restriction.
+   This special exception was added by the Free Software Foundation
+   in version 1.24 of Bison.  */
+
+/* Tokens.  */
+#ifndef YYTOKENTYPE
+# define YYTOKENTYPE
+   /* Put the tokens into the symbol table, so that GDB and other debuggers
+      know about them.  */
+   enum yytokentype {
+     MT_BADTOK = 258,
+     MT_END = 259,
+     MT_STATE = 260,
+     MT_GLOBAL = 261,
+     MT_CONTEXT = 262,
+     MT_ONEOF = 263,
+     MT_DEFAULTS = 264,
+     MT_DEFAULT = 265,
+     MT_REFERENCE = 266,
+     MT_PARAMETER = 267,
+     MT_RESULT = 268,
+     MT_CLAUSE = 269,
+     MT_LITERAL = 270,
+     MT_NULL = 271,
+     MT_ANNOTATIONS = 272,
+     MT_ARROW = 273,
+     MT_MERGE = 274,
+     MT_TRANSFERS = 275,
+     MT_PRECONDITIONS = 276,
+     MT_POSTCONDITIONS = 277,
+     MT_LOSEREFERENCE = 278,
+     MT_AS = 279,
+     MT_ERROR = 280,
+     MT_PLUS = 281,
+     MT_STAR = 282,
+     MT_BAR = 283,
+     MT_LPAREN = 284,
+     MT_RPAREN = 285,
+     MT_LBRACKET = 286,
+     MT_RBRACKET = 287,
+     MT_LBRACE = 288,
+     MT_RBRACE = 289,
+     MT_COMMA = 290,
+     MT_CHAR = 291,
+     MT_INT = 292,
+     MT_FLOAT = 293,
+     MT_DOUBLE = 294,
+     MT_VOID = 295,
+     MT_ANYTYPE = 296,
+     MT_INTEGRALTYPE = 297,
+     MT_UNSIGNEDINTEGRALTYPE = 298,
+     MT_SIGNEDINTEGRALTYPE = 299,
+     MT_CONST = 300,
+     MT_VOLATILE = 301,
+     MT_RESTRICT = 302,
+     MT_STRINGLIT = 303,
+     MT_IDENT = 304
+   };
+#endif
+#define MT_BADTOK 258
+#define MT_END 259
+#define MT_STATE 260
+#define MT_GLOBAL 261
+#define MT_CONTEXT 262
+#define MT_ONEOF 263
+#define MT_DEFAULTS 264
+#define MT_DEFAULT 265
+#define MT_REFERENCE 266
+#define MT_PARAMETER 267
+#define MT_RESULT 268
+#define MT_CLAUSE 269
+#define MT_LITERAL 270
+#define MT_NULL 271
+#define MT_ANNOTATIONS 272
+#define MT_ARROW 273
+#define MT_MERGE 274
+#define MT_TRANSFERS 275
+#define MT_PRECONDITIONS 276
+#define MT_POSTCONDITIONS 277
+#define MT_LOSEREFERENCE 278
+#define MT_AS 279
+#define MT_ERROR 280
+#define MT_PLUS 281
+#define MT_STAR 282
+#define MT_BAR 283
+#define MT_LPAREN 284
+#define MT_RPAREN 285
+#define MT_LBRACKET 286
+#define MT_RBRACKET 287
+#define MT_LBRACE 288
+#define MT_RBRACE 289
+#define MT_COMMA 290
+#define MT_CHAR 291
+#define MT_INT 292
+#define MT_FLOAT 293
+#define MT_DOUBLE 294
+#define MT_VOID 295
+#define MT_ANYTYPE 296
+#define MT_INTEGRALTYPE 297
+#define MT_UNSIGNEDINTEGRALTYPE 298
+#define MT_SIGNEDINTEGRALTYPE 299
+#define MT_CONST 300
+#define MT_VOLATILE 301
+#define MT_RESTRICT 302
+#define MT_STRINGLIT 303
+#define MT_IDENT 304
+
+
+
+
+#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
+
+typedef union YYSTYPE {
   mttok tok; 
   mtDeclarationNode mtdecl;
   mtDeclarationPiece mtpiece;
   mttok tok; 
   mtDeclarationNode mtdecl;
   mtDeclarationPiece mtpiece;
@@ -85,60 +214,18 @@ typedef union {
   /*@only@*/ qtype qtyp;
   qual qual;
   qualList quals;
   /*@only@*/ qtype qtyp;
   qual qual;
   qualList quals;
-} yystype;
-# define YYSTYPE yystype
+} YYSTYPE;
+/* Line 1240 of yacc.c.  */
+
+# define yystype YYSTYPE /* obsolescent; will be withdrawn */
+# define YYSTYPE_IS_DECLARED 1
 # define YYSTYPE_IS_TRIVIAL 1
 #endif
 # define YYSTYPE_IS_TRIVIAL 1
 #endif
-# define       MT_BADTOK       257
-# define       MT_END  258
-# define       MT_STATE        259
-# define       MT_GLOBAL       260
-# define       MT_CONTEXT      261
-# define       MT_ONEOF        262
-# define       MT_DEFAULTS     263
-# define       MT_DEFAULT      264
-# define       MT_REFERENCE    265
-# define       MT_PARAMETER    266
-# define       MT_RESULT       267
-# define       MT_CLAUSE       268
-# define       MT_LITERAL      269
-# define       MT_NULL 270
-# define       MT_ANNOTATIONS  271
-# define       MT_ARROW        272
-# define       MT_MERGE        273
-# define       MT_TRANSFERS    274
-# define       MT_PRECONDITIONS        275
-# define       MT_POSTCONDITIONS       276
-# define       MT_LOSEREFERENCE        277
-# define       MT_AS   278
-# define       MT_ERROR        279
-# define       MT_PLUS 280
-# define       MT_STAR 281
-# define       MT_BAR  282
-# define       MT_LPAREN       283
-# define       MT_RPAREN       284
-# define       MT_LBRACKET     285
-# define       MT_RBRACKET     286
-# define       MT_LBRACE       287
-# define       MT_RBRACE       288
-# define       MT_COMMA        289
-# define       MT_CHAR 290
-# define       MT_INT  291
-# define       MT_FLOAT        292
-# define       MT_DOUBLE       293
-# define       MT_VOID 294
-# define       MT_ANYTYPE      295
-# define       MT_INTEGRALTYPE 296
-# define       MT_UNSIGNEDINTEGRALTYPE 297
-# define       MT_SIGNEDINTEGRALTYPE   298
-# define       MT_CONST        299
-# define       MT_VOLATILE     300
-# define       MT_RESTRICT     301
-# define       MT_STRINGLIT    302
-# define       MT_IDENT        303
-
-
-#endif /* not BISON_MTGRAMMAR_TAB_H */
+
+
+
+
+
 /*
 ** Resets all flags in bison.head
 */
 /*
 ** Resets all flags in bison.head
 */
index 9b23e6251a961b37529acb049ba4ca397891a001..8df4fbd1e7656ba37b22ebc72c6a4b8057061192 100644 (file)
 
 /* < end of bison.head > */
 
 
 /* < end of bison.head > */
 
-#ifndef BISON_SIGNATURE_TAB_H
-# define BISON_SIGNATURE_TAB_H
+/* A Bison parser, made by GNU Bison 1.875a.  */
 
 
-#ifndef YYSTYPE
-typedef union {
+/* Skeleton parser for Yacc-like parsing with Bison,
+   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+/* As a special exception, when this file is copied by Bison into a
+   Bison output file, you may use that output file without restriction.
+   This special exception was added by the Free Software Foundation
+   in version 1.24 of Bison.  */
+
+/* Tokens.  */
+#ifndef YYTOKENTYPE
+# define YYTOKENTYPE
+   /* Put the tokens into the symbol table, so that GDB and other debuggers
+      know about them.  */
+   enum yytokentype {
+     LST_SIMPLEID = 258,
+     LST_LOGICALOP = 259,
+     LST_EQOP = 260,
+     LST_SIMPLEOP = 261,
+     LST_MAPSYM = 262,
+     LST_FIELDMAPSYM = 263,
+     LST_MARKERSYM = 264,
+     LST_ifTOKEN = 265,
+     LST_thenTOKEN = 266,
+     LST_elseTOKEN = 267,
+     LST_LBRACKET = 268,
+     LST_RBRACKET = 269,
+     LST_SELECTSYM = 270,
+     LST_SEPSYM = 271,
+     LST_OPENSYM = 272,
+     LST_CLOSESYM = 273,
+     LST_COLON = 274,
+     LST_COMMA = 275,
+     LST_EOL = 276,
+     LST_COMMENTSYM = 277,
+     LST_WHITESPACE = 278,
+     LST_QUANTIFIERSYM = 279,
+     LST_EQUATIONSYM = 280,
+     LST_EQSEPSYM = 281,
+     LST_COMPOSESYM = 282,
+     LST_LPAR = 283,
+     LST_RPAR = 284,
+     LST_assertsTOKEN = 285,
+     LST_assumesTOKEN = 286,
+     LST_byTOKEN = 287,
+     LST_convertsTOKEN = 288,
+     LST_enumerationTOKEN = 289,
+     LST_equationsTOKEN = 290,
+     LST_exemptingTOKEN = 291,
+     LST_forTOKEN = 292,
+     LST_generatedTOKEN = 293,
+     LST_impliesTOKEN = 294,
+     LST_includesTOKEN = 295,
+     LST_introducesTOKEN = 296,
+     LST_ofTOKEN = 297,
+     LST_partitionedTOKEN = 298,
+     LST_traitTOKEN = 299,
+     LST_tupleTOKEN = 300,
+     LST_unionTOKEN = 301,
+     LST_BADTOKEN = 302
+   };
+#endif
+#define LST_SIMPLEID 258
+#define LST_LOGICALOP 259
+#define LST_EQOP 260
+#define LST_SIMPLEOP 261
+#define LST_MAPSYM 262
+#define LST_FIELDMAPSYM 263
+#define LST_MARKERSYM 264
+#define LST_ifTOKEN 265
+#define LST_thenTOKEN 266
+#define LST_elseTOKEN 267
+#define LST_LBRACKET 268
+#define LST_RBRACKET 269
+#define LST_SELECTSYM 270
+#define LST_SEPSYM 271
+#define LST_OPENSYM 272
+#define LST_CLOSESYM 273
+#define LST_COLON 274
+#define LST_COMMA 275
+#define LST_EOL 276
+#define LST_COMMENTSYM 277
+#define LST_WHITESPACE 278
+#define LST_QUANTIFIERSYM 279
+#define LST_EQUATIONSYM 280
+#define LST_EQSEPSYM 281
+#define LST_COMPOSESYM 282
+#define LST_LPAR 283
+#define LST_RPAR 284
+#define LST_assertsTOKEN 285
+#define LST_assumesTOKEN 286
+#define LST_byTOKEN 287
+#define LST_convertsTOKEN 288
+#define LST_enumerationTOKEN 289
+#define LST_equationsTOKEN 290
+#define LST_exemptingTOKEN 291
+#define LST_forTOKEN 292
+#define LST_generatedTOKEN 293
+#define LST_impliesTOKEN 294
+#define LST_includesTOKEN 295
+#define LST_introducesTOKEN 296
+#define LST_ofTOKEN 297
+#define LST_partitionedTOKEN 298
+#define LST_traitTOKEN 299
+#define LST_tupleTOKEN 300
+#define LST_unionTOKEN 301
+#define LST_BADTOKEN 302
+
+
+
+
+#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
+
+typedef union YYSTYPE {
   ltoken ltok;  /* a leaf is also an ltoken */
   unsigned int count;
   /*@only@*/  ltokenList ltokenList;
   ltoken ltok;  /* a leaf is also an ltoken */
   unsigned int count;
   /*@only@*/  ltokenList ltokenList;
@@ -68,58 +193,18 @@ typedef union {
   /*@owned@*/ lslOp operator;
   /*@only@*/  lslOpList operators;
   /*@-redef@*/ /*@-matchfields@*/ 
   /*@owned@*/ lslOp operator;
   /*@only@*/  lslOpList operators;
   /*@-redef@*/ /*@-matchfields@*/ 
-} yystype;
-# define YYSTYPE yystype
+} YYSTYPE;
+/* Line 1240 of yacc.c.  */
+
+# define yystype YYSTYPE /* obsolescent; will be withdrawn */
+# define YYSTYPE_IS_DECLARED 1
 # define YYSTYPE_IS_TRIVIAL 1
 #endif
 # define YYSTYPE_IS_TRIVIAL 1
 #endif
-# define       LST_SIMPLEID    257
-# define       LST_LOGICALOP   258
-# define       LST_EQOP        259
-# define       LST_SIMPLEOP    260
-# define       LST_MAPSYM      261
-# define       LST_FIELDMAPSYM 262
-# define       LST_MARKERSYM   263
-# define       LST_ifTOKEN     264
-# define       LST_thenTOKEN   265
-# define       LST_elseTOKEN   266
-# define       LST_LBRACKET    267
-# define       LST_RBRACKET    268
-# define       LST_SELECTSYM   269
-# define       LST_SEPSYM      270
-# define       LST_OPENSYM     271
-# define       LST_CLOSESYM    272
-# define       LST_COLON       273
-# define       LST_COMMA       274
-# define       LST_EOL 275
-# define       LST_COMMENTSYM  276
-# define       LST_WHITESPACE  277
-# define       LST_QUANTIFIERSYM       278
-# define       LST_EQUATIONSYM 279
-# define       LST_EQSEPSYM    280
-# define       LST_COMPOSESYM  281
-# define       LST_LPAR        282
-# define       LST_RPAR        283
-# define       LST_assertsTOKEN        284
-# define       LST_assumesTOKEN        285
-# define       LST_byTOKEN     286
-# define       LST_convertsTOKEN       287
-# define       LST_enumerationTOKEN    288
-# define       LST_equationsTOKEN      289
-# define       LST_exemptingTOKEN      290
-# define       LST_forTOKEN    291
-# define       LST_generatedTOKEN      292
-# define       LST_impliesTOKEN        293
-# define       LST_includesTOKEN       294
-# define       LST_introducesTOKEN     295
-# define       LST_ofTOKEN     296
-# define       LST_partitionedTOKEN    297
-# define       LST_traitTOKEN  298
-# define       LST_tupleTOKEN  299
-# define       LST_unionTOKEN  300
-# define       LST_BADTOKEN    301
-
-
-#endif /* not BISON_SIGNATURE_TAB_H */
+
+
+
+
+
 /*
 ** Resets all flags in bison.head
 */
 /*
 ** Resets all flags in bison.head
 */
index 13e4d37988be5a6e33797de4c75fe9f18627af85..29824a5b37b94c4cc7c5fa8708245ac03ed6b0fb 100644 (file)
 
 /* < end of bison.head > */
 
 
 /* < end of bison.head > */
 
-/* A Bison parser, made from cgrammar.y
-   by GNU bison 1.35.  */
-
-#define YYBISON 1  /* Identify Bison output.  */
-
-# define       BADTOK  257
-# define       SKIPTOK 258
-# define       CTOK_ELIPSIS    259
-# define       CASE    260
-# define       DEFAULT 261
-# define       CIF     262
-# define       CELSE   263
-# define       SWITCH  264
-# define       WHILE   265
-# define       DO      266
-# define       CFOR    267
-# define       GOTO    268
-# define       CONTINUE        269
-# define       BREAK   270
-# define       RETURN  271
-# define       TSEMI   272
-# define       TLBRACE 273
-# define       TRBRACE 274
-# define       TCOMMA  275
-# define       TCOLON  276
-# define       TASSIGN 277
-# define       TLPAREN 278
-# define       TRPAREN 279
-# define       TLSQBR  280
-# define       TRSQBR  281
-# define       TDOT    282
-# define       TAMPERSAND      283
-# define       TEXCL   284
-# define       TTILDE  285
-# define       TMINUS  286
-# define       TPLUS   287
-# define       TMULT   288
-# define       TDIV    289
-# define       TPERCENT        290
-# define       TLT     291
-# define       TGT     292
-# define       TCIRC   293
-# define       TBAR    294
-# define       TQUEST  295
-# define       CSIZEOF 296
-# define       CALIGNOF        297
-# define       CTYPEOF 298
-# define       ARROW_OP        299
-# define       CTYPEDEF        300
-# define       COFFSETOF       301
-# define       INC_OP  302
-# define       DEC_OP  303
-# define       LEFT_OP 304
-# define       RIGHT_OP        305
-# define       LE_OP   306
-# define       GE_OP   307
-# define       EQ_OP   308
-# define       NE_OP   309
-# define       AND_OP  310
-# define       OR_OP   311
-# define       MUL_ASSIGN      312
-# define       DIV_ASSIGN      313
-# define       MOD_ASSIGN      314
-# define       ADD_ASSIGN      315
-# define       SUB_ASSIGN      316
-# define       LEFT_ASSIGN     317
-# define       RIGHT_ASSIGN    318
-# define       AND_ASSIGN      319
-# define       XOR_ASSIGN      320
-# define       OR_ASSIGN       321
-# define       CSTRUCT 322
-# define       CUNION  323
-# define       CENUM   324
-# define       VA_ARG  325
-# define       VA_DCL  326
-# define       QWARN   327
-# define       QGLOBALS        328
-# define       QMODIFIES       329
-# define       QNOMODS 330
-# define       QCONSTANT       331
-# define       QFUNCTION       332
-# define       QITER   333
-# define       QDEFINES        334
-# define       QUSES   335
-# define       QALLOCATES      336
-# define       QSETS   337
-# define       QRELEASES       338
-# define       QPRECLAUSE      339
-# define       QPOSTCLAUSE     340
-# define       QINVARIANT      341
-# define       QALT    342
-# define       QUNDEF  343
-# define       QKILLED 344
-# define       QENDMACRO       345
-# define       LLMACRO 346
-# define       LLMACROITER     347
-# define       LLMACROEND      348
-# define       TENDMACRO       349
-# define       QDREVEALSTATE   350
-# define       QSWITCHBREAK    351
-# define       QLOOPBREAK      352
-# define       QINNERBREAK     353
-# define       QSAFEBREAK      354
-# define       QINNERCONTINUE  355
-# define       QFALLTHROUGH    356
-# define       QLINTNOTREACHED 357
-# define       QLINTFALLTHROUGH        358
-# define       QLINTFALLTHRU   359
-# define       QARGSUSED       360
-# define       QPRINTFLIKE     361
-# define       QLINTPRINTFLIKE 362
-# define       QSCANFLIKE      363
-# define       QMESSAGELIKE    364
-# define       QNOTREACHED     365
-# define       QCONST  366
-# define       QRESTRICT       367
-# define       QVOLATILE       368
-# define       QINLINE 369
-# define       QEXTENSION      370
-# define       QEXTERN 371
-# define       QSTATIC 372
-# define       QAUTO   373
-# define       QREGISTER       374
-# define       QOUT    375
-# define       QIN     376
-# define       QYIELD  377
-# define       QONLY   378
-# define       QTEMP   379
-# define       QSHARED 380
-# define       QREF    381
-# define       QUNIQUE 382
-# define       QCHECKED        383
-# define       QUNCHECKED      384
-# define       QCHECKEDSTRICT  385
-# define       QCHECKMOD       386
-# define       QKEEP   387
-# define       QKEPT   388
-# define       QPARTIAL        389
-# define       QSPECIAL        390
-# define       QOWNED  391
-# define       QDEPENDENT      392
-# define       QRETURNED       393
-# define       QEXPOSED        394
-# define       QNULL   395
-# define       QOBSERVER       396
-# define       QISNULL 397
-# define       QEXITS  398
-# define       QMAYEXIT        399
-# define       QNEVEREXIT      400
-# define       QTRUEEXIT       401
-# define       QFALSEEXIT      402
-# define       QLONG   403
-# define       QSIGNED 404
-# define       QUNSIGNED       405
-# define       QSHORT  406
-# define       QUNUSED 407
-# define       QSEF    408
-# define       QNOTNULL        409
-# define       QRELNULL        410
-# define       QABSTRACT       411
-# define       QNUMABSTRACT    412
-# define       QCONCRETE       413
-# define       QMUTABLE        414
-# define       QIMMUTABLE      415
-# define       QTRUENULL       416
-# define       QFALSENULL      417
-# define       QEXTERNAL       418
-# define       QREFCOUNTED     419
-# define       QREFS   420
-# define       QNEWREF 421
-# define       QTEMPREF        422
-# define       QKILLREF        423
-# define       QRELDEF 424
-# define       CGCHAR  425
-# define       CBOOL   426
-# define       CINT    427
-# define       CGFLOAT 428
-# define       CDOUBLE 429
-# define       CVOID   430
-# define       QANYTYPE        431
-# define       QINTEGRALTYPE   432
-# define       QUNSIGNEDINTEGRALTYPE   433
-# define       QSIGNEDINTEGRALTYPE     434
-# define       QNULLTERMINATED 435
-# define       QSETBUFFERSIZE  436
-# define       QSETSTRINGLENGTH        437
-# define       QMAXSET 438
-# define       QMAXREAD        439
-# define       QTESTINRANGE    440
-# define       TCAND   441
-# define       IDENTIFIER      442
-# define       NEW_IDENTIFIER  443
-# define       TYPE_NAME_OR_ID 444
-# define       CANNOTATION     445
-# define       CCONSTANT       446
-# define       ITER_NAME       447
-# define       ITER_ENDNAME    448
-# define       TYPE_NAME       449
-# define       METASTATE_NAME  450
+/* A Bison parser, made by GNU Bison 1.875a.  */
+
+/* Skeleton parser for Yacc-like parsing with Bison,
+   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+/* As a special exception, when this file is copied by Bison into a
+   Bison output file, you may use that output file without restriction.
+   This special exception was added by the Free Software Foundation
+   in version 1.24 of Bison.  */
+
+/* Written by Richard Stallman by simplifying the original so called
+   ``semantic'' parser.  */
+
+/* All symbols defined below should begin with yy or YY, to avoid
+   infringing on user name space.  This should be done even for local
+   variables, as they might otherwise be expanded by user macros.
+   There are some unavoidable exceptions within include files to
+   define necessary library symbols; they are noted "INFRINGES ON
+   USER NAME SPACE" below.  */
+
+/* Identify Bison output.  */
+#define YYBISON 1
+
+/* Skeleton name.  */
+#define YYSKELETON_NAME "yacc.c"
+
+/* Pure parsers.  */
+#define YYPURE 0
+
+/* Using locations.  */
+#define YYLSP_NEEDED 0
+
+
+
+/* Tokens.  */
+#ifndef YYTOKENTYPE
+# define YYTOKENTYPE
+   /* Put the tokens into the symbol table, so that GDB and other debuggers
+      know about them.  */
+   enum yytokentype {
+     BADTOK = 258,
+     SKIPTOK = 259,
+     CTOK_ELIPSIS = 260,
+     CASE = 261,
+     DEFAULT = 262,
+     CIF = 263,
+     CELSE = 264,
+     SWITCH = 265,
+     WHILE = 266,
+     DO = 267,
+     CFOR = 268,
+     GOTO = 269,
+     CONTINUE = 270,
+     BREAK = 271,
+     RETURN = 272,
+     TSEMI = 273,
+     TLBRACE = 274,
+     TRBRACE = 275,
+     TCOMMA = 276,
+     TCOLON = 277,
+     TASSIGN = 278,
+     TLPAREN = 279,
+     TRPAREN = 280,
+     TLSQBR = 281,
+     TRSQBR = 282,
+     TDOT = 283,
+     TAMPERSAND = 284,
+     TEXCL = 285,
+     TTILDE = 286,
+     TMINUS = 287,
+     TPLUS = 288,
+     TMULT = 289,
+     TDIV = 290,
+     TPERCENT = 291,
+     TLT = 292,
+     TGT = 293,
+     TCIRC = 294,
+     TBAR = 295,
+     TQUEST = 296,
+     CSIZEOF = 297,
+     CALIGNOF = 298,
+     CTYPEOF = 299,
+     ARROW_OP = 300,
+     CTYPEDEF = 301,
+     COFFSETOF = 302,
+     INC_OP = 303,
+     DEC_OP = 304,
+     LEFT_OP = 305,
+     RIGHT_OP = 306,
+     LE_OP = 307,
+     GE_OP = 308,
+     EQ_OP = 309,
+     NE_OP = 310,
+     AND_OP = 311,
+     OR_OP = 312,
+     MUL_ASSIGN = 313,
+     DIV_ASSIGN = 314,
+     MOD_ASSIGN = 315,
+     ADD_ASSIGN = 316,
+     SUB_ASSIGN = 317,
+     LEFT_ASSIGN = 318,
+     RIGHT_ASSIGN = 319,
+     AND_ASSIGN = 320,
+     XOR_ASSIGN = 321,
+     OR_ASSIGN = 322,
+     CSTRUCT = 323,
+     CUNION = 324,
+     CENUM = 325,
+     VA_ARG = 326,
+     VA_DCL = 327,
+     QWARN = 328,
+     QGLOBALS = 329,
+     QMODIFIES = 330,
+     QNOMODS = 331,
+     QCONSTANT = 332,
+     QFUNCTION = 333,
+     QITER = 334,
+     QDEFINES = 335,
+     QUSES = 336,
+     QALLOCATES = 337,
+     QSETS = 338,
+     QRELEASES = 339,
+     QPRECLAUSE = 340,
+     QPOSTCLAUSE = 341,
+     QINVARIANT = 342,
+     QALT = 343,
+     QUNDEF = 344,
+     QKILLED = 345,
+     QENDMACRO = 346,
+     LLMACRO = 347,
+     LLMACROITER = 348,
+     LLMACROEND = 349,
+     TENDMACRO = 350,
+     QDREVEALSTATE = 351,
+     QSWITCHBREAK = 352,
+     QLOOPBREAK = 353,
+     QINNERBREAK = 354,
+     QSAFEBREAK = 355,
+     QINNERCONTINUE = 356,
+     QFALLTHROUGH = 357,
+     QLINTNOTREACHED = 358,
+     QLINTFALLTHROUGH = 359,
+     QLINTFALLTHRU = 360,
+     QARGSUSED = 361,
+     QPRINTFLIKE = 362,
+     QLINTPRINTFLIKE = 363,
+     QSCANFLIKE = 364,
+     QMESSAGELIKE = 365,
+     QNOTREACHED = 366,
+     QCONST = 367,
+     QRESTRICT = 368,
+     QVOLATILE = 369,
+     QINLINE = 370,
+     QEXTENSION = 371,
+     QEXTERN = 372,
+     QSTATIC = 373,
+     QAUTO = 374,
+     QREGISTER = 375,
+     QOUT = 376,
+     QIN = 377,
+     QYIELD = 378,
+     QONLY = 379,
+     QTEMP = 380,
+     QSHARED = 381,
+     QREF = 382,
+     QUNIQUE = 383,
+     QCHECKED = 384,
+     QUNCHECKED = 385,
+     QCHECKEDSTRICT = 386,
+     QCHECKMOD = 387,
+     QKEEP = 388,
+     QKEPT = 389,
+     QPARTIAL = 390,
+     QSPECIAL = 391,
+     QOWNED = 392,
+     QDEPENDENT = 393,
+     QRETURNED = 394,
+     QEXPOSED = 395,
+     QNULL = 396,
+     QOBSERVER = 397,
+     QISNULL = 398,
+     QEXITS = 399,
+     QMAYEXIT = 400,
+     QNEVEREXIT = 401,
+     QTRUEEXIT = 402,
+     QFALSEEXIT = 403,
+     QLONG = 404,
+     QSIGNED = 405,
+     QUNSIGNED = 406,
+     QSHORT = 407,
+     QUNUSED = 408,
+     QSEF = 409,
+     QNOTNULL = 410,
+     QRELNULL = 411,
+     QABSTRACT = 412,
+     QNUMABSTRACT = 413,
+     QCONCRETE = 414,
+     QMUTABLE = 415,
+     QIMMUTABLE = 416,
+     QTRUENULL = 417,
+     QFALSENULL = 418,
+     QEXTERNAL = 419,
+     QREFCOUNTED = 420,
+     QREFS = 421,
+     QNEWREF = 422,
+     QTEMPREF = 423,
+     QKILLREF = 424,
+     QRELDEF = 425,
+     CGCHAR = 426,
+     CBOOL = 427,
+     CINT = 428,
+     CGFLOAT = 429,
+     CDOUBLE = 430,
+     CVOID = 431,
+     QANYTYPE = 432,
+     QINTEGRALTYPE = 433,
+     QUNSIGNEDINTEGRALTYPE = 434,
+     QSIGNEDINTEGRALTYPE = 435,
+     QNULLTERMINATED = 436,
+     QSETBUFFERSIZE = 437,
+     QSETSTRINGLENGTH = 438,
+     QMAXSET = 439,
+     QMAXREAD = 440,
+     QTESTINRANGE = 441,
+     TCAND = 442,
+     IDENTIFIER = 443,
+     NEW_IDENTIFIER = 444,
+     TYPE_NAME_OR_ID = 445,
+     CANNOTATION = 446,
+     CCONSTANT = 447,
+     ITER_NAME = 448,
+     ITER_ENDNAME = 449,
+     TYPE_NAME = 450,
+     METASTATE_NAME = 451
+   };
+#endif
+#define BADTOK 258
+#define SKIPTOK 259
+#define CTOK_ELIPSIS 260
+#define CASE 261
+#define DEFAULT 262
+#define CIF 263
+#define CELSE 264
+#define SWITCH 265
+#define WHILE 266
+#define DO 267
+#define CFOR 268
+#define GOTO 269
+#define CONTINUE 270
+#define BREAK 271
+#define RETURN 272
+#define TSEMI 273
+#define TLBRACE 274
+#define TRBRACE 275
+#define TCOMMA 276
+#define TCOLON 277
+#define TASSIGN 278
+#define TLPAREN 279
+#define TRPAREN 280
+#define TLSQBR 281
+#define TRSQBR 282
+#define TDOT 283
+#define TAMPERSAND 284
+#define TEXCL 285
+#define TTILDE 286
+#define TMINUS 287
+#define TPLUS 288
+#define TMULT 289
+#define TDIV 290
+#define TPERCENT 291
+#define TLT 292
+#define TGT 293
+#define TCIRC 294
+#define TBAR 295
+#define TQUEST 296
+#define CSIZEOF 297
+#define CALIGNOF 298
+#define CTYPEOF 299
+#define ARROW_OP 300
+#define CTYPEDEF 301
+#define COFFSETOF 302
+#define INC_OP 303
+#define DEC_OP 304
+#define LEFT_OP 305
+#define RIGHT_OP 306
+#define LE_OP 307
+#define GE_OP 308
+#define EQ_OP 309
+#define NE_OP 310
+#define AND_OP 311
+#define OR_OP 312
+#define MUL_ASSIGN 313
+#define DIV_ASSIGN 314
+#define MOD_ASSIGN 315
+#define ADD_ASSIGN 316
+#define SUB_ASSIGN 317
+#define LEFT_ASSIGN 318
+#define RIGHT_ASSIGN 319
+#define AND_ASSIGN 320
+#define XOR_ASSIGN 321
+#define OR_ASSIGN 322
+#define CSTRUCT 323
+#define CUNION 324
+#define CENUM 325
+#define VA_ARG 326
+#define VA_DCL 327
+#define QWARN 328
+#define QGLOBALS 329
+#define QMODIFIES 330
+#define QNOMODS 331
+#define QCONSTANT 332
+#define QFUNCTION 333
+#define QITER 334
+#define QDEFINES 335
+#define QUSES 336
+#define QALLOCATES 337
+#define QSETS 338
+#define QRELEASES 339
+#define QPRECLAUSE 340
+#define QPOSTCLAUSE 341
+#define QINVARIANT 342
+#define QALT 343
+#define QUNDEF 344
+#define QKILLED 345
+#define QENDMACRO 346
+#define LLMACRO 347
+#define LLMACROITER 348
+#define LLMACROEND 349
+#define TENDMACRO 350
+#define QDREVEALSTATE 351
+#define QSWITCHBREAK 352
+#define QLOOPBREAK 353
+#define QINNERBREAK 354
+#define QSAFEBREAK 355
+#define QINNERCONTINUE 356
+#define QFALLTHROUGH 357
+#define QLINTNOTREACHED 358
+#define QLINTFALLTHROUGH 359
+#define QLINTFALLTHRU 360
+#define QARGSUSED 361
+#define QPRINTFLIKE 362
+#define QLINTPRINTFLIKE 363
+#define QSCANFLIKE 364
+#define QMESSAGELIKE 365
+#define QNOTREACHED 366
+#define QCONST 367
+#define QRESTRICT 368
+#define QVOLATILE 369
+#define QINLINE 370
+#define QEXTENSION 371
+#define QEXTERN 372
+#define QSTATIC 373
+#define QAUTO 374
+#define QREGISTER 375
+#define QOUT 376
+#define QIN 377
+#define QYIELD 378
+#define QONLY 379
+#define QTEMP 380
+#define QSHARED 381
+#define QREF 382
+#define QUNIQUE 383
+#define QCHECKED 384
+#define QUNCHECKED 385
+#define QCHECKEDSTRICT 386
+#define QCHECKMOD 387
+#define QKEEP 388
+#define QKEPT 389
+#define QPARTIAL 390
+#define QSPECIAL 391
+#define QOWNED 392
+#define QDEPENDENT 393
+#define QRETURNED 394
+#define QEXPOSED 395
+#define QNULL 396
+#define QOBSERVER 397
+#define QISNULL 398
+#define QEXITS 399
+#define QMAYEXIT 400
+#define QNEVEREXIT 401
+#define QTRUEEXIT 402
+#define QFALSEEXIT 403
+#define QLONG 404
+#define QSIGNED 405
+#define QUNSIGNED 406
+#define QSHORT 407
+#define QUNUSED 408
+#define QSEF 409
+#define QNOTNULL 410
+#define QRELNULL 411
+#define QABSTRACT 412
+#define QNUMABSTRACT 413
+#define QCONCRETE 414
+#define QMUTABLE 415
+#define QIMMUTABLE 416
+#define QTRUENULL 417
+#define QFALSENULL 418
+#define QEXTERNAL 419
+#define QREFCOUNTED 420
+#define QREFS 421
+#define QNEWREF 422
+#define QTEMPREF 423
+#define QKILLREF 424
+#define QRELDEF 425
+#define CGCHAR 426
+#define CBOOL 427
+#define CINT 428
+#define CGFLOAT 429
+#define CDOUBLE 430
+#define CVOID 431
+#define QANYTYPE 432
+#define QINTEGRALTYPE 433
+#define QUNSIGNEDINTEGRALTYPE 434
+#define QSIGNEDINTEGRALTYPE 435
+#define QNULLTERMINATED 436
+#define QSETBUFFERSIZE 437
+#define QSETSTRINGLENGTH 438
+#define QMAXSET 439
+#define QMAXREAD 440
+#define QTESTINRANGE 441
+#define TCAND 442
+#define IDENTIFIER 443
+#define NEW_IDENTIFIER 444
+#define TYPE_NAME_OR_ID 445
+#define CANNOTATION 446
+#define CCONSTANT 447
+#define ITER_NAME 448
+#define ITER_ENDNAME 449
+#define TYPE_NAME 450
+#define METASTATE_NAME 451
+
+
+
+
+/* Copy the first part of user declarations.  */
 
 
 /*
 
 
 /*
@@ -309,9 +560,23 @@ extern void yyerror (char *);
 # endif
 
 
 # endif
 
 
-#ifndef cgrammar_YYSTYPE
-typedef union
-{
+
+/* Enabling traces.  */
+#ifndef YYDEBUG
+# define YYDEBUG 1
+#endif
+
+/* Enabling verbose error messages.  */
+#ifdef YYERROR_VERBOSE
+# undef YYERROR_VERBOSE
+# define YYERROR_VERBOSE 1
+#else
+# define YYERROR_VERBOSE 0
+#endif
+
+#if ! defined (cgrammar_YYSTYPE) && ! defined (cgrammar_YYSTYPE_IS_DECLARED)
+
+typedef union cgrammar_YYSTYPE {
   lltok tok;
   int count;
   qual typequal;
   lltok tok;
   int count;
   qual typequal;
@@ -359,25 +624,139 @@ typedef union
   constraintList conL;
   constraintExpr conE;
   /* drl */  
   constraintList conL;
   constraintExpr conE;
   /* drl */  
-} yystype;
-# define cgrammar_YYSTYPE yystype
+} cgrammar_YYSTYPE;
+/* Line 191 of yacc.c.  */
+
+# define yystype cgrammar_YYSTYPE /* obsolescent; will be withdrawn */
+# define cgrammar_YYSTYPE_IS_DECLARED 1
 # define cgrammar_YYSTYPE_IS_TRIVIAL 1
 #endif
 # define cgrammar_YYSTYPE_IS_TRIVIAL 1
 #endif
-#ifndef YYDEBUG
-# define YYDEBUG 1
-#endif
 
 
 
 
 
 
-#define        YYFINAL         1256
-#define        YYFLAG          -32768
-#define        YYNTBASE        197
+/* Copy the second part of user declarations.  */
+
+
+/* Line 214 of yacc.c.  */
+
+
+#if ! defined (yyoverflow) || YYERROR_VERBOSE
+
+/* The parser invokes alloca or malloc; define the necessary symbols.  */
+
+# if YYSTACK_USE_ALLOCA
+#  define YYSTACK_ALLOC alloca
+# else
+#  ifndef YYSTACK_USE_ALLOCA
+#   if defined (alloca) || defined (_ALLOCA_H)
+#    define YYSTACK_ALLOC alloca
+#   else
+#    ifdef __GNUC__
+#     define YYSTACK_ALLOC __builtin_alloca
+#    endif
+#   endif
+#  endif
+# endif
+
+# ifdef YYSTACK_ALLOC
+   /* Pacify GCC's `empty if-body' warning. */
+#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
+# else
+#  if defined (__STDC__) || defined (__cplusplus)
+#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
+#   define YYSIZE_T size_t
+#  endif
+#  define YYSTACK_ALLOC malloc
+#  define YYSTACK_FREE free
+# endif
+#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
+
+
+#if (! defined (yyoverflow) \
+     && (! defined (__cplusplus) \
+        || (cgrammar_YYSTYPE_IS_TRIVIAL)))
+
+/* A type that is properly aligned for any stack member.  */
+union yyalloc
+{
+  short yyss;
+  cgrammar_YYSTYPE yyvs;
+  };
+
+/* The size of the maximum gap between one aligned stack and the next.  */
+# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
+
+/* The size of an array large to enough to hold all stacks, each with
+   N elements.  */
+# define YYSTACK_BYTES(N) \
+     ((N) * (sizeof (short) + sizeof (cgrammar_YYSTYPE))                               \
+      + YYSTACK_GAP_MAXIMUM)
+
+/* Copy COUNT objects from FROM to TO.  The source and destination do
+   not overlap.  */
+# ifndef YYCOPY
+#  if 1 < __GNUC__
+#   define YYCOPY(To, From, Count) \
+      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
+#  else
+#   define YYCOPY(To, From, Count)             \
+      do                                       \
+       {                                       \
+         register YYSIZE_T yyi;                \
+         for (yyi = 0; yyi < (Count); yyi++)   \
+           (To)[yyi] = (From)[yyi];            \
+       }                                       \
+      while (0)
+#  endif
+# endif
+
+/* Relocate STACK from its old location to the new one.  The
+   local variables YYSIZE and YYSTACKSIZE give the old and new number of
+   elements in the stack, and YYPTR gives the new location of the
+   stack.  Advance YYPTR to a properly aligned location for the next
+   stack.  */
+# define YYSTACK_RELOCATE(Stack)                                       \
+    do                                                                 \
+      {                                                                        \
+       YYSIZE_T yynewbytes;                                            \
+       YYCOPY (&yyptr->Stack, Stack, yysize);                          \
+       Stack = &yyptr->Stack;                                          \
+       yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
+       yyptr += yynewbytes / sizeof (*yyptr);                          \
+      }                                                                        \
+    while (0)
+
+#endif
 
 
-/* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */
-#define YYTRANSLATE(x) ((unsigned)(x) <= 450 ? yytranslate[x] : 468)
+#if defined (__STDC__) || defined (__cplusplus)
+   typedef signed char yysigned_char;
+#else
+   typedef short yysigned_char;
+#endif
 
 
-/* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */
-static const short yytranslate[] =
+/* YYFINAL -- State number of the termination state. */
+#define YYFINAL  262
+/* YYLAST -- Last index in YYTABLE.  */
+#define YYLAST   7115
+
+/* YYNTOKENS -- Number of terminals. */
+#define YYNTOKENS  197
+/* YYNNTS -- Number of nonterminals. */
+#define YYNNTS  272
+/* YYNRULES -- Number of rules. */
+#define YYNRULES  713
+/* YYNRULES -- Number of states. */
+#define YYNSTATES  1256
+
+/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
+#define YYUNDEFTOK  2
+#define YYMAXUTOK   451
+
+#define YYTRANSLATE(YYX)                                               \
+  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
+
+/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
+static const unsigned char yytranslate[] =
 {
        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 {
        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
@@ -404,422 +783,422 @@ static const short yytranslate[] =
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     1,     3,     4,     5,
-       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
-      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
-      26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
-      36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
-      46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
-      56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
-      66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
-      76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
-      86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
-      96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
-     106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
-     116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
-     126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
-     136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
-     146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
-     156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
-     166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
-     176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
-     186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
-     196
+       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
+       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
+      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
+      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
+      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
+      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
+      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
+      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
+      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
+      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
+      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
+     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
+     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
+     125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
+     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
+     145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
+     155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
+     165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
+     175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
+     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
+     195,   196
 };
 
 #if YYDEBUG
 };
 
 #if YYDEBUG
-static const short yyprhs[] =
+/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
+   YYRHS.  */
+static const unsigned short yyprhs[] =
 {
 {
-       0,     0,     1,     3,     5,     8,    11,    13,    15,    17,
-      19,    21,    23,    25,    34,    46,    47,    53,    55,    59,
-      61,    64,    66,    73,    77,    84,    85,    92,    93,   101,
-     103,   110,   114,   121,   122,   129,   130,   138,   139,   140,
-     151,   155,   159,   163,   166,   168,   172,   173,   178,   179,
-     184,   186,   190,   192,   194,   196,   200,   202,   206,   208,
-     210,   212,   214,   216,   218,   223,   229,   231,   233,   235,
-     237,   241,   246,   249,   253,   257,   261,   263,   265,   267,
-     268,   271,   272,   275,   277,   279,   281,   283,   285,   287,
-     289,   291,   293,   295,   297,   299,   302,   303,   308,   310,
-     313,   314,   318,   320,   324,   326,   328,   329,   332,   336,
-     339,   341,   345,   348,   349,   352,   354,   356,   358,   360,
-     362,   364,   366,   368,   370,   372,   374,   376,   378,   380,
-     382,   384,   388,   389,   393,   394,   395,   400,   403,   406,
-     408,   410,   412,   414,   418,   423,   426,   430,   434,   438,
-     440,   442,   444,   448,   450,   452,   456,   461,   464,   468,
-     472,   476,   477,   479,   481,   485,   487,   489,   491,   495,
-     497,   499,   500,   505,   507,   512,   516,   521,   528,   534,
-     540,   543,   546,   554,   556,   560,   562,   565,   568,   571,
-     574,   577,   580,   583,   586,   590,   592,   596,   601,   603,
-     613,   614,   618,   619,   620,   625,   628,   633,   636,   638,
-     643,   645,   649,   653,   657,   659,   663,   667,   669,   673,
-     677,   679,   683,   687,   691,   695,   697,   701,   705,   707,
-     711,   713,   717,   719,   723,   725,   726,   731,   733,   734,
-     739,   741,   742,   743,   751,   753,   757,   761,   765,   769,
-     773,   777,   781,   785,   789,   793,   797,   799,   803,   804,
-     806,   808,   810,   812,   814,   818,   819,   829,   830,   842,
-     844,   846,   849,   850,   857,   858,   867,   872,   877,   878,
-     879,   882,   884,   889,   892,   894,   899,   900,   905,   907,
-     911,   916,   919,   922,   925,   927,   930,   934,   937,   939,
-     943,   945,   947,   949,   951,   953,   956,   957,   964,   967,
-     970,   971,   978,   979,   985,   987,   989,   991,   993,   995,
-     997,   999,  1001,  1003,  1005,  1007,  1009,  1011,  1013,  1015,
-    1017,  1019,  1021,  1023,  1025,  1027,  1029,  1031,  1033,  1035,
-    1037,  1039,  1041,  1043,  1045,  1047,  1049,  1051,  1053,  1055,
-    1057,  1059,  1061,  1063,  1065,  1067,  1069,  1071,  1073,  1075,
-    1077,  1079,  1081,  1083,  1085,  1087,  1089,  1091,  1094,  1097,
+       0,     0,     3,     4,     6,     8,    11,    14,    16,    18,
+      20,    22,    24,    26,    28,    37,    49,    50,    56,    58,
+      62,    64,    67,    69,    76,    80,    87,    88,    95,    96,
+     104,   106,   113,   117,   124,   125,   132,   133,   141,   142,
+     143,   154,   158,   162,   166,   169,   171,   175,   176,   181,
+     182,   187,   189,   193,   195,   197,   199,   203,   205,   209,
+     211,   213,   215,   217,   219,   221,   226,   232,   234,   236,
+     238,   240,   244,   249,   252,   256,   260,   264,   266,   268,
+     270,   271,   274,   275,   278,   280,   282,   284,   286,   288,
+     290,   292,   294,   296,   298,   300,   302,   305,   306,   311,
+     313,   316,   317,   321,   323,   327,   329,   331,   332,   335,
+     339,   342,   344,   348,   351,   352,   355,   357,   359,   361,
+     363,   365,   367,   369,   371,   373,   375,   377,   379,   381,
+     383,   385,   387,   391,   392,   396,   397,   398,   403,   406,
+     409,   411,   413,   415,   417,   421,   426,   429,   433,   437,
+     441,   443,   445,   447,   451,   453,   455,   459,   464,   467,
+     471,   475,   479,   480,   482,   484,   488,   490,   492,   494,
+     498,   500,   502,   503,   508,   510,   515,   519,   524,   531,
+     537,   543,   546,   549,   557,   559,   563,   565,   568,   571,
+     574,   577,   580,   583,   586,   589,   593,   595,   599,   604,
+     606,   616,   617,   621,   622,   623,   628,   631,   636,   639,
+     641,   646,   648,   652,   656,   660,   662,   666,   670,   672,
+     676,   680,   682,   686,   690,   694,   698,   700,   704,   708,
+     710,   714,   716,   720,   722,   726,   728,   729,   734,   736,
+     737,   742,   744,   745,   746,   754,   756,   760,   764,   768,
+     772,   776,   780,   784,   788,   792,   796,   800,   802,   806,
+     807,   809,   811,   813,   815,   817,   821,   822,   832,   833,
+     845,   847,   849,   852,   853,   860,   861,   870,   875,   880,
+     881,   882,   885,   887,   892,   895,   897,   902,   903,   908,
+     910,   914,   919,   922,   925,   928,   930,   933,   937,   940,
+     942,   946,   948,   950,   952,   954,   956,   959,   960,   967,
+     970,   973,   974,   981,   982,   988,   990,   992,   994,   996,
+     998,  1000,  1002,  1004,  1006,  1008,  1010,  1012,  1014,  1016,
+    1018,  1020,  1022,  1024,  1026,  1028,  1030,  1032,  1034,  1036,
+    1038,  1040,  1042,  1044,  1046,  1048,  1050,  1052,  1054,  1056,
+    1058,  1060,  1062,  1064,  1066,  1068,  1070,  1072,  1074,  1076,
+    1078,  1080,  1082,  1084,  1086,  1088,  1090,  1092,  1094,  1097,
     1100,  1103,  1106,  1109,  1112,  1115,  1118,  1121,  1124,  1127,
     1130,  1133,  1136,  1139,  1142,  1145,  1148,  1151,  1154,  1157,
     1100,  1103,  1106,  1109,  1112,  1115,  1118,  1121,  1124,  1127,
     1130,  1133,  1136,  1139,  1142,  1145,  1148,  1151,  1154,  1157,
-    1160,  1163,  1166,  1169,  1173,  1175,  1180,  1182,  1186,  1189,
-    1192,  1195,  1196,  1198,  1199,  1200,  1201,  1214,  1215,  1216,
-    1228,  1235,  1242,  1243,  1244,  1255,  1256,  1257,  1268,  1274,
-    1280,  1285,  1290,  1291,  1293,  1295,  1298,  1304,  1308,  1311,
-    1316,  1318,  1322,  1327,  1334,  1335,  1344,  1349,  1351,  1355,
-    1358,  1360,  1365,  1367,  1369,  1372,  1375,  1377,  1380,  1382,
-    1385,  1387,  1389,  1391,  1393,  1396,  1398,  1401,  1404,  1408,
-    1410,  1414,  1416,  1420,  1422,  1424,  1428,  1429,  1432,  1433,
-    1438,  1443,  1445,  1447,  1450,  1452,  1454,  1457,  1458,  1460,
-    1466,  1469,  1473,  1477,  1482,  1486,  1491,  1496,  1502,  1504,
-    1506,  1508,  1510,  1512,  1514,  1516,  1518,  1520,  1522,  1527,
-    1529,  1531,  1533,  1536,  1539,  1547,  1554,  1557,  1558,  1559,
-    1570,  1571,  1578,  1580,  1582,  1584,  1586,  1589,  1591,  1593,
-    1595,  1597,  1599,  1601,  1603,  1607,  1609,  1610,  1614,  1617,
-    1620,  1622,  1624,  1626,  1628,  1630,  1632,  1634,  1636,  1638,
-    1640,  1644,  1646,  1648,  1650,  1653,  1656,  1657,  1660,  1661,
-    1666,  1667,  1674,  1675,  1679,  1680,  1686,  1690,  1693,  1697,
-    1698,  1699,  1700,  1701,  1702,  1704,  1707,  1710,  1714,  1717,
-    1721,  1725,  1730,  1733,  1736,  1740,  1744,  1749,  1751,  1754,
-    1756,  1759,  1761,  1765,  1767,  1772,  1774,  1777,  1779,  1782,
-    1784,  1787,  1789,  1794,  1797,  1798,  1804,  1805,  1812,  1817,
-    1822,  1823,  1824,  1835,  1837,  1838,  1843,  1845,  1847,  1849,
-    1851,  1853,  1856,  1858,  1862,  1864,  1869,  1873,  1878,  1885,
-    1891,  1897,  1900,  1903,  1905,  1908,  1911,  1914,  1917,  1920,
-    1923,  1926,  1929,  1931,  1933,  1938,  1940,  1944,  1948,  1952,
-    1954,  1958,  1962,  1964,  1968,  1972,  1974,  1978,  1982,  1986,
-    1990,  1992,  1996,  2000,  2002,  2006,  2008,  2012,  2014,  2018,
-    2020,  2024,  2026,  2030,  2032,  2033,  2034,  2042,  2044,  2048,
-    2052,  2056,  2060,  2064,  2068,  2072,  2076,  2080,  2084,  2088,
-    2090,  2091,  2093,  2096,  2104,  2107,  2110,  2118,  2125,  2128,
-    2132,  2135,  2139,  2142,  2146,  2150,  2154,  2158,  2161,  2165,
-    2166,  2168,  2169,  2171,  2173,  2175,  2177,  2179,  2181,  2183,
-    2185,  2187,  2192
+    1160,  1163,  1166,  1169,  1172,  1176,  1178,  1183,  1185,  1189,
+    1192,  1195,  1198,  1199,  1201,  1202,  1203,  1204,  1217,  1218,
+    1219,  1231,  1238,  1245,  1246,  1247,  1258,  1259,  1260,  1271,
+    1277,  1283,  1288,  1293,  1294,  1296,  1298,  1301,  1307,  1311,
+    1314,  1319,  1321,  1325,  1330,  1337,  1338,  1347,  1352,  1354,
+    1358,  1361,  1363,  1368,  1370,  1372,  1375,  1378,  1380,  1383,
+    1385,  1388,  1390,  1392,  1394,  1396,  1399,  1401,  1404,  1407,
+    1411,  1413,  1417,  1419,  1423,  1425,  1427,  1431,  1432,  1435,
+    1436,  1441,  1446,  1448,  1450,  1453,  1455,  1457,  1460,  1461,
+    1463,  1469,  1472,  1476,  1480,  1485,  1489,  1494,  1499,  1505,
+    1507,  1509,  1511,  1513,  1515,  1517,  1519,  1521,  1523,  1525,
+    1530,  1532,  1534,  1536,  1539,  1542,  1550,  1557,  1560,  1561,
+    1562,  1573,  1574,  1581,  1583,  1585,  1587,  1589,  1592,  1594,
+    1596,  1598,  1600,  1602,  1604,  1606,  1610,  1612,  1613,  1617,
+    1620,  1623,  1625,  1627,  1629,  1631,  1633,  1635,  1637,  1639,
+    1641,  1643,  1647,  1649,  1651,  1653,  1656,  1659,  1660,  1663,
+    1664,  1669,  1670,  1677,  1678,  1682,  1683,  1689,  1693,  1696,
+    1700,  1701,  1702,  1703,  1704,  1705,  1707,  1710,  1713,  1717,
+    1720,  1724,  1728,  1733,  1736,  1739,  1743,  1747,  1752,  1754,
+    1757,  1759,  1762,  1764,  1768,  1770,  1775,  1777,  1780,  1782,
+    1785,  1787,  1790,  1792,  1797,  1800,  1801,  1807,  1808,  1815,
+    1820,  1825,  1826,  1827,  1838,  1840,  1841,  1846,  1848,  1850,
+    1852,  1854,  1856,  1859,  1861,  1865,  1867,  1872,  1876,  1881,
+    1888,  1894,  1900,  1903,  1906,  1908,  1911,  1914,  1917,  1920,
+    1923,  1926,  1929,  1932,  1934,  1936,  1941,  1943,  1947,  1951,
+    1955,  1957,  1961,  1965,  1967,  1971,  1975,  1977,  1981,  1985,
+    1989,  1993,  1995,  1999,  2003,  2005,  2009,  2011,  2015,  2017,
+    2021,  2023,  2027,  2029,  2033,  2035,  2036,  2037,  2045,  2047,
+    2051,  2055,  2059,  2063,  2067,  2071,  2075,  2079,  2083,  2087,
+    2091,  2093,  2094,  2096,  2099,  2107,  2110,  2113,  2121,  2128,
+    2131,  2135,  2138,  2142,  2145,  2149,  2153,  2157,  2161,  2164,
+    2168,  2169,  2171,  2172,  2174,  2176,  2178,  2180,  2182,  2184,
+    2186,  2188,  2190,  2195
 };
 };
+
+/* YYRHS -- A `-1'-separated list of the rules' RHS. */
 static const short yyrhs[] =
 {
 static const short yyrhs[] =
 {
-      -1,   198,     0,   199,     0,   198,   199,     0,   260,   463,
-       0,   200,     0,   201,     0,   211,     0,   214,     0,   300,
-       0,    18,     0,     1,     0,    77,   344,   358,   368,   358,
-     463,   309,    91,     0,    77,   344,   358,   368,   358,    23,
-     309,   316,   315,   463,    91,     0,     0,    78,   202,   203,
-     463,    91,     0,   204,     0,   344,   358,   204,     0,   208,
-       0,   372,   208,     0,   466,     0,   309,    24,   358,   368,
-     309,    25,     0,   205,    26,    27,     0,   205,    26,   309,
-     299,    27,   358,     0,     0,   205,   310,    24,    25,   206,
-     232,     0,     0,   205,   310,    24,   369,    25,   207,   232,
-       0,   466,     0,   309,    24,   358,   204,   309,    25,     0,
-     208,    26,    27,     0,   208,    26,   309,   299,    27,   358,
-       0,     0,   208,   310,    24,    25,   209,   233,     0,     0,
-     208,   310,    24,   369,    25,   210,   233,     0,     0,     0,
-      79,   466,    24,   369,    25,   212,   233,   213,   463,    91,
-       0,    92,   400,    95,     0,    93,   386,    95,     0,    94,
-     387,    95,     0,    92,    95,     0,   255,     0,   217,    23,
-     220,     0,     0,   229,   218,    22,   221,     0,     0,     5,
-     219,    22,   221,     0,   217,     0,   217,    40,   220,     0,
-     196,     0,   187,     0,    56,     0,   224,   222,   223,     0,
-     224,     0,   227,   226,   227,     0,   184,     0,   185,     0,
-      53,     0,    52,     0,    54,     0,   228,     0,   230,    24,
-     227,    25,     0,    24,   227,   231,   227,    25,     0,   229,
-       0,   192,     0,   465,     0,   189,     0,   229,    26,    27,
-       0,   229,    26,   192,    27,     0,    34,   229,     0,    24,
-     229,    25,     0,   229,    28,   466,     0,   229,    45,   466,
-       0,   225,     0,    33,     0,    32,     0,     0,   234,   232,
-       0,     0,   235,   233,     0,   236,     0,   240,     0,   239,
-       0,   322,     0,   325,     0,   246,     0,   237,     0,   241,
-       0,   239,     0,   323,     0,   327,     0,   247,     0,   237,
-      91,     0,     0,    74,   238,   248,   463,     0,    76,     0,
-     241,    91,     0,     0,    75,   242,   261,     0,   244,     0,
-     244,    40,   243,     0,   189,     0,   246,     0,     0,   247,
-      91,     0,    73,   243,   439,     0,    73,   243,     0,   249,
-       0,   248,    21,   249,     0,   250,   251,     0,     0,   252,
-     250,     0,   465,     0,   189,     0,   300,     0,    89,     0,
-      90,     0,   121,     0,   122,     0,   135,     0,    80,     0,
-      81,     0,    82,     0,    83,     0,    84,     0,    85,     0,
-      86,     0,   368,     0,   344,   358,   368,     0,     0,    19,
-     257,   417,     0,     0,     0,   258,   421,   259,   410,     0,
-     215,   256,     0,   264,   463,     0,   463,     0,   465,     0,
-     189,     0,   190,     0,   262,    26,    27,     0,   262,    26,
-     263,    27,     0,    34,   262,     0,    24,   262,    25,     0,
-     262,    28,   466,     0,   262,    45,   466,     0,   262,     0,
-     439,     0,   262,     0,   264,    21,   262,     0,   465,     0,
-     189,     0,   265,    26,    27,     0,   265,    26,   263,    27,
-       0,    34,   265,     0,    24,   265,    25,     0,   265,    28,
-     466,     0,   265,    45,   466,     0,     0,   267,     0,   265,
-       0,   267,    21,   265,     0,   465,     0,   189,     0,   439,
-       0,    24,   297,    25,     0,   190,     0,   116,     0,     0,
-      24,   269,   410,    25,     0,   268,     0,   270,    26,   297,
-      27,     0,   270,    24,    25,     0,   270,    24,   271,    25,
-       0,    71,    24,   296,    21,   380,    25,     0,   270,   358,
-      28,   466,   309,     0,   270,   358,    45,   466,   309,     0,
-     270,    48,     0,   270,    49,     0,    24,   380,    25,    19,
-     422,   464,    20,     0,   296,     0,   271,    21,   296,     0,
-     270,     0,    48,   272,     0,    49,   272,     0,    29,   280,
-       0,    34,   280,     0,    33,   280,     0,    32,   280,     0,
-      31,   280,     0,    30,   280,     0,   277,   275,   278,     0,
-     274,     0,   273,    28,   466,     0,   273,    26,   297,    27,
-       0,   466,     0,    47,   309,    24,   380,   358,    21,   273,
-      25,   309,     0,     0,   309,   276,   279,     0,     0,     0,
-      42,    24,   380,    25,     0,    42,   272,     0,    43,    24,
-     380,    25,     0,    43,   272,     0,   272,     0,    24,   380,
-      25,   280,     0,   280,     0,   281,    34,   280,     0,   281,
-      35,   280,     0,   281,    36,   280,     0,   281,     0,   282,
-      33,   281,     0,   282,    32,   281,     0,   282,     0,   283,
-      50,   282,     0,   283,    51,   282,     0,   283,     0,   284,
-      37,   283,     0,   284,    38,   283,     0,   284,    52,   283,
-       0,   284,    53,   283,     0,   284,     0,   285,    54,   284,
-       0,   285,    55,   284,     0,   285,     0,   286,    29,   285,
-       0,   286,     0,   287,    39,   286,     0,   287,     0,   288,
-      40,   287,     0,   288,     0,     0,   289,    56,   290,   288,
-       0,   289,     0,     0,   291,    57,   292,   289,     0,   291,
-       0,     0,     0,   291,    41,   294,   297,    22,   295,   293,
-       0,   293,     0,   272,    23,   296,     0,   272,    58,   296,
-       0,   272,    59,   296,     0,   272,    60,   296,     0,   272,
-      61,   296,     0,   272,    62,   296,     0,   272,    63,   296,
-       0,   272,    64,   296,     0,   272,    65,   296,     0,   272,
-      66,   296,     0,   272,    67,   296,     0,   296,     0,   297,
-      21,   296,     0,     0,   297,     0,   293,     0,   301,     0,
-      72,     0,   307,     0,   344,   309,    18,     0,     0,   344,
-     358,   368,   358,   302,   309,   315,    18,   309,     0,     0,
-     344,   358,   368,   358,    23,   303,   309,   316,   315,    18,
-     309,     0,   305,     0,   195,     0,   368,   358,     0,     0,
-     368,   358,    23,   306,   309,   316,     0,     0,    46,   344,
-     308,   358,   313,   309,   245,    18,     0,    46,   344,   309,
-      18,     0,    46,   311,   309,    18,     0,     0,     0,   312,
-     309,     0,   305,     0,   311,    21,   358,   305,     0,   314,
-     309,     0,   304,     0,   313,    21,   358,   304,     0,     0,
-     315,    21,   358,   305,     0,   296,     0,    19,   320,    20,
-       0,    19,   320,    21,    20,     0,   317,   316,     0,   318,
-      23,     0,   466,    22,     0,   319,     0,   318,   319,     0,
-      26,   299,    27,     0,    28,   466,     0,   316,     0,   320,
-      21,   316,     0,   117,     0,   115,     0,   118,     0,   119,
-       0,   120,     0,   323,    91,     0,     0,   253,   358,   324,
-     267,   463,   309,     0,   327,    91,     0,   254,   358,     0,
-       0,   326,   333,   328,   266,   463,   309,     0,     0,   326,
-     329,   330,   463,   309,     0,   223,     0,   216,     0,   144,
-       0,   145,     0,   147,     0,   148,     0,   146,     0,   129,
-       0,   132,     0,   130,     0,   131,     0,   137,     0,   138,
-       0,   123,     0,   125,     0,   124,     0,   133,     0,   134,
-       0,   126,     0,   128,     0,   141,     0,   143,     0,   156,
-       0,   155,     0,   140,     0,   142,     0,   181,     0,   191,
-       0,   139,     0,   154,     0,   153,     0,   164,     0,   162,
-       0,   163,     0,   157,     0,   158,     0,   159,     0,   160,
-       0,   161,     0,   165,     0,   166,     0,   169,     0,   170,
-       0,   167,     0,   168,     0,   152,     0,   149,     0,   150,
-       0,   151,     0,   121,     0,   122,     0,   135,     0,   136,
-       0,   112,   309,     0,   114,   309,     0,   113,   309,     0,
-     340,   309,     0,   333,   309,     0,   331,   309,     0,   334,
-     309,     0,   332,   309,     0,   336,   309,     0,   335,   309,
-       0,   337,   309,     0,   338,   309,     0,   171,   358,     0,
-     173,   358,     0,   172,   358,     0,   174,   358,     0,   175,
-     358,     0,   176,   358,     0,   177,   358,     0,   178,   358,
-       0,   179,   358,     0,   180,   358,     0,   467,   358,     0,
-     349,   358,     0,   363,   358,     0,   339,   358,     0,   309,
-     344,   309,     0,   346,     0,   346,    88,   345,    91,     0,
-     380,     0,   380,    21,   345,     0,   321,   347,     0,   341,
-     347,     0,   342,   347,     0,     0,   344,     0,     0,     0,
-       0,   358,    68,   466,   309,    19,   350,   414,   359,   415,
-     351,    20,   348,     0,     0,     0,   358,    69,   466,   309,
-      19,   352,   414,   359,   415,   353,    20,     0,   358,    68,
-     466,   309,    19,    20,     0,   358,    69,   466,   309,    19,
-      20,     0,     0,     0,   358,    68,   309,    19,   354,   414,
-     359,   415,   355,    20,     0,     0,     0,   358,    69,   309,
-      19,   356,   414,   359,   415,   357,    20,     0,   358,    68,
-     309,    19,    20,     0,   358,    69,   309,    19,    20,     0,
-     358,    68,   466,   358,     0,   358,    69,   466,   358,     0,
-       0,   360,     0,   214,     0,   359,   360,     0,   344,   358,
-     361,   309,    18,     0,   344,   309,    18,     0,   362,   358,
-       0,   361,    21,   362,   358,     0,   368,     0,    22,   309,
-     299,     0,   368,    22,   309,   299,     0,   358,    70,    19,
-     365,    20,   309,     0,     0,   358,    70,   466,    19,   364,
-     365,    20,   309,     0,   358,    70,   466,   309,     0,   366,
-       0,   365,    21,   366,     0,   365,    21,     0,   466,     0,
-     466,    23,   309,   299,     0,   205,     0,   382,     0,   372,
-     195,     0,   372,   367,     0,   205,     0,   372,   205,     0,
-     375,     0,   358,   373,     0,   112,     0,   113,     0,   114,
-       0,   370,     0,   371,   370,     0,    34,     0,    34,   371,
-       0,    34,   372,     0,    34,   371,   372,     0,   374,     0,
-     374,    21,     5,     0,   466,     0,   374,    21,   466,     0,
-       5,     0,   376,     0,   376,    21,     5,     0,     0,   377,
-     379,     0,     0,   376,    21,   378,   379,     0,   309,   344,
-     367,   309,     0,   466,     0,   343,     0,   343,   381,     0,
-     372,     0,   383,     0,   372,   383,     0,     0,   383,     0,
-     309,    24,   358,   381,    25,     0,    26,    27,     0,    26,
-     299,    27,     0,   383,    26,    27,     0,   383,    26,   299,
-      27,     0,   309,    24,    25,     0,   309,    24,   375,    25,
-       0,   383,   309,    24,    25,     0,   383,   309,    24,   375,
-      25,     0,   402,     0,   404,     0,   407,     0,   410,     0,
-     425,     0,   428,     0,   460,     0,   433,     0,   462,     0,
-     385,     0,    96,    24,   297,    25,     0,   388,     0,   386,
-       0,   395,     0,   388,   395,     0,   432,   388,     0,   459,
-     401,    11,    24,   297,    25,    18,     0,   459,   401,    11,
-      24,   297,    25,     0,   390,   395,     0,     0,     0,    13,
-      24,   298,    18,   298,    18,   391,   298,   392,    25,     0,
-       0,   193,   412,    24,   394,   436,    25,     0,   194,     0,
-     402,     0,   404,     0,   407,     0,   398,   421,     0,   398,
-       0,   399,     0,   425,     0,   396,     0,   389,     0,   393,
-       0,   462,     0,    24,   395,    25,     0,     1,     0,     0,
-     427,   397,   395,     0,   412,    19,     0,   416,    20,     0,
-     401,     0,   420,     0,   402,     0,   404,     0,   407,     0,
-     411,     0,   426,     0,   428,     0,   433,     0,   461,     0,
-      24,   401,    25,     0,   462,     0,   385,     0,     1,     0,
-     466,    22,     0,   111,   384,     0,     0,   102,   403,     0,
-       0,     6,   299,   405,    22,     0,     0,   102,   403,     6,
-     299,   406,    22,     0,     0,     7,   408,    22,     0,     0,
-     102,   403,     7,   409,    22,     0,    24,   410,    25,     0,
-     412,   418,     0,   412,   419,   413,     0,     0,     0,     0,
-       0,     0,    20,     0,   111,    20,     0,   424,    20,     0,
-     424,   111,    20,     0,   421,    20,     0,   421,   111,    20,
-       0,   421,   424,    20,     0,   421,   424,   111,    20,     0,
-      19,   417,     0,    19,    20,     0,    19,   420,    20,     0,
-      19,   421,    20,     0,    19,   421,   424,    20,     0,   401,
-       0,   420,   401,     0,   300,     0,   421,   300,     0,   423,
-       0,   422,    21,   423,     0,   296,     0,    19,   422,   464,
-      20,     0,   384,     0,   424,   384,     0,    18,     0,   297,
-      18,     0,    18,     0,   297,    18,     0,   297,     0,     8,
-      24,   297,    25,     0,   427,   384,     0,     0,   427,   384,
-       9,   429,   384,     0,     0,    10,    24,   297,   430,    25,
-     384,     0,    11,    24,   297,    25,     0,    11,    24,   297,
-      25,     0,     0,     0,   193,   434,   412,    24,   435,   436,
-      25,   410,   458,   413,     0,   438,     0,     0,   436,   437,
-      21,   438,     0,   457,     0,   465,     0,   190,     0,   189,
-       0,   192,     0,   439,   192,     0,   439,     0,    24,   297,
-      25,     0,   440,     0,   270,    26,   297,    27,     0,   270,
-      24,    25,     0,   270,    24,   271,    25,     0,    71,    24,
-     296,    21,   380,    25,     0,   270,   358,    28,   466,   309,
-       0,   270,   358,    45,   466,   309,     0,   270,    48,     0,
-     270,    49,     0,   441,     0,    48,   272,     0,    49,   272,
-       0,    29,   280,     0,    34,   280,     0,    33,   280,     0,
-      32,   280,     0,    31,   280,     0,    30,   280,     0,   275,
-       0,   442,     0,    24,   380,    25,   280,     0,   443,     0,
-     281,    34,   280,     0,   281,    35,   280,     0,   281,    36,
-     280,     0,   444,     0,   282,    33,   281,     0,   282,    32,
-     281,     0,   445,     0,   283,    50,   282,     0,   283,    51,
-     282,     0,   446,     0,   284,    37,   283,     0,   284,    38,
-     283,     0,   284,    52,   283,     0,   284,    53,   283,     0,
-     447,     0,   285,    54,   284,     0,   285,    55,   284,     0,
-     448,     0,   286,    29,   285,     0,   449,     0,   287,    39,
-     286,     0,   450,     0,   288,    40,   287,     0,   451,     0,
-     289,    56,   288,     0,   452,     0,   291,    57,   289,     0,
-     453,     0,     0,     0,   291,    41,   455,   297,    22,   456,
-     293,     0,   454,     0,   272,    23,   296,     0,   272,    58,
-     296,     0,   272,    59,   296,     0,   272,    60,   296,     0,
-     272,    61,   296,     0,   272,    62,   296,     0,   272,    63,
-     296,     0,   272,    64,   296,     0,   272,    65,   296,     0,
-     272,    66,   296,     0,   272,    67,   296,     0,   194,     0,
-       0,    12,     0,   431,   384,     0,   459,   384,    11,    24,
-     297,    25,    18,     0,   390,   384,     0,   431,   401,     0,
-     459,   401,    11,    24,   297,    25,    18,     0,   459,   401,
-      11,    24,   297,    25,     0,   390,   401,     0,    14,   466,
-      18,     0,    15,    18,     0,   101,    15,    18,     0,    16,
-      18,     0,    97,    16,    18,     0,    98,    16,    18,     0,
-      99,    16,    18,     0,   100,    16,    18,     0,    17,    18,
-       0,    17,   297,    18,     0,     0,    18,     0,     0,    21,
-       0,   188,     0,   189,     0,   193,     0,   194,     0,   465,
-       0,   190,     0,   195,     0,   190,     0,    44,    24,   297,
-      25,     0,    44,    24,   380,    25,     0
+     198,     0,    -1,    -1,   199,    -1,   200,    -1,   199,   200,
+      -1,   261,   464,    -1,   201,    -1,   202,    -1,   212,    -1,
+     215,    -1,   301,    -1,    18,    -1,     1,    -1,    77,   345,
+     359,   369,   359,   464,   310,    91,    -1,    77,   345,   359,
+     369,   359,    23,   310,   317,   316,   464,    91,    -1,    -1,
+      78,   203,   204,   464,    91,    -1,   205,    -1,   345,   359,
+     205,    -1,   209,    -1,   373,   209,    -1,   467,    -1,   310,
+      24,   359,   369,   310,    25,    -1,   206,    26,    27,    -1,
+     206,    26,   310,   300,    27,   359,    -1,    -1,   206,   311,
+      24,    25,   207,   233,    -1,    -1,   206,   311,    24,   370,
+      25,   208,   233,    -1,   467,    -1,   310,    24,   359,   205,
+     310,    25,    -1,   209,    26,    27,    -1,   209,    26,   310,
+     300,    27,   359,    -1,    -1,   209,   311,    24,    25,   210,
+     234,    -1,    -1,   209,   311,    24,   370,    25,   211,   234,
+      -1,    -1,    -1,    79,   467,    24,   370,    25,   213,   234,
+     214,   464,    91,    -1,    92,   401,    95,    -1,    93,   387,
+      95,    -1,    94,   388,    95,    -1,    92,    95,    -1,   256,
+      -1,   218,    23,   221,    -1,    -1,   230,   219,    22,   222,
+      -1,    -1,     5,   220,    22,   222,    -1,   218,    -1,   218,
+      40,   221,    -1,   196,    -1,   187,    -1,    56,    -1,   225,
+     223,   224,    -1,   225,    -1,   228,   227,   228,    -1,   184,
+      -1,   185,    -1,    53,    -1,    52,    -1,    54,    -1,   229,
+      -1,   231,    24,   228,    25,    -1,    24,   228,   232,   228,
+      25,    -1,   230,    -1,   192,    -1,   466,    -1,   189,    -1,
+     230,    26,    27,    -1,   230,    26,   192,    27,    -1,    34,
+     230,    -1,    24,   230,    25,    -1,   230,    28,   467,    -1,
+     230,    45,   467,    -1,   226,    -1,    33,    -1,    32,    -1,
+      -1,   235,   233,    -1,    -1,   236,   234,    -1,   237,    -1,
+     241,    -1,   240,    -1,   323,    -1,   326,    -1,   247,    -1,
+     238,    -1,   242,    -1,   240,    -1,   324,    -1,   328,    -1,
+     248,    -1,   238,    91,    -1,    -1,    74,   239,   249,   464,
+      -1,    76,    -1,   242,    91,    -1,    -1,    75,   243,   262,
+      -1,   245,    -1,   245,    40,   244,    -1,   189,    -1,   247,
+      -1,    -1,   248,    91,    -1,    73,   244,   440,    -1,    73,
+     244,    -1,   250,    -1,   249,    21,   250,    -1,   251,   252,
+      -1,    -1,   253,   251,    -1,   466,    -1,   189,    -1,   301,
+      -1,    89,    -1,    90,    -1,   121,    -1,   122,    -1,   135,
+      -1,    80,    -1,    81,    -1,    82,    -1,    83,    -1,    84,
+      -1,    85,    -1,    86,    -1,   369,    -1,   345,   359,   369,
+      -1,    -1,    19,   258,   418,    -1,    -1,    -1,   259,   422,
+     260,   411,    -1,   216,   257,    -1,   265,   464,    -1,   464,
+      -1,   466,    -1,   189,    -1,   190,    -1,   263,    26,    27,
+      -1,   263,    26,   264,    27,    -1,    34,   263,    -1,    24,
+     263,    25,    -1,   263,    28,   467,    -1,   263,    45,   467,
+      -1,   263,    -1,   440,    -1,   263,    -1,   265,    21,   263,
+      -1,   466,    -1,   189,    -1,   266,    26,    27,    -1,   266,
+      26,   264,    27,    -1,    34,   266,    -1,    24,   266,    25,
+      -1,   266,    28,   467,    -1,   266,    45,   467,    -1,    -1,
+     268,    -1,   266,    -1,   268,    21,   266,    -1,   466,    -1,
+     189,    -1,   440,    -1,    24,   298,    25,    -1,   190,    -1,
+     116,    -1,    -1,    24,   270,   411,    25,    -1,   269,    -1,
+     271,    26,   298,    27,    -1,   271,    24,    25,    -1,   271,
+      24,   272,    25,    -1,    71,    24,   297,    21,   381,    25,
+      -1,   271,   359,    28,   467,   310,    -1,   271,   359,    45,
+     467,   310,    -1,   271,    48,    -1,   271,    49,    -1,    24,
+     381,    25,    19,   423,   465,    20,    -1,   297,    -1,   272,
+      21,   297,    -1,   271,    -1,    48,   273,    -1,    49,   273,
+      -1,    29,   281,    -1,    34,   281,    -1,    33,   281,    -1,
+      32,   281,    -1,    31,   281,    -1,    30,   281,    -1,   278,
+     276,   279,    -1,   275,    -1,   274,    28,   467,    -1,   274,
+      26,   298,    27,    -1,   467,    -1,    47,   310,    24,   381,
+     359,    21,   274,    25,   310,    -1,    -1,   310,   277,   280,
+      -1,    -1,    -1,    42,    24,   381,    25,    -1,    42,   273,
+      -1,    43,    24,   381,    25,    -1,    43,   273,    -1,   273,
+      -1,    24,   381,    25,   281,    -1,   281,    -1,   282,    34,
+     281,    -1,   282,    35,   281,    -1,   282,    36,   281,    -1,
+     282,    -1,   283,    33,   282,    -1,   283,    32,   282,    -1,
+     283,    -1,   284,    50,   283,    -1,   284,    51,   283,    -1,
+     284,    -1,   285,    37,   284,    -1,   285,    38,   284,    -1,
+     285,    52,   284,    -1,   285,    53,   284,    -1,   285,    -1,
+     286,    54,   285,    -1,   286,    55,   285,    -1,   286,    -1,
+     287,    29,   286,    -1,   287,    -1,   288,    39,   287,    -1,
+     288,    -1,   289,    40,   288,    -1,   289,    -1,    -1,   290,
+      56,   291,   289,    -1,   290,    -1,    -1,   292,    57,   293,
+     290,    -1,   292,    -1,    -1,    -1,   292,    41,   295,   298,
+      22,   296,   294,    -1,   294,    -1,   273,    23,   297,    -1,
+     273,    58,   297,    -1,   273,    59,   297,    -1,   273,    60,
+     297,    -1,   273,    61,   297,    -1,   273,    62,   297,    -1,
+     273,    63,   297,    -1,   273,    64,   297,    -1,   273,    65,
+     297,    -1,   273,    66,   297,    -1,   273,    67,   297,    -1,
+     297,    -1,   298,    21,   297,    -1,    -1,   298,    -1,   294,
+      -1,   302,    -1,    72,    -1,   308,    -1,   345,   310,    18,
+      -1,    -1,   345,   359,   369,   359,   303,   310,   316,    18,
+     310,    -1,    -1,   345,   359,   369,   359,    23,   304,   310,
+     317,   316,    18,   310,    -1,   306,    -1,   195,    -1,   369,
+     359,    -1,    -1,   369,   359,    23,   307,   310,   317,    -1,
+      -1,    46,   345,   309,   359,   314,   310,   246,    18,    -1,
+      46,   345,   310,    18,    -1,    46,   312,   310,    18,    -1,
+      -1,    -1,   313,   310,    -1,   306,    -1,   312,    21,   359,
+     306,    -1,   315,   310,    -1,   305,    -1,   314,    21,   359,
+     305,    -1,    -1,   316,    21,   359,   306,    -1,   297,    -1,
+      19,   321,    20,    -1,    19,   321,    21,    20,    -1,   318,
+     317,    -1,   319,    23,    -1,   467,    22,    -1,   320,    -1,
+     319,   320,    -1,    26,   300,    27,    -1,    28,   467,    -1,
+     317,    -1,   321,    21,   317,    -1,   117,    -1,   115,    -1,
+     118,    -1,   119,    -1,   120,    -1,   324,    91,    -1,    -1,
+     254,   359,   325,   268,   464,   310,    -1,   328,    91,    -1,
+     255,   359,    -1,    -1,   327,   334,   329,   267,   464,   310,
+      -1,    -1,   327,   330,   331,   464,   310,    -1,   224,    -1,
+     217,    -1,   144,    -1,   145,    -1,   147,    -1,   148,    -1,
+     146,    -1,   129,    -1,   132,    -1,   130,    -1,   131,    -1,
+     137,    -1,   138,    -1,   123,    -1,   125,    -1,   124,    -1,
+     133,    -1,   134,    -1,   126,    -1,   128,    -1,   141,    -1,
+     143,    -1,   156,    -1,   155,    -1,   140,    -1,   142,    -1,
+     181,    -1,   191,    -1,   139,    -1,   154,    -1,   153,    -1,
+     164,    -1,   162,    -1,   163,    -1,   157,    -1,   158,    -1,
+     159,    -1,   160,    -1,   161,    -1,   165,    -1,   166,    -1,
+     169,    -1,   170,    -1,   167,    -1,   168,    -1,   152,    -1,
+     149,    -1,   150,    -1,   151,    -1,   121,    -1,   122,    -1,
+     135,    -1,   136,    -1,   112,   310,    -1,   114,   310,    -1,
+     113,   310,    -1,   341,   310,    -1,   334,   310,    -1,   332,
+     310,    -1,   335,   310,    -1,   333,   310,    -1,   337,   310,
+      -1,   336,   310,    -1,   338,   310,    -1,   339,   310,    -1,
+     171,   359,    -1,   173,   359,    -1,   172,   359,    -1,   174,
+     359,    -1,   175,   359,    -1,   176,   359,    -1,   177,   359,
+      -1,   178,   359,    -1,   179,   359,    -1,   180,   359,    -1,
+     468,   359,    -1,   350,   359,    -1,   364,   359,    -1,   340,
+     359,    -1,   310,   345,   310,    -1,   347,    -1,   347,    88,
+     346,    91,    -1,   381,    -1,   381,    21,   346,    -1,   322,
+     348,    -1,   342,   348,    -1,   343,   348,    -1,    -1,   345,
+      -1,    -1,    -1,    -1,   359,    68,   467,   310,    19,   351,
+     415,   360,   416,   352,    20,   349,    -1,    -1,    -1,   359,
+      69,   467,   310,    19,   353,   415,   360,   416,   354,    20,
+      -1,   359,    68,   467,   310,    19,    20,    -1,   359,    69,
+     467,   310,    19,    20,    -1,    -1,    -1,   359,    68,   310,
+      19,   355,   415,   360,   416,   356,    20,    -1,    -1,    -1,
+     359,    69,   310,    19,   357,   415,   360,   416,   358,    20,
+      -1,   359,    68,   310,    19,    20,    -1,   359,    69,   310,
+      19,    20,    -1,   359,    68,   467,   359,    -1,   359,    69,
+     467,   359,    -1,    -1,   361,    -1,   215,    -1,   360,   361,
+      -1,   345,   359,   362,   310,    18,    -1,   345,   310,    18,
+      -1,   363,   359,    -1,   362,    21,   363,   359,    -1,   369,
+      -1,    22,   310,   300,    -1,   369,    22,   310,   300,    -1,
+     359,    70,    19,   366,    20,   310,    -1,    -1,   359,    70,
+     467,    19,   365,   366,    20,   310,    -1,   359,    70,   467,
+     310,    -1,   367,    -1,   366,    21,   367,    -1,   366,    21,
+      -1,   467,    -1,   467,    23,   310,   300,    -1,   206,    -1,
+     383,    -1,   373,   195,    -1,   373,   368,    -1,   206,    -1,
+     373,   206,    -1,   376,    -1,   359,   374,    -1,   112,    -1,
+     113,    -1,   114,    -1,   371,    -1,   372,   371,    -1,    34,
+      -1,    34,   372,    -1,    34,   373,    -1,    34,   372,   373,
+      -1,   375,    -1,   375,    21,     5,    -1,   467,    -1,   375,
+      21,   467,    -1,     5,    -1,   377,    -1,   377,    21,     5,
+      -1,    -1,   378,   380,    -1,    -1,   377,    21,   379,   380,
+      -1,   310,   345,   368,   310,    -1,   467,    -1,   344,    -1,
+     344,   382,    -1,   373,    -1,   384,    -1,   373,   384,    -1,
+      -1,   384,    -1,   310,    24,   359,   382,    25,    -1,    26,
+      27,    -1,    26,   300,    27,    -1,   384,    26,    27,    -1,
+     384,    26,   300,    27,    -1,   310,    24,    25,    -1,   310,
+      24,   376,    25,    -1,   384,   310,    24,    25,    -1,   384,
+     310,    24,   376,    25,    -1,   403,    -1,   405,    -1,   408,
+      -1,   411,    -1,   426,    -1,   429,    -1,   461,    -1,   434,
+      -1,   463,    -1,   386,    -1,    96,    24,   298,    25,    -1,
+     389,    -1,   387,    -1,   396,    -1,   389,   396,    -1,   433,
+     389,    -1,   460,   402,    11,    24,   298,    25,    18,    -1,
+     460,   402,    11,    24,   298,    25,    -1,   391,   396,    -1,
+      -1,    -1,    13,    24,   299,    18,   299,    18,   392,   299,
+     393,    25,    -1,    -1,   193,   413,    24,   395,   437,    25,
+      -1,   194,    -1,   403,    -1,   405,    -1,   408,    -1,   399,
+     422,    -1,   399,    -1,   400,    -1,   426,    -1,   397,    -1,
+     390,    -1,   394,    -1,   463,    -1,    24,   396,    25,    -1,
+       1,    -1,    -1,   428,   398,   396,    -1,   413,    19,    -1,
+     417,    20,    -1,   402,    -1,   421,    -1,   403,    -1,   405,
+      -1,   408,    -1,   412,    -1,   427,    -1,   429,    -1,   434,
+      -1,   462,    -1,    24,   402,    25,    -1,   463,    -1,   386,
+      -1,     1,    -1,   467,    22,    -1,   111,   385,    -1,    -1,
+     102,   404,    -1,    -1,     6,   300,   406,    22,    -1,    -1,
+     102,   404,     6,   300,   407,    22,    -1,    -1,     7,   409,
+      22,    -1,    -1,   102,   404,     7,   410,    22,    -1,    24,
+     411,    25,    -1,   413,   419,    -1,   413,   420,   414,    -1,
+      -1,    -1,    -1,    -1,    -1,    20,    -1,   111,    20,    -1,
+     425,    20,    -1,   425,   111,    20,    -1,   422,    20,    -1,
+     422,   111,    20,    -1,   422,   425,    20,    -1,   422,   425,
+     111,    20,    -1,    19,   418,    -1,    19,    20,    -1,    19,
+     421,    20,    -1,    19,   422,    20,    -1,    19,   422,   425,
+      20,    -1,   402,    -1,   421,   402,    -1,   301,    -1,   422,
+     301,    -1,   424,    -1,   423,    21,   424,    -1,   297,    -1,
+      19,   423,   465,    20,    -1,   385,    -1,   425,   385,    -1,
+      18,    -1,   298,    18,    -1,    18,    -1,   298,    18,    -1,
+     298,    -1,     8,    24,   298,    25,    -1,   428,   385,    -1,
+      -1,   428,   385,     9,   430,   385,    -1,    -1,    10,    24,
+     298,   431,    25,   385,    -1,    11,    24,   298,    25,    -1,
+      11,    24,   298,    25,    -1,    -1,    -1,   193,   435,   413,
+      24,   436,   437,    25,   411,   459,   414,    -1,   439,    -1,
+      -1,   437,   438,    21,   439,    -1,   458,    -1,   466,    -1,
+     190,    -1,   189,    -1,   192,    -1,   440,   192,    -1,   440,
+      -1,    24,   298,    25,    -1,   441,    -1,   271,    26,   298,
+      27,    -1,   271,    24,    25,    -1,   271,    24,   272,    25,
+      -1,    71,    24,   297,    21,   381,    25,    -1,   271,   359,
+      28,   467,   310,    -1,   271,   359,    45,   467,   310,    -1,
+     271,    48,    -1,   271,    49,    -1,   442,    -1,    48,   273,
+      -1,    49,   273,    -1,    29,   281,    -1,    34,   281,    -1,
+      33,   281,    -1,    32,   281,    -1,    31,   281,    -1,    30,
+     281,    -1,   276,    -1,   443,    -1,    24,   381,    25,   281,
+      -1,   444,    -1,   282,    34,   281,    -1,   282,    35,   281,
+      -1,   282,    36,   281,    -1,   445,    -1,   283,    33,   282,
+      -1,   283,    32,   282,    -1,   446,    -1,   284,    50,   283,
+      -1,   284,    51,   283,    -1,   447,    -1,   285,    37,   284,
+      -1,   285,    38,   284,    -1,   285,    52,   284,    -1,   285,
+      53,   284,    -1,   448,    -1,   286,    54,   285,    -1,   286,
+      55,   285,    -1,   449,    -1,   287,    29,   286,    -1,   450,
+      -1,   288,    39,   287,    -1,   451,    -1,   289,    40,   288,
+      -1,   452,    -1,   290,    56,   289,    -1,   453,    -1,   292,
+      57,   290,    -1,   454,    -1,    -1,    -1,   292,    41,   456,
+     298,    22,   457,   294,    -1,   455,    -1,   273,    23,   297,
+      -1,   273,    58,   297,    -1,   273,    59,   297,    -1,   273,
+      60,   297,    -1,   273,    61,   297,    -1,   273,    62,   297,
+      -1,   273,    63,   297,    -1,   273,    64,   297,    -1,   273,
+      65,   297,    -1,   273,    66,   297,    -1,   273,    67,   297,
+      -1,   194,    -1,    -1,    12,    -1,   432,   385,    -1,   460,
+     385,    11,    24,   298,    25,    18,    -1,   391,   385,    -1,
+     432,   402,    -1,   460,   402,    11,    24,   298,    25,    18,
+      -1,   460,   402,    11,    24,   298,    25,    -1,   391,   402,
+      -1,    14,   467,    18,    -1,    15,    18,    -1,   101,    15,
+      18,    -1,    16,    18,    -1,    97,    16,    18,    -1,    98,
+      16,    18,    -1,    99,    16,    18,    -1,   100,    16,    18,
+      -1,    17,    18,    -1,    17,   298,    18,    -1,    -1,    18,
+      -1,    -1,    21,    -1,   188,    -1,   189,    -1,   193,    -1,
+     194,    -1,   466,    -1,   190,    -1,   195,    -1,   190,    -1,
+      44,    24,   298,    25,    -1,    44,    24,   381,    25,    -1
 };
 
 };
 
-#endif
-
-#if YYDEBUG
-/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
-static const short yyrline[] =
+/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
+static const unsigned short yyrline[] =
 {
 {
-       0,   328,   329,   333,   334,   338,   339,   340,   341,   342,
-     343,   344,   345,   349,   351,   356,   356,   365,   371,   376,
-     377,   382,   383,   385,   387,   404,   404,   435,   435,   465,
-     466,   468,   472,   489,   489,   501,   501,   515,   515,   515,
-     524,   525,   526,   527,   531,   535,   540,   540,   545,   545,
-     553,   554,   558,   564,   565,   569,   570,   574,   580,   581,
-     585,   586,   587,   591,   592,   593,   599,   600,   604,   606,
-     608,   610,   619,   621,   623,   625,   642,   646,   647,   654,
-     655,   664,   666,   671,   672,   673,   674,   675,   676,   680,
-     681,   682,   683,   684,   685,   689,   693,   693,   702,   706,
-     710,   710,   725,   727,   732,   736,   737,   741,   745,   751,
-     756,   757,   761,   765,   766,   770,   771,   772,   776,   777,
-     778,   779,   780,   784,   785,   786,   787,   788,   792,   793,
-     797,   804,   809,   809,   815,   815,   815,   826,   837,   838,
-     842,   843,   844,   845,   846,   847,   848,   849,   850,   854,
-     855,   860,   861,   865,   867,   869,   870,   871,   872,   873,
-     875,   880,   881,   885,   891,   904,   905,   906,   907,   908,
-     909,   910,   910,   916,   917,   918,   919,   920,   921,   922,
-     923,   924,   925,   930,   931,   935,   936,   937,   938,   939,
-     940,   941,   942,   943,   944,   945,   949,   950,   952,   956,
-     962,   962,   966,   969,   973,   974,   975,   976,   982,   983,
-     988,   989,   990,   991,   995,   996,   997,  1001,  1002,  1003,
-    1007,  1008,  1009,  1010,  1011,  1015,  1016,  1017,  1021,  1022,
-    1026,  1027,  1031,  1032,  1036,  1037,  1037,  1049,  1050,  1050,
-    1063,  1064,  1064,  1064,  1070,  1071,  1072,  1073,  1074,  1075,
-    1076,  1077,  1078,  1079,  1080,  1081,  1085,  1086,  1090,  1091,
-    1095,  1101,  1102,  1103,  1107,  1121,  1121,  1132,  1132,  1141,
-    1142,  1146,  1151,  1151,  1156,  1156,  1159,  1160,  1164,  1168,
-    1172,  1176,  1177,  1181,  1185,  1186,  1190,  1191,  1195,  1196,
-    1197,  1198,  1206,  1207,  1212,  1213,  1217,  1218,  1222,  1224,
-    1234,  1235,  1236,  1237,  1238,  1242,  1246,  1246,  1262,  1266,
-    1270,  1270,  1284,  1284,  1316,  1317,  1321,  1322,  1323,  1324,
-    1325,  1329,  1330,  1331,  1332,  1336,  1337,  1338,  1339,  1340,
-    1341,  1342,  1343,  1344,  1345,  1346,  1347,  1348,  1349,  1350,
-    1351,  1352,  1356,  1357,  1361,  1362,  1366,  1367,  1371,  1372,
-    1373,  1374,  1375,  1379,  1380,  1381,  1382,  1383,  1384,  1388,
-    1389,  1390,  1391,  1395,  1396,  1397,  1398,  1402,  1403,  1404,
-    1405,  1406,  1407,  1408,  1409,  1410,  1411,  1412,  1413,  1421,
-    1422,  1423,  1424,  1425,  1426,  1427,  1428,  1429,  1430,  1431,
-    1432,  1433,  1434,  1438,  1443,  1444,  1449,  1450,  1455,  1456,
-    1457,  1461,  1462,  1466,  1473,  1473,  1473,  1479,  1479,  1479,
-    1484,  1486,  1488,  1488,  1488,  1493,  1493,  1493,  1498,  1500,
-    1502,  1503,  1507,  1511,  1512,  1513,  1517,  1519,  1524,  1526,
-    1531,  1532,  1533,  1538,  1540,  1540,  1542,  1546,  1548,  1550,
-    1554,  1559,  1567,  1568,  1569,  1575,  1580,  1581,  1586,  1587,
-    1591,  1592,  1593,  1597,  1598,  1602,  1603,  1604,  1605,  1609,
-    1610,  1614,  1615,  1619,  1620,  1621,  1625,  1625,  1626,  1626,
-    1631,  1643,  1660,  1661,  1665,  1666,  1667,  1671,  1672,  1676,
-    1678,  1679,  1681,  1682,  1684,  1686,  1688,  1690,  1697,  1698,
-    1699,  1700,  1701,  1702,  1703,  1704,  1705,  1706,  1710,  1714,
-    1718,  1722,  1723,  1728,  1730,  1732,  1734,  1739,  1739,  1739,
-    1747,  1747,  1751,  1755,  1756,  1757,  1758,  1759,  1760,  1761,
-    1762,  1763,  1764,  1765,  1766,  1767,  1771,  1771,  1778,  1782,
-    1786,  1787,  1791,  1792,  1793,  1794,  1795,  1796,  1797,  1798,
-    1799,  1800,  1801,  1802,  1806,  1807,  1815,  1816,  1823,  1823,
-    1825,  1825,  1830,  1830,  1832,  1832,  1837,  1838,  1843,  1847,
-    1851,  1855,  1859,  1863,  1867,  1868,  1869,  1870,  1872,  1873,
-    1875,  1877,  1884,  1889,  1891,  1893,  1895,  1900,  1901,  1905,
-    1906,  1910,  1911,  1915,  1916,  1920,  1921,  1925,  1926,  1930,
-    1931,  1932,  1936,  1950,  1955,  1955,  1960,  1960,  1965,  1971,
-    1975,  1975,  1975,  1986,  1987,  1987,  1992,  1993,  1994,  2005,
-    2013,  2014,  2018,  2019,  2023,  2024,  2025,  2026,  2027,  2029,
-    2030,  2031,  2032,  2036,  2037,  2038,  2039,  2040,  2041,  2042,
-    2043,  2044,  2045,  2049,  2050,  2054,  2055,  2056,  2057,  2061,
-    2062,  2063,  2067,  2068,  2069,  2073,  2074,  2075,  2076,  2077,
-    2081,  2082,  2083,  2087,  2088,  2092,  2093,  2097,  2098,  2102,
-    2103,  2107,  2108,  2112,  2113,  2113,  2113,  2119,  2120,  2121,
-    2122,  2123,  2124,  2125,  2126,  2127,  2128,  2129,  2130,  2134,
-    2135,  2139,  2143,  2145,  2147,  2152,  2153,  2155,  2157,  2161,
-    2162,  2163,  2165,  2166,  2167,  2168,  2169,  2170,  2171,  2175,
-    2176,  2180,  2181,  2185,  2189,  2190,  2191,  2192,  2193,  2197,
-    2198,  2199,  2200
+       0,   327,   327,   329,   333,   334,   338,   339,   340,   341,
+     342,   343,   344,   345,   349,   351,   356,   356,   365,   371,
+     376,   377,   382,   383,   385,   387,   405,   404,   436,   435,
+     465,   466,   468,   472,   490,   489,   502,   501,   516,   517,
+     515,   524,   525,   526,   527,   531,   535,   540,   540,   545,
+     545,   553,   554,   558,   564,   565,   569,   570,   574,   580,
+     581,   585,   586,   587,   591,   592,   593,   599,   600,   604,
+     606,   608,   610,   619,   621,   623,   625,   642,   646,   647,
+     654,   655,   665,   666,   671,   672,   673,   674,   675,   676,
+     680,   681,   682,   683,   684,   685,   689,   693,   693,   702,
+     706,   711,   710,   725,   727,   732,   736,   737,   741,   745,
+     751,   756,   757,   761,   765,   766,   770,   771,   772,   776,
+     777,   778,   779,   780,   784,   785,   786,   787,   788,   792,
+     793,   797,   804,   809,   809,   815,   816,   815,   826,   837,
+     838,   842,   843,   844,   845,   846,   847,   848,   849,   850,
+     854,   855,   860,   861,   865,   867,   869,   870,   871,   872,
+     873,   875,   880,   881,   885,   891,   904,   905,   906,   907,
+     908,   909,   910,   910,   916,   917,   918,   919,   920,   921,
+     922,   923,   924,   925,   930,   931,   935,   936,   937,   938,
+     939,   940,   941,   942,   943,   944,   945,   949,   950,   952,
+     956,   962,   962,   966,   969,   973,   974,   975,   976,   982,
+     983,   988,   989,   990,   991,   995,   996,   997,  1001,  1002,
+    1003,  1007,  1008,  1009,  1010,  1011,  1015,  1016,  1017,  1021,
+    1022,  1026,  1027,  1031,  1032,  1036,  1038,  1037,  1049,  1051,
+    1050,  1063,  1064,  1065,  1064,  1070,  1071,  1072,  1073,  1074,
+    1075,  1076,  1077,  1078,  1079,  1080,  1081,  1085,  1086,  1090,
+    1091,  1095,  1101,  1102,  1103,  1107,  1122,  1121,  1133,  1132,
+    1141,  1142,  1146,  1151,  1151,  1156,  1156,  1159,  1160,  1164,
+    1168,  1172,  1176,  1177,  1181,  1185,  1186,  1190,  1191,  1195,
+    1196,  1197,  1198,  1206,  1207,  1212,  1213,  1217,  1218,  1222,
+    1224,  1234,  1235,  1236,  1237,  1238,  1242,  1247,  1246,  1262,
+    1266,  1271,  1270,  1285,  1284,  1316,  1317,  1321,  1322,  1323,
+    1324,  1325,  1329,  1330,  1331,  1332,  1336,  1337,  1338,  1339,
+    1340,  1341,  1342,  1343,  1344,  1345,  1346,  1347,  1348,  1349,
+    1350,  1351,  1352,  1356,  1357,  1361,  1362,  1366,  1367,  1371,
+    1372,  1373,  1374,  1375,  1379,  1380,  1381,  1382,  1383,  1384,
+    1388,  1389,  1390,  1391,  1395,  1396,  1397,  1398,  1402,  1403,
+    1404,  1405,  1406,  1407,  1408,  1409,  1410,  1411,  1412,  1413,
+    1421,  1422,  1423,  1424,  1425,  1426,  1427,  1428,  1429,  1430,
+    1431,  1432,  1433,  1434,  1438,  1443,  1444,  1449,  1450,  1455,
+    1456,  1457,  1461,  1462,  1466,  1473,  1475,  1473,  1479,  1481,
+    1479,  1484,  1486,  1488,  1490,  1488,  1493,  1495,  1493,  1498,
+    1500,  1502,  1503,  1507,  1511,  1512,  1513,  1517,  1519,  1524,
+    1526,  1531,  1532,  1533,  1538,  1540,  1540,  1542,  1546,  1548,
+    1550,  1554,  1559,  1567,  1568,  1569,  1575,  1580,  1581,  1586,
+    1587,  1591,  1592,  1593,  1597,  1598,  1602,  1603,  1604,  1605,
+    1609,  1610,  1614,  1615,  1619,  1620,  1621,  1625,  1625,  1626,
+    1626,  1631,  1643,  1660,  1661,  1665,  1666,  1667,  1671,  1672,
+    1676,  1678,  1679,  1681,  1682,  1684,  1686,  1688,  1690,  1697,
+    1698,  1699,  1700,  1701,  1702,  1703,  1704,  1705,  1706,  1710,
+    1714,  1718,  1722,  1723,  1728,  1730,  1732,  1734,  1740,  1740,
+    1739,  1748,  1747,  1751,  1755,  1756,  1757,  1758,  1759,  1760,
+    1761,  1762,  1763,  1764,  1765,  1766,  1767,  1771,  1771,  1778,
+    1782,  1786,  1787,  1791,  1792,  1793,  1794,  1795,  1796,  1797,
+    1798,  1799,  1800,  1801,  1802,  1806,  1807,  1815,  1816,  1823,
+    1823,  1825,  1825,  1830,  1830,  1832,  1832,  1837,  1838,  1843,
+    1847,  1851,  1855,  1859,  1863,  1867,  1868,  1869,  1870,  1872,
+    1873,  1875,  1877,  1884,  1889,  1891,  1893,  1895,  1900,  1901,
+    1905,  1906,  1910,  1911,  1915,  1916,  1920,  1921,  1925,  1926,
+    1930,  1931,  1932,  1936,  1950,  1955,  1955,  1960,  1960,  1965,
+    1971,  1975,  1976,  1975,  1986,  1987,  1987,  1992,  1993,  1994,
+    2005,  2013,  2014,  2018,  2019,  2023,  2024,  2025,  2026,  2027,
+    2029,  2030,  2031,  2032,  2036,  2037,  2038,  2039,  2040,  2041,
+    2042,  2043,  2044,  2045,  2049,  2050,  2054,  2055,  2056,  2057,
+    2061,  2062,  2063,  2067,  2068,  2069,  2073,  2074,  2075,  2076,
+    2077,  2081,  2082,  2083,  2087,  2088,  2092,  2093,  2097,  2098,
+    2102,  2103,  2107,  2108,  2112,  2113,  2114,  2113,  2119,  2120,
+    2121,  2122,  2123,  2124,  2125,  2126,  2127,  2128,  2129,  2130,
+    2134,  2135,  2139,  2143,  2145,  2147,  2152,  2153,  2155,  2157,
+    2161,  2162,  2163,  2165,  2166,  2167,  2168,  2169,  2170,  2171,
+    2174,  2176,  2179,  2181,  2185,  2189,  2190,  2191,  2192,  2193,
+    2197,  2198,  2199,  2200
 };
 #endif
 
 };
 #endif
 
-
-#if (YYDEBUG) || defined YYERROR_VERBOSE
-
-/* YYTNAME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */
+#if YYDEBUG || YYERROR_VERBOSE
+/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
+   First, the terminals, then, starting at YYNTOKENS, nonterminals. */
 static const char *const yytname[] =
 {
 static const char *const yytname[] =
 {
-  "$", "error", "$undefined.", "BADTOK", "SKIPTOK", "CTOK_ELIPSIS", "CASE", 
-  "DEFAULT", "CIF", "CELSE", "SWITCH", "WHILE", "DO", "CFOR", "GOTO", 
-  "CONTINUE", "BREAK", "RETURN", "TSEMI", "TLBRACE", "TRBRACE", "TCOMMA", 
-  "TCOLON", "TASSIGN", "TLPAREN", "TRPAREN", "TLSQBR", "TRSQBR", "TDOT", 
-  "TAMPERSAND", "TEXCL", "TTILDE", "TMINUS", "TPLUS", "TMULT", "TDIV", 
-  "TPERCENT", "TLT", "TGT", "TCIRC", "TBAR", "TQUEST", "CSIZEOF", 
+  "$end", "error", "$undefined", "BADTOK", "SKIPTOK", "CTOK_ELIPSIS", 
+  "CASE", "DEFAULT", "CIF", "CELSE", "SWITCH", "WHILE", "DO", "CFOR", 
+  "GOTO", "CONTINUE", "BREAK", "RETURN", "TSEMI", "TLBRACE", "TRBRACE", 
+  "TCOMMA", "TCOLON", "TASSIGN", "TLPAREN", "TRPAREN", "TLSQBR", "TRSQBR", 
+  "TDOT", "TAMPERSAND", "TEXCL", "TTILDE", "TMINUS", "TPLUS", "TMULT", 
+  "TDIV", "TPERCENT", "TLT", "TGT", "TCIRC", "TBAR", "TQUEST", "CSIZEOF", 
   "CALIGNOF", "CTYPEOF", "ARROW_OP", "CTYPEDEF", "COFFSETOF", "INC_OP", 
   "DEC_OP", "LEFT_OP", "RIGHT_OP", "LE_OP", "GE_OP", "EQ_OP", "NE_OP", 
   "AND_OP", "OR_OP", "MUL_ASSIGN", "DIV_ASSIGN", "MOD_ASSIGN", 
   "CALIGNOF", "CTYPEOF", "ARROW_OP", "CTYPEDEF", "COFFSETOF", "INC_OP", 
   "DEC_OP", "LEFT_OP", "RIGHT_OP", "LE_OP", "GE_OP", "EQ_OP", "NE_OP", 
   "AND_OP", "OR_OP", "MUL_ASSIGN", "DIV_ASSIGN", "MOD_ASSIGN", 
@@ -849,11 +1228,11 @@ static const char *const yytname[] =
   "QSETBUFFERSIZE", "QSETSTRINGLENGTH", "QMAXSET", "QMAXREAD", 
   "QTESTINRANGE", "TCAND", "IDENTIFIER", "NEW_IDENTIFIER", 
   "TYPE_NAME_OR_ID", "CANNOTATION", "CCONSTANT", "ITER_NAME", 
   "QSETBUFFERSIZE", "QSETSTRINGLENGTH", "QMAXSET", "QMAXREAD", 
   "QTESTINRANGE", "TCAND", "IDENTIFIER", "NEW_IDENTIFIER", 
   "TYPE_NAME_OR_ID", "CANNOTATION", "CCONSTANT", "ITER_NAME", 
-  "ITER_ENDNAME", "TYPE_NAME", "METASTATE_NAME", "file", "externalDefs", 
-  "externalDef", "constantDecl", "fcnDecl", "@1", "plainFcn", 
-  "plainNamedDecl", "namedDeclBase", "@2", "@3", "plainNamedDeclBase", 
-  "@4", "@5", "iterDecl", "@6", "@7", "macroDef", "fcnDefHdr", 
-  "metaStateConstraint", "metaStateSpecifier", "@8", "@9", 
+  "ITER_ENDNAME", "TYPE_NAME", "METASTATE_NAME", "$accept", "file", 
+  "externalDefs", "externalDef", "constantDecl", "fcnDecl", "@1", 
+  "plainFcn", "plainNamedDecl", "namedDeclBase", "@2", "@3", 
+  "plainNamedDeclBase", "@4", "@5", "iterDecl", "@6", "@7", "macroDef", 
+  "fcnDefHdr", "metaStateConstraint", "metaStateSpecifier", "@8", "@9", 
   "metaStateExpression", "metaStateName", "constraintSeperator", 
   "BufConstraintList", "BufConstraint", "bufferModifier", "relationalOp", 
   "BufConstraintExpr", "BufConstraintTerm", "BufConstraintSrefExpr", 
   "metaStateExpression", "metaStateName", "constraintSeperator", 
   "BufConstraintList", "BufConstraint", "bufferModifier", "relationalOp", 
   "BufConstraintExpr", "BufConstraintTerm", "BufConstraintSrefExpr", 
@@ -915,2049 +1294,2089 @@ static const char *const yytname[] =
 };
 #endif
 
 };
 #endif
 
-/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
-static const short yyr1[] =
+# ifdef YYPRINT
+/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
+   token YYLEX-NUM.  */
+static const unsigned short yytoknum[] =
+{
+       0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
+     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
+     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
+     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
+     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
+     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
+     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
+     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
+     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
+     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
+     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
+     365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
+     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
+     385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
+     395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
+     405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
+     415,   416,   417,   418,   419,   420,   421,   422,   423,   424,
+     425,   426,   427,   428,   429,   430,   431,   432,   433,   434,
+     435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
+     445,   446,   447,   448,   449,   450,   451
+};
+# endif
+
+/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
+static const unsigned short yyr1[] =
 {
 {
-       0,   197,   197,   198,   198,   199,   199,   199,   199,   199,
-     199,   199,   199,   200,   200,   202,   201,   203,   203,   204,
-     204,   205,   205,   205,   205,   206,   205,   207,   205,   208,
-     208,   208,   208,   209,   208,   210,   208,   212,   213,   211,
-     214,   214,   214,   214,   215,   216,   218,   217,   219,   217,
-     220,   220,   221,   222,   222,   223,   223,   224,   225,   225,
-     226,   226,   226,   227,   227,   227,   228,   228,   229,   229,
-     229,   229,   229,   229,   229,   229,   230,   231,   231,   232,
-     232,   233,   233,   234,   234,   234,   234,   234,   234,   235,
-     235,   235,   235,   235,   235,   236,   238,   237,   239,   240,
-     242,   241,   243,   243,   244,   245,   245,   246,   247,   247,
-     248,   248,   249,   250,   250,   251,   251,   251,   252,   252,
-     252,   252,   252,   253,   253,   253,   253,   253,   254,   254,
-     255,   255,   257,   256,   258,   259,   256,   260,   261,   261,
-     262,   262,   262,   262,   262,   262,   262,   262,   262,   263,
-     263,   264,   264,   265,   265,   265,   265,   265,   265,   265,
-     265,   266,   266,   267,   267,   268,   268,   268,   268,   268,
-     268,   269,   268,   270,   270,   270,   270,   270,   270,   270,
-     270,   270,   270,   271,   271,   272,   272,   272,   272,   272,
-     272,   272,   272,   272,   272,   272,   273,   273,   273,   274,
-     276,   275,   277,   278,   279,   279,   279,   279,   280,   280,
-     281,   281,   281,   281,   282,   282,   282,   283,   283,   283,
-     284,   284,   284,   284,   284,   285,   285,   285,   286,   286,
-     287,   287,   288,   288,   289,   290,   289,   291,   292,   291,
-     293,   294,   295,   293,   296,   296,   296,   296,   296,   296,
-     296,   296,   296,   296,   296,   296,   297,   297,   298,   298,
-     299,   300,   300,   300,   301,   302,   301,   303,   301,   304,
-     304,   305,   306,   305,   308,   307,   307,   307,   309,   310,
-     311,   312,   312,   313,   314,   314,   315,   315,   316,   316,
-     316,   316,   317,   317,   318,   318,   319,   319,   320,   320,
-     321,   321,   321,   321,   321,   322,   324,   323,   325,   326,
-     328,   327,   329,   327,   330,   330,   331,   331,   331,   331,
-     331,   332,   332,   332,   332,   333,   333,   333,   333,   333,
-     333,   333,   333,   333,   333,   333,   333,   333,   333,   333,
-     333,   333,   334,   334,   335,   335,   336,   336,   337,   337,
-     337,   337,   337,   338,   338,   338,   338,   338,   338,   339,
-     339,   339,   339,   340,   340,   340,   340,   341,   341,   341,
-     341,   341,   341,   341,   341,   341,   341,   341,   341,   342,
+       0,   197,   198,   198,   199,   199,   200,   200,   200,   200,
+     200,   200,   200,   200,   201,   201,   203,   202,   204,   204,
+     205,   205,   206,   206,   206,   206,   207,   206,   208,   206,
+     209,   209,   209,   209,   210,   209,   211,   209,   213,   214,
+     212,   215,   215,   215,   215,   216,   217,   219,   218,   220,
+     218,   221,   221,   222,   223,   223,   224,   224,   225,   226,
+     226,   227,   227,   227,   228,   228,   228,   229,   229,   230,
+     230,   230,   230,   230,   230,   230,   230,   231,   232,   232,
+     233,   233,   234,   234,   235,   235,   235,   235,   235,   235,
+     236,   236,   236,   236,   236,   236,   237,   239,   238,   240,
+     241,   243,   242,   244,   244,   245,   246,   246,   247,   248,
+     248,   249,   249,   250,   251,   251,   252,   252,   252,   253,
+     253,   253,   253,   253,   254,   254,   254,   254,   254,   255,
+     255,   256,   256,   258,   257,   259,   260,   257,   261,   262,
+     262,   263,   263,   263,   263,   263,   263,   263,   263,   263,
+     264,   264,   265,   265,   266,   266,   266,   266,   266,   266,
+     266,   266,   267,   267,   268,   268,   269,   269,   269,   269,
+     269,   269,   270,   269,   271,   271,   271,   271,   271,   271,
+     271,   271,   271,   271,   272,   272,   273,   273,   273,   273,
+     273,   273,   273,   273,   273,   273,   273,   274,   274,   274,
+     275,   277,   276,   278,   279,   280,   280,   280,   280,   281,
+     281,   282,   282,   282,   282,   283,   283,   283,   284,   284,
+     284,   285,   285,   285,   285,   285,   286,   286,   286,   287,
+     287,   288,   288,   289,   289,   290,   291,   290,   292,   293,
+     292,   294,   295,   296,   294,   297,   297,   297,   297,   297,
+     297,   297,   297,   297,   297,   297,   297,   298,   298,   299,
+     299,   300,   301,   301,   301,   302,   303,   302,   304,   302,
+     305,   305,   306,   307,   306,   309,   308,   308,   308,   310,
+     311,   312,   313,   313,   314,   315,   315,   316,   316,   317,
+     317,   317,   317,   318,   318,   319,   319,   320,   320,   321,
+     321,   322,   322,   322,   322,   322,   323,   325,   324,   326,
+     327,   329,   328,   330,   328,   331,   331,   332,   332,   332,
+     332,   332,   333,   333,   333,   333,   334,   334,   334,   334,
+     334,   334,   334,   334,   334,   334,   334,   334,   334,   334,
+     334,   334,   334,   335,   335,   336,   336,   337,   337,   338,
+     338,   338,   338,   338,   339,   339,   339,   339,   339,   339,
+     340,   340,   340,   340,   341,   341,   341,   341,   342,   342,
      342,   342,   342,   342,   342,   342,   342,   342,   342,   342,
      342,   342,   342,   342,   342,   342,   342,   342,   342,   342,
-     342,   342,   342,   343,   344,   344,   345,   345,   346,   346,
-     346,   347,   347,   348,   350,   351,   349,   352,   353,   349,
-     349,   349,   354,   355,   349,   356,   357,   349,   349,   349,
-     349,   349,   358,   359,   359,   359,   360,   360,   361,   361,
-     362,   362,   362,   363,   364,   363,   363,   365,   365,   365,
-     366,   366,   367,   367,   367,   367,   368,   368,   369,   369,
-     370,   370,   370,   371,   371,   372,   372,   372,   372,   373,
-     373,   374,   374,   375,   375,   375,   377,   376,   378,   376,
-     379,   379,   380,   380,   381,   381,   381,   382,   382,   383,
-     383,   383,   383,   383,   383,   383,   383,   383,   384,   384,
-     384,   384,   384,   384,   384,   384,   384,   384,   385,   386,
-     387,   388,   388,   389,   389,   389,   389,   391,   392,   390,
-     394,   393,   393,   395,   395,   395,   395,   395,   395,   395,
-     395,   395,   395,   395,   395,   395,   397,   396,   398,   399,
-     400,   400,   401,   401,   401,   401,   401,   401,   401,   401,
-     401,   401,   401,   401,   402,   402,   403,   403,   405,   404,
-     406,   404,   408,   407,   409,   407,   410,   410,   411,   412,
-     413,   414,   415,   416,   417,   417,   417,   417,   417,   417,
-     417,   417,   418,   419,   419,   419,   419,   420,   420,   421,
-     421,   422,   422,   423,   423,   424,   424,   425,   425,   426,
-     426,   426,   427,   428,   429,   428,   430,   428,   431,   432,
-     434,   435,   433,   436,   437,   436,   438,   438,   438,   438,
-     439,   439,   440,   440,   441,   441,   441,   441,   441,   441,
-     441,   441,   441,   442,   442,   442,   442,   442,   442,   442,
-     442,   442,   442,   443,   443,   444,   444,   444,   444,   445,
-     445,   445,   446,   446,   446,   447,   447,   447,   447,   447,
-     448,   448,   448,   449,   449,   450,   450,   451,   451,   452,
-     452,   453,   453,   454,   455,   456,   454,   457,   457,   457,
-     457,   457,   457,   457,   457,   457,   457,   457,   457,   458,
-     458,   459,   460,   460,   460,   461,   461,   461,   461,   462,
-     462,   462,   462,   462,   462,   462,   462,   462,   462,   463,
-     463,   464,   464,   465,   466,   466,   466,   466,   466,   467,
-     467,   467,   467
+     343,   343,   343,   343,   343,   343,   343,   343,   343,   343,
+     343,   343,   343,   343,   344,   345,   345,   346,   346,   347,
+     347,   347,   348,   348,   349,   351,   352,   350,   353,   354,
+     350,   350,   350,   355,   356,   350,   357,   358,   350,   350,
+     350,   350,   350,   359,   360,   360,   360,   361,   361,   362,
+     362,   363,   363,   363,   364,   365,   364,   364,   366,   366,
+     366,   367,   367,   368,   368,   368,   368,   369,   369,   370,
+     370,   371,   371,   371,   372,   372,   373,   373,   373,   373,
+     374,   374,   375,   375,   376,   376,   376,   378,   377,   379,
+     377,   380,   380,   381,   381,   382,   382,   382,   383,   383,
+     384,   384,   384,   384,   384,   384,   384,   384,   384,   385,
+     385,   385,   385,   385,   385,   385,   385,   385,   385,   386,
+     387,   388,   389,   389,   390,   390,   390,   390,   392,   393,
+     391,   395,   394,   394,   396,   396,   396,   396,   396,   396,
+     396,   396,   396,   396,   396,   396,   396,   398,   397,   399,
+     400,   401,   401,   402,   402,   402,   402,   402,   402,   402,
+     402,   402,   402,   402,   402,   403,   403,   404,   404,   406,
+     405,   407,   405,   409,   408,   410,   408,   411,   411,   412,
+     413,   414,   415,   416,   417,   418,   418,   418,   418,   418,
+     418,   418,   418,   419,   420,   420,   420,   420,   421,   421,
+     422,   422,   423,   423,   424,   424,   425,   425,   426,   426,
+     427,   427,   427,   428,   429,   430,   429,   431,   429,   432,
+     433,   435,   436,   434,   437,   438,   437,   439,   439,   439,
+     439,   440,   440,   441,   441,   442,   442,   442,   442,   442,
+     442,   442,   442,   442,   443,   443,   443,   443,   443,   443,
+     443,   443,   443,   443,   444,   444,   445,   445,   445,   445,
+     446,   446,   446,   447,   447,   447,   448,   448,   448,   448,
+     448,   449,   449,   449,   450,   450,   451,   451,   452,   452,
+     453,   453,   454,   454,   455,   456,   457,   455,   458,   458,
+     458,   458,   458,   458,   458,   458,   458,   458,   458,   458,
+     459,   459,   460,   461,   461,   461,   462,   462,   462,   462,
+     463,   463,   463,   463,   463,   463,   463,   463,   463,   463,
+     464,   464,   465,   465,   466,   467,   467,   467,   467,   467,
+     468,   468,   468,   468
 };
 
 };
 
-/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
-static const short yyr2[] =
+/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
+static const unsigned char yyr2[] =
 {
 {
-       0,     0,     1,     1,     2,     2,     1,     1,     1,     1,
-       1,     1,     1,     8,    11,     0,     5,     1,     3,     1,
-       2,     1,     6,     3,     6,     0,     6,     0,     7,     1,
-       6,     3,     6,     0,     6,     0,     7,     0,     0,    10,
-       3,     3,     3,     2,     1,     3,     0,     4,     0,     4,
-       1,     3,     1,     1,     1,     3,     1,     3,     1,     1,
-       1,     1,     1,     1,     4,     5,     1,     1,     1,     1,
-       3,     4,     2,     3,     3,     3,     1,     1,     1,     0,
-       2,     0,     2,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     2,     0,     4,     1,     2,
-       0,     3,     1,     3,     1,     1,     0,     2,     3,     2,
-       1,     3,     2,     0,     2,     1,     1,     1,     1,     1,
+       0,     2,     0,     1,     1,     2,     2,     1,     1,     1,
+       1,     1,     1,     1,     8,    11,     0,     5,     1,     3,
+       1,     2,     1,     6,     3,     6,     0,     6,     0,     7,
+       1,     6,     3,     6,     0,     6,     0,     7,     0,     0,
+      10,     3,     3,     3,     2,     1,     3,     0,     4,     0,
+       4,     1,     3,     1,     1,     1,     3,     1,     3,     1,
+       1,     1,     1,     1,     1,     4,     5,     1,     1,     1,
+       1,     3,     4,     2,     3,     3,     3,     1,     1,     1,
+       0,     2,     0,     2,     1,     1,     1,     1,     1,     1,
+       1,     1,     1,     1,     1,     1,     2,     0,     4,     1,
+       2,     0,     3,     1,     3,     1,     1,     0,     2,     3,
+       2,     1,     3,     2,     0,     2,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     3,     0,     3,     0,     0,     4,     2,     2,     1,
-       1,     1,     1,     3,     4,     2,     3,     3,     3,     1,
-       1,     1,     3,     1,     1,     3,     4,     2,     3,     3,
-       3,     0,     1,     1,     3,     1,     1,     1,     3,     1,
-       1,     0,     4,     1,     4,     3,     4,     6,     5,     5,
-       2,     2,     7,     1,     3,     1,     2,     2,     2,     2,
-       2,     2,     2,     2,     3,     1,     3,     4,     1,     9,
-       0,     3,     0,     0,     4,     2,     4,     2,     1,     4,
-       1,     3,     3,     3,     1,     3,     3,     1,     3,     3,
-       1,     3,     3,     3,     3,     1,     3,     3,     1,     3,
-       1,     3,     1,     3,     1,     0,     4,     1,     0,     4,
-       1,     0,     0,     7,     1,     3,     3,     3,     3,     3,
-       3,     3,     3,     3,     3,     3,     1,     3,     0,     1,
-       1,     1,     1,     1,     3,     0,     9,     0,    11,     1,
-       1,     2,     0,     6,     0,     8,     4,     4,     0,     0,
-       2,     1,     4,     2,     1,     4,     0,     4,     1,     3,
-       4,     2,     2,     2,     1,     2,     3,     2,     1,     3,
-       1,     1,     1,     1,     1,     2,     0,     6,     2,     2,
-       0,     6,     0,     5,     1,     1,     1,     1,     1,     1,
+       1,     1,     3,     0,     3,     0,     0,     4,     2,     2,
+       1,     1,     1,     1,     3,     4,     2,     3,     3,     3,
+       1,     1,     1,     3,     1,     1,     3,     4,     2,     3,
+       3,     3,     0,     1,     1,     3,     1,     1,     1,     3,
+       1,     1,     0,     4,     1,     4,     3,     4,     6,     5,
+       5,     2,     2,     7,     1,     3,     1,     2,     2,     2,
+       2,     2,     2,     2,     2,     3,     1,     3,     4,     1,
+       9,     0,     3,     0,     0,     4,     2,     4,     2,     1,
+       4,     1,     3,     3,     3,     1,     3,     3,     1,     3,
+       3,     1,     3,     3,     3,     3,     1,     3,     3,     1,
+       3,     1,     3,     1,     3,     1,     0,     4,     1,     0,
+       4,     1,     0,     0,     7,     1,     3,     3,     3,     3,
+       3,     3,     3,     3,     3,     3,     3,     1,     3,     0,
+       1,     1,     1,     1,     1,     3,     0,     9,     0,    11,
+       1,     1,     2,     0,     6,     0,     8,     4,     4,     0,
+       0,     2,     1,     4,     2,     1,     4,     0,     4,     1,
+       3,     4,     2,     2,     2,     1,     2,     3,     2,     1,
+       3,     1,     1,     1,     1,     1,     2,     0,     6,     2,
+       2,     0,     6,     0,     5,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     2,     2,     2,
+       1,     1,     1,     1,     1,     1,     1,     1,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     3,     1,     4,     1,     3,     2,     2,
-       2,     0,     1,     0,     0,     0,    12,     0,     0,    11,
-       6,     6,     0,     0,    10,     0,     0,    10,     5,     5,
-       4,     4,     0,     1,     1,     2,     5,     3,     2,     4,
-       1,     3,     4,     6,     0,     8,     4,     1,     3,     2,
-       1,     4,     1,     1,     2,     2,     1,     2,     1,     2,
-       1,     1,     1,     1,     2,     1,     2,     2,     3,     1,
-       3,     1,     3,     1,     1,     3,     0,     2,     0,     4,
-       4,     1,     1,     2,     1,     1,     2,     0,     1,     5,
-       2,     3,     3,     4,     3,     4,     4,     5,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     1,     4,     1,
-       1,     1,     2,     2,     7,     6,     2,     0,     0,    10,
-       0,     6,     1,     1,     1,     1,     2,     1,     1,     1,
-       1,     1,     1,     1,     3,     1,     0,     3,     2,     2,
-       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       3,     1,     1,     1,     2,     2,     0,     2,     0,     4,
-       0,     6,     0,     3,     0,     5,     3,     2,     3,     0,
-       0,     0,     0,     0,     1,     2,     2,     3,     2,     3,
-       3,     4,     2,     2,     3,     3,     4,     1,     2,     1,
-       2,     1,     3,     1,     4,     1,     2,     1,     2,     1,
-       2,     1,     4,     2,     0,     5,     0,     6,     4,     4,
-       0,     0,    10,     1,     0,     4,     1,     1,     1,     1,
-       1,     2,     1,     3,     1,     4,     3,     4,     6,     5,
-       5,     2,     2,     1,     2,     2,     2,     2,     2,     2,
-       2,     2,     1,     1,     4,     1,     3,     3,     3,     1,
-       3,     3,     1,     3,     3,     1,     3,     3,     3,     3,
-       1,     3,     3,     1,     3,     1,     3,     1,     3,     1,
-       3,     1,     3,     1,     0,     0,     7,     1,     3,     3,
-       3,     3,     3,     3,     3,     3,     3,     3,     3,     1,
-       0,     1,     2,     7,     2,     2,     7,     6,     2,     3,
-       2,     3,     2,     3,     3,     3,     3,     2,     3,     0,
-       1,     0,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     4,     4
+       2,     2,     2,     2,     3,     1,     4,     1,     3,     2,
+       2,     2,     0,     1,     0,     0,     0,    12,     0,     0,
+      11,     6,     6,     0,     0,    10,     0,     0,    10,     5,
+       5,     4,     4,     0,     1,     1,     2,     5,     3,     2,
+       4,     1,     3,     4,     6,     0,     8,     4,     1,     3,
+       2,     1,     4,     1,     1,     2,     2,     1,     2,     1,
+       2,     1,     1,     1,     1,     2,     1,     2,     2,     3,
+       1,     3,     1,     3,     1,     1,     3,     0,     2,     0,
+       4,     4,     1,     1,     2,     1,     1,     2,     0,     1,
+       5,     2,     3,     3,     4,     3,     4,     4,     5,     1,
+       1,     1,     1,     1,     1,     1,     1,     1,     1,     4,
+       1,     1,     1,     2,     2,     7,     6,     2,     0,     0,
+      10,     0,     6,     1,     1,     1,     1,     2,     1,     1,
+       1,     1,     1,     1,     1,     3,     1,     0,     3,     2,
+       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
+       1,     3,     1,     1,     1,     2,     2,     0,     2,     0,
+       4,     0,     6,     0,     3,     0,     5,     3,     2,     3,
+       0,     0,     0,     0,     0,     1,     2,     2,     3,     2,
+       3,     3,     4,     2,     2,     3,     3,     4,     1,     2,
+       1,     2,     1,     3,     1,     4,     1,     2,     1,     2,
+       1,     2,     1,     4,     2,     0,     5,     0,     6,     4,
+       4,     0,     0,    10,     1,     0,     4,     1,     1,     1,
+       1,     1,     2,     1,     3,     1,     4,     3,     4,     6,
+       5,     5,     2,     2,     1,     2,     2,     2,     2,     2,
+       2,     2,     2,     1,     1,     4,     1,     3,     3,     3,
+       1,     3,     3,     1,     3,     3,     1,     3,     3,     3,
+       3,     1,     3,     3,     1,     3,     1,     3,     1,     3,
+       1,     3,     1,     3,     1,     0,     0,     7,     1,     3,
+       3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
+       1,     0,     1,     2,     7,     2,     2,     7,     6,     2,
+       3,     2,     3,     2,     3,     3,     3,     3,     2,     3,
+       0,     1,     0,     1,     1,     1,     1,     1,     1,     1,
+       1,     1,     4,     4
 };
 
 };
 
-/* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE
-   doesn't specify something else to do.  Zero means the default is an
-   error. */
-static const short yydefact[] =
+/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
+   STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
+   means the default is an error.  */
+static const unsigned short yydefact[] =
 {
 {
-       0,    12,    11,   455,     0,   422,   262,   422,    15,     0,
-       0,     0,     0,   278,   278,   278,   301,   300,   302,   303,
-     304,   363,   364,   327,   329,   328,   332,   333,   321,   323,
-     324,   322,   330,   331,   365,   366,   325,   326,   342,   338,
-     334,   339,   335,   316,   317,   320,   318,   319,   360,   361,
-     362,   359,   344,   343,   337,   336,   348,   349,   350,   351,
-     352,   346,   347,   345,   353,   354,   357,   358,   355,   356,
-     422,   422,   422,   422,   422,   422,   422,   422,   422,   422,
-     340,   703,   704,   708,   341,   705,   706,   709,     0,     3,
-       6,     7,   446,     8,     9,   134,    44,   699,    10,   261,
-     263,     0,   401,   278,   278,   278,   278,   278,   278,   278,
-     278,   422,   278,   401,   401,   422,   394,   422,     0,   422,
-     130,   278,   707,    21,   422,   450,   451,   452,   453,   456,
-     457,   278,   281,   278,   278,   274,   422,   710,   422,   422,
-     708,     0,   543,   202,   552,     0,     0,     0,   681,     0,
-       0,     0,     0,   202,   589,     0,   202,   202,   202,   202,
-     202,   202,   278,   202,   202,     0,    43,     0,     0,     0,
-       0,     0,     0,   546,   202,   170,   166,   169,   610,   600,
-     173,   185,   208,   195,   278,   210,   214,   217,   220,   225,
-     228,   230,   232,   234,   237,   240,   244,   256,   591,   542,
-       0,     0,   577,   532,   533,   534,   535,     0,     0,   536,
-     202,   537,     0,   538,   167,     0,   539,   541,   165,     0,
-     525,     0,   587,     0,   559,   512,     0,     0,     0,   521,
-       0,   522,   501,   520,   517,   518,   513,   514,   515,     0,
-       0,   519,   526,     0,     0,   523,   500,     0,   367,   369,
-     368,   379,   381,   380,   382,   383,   384,   385,   386,   387,
-     388,     4,   278,     0,   132,   137,   422,   700,     5,   422,
-     402,   398,   372,   374,   371,   373,   376,   375,   377,   378,
-     392,   370,   399,   400,     0,   278,   278,   390,   278,   278,
-       0,   391,   447,   389,   454,   458,   278,   166,   169,     0,
-     422,   472,     0,   165,   422,     0,   280,   422,     0,   271,
-     278,   699,    17,    19,     0,   422,   278,    29,   466,   208,
-     260,   548,     0,   202,   202,   202,   202,     0,   690,   692,
-     697,     0,   559,     0,     0,     0,   188,   193,   192,   191,
-     190,   189,     0,   278,   186,   187,   202,   202,     0,     0,
-       0,     0,     0,   546,     0,   278,   545,   497,   202,   488,
-     489,   490,   491,     0,   492,   493,   202,   495,   202,   494,
-     496,   559,   202,   202,   180,   181,     0,   202,   202,   202,
-     202,   202,   202,   202,   202,   202,   202,   202,   203,   200,
-     202,   202,   202,   202,   202,   202,   202,   202,   202,   202,
-     202,   202,   202,   202,   202,   202,   235,   241,   238,   590,
-     202,   688,    40,     0,   560,   578,   593,   685,   611,     0,
-     544,   202,     0,     0,     0,   588,    41,   502,   506,   579,
-     422,   516,   528,   529,     0,     0,     0,    42,    23,   202,
-     466,   422,   422,   278,   264,   131,     0,   396,     0,   422,
-       0,   422,     0,   278,     0,   711,   278,   202,     0,   474,
-     473,   475,   712,   278,   277,   278,   276,   272,   422,     0,
-     278,     0,   422,   278,    20,   463,     0,     0,   448,   464,
-     278,     0,   553,     0,   596,     0,   259,     0,   689,   698,
-     559,     0,   168,   202,   540,   278,     0,     0,     0,   693,
-     694,   695,   696,   691,   547,   202,   554,     0,   684,   422,
-     557,   682,     0,     0,   175,     0,   183,     0,     0,     0,
-     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
-     255,   194,     0,   211,   212,   213,   216,   215,   218,   219,
-     221,   222,   223,   224,   226,   227,   229,   231,   233,   202,
-     202,   202,   257,   573,   710,   577,     0,   422,   558,   594,
-       0,     0,   524,   510,   278,   580,   527,     0,     0,    25,
-       0,   564,   202,   585,   133,   422,   202,   559,   278,   265,
-     395,   278,   412,     0,   420,   415,     0,   421,     0,   437,
-     440,   434,   436,   393,   480,     0,   466,   476,   202,     0,
-     282,   270,   284,   269,   278,   278,   278,   699,    16,    31,
-     202,   466,   278,    18,   449,   459,   461,    37,   468,   422,
-     467,   471,   549,   592,     0,   598,   202,   172,   202,   209,
-     422,     0,   278,   498,   550,     0,   556,   572,     0,   601,
-     202,   176,   174,   278,   278,   202,   202,   201,   236,     0,
-     239,   574,   575,   202,   202,   202,   599,   202,   422,   202,
-     422,    79,    27,   565,   568,   202,   202,   566,   202,   586,
-     136,     0,   267,   278,   397,   418,   561,   404,   419,   561,
-     407,   278,   439,   278,     0,   481,   484,   278,     0,   482,
-       0,   466,   422,   106,   283,   202,   278,   278,     0,    33,
-       0,   278,     0,    81,   465,   278,   477,   202,     0,   202,
-     583,   701,   581,     0,     0,     0,   555,   202,   202,   184,
-     178,   179,   278,   205,   278,   207,   242,   576,   595,     0,
-     278,   202,   202,   202,   202,   202,   202,   202,   202,     0,
-     166,   169,   185,   208,   632,   214,   217,   220,   225,   228,
-     230,   232,   234,   237,     0,   604,   603,   167,   614,   623,
-     633,   635,   639,   642,   645,   650,   653,   655,   657,   659,
-     661,   663,   667,   606,   165,     0,    24,     0,    96,   100,
-      98,   123,   124,   125,   126,   127,   128,   129,    26,    79,
-      83,     0,    85,    84,     0,    88,     0,   422,   422,    86,
-       0,    87,   312,     0,    79,   569,   570,   202,   567,    22,
-     278,   286,   422,   410,   561,   422,   411,   561,   433,   438,
-     202,     0,     0,   485,   483,   486,     0,   278,     0,   105,
-     202,   202,     0,   288,   273,   202,     0,   294,     0,   202,
-       0,   422,    81,    35,     0,   460,   462,    38,    81,    89,
-      91,    90,    94,    92,    93,   469,   442,     0,   278,   477,
-     443,   478,   597,   507,   701,   202,     0,     0,   177,   551,
-       0,   604,     0,     0,   202,   687,     0,     0,   188,   193,
-     192,   191,   190,   189,   186,   187,   202,   202,   202,   180,
-     181,     0,   202,   202,   202,   202,   202,   202,   202,   202,
-     202,   202,   202,   202,   202,   202,   202,   202,   202,   202,
-     202,   202,   202,   202,   202,   202,   202,   202,   202,   202,
-     664,   202,   511,     0,   505,   104,   109,   102,   113,   699,
-      80,    95,    99,   107,   306,   309,   305,     0,   310,   308,
-      28,   571,   202,     0,   424,   422,   422,   423,   422,   422,
-     422,   441,   278,   479,   487,   285,   275,   298,     0,     0,
-     297,   291,   292,   295,   293,   286,    13,    32,    34,    81,
-      30,   699,    82,   466,   470,   444,   445,   202,     0,   582,
-     182,     0,   198,     0,   559,   204,   206,   243,   686,   168,
-     202,     0,   175,     0,     0,     0,     0,   668,   669,   670,
-     671,   672,   673,   674,   675,   676,   677,   678,   211,   212,
-     213,   216,   215,   218,   219,   221,   222,   223,   224,   226,
-     227,   229,   231,   233,   660,   202,   662,   202,   504,   108,
-       0,   118,   119,   120,   121,   122,   699,   110,   422,   113,
-       0,     0,   141,   142,   101,   151,   699,   139,   140,     0,
-      48,     0,     0,    58,    59,    69,    67,   315,     0,   314,
-      56,    76,     0,    63,    66,     0,   699,    68,   161,   286,
-     278,   422,     0,   278,   425,   413,   422,   416,   422,   435,
-     289,   202,   296,   699,    36,     0,   278,   508,   584,   278,
-     202,     0,   683,   680,   209,   278,   176,   174,   278,   278,
-       0,   605,   103,   113,    97,   116,   112,   117,   115,   114,
-       0,   145,     0,     0,     0,     0,   138,     0,     0,   154,
-     163,   699,   153,     0,     0,    66,     0,    72,     0,    54,
-      53,     0,    61,    60,    62,     0,     0,     0,     0,     0,
-       0,   278,   699,   162,     0,   266,   278,   427,   278,   278,
-     422,   430,     0,   405,     0,   408,   290,   299,     0,    39,
-     278,     0,   199,     0,   196,   679,   560,     0,   178,   179,
-     665,   111,   146,   143,   149,     0,   150,   147,   148,   152,
-       0,   157,     0,     0,     0,     0,   278,     0,    78,    77,
-       0,    73,     0,    50,    45,    46,    55,    66,    57,    70,
-       0,    74,    75,     0,     0,   313,   278,   278,   287,   202,
-     278,     0,   428,   278,   414,     0,   417,     0,    14,   509,
-     197,   602,   177,   202,   144,   158,   155,     0,   159,   160,
-     164,   307,    52,    49,     0,     0,    71,    47,    64,   311,
-     268,   431,   422,   426,   202,   403,   409,   666,   156,    65,
-      51,   429,   432,   406,     0,     0,     0
+       0,    13,    12,   456,     0,   423,   263,   423,    16,     0,
+       0,     0,     0,   279,   279,   279,   302,   301,   303,   304,
+     305,   364,   365,   328,   330,   329,   333,   334,   322,   324,
+     325,   323,   331,   332,   366,   367,   326,   327,   343,   339,
+     335,   340,   336,   317,   318,   321,   319,   320,   361,   362,
+     363,   360,   345,   344,   338,   337,   349,   350,   351,   352,
+     353,   347,   348,   346,   354,   355,   358,   359,   356,   357,
+     423,   423,   423,   423,   423,   423,   423,   423,   423,   423,
+     341,   704,   705,   709,   342,   706,   707,   710,     0,     0,
+       4,     7,     8,   447,     9,    10,   135,    45,   700,    11,
+     262,   264,     0,   402,   279,   279,   279,   279,   279,   279,
+     279,   279,   423,   279,   402,   402,   423,   395,   423,     0,
+     423,   131,   279,   708,    22,   423,   451,   452,   453,   454,
+     457,   458,   279,   282,   279,   279,   275,   423,   711,   423,
+     423,   709,     0,   544,   203,   553,     0,     0,     0,   682,
+       0,     0,     0,     0,   203,   590,     0,   203,   203,   203,
+     203,   203,   203,   279,   203,   203,     0,    44,     0,     0,
+       0,     0,     0,     0,   547,   203,   171,   167,   170,   611,
+     601,   174,   186,   209,   196,   279,   211,   215,   218,   221,
+     226,   229,   231,   233,   235,   238,   241,   245,   257,   592,
+     543,     0,     0,   578,   533,   534,   535,   536,     0,     0,
+     537,   203,   538,     0,   539,   168,     0,   540,   542,   166,
+       0,   526,     0,   588,     0,   560,   513,     0,     0,     0,
+     522,     0,   523,   502,   521,   518,   519,   514,   515,   516,
+       0,     0,   520,   527,     0,     0,   524,   501,     0,   368,
+     370,   369,   380,   382,   381,   383,   384,   385,   386,   387,
+     388,   389,     1,     5,   279,     0,   133,   138,   423,   701,
+       6,   423,   403,   399,   373,   375,   372,   374,   377,   376,
+     378,   379,   393,   371,   400,   401,     0,   279,   279,   391,
+     279,   279,     0,   392,   448,   390,   455,   459,   279,   167,
+     170,     0,   423,   473,     0,   166,   423,     0,   281,   423,
+       0,   272,   279,   700,    18,    20,     0,   423,   279,    30,
+     467,   209,   261,   549,     0,   203,   203,   203,   203,     0,
+     691,   693,   698,     0,   560,     0,     0,     0,   189,   194,
+     193,   192,   191,   190,     0,   279,   187,   188,   203,   203,
+       0,     0,     0,     0,     0,   547,     0,   279,   546,   498,
+     203,   489,   490,   491,   492,     0,   493,   494,   203,   496,
+     203,   495,   497,   560,   203,   203,   181,   182,     0,   203,
+     203,   203,   203,   203,   203,   203,   203,   203,   203,   203,
+     204,   201,   203,   203,   203,   203,   203,   203,   203,   203,
+     203,   203,   203,   203,   203,   203,   203,   203,   236,   242,
+     239,   591,   203,   689,    41,     0,   561,   579,   594,   686,
+     612,     0,   545,   203,     0,     0,     0,   589,    42,   503,
+     507,   580,   423,   517,   529,   530,     0,     0,     0,    43,
+      24,   203,   467,   423,   423,   279,   265,   132,     0,   397,
+       0,   423,     0,   423,     0,   279,     0,   712,   279,   203,
+       0,   475,   474,   476,   713,   279,   278,   279,   277,   273,
+     423,     0,   279,     0,   423,   279,    21,   464,     0,     0,
+     449,   465,   279,     0,   554,     0,   597,     0,   260,     0,
+     690,   699,   560,     0,   169,   203,   541,   279,     0,     0,
+       0,   694,   695,   696,   697,   692,   548,   203,   555,     0,
+     685,   423,   558,   683,     0,     0,   176,     0,   184,     0,
+       0,     0,   246,   247,   248,   249,   250,   251,   252,   253,
+     254,   255,   256,   195,     0,   212,   213,   214,   217,   216,
+     219,   220,   222,   223,   224,   225,   227,   228,   230,   232,
+     234,   203,   203,   203,   258,   574,   711,   578,     0,   423,
+     559,   595,     0,     0,   525,   511,   279,   581,   528,     0,
+       0,    26,     0,   565,   203,   586,   134,   423,   203,   560,
+     279,   266,   396,   279,   413,     0,   421,   416,     0,   422,
+       0,   438,   441,   435,   437,   394,   481,     0,   467,   477,
+     203,     0,   283,   271,   285,   270,   279,   279,   279,   700,
+      17,    32,   203,   467,   279,    19,   450,   460,   462,    38,
+     469,   423,   468,   472,   550,   593,     0,   599,   203,   173,
+     203,   210,   423,     0,   279,   499,   551,     0,   557,   573,
+       0,   602,   203,   177,   175,   279,   279,   203,   203,   202,
+     237,     0,   240,   575,   576,   203,   203,   203,   600,   203,
+     423,   203,   423,    80,    28,   566,   569,   203,   203,   567,
+     203,   587,   137,     0,   268,   279,   398,   419,   562,   405,
+     420,   562,   408,   279,   440,   279,     0,   482,   485,   279,
+       0,   483,     0,   467,   423,   107,   284,   203,   279,   279,
+       0,    34,     0,   279,     0,    82,   466,   279,   478,   203,
+       0,   203,   584,   702,   582,     0,     0,     0,   556,   203,
+     203,   185,   179,   180,   279,   206,   279,   208,   243,   577,
+     596,     0,   279,   203,   203,   203,   203,   203,   203,   203,
+     203,     0,   167,   170,   186,   209,   633,   215,   218,   221,
+     226,   229,   231,   233,   235,   238,     0,   605,   604,   168,
+     615,   624,   634,   636,   640,   643,   646,   651,   654,   656,
+     658,   660,   662,   664,   668,   607,   166,     0,    25,     0,
+      97,   101,    99,   124,   125,   126,   127,   128,   129,   130,
+      27,    80,    84,     0,    86,    85,     0,    89,     0,   423,
+     423,    87,     0,    88,   313,     0,    80,   570,   571,   203,
+     568,    23,   279,   287,   423,   411,   562,   423,   412,   562,
+     434,   439,   203,     0,     0,   486,   484,   487,     0,   279,
+       0,   106,   203,   203,     0,   289,   274,   203,     0,   295,
+       0,   203,     0,   423,    82,    36,     0,   461,   463,    39,
+      82,    90,    92,    91,    95,    93,    94,   470,   443,     0,
+     279,   478,   444,   479,   598,   508,   702,   203,     0,     0,
+     178,   552,     0,   605,     0,     0,   203,   688,     0,     0,
+     189,   194,   193,   192,   191,   190,   187,   188,   203,   203,
+     203,   181,   182,     0,   203,   203,   203,   203,   203,   203,
+     203,   203,   203,   203,   203,   203,   203,   203,   203,   203,
+     203,   203,   203,   203,   203,   203,   203,   203,   203,   203,
+     203,   203,   665,   203,   512,     0,   506,   105,   110,   103,
+     114,   700,    81,    96,   100,   108,   307,   310,   306,     0,
+     311,   309,    29,   572,   203,     0,   425,   423,   423,   424,
+     423,   423,   423,   442,   279,   480,   488,   286,   276,   299,
+       0,     0,   298,   292,   293,   296,   294,   287,    14,    33,
+      35,    82,    31,   700,    83,   467,   471,   445,   446,   203,
+       0,   583,   183,     0,   199,     0,   560,   205,   207,   244,
+     687,   169,   203,     0,   176,     0,     0,     0,     0,   669,
+     670,   671,   672,   673,   674,   675,   676,   677,   678,   679,
+     212,   213,   214,   217,   216,   219,   220,   222,   223,   224,
+     225,   227,   228,   230,   232,   234,   661,   203,   663,   203,
+     505,   109,     0,   119,   120,   121,   122,   123,   700,   111,
+     423,   114,     0,     0,   142,   143,   102,   152,   700,   140,
+     141,     0,    49,     0,     0,    59,    60,    70,    68,   316,
+       0,   315,    57,    77,     0,    64,    67,     0,   700,    69,
+     162,   287,   279,   423,     0,   279,   426,   414,   423,   417,
+     423,   436,   290,   203,   297,   700,    37,     0,   279,   509,
+     585,   279,   203,     0,   684,   681,   210,   279,   177,   175,
+     279,   279,     0,   606,   104,   114,    98,   117,   113,   118,
+     116,   115,     0,   146,     0,     0,     0,     0,   139,     0,
+       0,   155,   164,   700,   154,     0,     0,    67,     0,    73,
+       0,    55,    54,     0,    62,    61,    63,     0,     0,     0,
+       0,     0,     0,   279,   700,   163,     0,   267,   279,   428,
+     279,   279,   423,   431,     0,   406,     0,   409,   291,   300,
+       0,    40,   279,     0,   200,     0,   197,   680,   561,     0,
+     179,   180,   666,   112,   147,   144,   150,     0,   151,   148,
+     149,   153,     0,   158,     0,     0,     0,     0,   279,     0,
+      79,    78,     0,    74,     0,    51,    46,    47,    56,    67,
+      58,    71,     0,    75,    76,     0,     0,   314,   279,   279,
+     288,   203,   279,     0,   429,   279,   415,     0,   418,     0,
+      15,   510,   198,   603,   178,   203,   145,   159,   156,     0,
+     160,   161,   165,   308,    53,    50,     0,     0,    72,    48,
+      65,   312,   269,   432,   423,   427,   203,   404,   410,   667,
+     157,    66,    52,   430,   433,   407
 };
 
 };
 
+/* YYDEFGOTO[NTERM-NUM]. */
 static const short yydefgoto[] =
 {
 static const short yydefgoto[] =
 {
-    1254,    88,    89,    90,    91,   139,   311,   312,    92,   661,
-     804,   313,   842,   969,    93,   703,   971,   944,    95,  1057,
-    1193,  1139,  1123,  1194,  1233,  1131,  1059,  1060,  1061,  1135,
-    1062,  1063,  1197,  1065,  1190,   788,   847,   789,   848,   790,
-     849,   928,   850,   793,   851,   929,   926,   927,   828,   795,
-     796,  1036,  1037,  1038,  1106,  1039,   797,   798,    96,   265,
-     441,   266,   577,    97,  1044,  1174,  1175,  1046,  1120,  1142,
-    1121,   180,   332,   181,   515,   182,   981,   183,   744,   532,
-     184,   531,   647,   185,   186,   187,   188,   189,   190,   191,
-     192,   193,   194,   549,   195,   551,   196,   550,   874,   197,
-     226,   487,   321,   429,    99,   673,   810,   602,   603,   606,
-     100,   307,   101,   263,   133,   134,   604,   605,   943,   834,
-     835,   836,   837,   958,   102,   799,   853,  1049,   801,   802,
-     854,  1068,   937,  1066,   103,   104,   105,   106,   107,   108,
-     109,   110,   111,   112,   113,   114,   301,   430,   446,   116,
-     271,  1253,   117,   814,  1215,   817,  1217,   676,  1152,   679,
-    1154,   118,   946,   947,  1149,  1150,   119,   684,   588,   589,
-     858,   136,   477,   128,   129,   121,   614,   615,   478,   479,
-     480,   705,   620,   334,   822,   860,   461,   356,   357,   227,
-     247,   228,   229,   358,   977,  1161,   231,   657,   232,   233,
-     434,   234,   235,   201,   415,   359,   354,   360,   481,   715,
-     361,   322,   635,   362,   206,   363,   558,   812,  1075,   240,
-     574,   510,   414,   208,   575,   711,   712,   576,   364,   209,
-     210,   365,   654,   624,   366,   243,   367,   371,   718,   755,
-     923,   756,   214,   758,   759,   760,   761,   762,   763,   764,
-     765,   766,   767,   768,   769,   770,   771,   772,  1025,  1223,
-     773,  1166,   368,   369,   216,   370,   268,   866,   303,   219,
-     124
+      -1,    88,    89,    90,    91,    92,   140,   313,   314,    93,
+     663,   806,   315,   844,   971,    94,   705,   973,   946,    96,
+    1059,  1195,  1141,  1125,  1196,  1235,  1133,  1061,  1062,  1063,
+    1137,  1064,  1065,  1199,  1067,  1192,   790,   849,   791,   850,
+     792,   851,   930,   852,   795,   853,   931,   928,   929,   830,
+     797,   798,  1038,  1039,  1040,  1108,  1041,   799,   800,    97,
+     267,   443,   268,   579,    98,  1046,  1176,  1177,  1048,  1122,
+    1144,  1123,   181,   334,   182,   517,   183,   983,   184,   746,
+     534,   185,   533,   649,   186,   187,   188,   189,   190,   191,
+     192,   193,   194,   195,   551,   196,   553,   197,   552,   876,
+     198,   227,   489,   323,   431,   100,   675,   812,   604,   605,
+     608,   101,   309,   102,   265,   134,   135,   606,   607,   945,
+     836,   837,   838,   839,   960,   103,   801,   855,  1051,   803,
+     804,   856,  1070,   939,  1068,   104,   105,   106,   107,   108,
+     109,   110,   111,   112,   113,   114,   115,   303,   432,   448,
+     117,   273,  1255,   118,   816,  1217,   819,  1219,   678,  1154,
+     681,  1156,   119,   948,   949,  1151,  1152,   120,   686,   590,
+     591,   860,   137,   479,   129,   130,   122,   616,   617,   480,
+     481,   482,   707,   622,   336,   824,   862,   463,   358,   359,
+     228,   248,   229,   230,   360,   979,  1163,   232,   659,   233,
+     234,   436,   235,   236,   202,   417,   361,   356,   362,   483,
+     717,   363,   324,   637,   364,   207,   365,   560,   814,  1077,
+     241,   576,   512,   416,   209,   577,   713,   714,   578,   366,
+     210,   211,   367,   656,   626,   368,   244,   369,   373,   720,
+     757,   925,   758,   215,   760,   761,   762,   763,   764,   765,
+     766,   767,   768,   769,   770,   771,   772,   773,   774,  1027,
+    1225,   775,  1168,   370,   371,   217,   372,   270,   868,   305,
+     220,   125
 };
 
 };
 
+/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
+   STATE-NUM.  */
+#define YYPACT_NINF -1021
 static const short yypact[] =
 {
 static const short yypact[] =
 {
-    2215,-32768,-32768,   314,    31,  5636,-32768,  6865,-32768,   720,
-    3280,  3919,  3919,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-  -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-  -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-  -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-  -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-  -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-  -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-  -32768,-32768,-32768,   587,-32768,-32768,-32768,-32768,  2397,-32768,
-  -32768,-32768,   374,-32768,-32768,    55,-32768,   102,-32768,-32768,
-  -32768,   114,  6451,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-  -32768,-32768,-32768,  6451,  6451,   198,   133,-32768,   956,-32768,
-  -32768,   720,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   314,
-  -32768,  5804,-32768,   238,-32768,   198,-32768,-32768,-32768,  5636,
-  -32768,   243,-32768,  5927,-32768,   281,   310,   330,-32768,   357,
-     720,   400,   427,  1522,-32768,  2783,  5927,  5927,  5927,  5927,
-    5927,  5927,-32768,  5956,  5956,   440,-32768,   454,   474,   480,
-     537,   570,   498,   458,  5093,-32768,   548,   575,-32768,   618,
-  -32768,  1022,   943,-32768,-32768,-32768,   994,   502,   566,   394,
-     554,   601,   617,   622,   638,   105,-32768,-32768,   146,-32768,
-    3707,   579,   627,-32768,-32768,-32768,-32768,   754,  3387,-32768,
-    5093,-32768,  3707,-32768,   572,  3707,-32768,-32768,   762,   765,
-  -32768,   777,-32768,  2978,   618,   809,   266,   755,  3813,-32768,
-    3919,-32768,-32768,-32768,  6175,-32768,-32768,-32768,-32768,   836,
-     843,-32768,-32768,  3919,  3707,-32768,-32768,   773,-32768,-32768,
-  -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-  -32768,-32768,   855,   871,-32768,-32768,  6727,-32768,-32768,-32768,
-  -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-  -32768,-32768,-32768,-32768,   869,   728,-32768,-32768,   720,   720,
-      46,-32768,   374,-32768,-32768,-32768,  2002,-32768,-32768,   164,
-    6865,   576,   887,-32768,-32768,   913,-32768,-32768,   923,   897,
-     728,   102,-32768,   785,   926,-32768,   720,-32768,   261,-32768,
-  -32768,-32768,   921,  5927,  5927,  5927,  1772,   952,-32768,-32768,
-  -32768,   470,   967,   385,   972,   975,-32768,-32768,-32768,-32768,
-  -32768,-32768,   987,  2002,-32768,-32768,  5927,  5927,  1001,  1003,
-    1014,  1021,  1027,   458,   737,  2110,-32768,-32768,  5093,-32768,
-  -32768,-32768,-32768,  1028,-32768,-32768,  5093,-32768,  5093,-32768,
-  -32768,-32768,  5825,  5927,-32768,-32768,    90,  5927,  5927,  5927,
-    5927,  5927,  5927,  5927,  5927,  5927,  5927,  5927,-32768,-32768,
-    5927,  5927,  5927,  5927,  5927,  5927,  5927,  5927,  5927,  5927,
-    5927,  5927,  5927,  5927,  5927,  5927,-32768,-32768,-32768,-32768,
-    5927,-32768,-32768,  2588,-32768,-32768,  1068,-32768,-32768,  1002,
-  -32768,  5927,   487,   998,  1037,-32768,-32768,-32768,-32768,-32768,
-     198,  6175,-32768,-32768,  3919,  3493,  1061,-32768,-32768,  5927,
-      59,  4026,  5177,   728,-32768,   438,   991,  1069,  1082,  1083,
-    1084,  1083,   720,  1087,   338,-32768,-32768,  5836,  1085,   799,
-  -32768,   810,-32768,   728,-32768,   681,-32768,-32768,-32768,  1016,
-    1089,  1095,-32768,   728,   785,-32768,   720,  1086,-32768,  1100,
-     720,  1098,-32768,   395,  1101,   408,  1101,  1106,-32768,-32768,
-     967,  1104,-32768,  5528,-32768,-32768,  1105,  1113,   432,-32768,
-  -32768,-32768,-32768,-32768,-32768,  5927,-32768,  1111,-32768,  4026,
-  -32768,-32768,  1128,  1118,-32768,   462,-32768,    87,   720,   720,
-  -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-  -32768,-32768,   802,-32768,-32768,-32768,   994,   994,   502,   502,
-     566,   566,   566,   566,   394,   394,   554,   601,   617,  5927,
-    5927,  5927,-32768,-32768,  3173,-32768,  3600,  4216,-32768,-32768,
-    1121,   489,-32768,-32768,   728,-32768,-32768,  1126,  1124,-32768,
-    1127,-32768,  4596,-32768,-32768,  4406,  4640,   967,-32768,  1130,
-  -32768,-32768,  1134,  1136,-32768,  1138,  1140,-32768,   872,-32768,
-    1139,-32768,-32768,-32768,-32768,  1137,   653,   810,  5868,  1142,
-  -32768,-32768,-32768,-32768,  1146,-32768,-32768,   142,-32768,-32768,
-    5927,   156,   728,-32768,-32768,  1155,-32768,-32768,  1176,  6865,
-  -32768,-32768,-32768,-32768,  1161,-32768,  1772,-32768,  5555,-32768,
-  -32768,  1169,-32768,-32768,-32768,  1165,-32768,-32768,  1167,-32768,
-    5927,-32768,-32768,-32768,-32768,  6005,  6035,-32768,   622,   941,
-     638,-32768,-32768,  4747,  5093,  5927,-32768,  6094,-32768,  5927,
-  -32768,  1862,-32768,-32768,-32768,  4791,  4898,-32768,  4942,-32768,
-  -32768,  1164,-32768,-32768,-32768,-32768,-32768,  1172,-32768,-32768,
-    1173,-32768,   720,-32768,   720,-32768,-32768,   212,  1170,-32768,
-    1174,    86,-32768,  1132,-32768,  1835,-32768,-32768,  1179,-32768,
-    1183,-32768,   327,  1862,-32768,   720,   625,  5093,  1191,  5555,
-  -32768,  1194,-32768,  1195,  1192,  1175,-32768,  5927,  6094,-32768,
-  -32768,-32768,  2002,-32768,  2002,-32768,-32768,-32768,-32768,   546,
-    2002,  5927,  5927,  5927,  5927,  5927,  5927,  5956,  5956,  1197,
-     642,   651,  1099,  1242,-32768,  1019,   951,   986,   608,  1005,
-    1189,  1180,  1154,  1166,   152,  1199,-32768,    45,-32768,-32768,
-  -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-  -32768,-32768,-32768,-32768,   660,   667,-32768,  1036,-32768,-32768,
-  -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  1862,
-  -32768,  1135,-32768,-32768,  1141,-32768,  1143,-32768,-32768,-32768,
-    1151,-32768,   831,  1156,  1862,-32768,-32768,  5049,-32768,-32768,
-  -32768,-32768,  6589,-32768,-32768,  6589,-32768,-32768,-32768,-32768,
-    5927,  1045,  1203,-32768,-32768,-32768,  1205,   681,  1213,-32768,
-    1835,  5927,   720,-32768,-32768,  1835,   551,-32768,  1211,  1835,
-    1157,-32768,  1862,-32768,  1221,-32768,-32768,-32768,  1862,-32768,
-  -32768,-32768,-32768,-32768,-32768,-32768,   374,  1226,-32768,   564,
-  -32768,   810,-32768,-32768,  1194,  5507,  1231,   720,-32768,-32768,
-     702,  1228,  1229,  1230,  5927,  1238,   716,  1232,   753,   778,
-     795,   801,   812,   822,   832,   835,  5927,  5857,  5927,   841,
-     860,   126,  5927,  5927,  5927,  5927,  5927,  5927,  5927,  5927,
-    5927,  5927,  5927,  5927,  5927,  5927,  5927,  5927,  5927,  5927,
-    5927,  5927,  5927,  5927,  5927,  5927,  5927,  5927,  5927,  5927,
-  -32768,  5927,-32768,  1237,  1241,-32768,  1070,  1223,   262,    75,
-  -32768,-32768,-32768,-32768,-32768,-32768,-32768,   528,-32768,-32768,
-  -32768,-32768,  1835,   523,-32768,   198,  5339,-32768,  6589,  5339,
-    6589,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  1055,  1234,
-  -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  1862,
-  -32768,   102,-32768,   313,-32768,-32768,-32768,  5900,  1246,-32768,
-  -32768,   671,-32768,  1250,   967,  1169,  1169,-32768,-32768,   863,
-    5528,  1248,   873,   894,   294,   720,   720,-32768,-32768,-32768,
-  -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   902,   919,
-     927,   911,   954,   507,   796,    79,    98,   176,   339,   827,
-     852,    47,   366,   138,   622,  5927,   638,  6094,-32768,   572,
-    1036,-32768,-32768,-32768,-32768,-32768,   585,-32768,  6313,   262,
-     278,   278,-32768,-32768,-32768,   125,   606,-32768,-32768,    62,
-  -32768,   544,   109,-32768,-32768,-32768,-32768,-32768,  1247,-32768,
-      -4,-32768,  1004,-32768,   100,  1253,   102,-32768,    62,-32768,
-  -32768,-32768,  1254,   134,-32768,-32768,  5339,-32768,  5339,-32768,
-  -32768,  1311,-32768,   629,-32768,  1187,   745,-32768,-32768,-32768,
-    5927,   720,-32768,  1077,   928,-32768,   955,   957,-32768,-32768,
-    1063,-32768,-32768,   262,-32768,-32768,-32768,-32768,-32768,-32768,
-     449,   125,   558,   720,   720,   278,-32768,    62,    62,-32768,
-     341,   665,-32768,  1252,  1056,   497,   109,   397,    82,-32768,
-  -32768,   544,-32768,-32768,-32768,   544,    11,   720,   720,  1257,
-     544,-32768,   102,  1260,   690,-32768,   728,-32768,-32768,  1262,
-  -32768,  1263,  1264,-32768,  1266,-32768,-32768,-32768,  1196,-32768,
-     713,  1265,-32768,   304,-32768,-32768,-32768,  1267,   960,   973,
-  -32768,-32768,-32768,-32768,   125,  1270,   572,-32768,-32768,   125,
-     741,   341,   736,   720,   720,    62,-32768,  1093,-32768,-32768,
-     544,-32768,   497,  1251,-32768,   397,-32768,   397,-32768,-32768,
-    1271,-32768,-32768,  1093,  1268,-32768,-32768,-32768,-32768,  5927,
-     134,  1276,-32768,-32768,-32768,  1290,-32768,  1291,-32768,-32768,
-  -32768,-32768,   995,  5927,-32768,-32768,-32768,  1285,-32768,-32768,
-     341,-32768,-32768,-32768,  1288,    82,-32768,-32768,-32768,-32768,
-  -32768,-32768,-32768,-32768,  5927,-32768,-32768,-32768,-32768,-32768,
-  -32768,-32768,-32768,-32768,  1314,  1315,-32768
+    2377, -1021, -1021,   434,    55,  5691, -1021,  6920, -1021,   627,
+    2271,  3974,  3974, -1021, -1021, -1021, -1021, -1021, -1021, -1021,
+   -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021,
+   -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021,
+   -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021,
+   -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021,
+   -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021,
+   -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021,
+   -1021, -1021, -1021,   114, -1021, -1021, -1021, -1021,   101,  2559,
+   -1021, -1021, -1021,   469, -1021, -1021,   119, -1021,   163, -1021,
+   -1021, -1021,   202,  6506, -1021, -1021, -1021, -1021, -1021, -1021,
+   -1021, -1021, -1021, -1021,  6506,  6506,   221,   168, -1021,   795,
+   -1021, -1021,   627, -1021, -1021, -1021, -1021, -1021, -1021, -1021,
+     434, -1021,  5859, -1021,   245, -1021,   221, -1021, -1021, -1021,
+    5691, -1021,   276, -1021,  5982, -1021,   281,   341,   348, -1021,
+     361,   627,   382,   390,  1410, -1021,  2945,  5982,  5982,  5982,
+    5982,  5982,  5982, -1021,  6011,  6011,   397, -1021,   420,   412,
+     454,   472,   527,   501,   430,  5148, -1021,   533,   570, -1021,
+     580, -1021,   751,   858, -1021, -1021, -1021,   965,   359,   289,
+     538,   404,   581,   579,   588,   605,    85, -1021, -1021,   380,
+   -1021,  3762,   542,   592, -1021, -1021, -1021, -1021,   682,  3442,
+   -1021,  5148, -1021,  3762, -1021,   550,  3762, -1021, -1021,   670,
+     740, -1021,   748, -1021,  3140,   580,   743,   489,   738,  3868,
+   -1021,  3974, -1021, -1021, -1021,  6230, -1021, -1021, -1021, -1021,
+     770,   825, -1021, -1021,  3974,  3762, -1021, -1021,   752, -1021,
+   -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021,
+   -1021, -1021, -1021, -1021,   849,   828, -1021, -1021,  6782, -1021,
+   -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021,
+   -1021, -1021, -1021, -1021, -1021, -1021,   839,   325, -1021, -1021,
+     627,   627,   185, -1021,   469, -1021, -1021, -1021,  1773, -1021,
+   -1021,   102,  6920,   161,   873, -1021, -1021,   894, -1021, -1021,
+     909,   923,   325,   163, -1021,   645,   935, -1021,   627, -1021,
+     229, -1021, -1021, -1021,   944,  5982,  5982,  5982,  1542,   943,
+   -1021, -1021, -1021,   625,   967,   611,   949,   983, -1021, -1021,
+   -1021, -1021, -1021, -1021,   972,  1773, -1021, -1021,  5982,  5982,
+    1004,  1006,  1010,  1016,  1017,   430,   543,  2059, -1021, -1021,
+    5148, -1021, -1021, -1021, -1021,  1018, -1021, -1021,  5148, -1021,
+    5148, -1021, -1021, -1021,  5880,  5982, -1021, -1021,    64,  5982,
+    5982,  5982,  5982,  5982,  5982,  5982,  5982,  5982,  5982,  5982,
+   -1021, -1021,  5982,  5982,  5982,  5982,  5982,  5982,  5982,  5982,
+    5982,  5982,  5982,  5982,  5982,  5982,  5982,  5982, -1021, -1021,
+   -1021, -1021,  5982, -1021, -1021,  2750, -1021, -1021,  1027, -1021,
+   -1021,  1028, -1021,  5982,   673,  1013,  1020, -1021, -1021, -1021,
+   -1021, -1021,   221,  6230, -1021, -1021,  3974,  3548,  1030, -1021,
+   -1021,  5982,    58,  4081,  5232,   325, -1021,   590,   954,  1029,
+    1033,  1037,  1038,  1037,   627,  1039,   128, -1021, -1021,  5891,
+    1024,   709, -1021,   757, -1021,   325, -1021,   678, -1021, -1021,
+   -1021,   968,  1022,  1036, -1021,   325,   645, -1021,   627,  1041,
+   -1021,  1040,   627,  1042, -1021,   264,  1046,   385,  1046,  1044,
+   -1021, -1021,   967,  1043, -1021,  5583, -1021, -1021,  1047,  1048,
+     395, -1021, -1021, -1021, -1021, -1021, -1021,  5982, -1021,  1049,
+   -1021,  4081, -1021, -1021,  1062,  1053, -1021,   417, -1021,   103,
+     627,   627, -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021,
+   -1021, -1021, -1021, -1021,   610, -1021, -1021, -1021,   965,   965,
+     359,   359,   289,   289,   289,   289,   538,   538,   404,   581,
+     579,  5982,  5982,  5982, -1021, -1021,  3335, -1021,  3655,  4271,
+   -1021, -1021,  1054,   573, -1021, -1021,   325, -1021, -1021,  1055,
+    1057, -1021,  1056, -1021,  4651, -1021, -1021,  4461,  4695,   967,
+   -1021,  1063, -1021, -1021,  1060,  1068, -1021,  1070,  1072, -1021,
+     560, -1021,  1069, -1021, -1021, -1021, -1021,  1071,   744,   757,
+    5923,  1073, -1021, -1021, -1021, -1021,  1074, -1021, -1021,   175,
+   -1021, -1021,  5982,   200,   325, -1021, -1021,  1075, -1021, -1021,
+    1094,  6920, -1021, -1021, -1021, -1021,  1079, -1021,  1542, -1021,
+    5610, -1021, -1021,  1081, -1021, -1021, -1021,  1087, -1021, -1021,
+    1086, -1021,  5982, -1021, -1021, -1021, -1021,  6060,  6090, -1021,
+     588,   689,   605, -1021, -1021,  4802,  5148,  5982, -1021,  6149,
+   -1021,  5982, -1021,  1090, -1021, -1021, -1021,  4846,  4953, -1021,
+    4997, -1021, -1021,  1093, -1021, -1021, -1021, -1021, -1021,  1103,
+   -1021, -1021,  1104, -1021,   627, -1021,   627, -1021, -1021,   290,
+    1101, -1021,  1100,    66, -1021,  1058, -1021,  2136, -1021, -1021,
+    1102, -1021,  1111, -1021,   259,  1090, -1021,   627,   788,  5148,
+    1123,  5610, -1021,  1122, -1021,  1125,  1119,  1127, -1021,  5982,
+    6149, -1021, -1021, -1021,  1773, -1021,  1773, -1021, -1021, -1021,
+   -1021,   658,  1773,  5982,  5982,  5982,  5982,  5982,  5982,  6011,
+    6011,  1130,   746,   776,   851,  1480, -1021,   976,   772,   885,
+     597,   830,  1128,  1112,  1120,  1105,   181,  1143, -1021,    49,
+   -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021,
+   -1021, -1021, -1021, -1021, -1021, -1021,   777,   803, -1021,   980,
+   -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021,
+   -1021,  1090, -1021,  1088, -1021, -1021,  1089, -1021,  1091, -1021,
+   -1021, -1021,  1092, -1021,  2080,  1097,  1090, -1021, -1021,  5104,
+   -1021, -1021, -1021, -1021,  6644, -1021, -1021,  6644, -1021, -1021,
+   -1021, -1021,  5982,   973,  1164, -1021, -1021, -1021,  1165,   678,
+    1173, -1021,  2136,  5982,   627, -1021, -1021,  2136,   711, -1021,
+    1171,  2136,  1106, -1021,  1090, -1021,  1169, -1021, -1021, -1021,
+    1090, -1021, -1021, -1021, -1021, -1021, -1021, -1021,   469,  1172,
+   -1021,   714, -1021,   757, -1021, -1021,  1122,  5562,  1178,   627,
+   -1021, -1021,   805,  1174,  1175,  1176,  5982,  1184,   806,  1183,
+     815,   829,   834,   837,   861,   862,   870,   880,  5982,  5912,
+    5982,   890,   905,   105,  5982,  5982,  5982,  5982,  5982,  5982,
+    5982,  5982,  5982,  5982,  5982,  5982,  5982,  5982,  5982,  5982,
+    5982,  5982,  5982,  5982,  5982,  5982,  5982,  5982,  5982,  5982,
+    5982,  5982, -1021,  5982, -1021,  1188,  1193, -1021,  1023,  1177,
+     402,    87, -1021, -1021, -1021, -1021, -1021, -1021, -1021,   456,
+   -1021, -1021, -1021, -1021,  2136,   700, -1021,   221,  5394, -1021,
+    6644,  5394,  6644, -1021, -1021, -1021, -1021, -1021, -1021, -1021,
+     982,  1187, -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021,
+   -1021,  1090, -1021,   163, -1021,   407, -1021, -1021, -1021,  5955,
+    1196, -1021, -1021,   516, -1021,  1201,   967,  1081,  1081, -1021,
+   -1021,   907,  5583,  1199,   908,   922,   307,   627,   627, -1021,
+   -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021,
+     924,   930,   931,   327,   694,   692,   755,    81,   104,   513,
+     681,   535,   637,    91,   405,   147,   588,  5982,   605,  6149,
+   -1021,   550,   980, -1021, -1021, -1021, -1021, -1021,   872, -1021,
+    6368,   402,    18,    18, -1021, -1021, -1021,   457,   892, -1021,
+   -1021,    70, -1021,   488,    94, -1021, -1021, -1021, -1021, -1021,
+    1198, -1021,    30, -1021,   961, -1021,   429,  1200,   163, -1021,
+      70, -1021, -1021, -1021,  1204,   310, -1021, -1021,  5394, -1021,
+    5394, -1021, -1021,  1259, -1021,   916, -1021,  1135,   437, -1021,
+   -1021, -1021,  5982,   627, -1021,  1034,   937, -1021,   939,   948,
+   -1021, -1021,   997, -1021, -1021,   402, -1021, -1021, -1021, -1021,
+   -1021, -1021,    89,   457,   555,   627,   627,    18, -1021,    70,
+      70, -1021,   461,   969, -1021,  1205,   988,   451,    94,   558,
+      73, -1021, -1021,   488, -1021, -1021, -1021,   488,    27,   627,
+     627,  1207,   488, -1021,   163,  1211,   971, -1021,   325, -1021,
+   -1021,  1213, -1021,  1214,  1215, -1021,  1220, -1021, -1021, -1021,
+    1150, -1021,   132,  1217, -1021,   320, -1021, -1021, -1021,  1218,
+     950,   958, -1021, -1021, -1021, -1021,   457,  1219,   550, -1021,
+   -1021,   457,   500,   461,   654,   627,   627,    70, -1021,  1051,
+   -1021, -1021,   488, -1021,   451,  1208, -1021,   558, -1021,   558,
+   -1021, -1021,  1223, -1021, -1021,  1051,  1226, -1021, -1021, -1021,
+   -1021,  5982,   310,  1227, -1021, -1021, -1021,  1224, -1021,  1232,
+   -1021, -1021, -1021, -1021,   963,  5982, -1021, -1021, -1021,  1228,
+   -1021, -1021,   461, -1021, -1021, -1021,  1234,    73, -1021, -1021,
+   -1021, -1021, -1021, -1021, -1021, -1021,  5982, -1021, -1021, -1021,
+   -1021, -1021, -1021, -1021, -1021, -1021
 };
 
 };
 
+/* YYPGOTO[NTERM-NUM].  */
 static const short yypgoto[] =
 {
 static const short yypgoto[] =
 {
-  -32768,-32768,  1236,-32768,-32768,-32768,-32768,  -424,  -117,-32768,
-  -32768,  1000,-32768,-32768,-32768,-32768,-32768,    56,-32768,-32768,
-     380,-32768,-32768,    83,   116,-32768,   189,-32768,-32768,-32768,
-    -497,-32768,  -915,-32768,-32768,  -726,  -773,-32768,-32768,-32768,
-    -585,-32768,  -584,-32768,  -582,-32768,   292,-32768,-32768,   632,
-    -656,-32768,   223,   289,-32768,-32768,-32768,-32768,-32768,-32768,
-  -32768,-32768,-32768,-32768,-32768,  -909,   147,-32768, -1005,-32768,
-     264,-32768,-32768,  -615,   446,  1080,-32768,-32768,  1150,-32768,
-  -32768,-32768,-32768,   -99,  -357,  -363,  -317,  -388,  -385,  -356,
-    -338,  -523,  -516,-32768,  -613,-32768,  -140,-32768,-32768,  -104,
-    1168,  -595,  -432,     6,-32768,-32768,-32768,   509,    -3,-32768,
-  -32768,-32768,  1065,  -292,-32768,-32768,-32768,-32768,  -922,  -785,
-  -32768,-32768,   510,-32768,-32768,-32768,  -544,-32768,-32768,-32768,
-    -447,-32768,-32768,-32768,-32768,-32768,   536,-32768,-32768,-32768,
-  -32768,-32768,-32768,-32768,-32768,-32768,-32768,    85,   766,-32768,
-     980,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-  -32768,   300,  -717,  -477,-32768,   139,-32768,-32768,   664,   668,
-     493,     1,  -417,  1227,-32768,    13,-32768,-32768,  -581,-32768,
-  -32768,-32768,   650,  -102,  1062,-32768,  -451,   442,    17,  1350,
-  -32768,  1122,-32768,  1202,-32768,-32768,-32768,-32768,  -177,-32768,
-  -32768,-32768,-32768,-32768,   429,  1375,  1011,  1444,-32768,-32768,
-    1521,-32768,-32768,  -315,-32768,  1052,   201,  -638,  -822,-32768,
-     861,-32768,-32768,   959,  -195,   666,   504,  -460,   113,-32768,
-     179,   285,-32768,-32768,   343,-32768,   411,-32768,-32768,   655,
-  -32768,   347,  -623,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-  -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-  -32768,-32768,  1630,-32768,-32768,  1689,  -281,   513,     0,    19,
-  -32768
+   -1021, -1021, -1021,  1179, -1021, -1021, -1021, -1021,  -382,  -115,
+   -1021, -1021,   942, -1021, -1021, -1021, -1021, -1021,    76, -1021,
+   -1021,   314, -1021, -1021,    24,    57, -1021,   130, -1021, -1021,
+   -1021,  -943, -1021,  -910, -1021, -1021,  -718,  -731, -1021, -1021,
+   -1021,  -603, -1021,  -579, -1021,  -420, -1021,   233, -1021, -1021,
+     571,  -667, -1021,   162,   228, -1021, -1021, -1021, -1021, -1021,
+   -1021, -1021, -1021, -1021, -1021, -1021,  -882,    86, -1021, -1020,
+   -1021,   201, -1021, -1021,  -624,   386,  1233, -1021, -1021,  1095,
+   -1021, -1021, -1021, -1021,  -114,  -378,  -375,  -344,  -363,  -391,
+    -390,  -387,  -524,  -520, -1021,  -622, -1021,  -140, -1021, -1021,
+    1113,  1267,  -596,  -438,     6, -1021, -1021, -1021,   445,    -3,
+   -1021, -1021, -1021,   650,  -253, -1021, -1021, -1021, -1021,  -902,
+    -760, -1021, -1021,   438, -1021, -1021, -1021,  -392, -1021, -1021,
+   -1021,  -366, -1021, -1021, -1021, -1021, -1021,   477, -1021, -1021,
+   -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021,    75,   699,
+   -1021,   918, -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021,
+   -1021, -1021,  1244,  -523,  -898, -1021,    74, -1021, -1021,   608,
+     613,   439,     1,  -383,  1168, -1021,    33, -1021, -1021,  -573,
+   -1021, -1021, -1021,   595,  -117,   998, -1021,  -448,   695,    41,
+    1291, -1021,  1061, -1021,   741, -1021, -1021, -1021, -1021,  -163,
+   -1021, -1021, -1021, -1021, -1021,    20,   994,   955,  1545, -1021,
+   -1021,  1639, -1021, -1021,  -326, -1021,   594,   136,  -502,  -714,
+   -1021,   800, -1021, -1021,   897,  -201,   602,   459,  -474,   125,
+   -1021,   180,    54, -1021, -1021,   137, -1021,   142, -1021, -1021,
+     604, -1021,   298,  -633, -1021, -1021, -1021, -1021, -1021, -1021,
+   -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021,
+   -1021, -1021, -1021,  1698, -1021, -1021,  1818,  -274,   462,     0,
+      19, -1021
 };
 
 };
 
-
-#define        YYLAST          7060
-
-
+/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
+   positive, shift that token.  If negative, reduce the rule which
+   number is the opposite.  If zero, do what YYDEFACT says.
+   If YYTABLE_NINF, syntax error.  */
+#define YYTABLE_NINF -712
 static const short yytable[] =
 {
 static const short yytable[] =
 {
-     122,   120,   132,   320,   292,   122,    98,   568,   597,   122,
-     218,   218,   218,   544,   545,   688,   130,   491,   546,   123,
-    1045,   471,  1064,   570,   123,   595,   648,   199,   141,   302,
-     469,   708,   538,   539,   757,   650,   536,   537,  1199,   431,
-     507,   815,   742,  1083,   754,   957,   423,   852,   547,   613,
-     961,   427,  1129,   428,   965,   131,    94,   336,   337,   338,
-     339,   340,   341,   930,   475,   452,  -612,   548,  -654,   968,
-    -612,   442,  -654,   634,   264,   972,   791,   792,   940,   794,
-     540,   541,   542,   543,   569,   115,  1117,  1050,   122,   120,
-     135,   475,   138,   267,    98,   757,  1118,   653,   949,  1040,
-    -646,   401,   402,   742,  -646,   754,  1126,   123,   410,  1041,
-     826,   825,  1180,  1181,   642,   666,  1052,   800,   518,  -647,
-     267,   122,   -46,  -647,   241,   241,  1136,  1077,  1137,   395,
-     396,  1110,  1111,  1126,   752,   519,  1125,  1127,   269,   122,
-     123,   753,   295,  1052,    94,  1138,   407,  1144,   395,   396,
-     122,  1112,   316,  1113,   995,   218,  1148,  1069,   317,  -658,
-     267,   475,   408,  -658,   409,   696,   690,   410,     3,   327,
-    1114,   996,   199,   115,   218,   507,   948,   404,   698,   950,
-    1230,   699,   471,  1130,   447,   410,   852,   270,   701,   455,
-     242,   242,   852,   920,   700,   752,  1084,  -648,   270,   270,
-     218,  -648,   753,  1200,   791,   792,  1179,   794,   218,   921,
-     218,  1192,   218,  1195,   803,   218,  -278,   199,   557,   791,
-     792,   286,   794,   218,   315,   199,   395,   396,   218,   199,
-     218,  1076,   199,  1078,    81,    82,   140,   418,   457,    85,
-      86,   496,   497,   218,   218,   800,     3,  -422,  -422,  -422,
-      81,  1119,  -422,  -422,  1153,   861,  1155,   566,   427,   304,
-     800,   199,   670,    81,  1042,  1043,   475,   318,   516,   748,
-      81,  1055,   749,   520,   521,   522,   523,   524,   525,   526,
-     527,   528,   529,   530,   425,   122,   445,   410,   122,   122,
-     122,   533,   534,   535,   746,   211,  1157,    81,  1055,   320,
-     745,   750,  1040,  1029,   123,   323,   552,   449,   451,   453,
-     122,   468,  1041,   852,   459,   410,   122,   320,   475,   751,
-    1195,  1097,    81,    82,   140,   410,   697,    85,    86,   123,
-     748,  1220,   845,   749,   324,   317,   241,  -422,   686,  -422,
-     747,   241,   803,   241,  -422,  -422,  -422,  -422,     3,  -422,
-    -422,  1031,  1032,   212,   325,   746,   241,   803,   218,   410,
-    -649,   745,   750,   492,  -649,   320,   218,  1182,   218,  1183,
-     251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
-     751,   326,  1087,  1033,  1034,   456,  1184,  -656,   951,   395,
-     396,  -656,   688,   630,   629,   403,  1024,  1035,  -279,   959,
-     262,   747,   242,   409,   757,  1026,   410,   242,   861,   242,
-     492,   280,   742,   218,   754,   285,   410,   287,   328,   291,
-     623,   213,   242,  1136,   293,  1137,   125,   126,   127,   410,
-     199,   397,   398,   625,   218,   218,   309,   565,   310,   202,
-     211,   218,  1138,   122,   578,   329,   399,   400,   565,  -422,
-    -422,  -422,   122,   410,  -422,  -422,  -422,   633,   320,  -422,
-     600,  -422,   123,   122,   346,   122,    81,  1042,  1043,  1074,
-     320,   590,  1074,   122,  1172,  1112,   122,  1113,   347,   447,
-     122,   376,   123,   640,   123,   211,   316,   641,   489,  1176,
-     348,   410,   317,   211,  1114,   616,   349,   211,   212,   621,
-     211,  -422,  -422,  -422,   752,   425,  -422,  -422,   410,   218,
-     410,   753,   492,   352,   656,    81,    82,   140,   122,   122,
-      85,    86,  1191,  1136,   710,  1137,  1019,  1020,  -643,   211,
-     714,  1021,  -643,  1050,   393,   394,   719,   643,   644,   393,
-     394,  1070,  1138,   212,  1071,  1013,  1014,   241,   241,  1011,
-    1012,   212,  1051,   350,  1124,   212,   218,   218,   212,  1176,
-     353,  1022,  1052,   565,   122,   658,   213,   410,  1051,   443,
-    -704,   875,   218,   199,   962,   218,   218,   831,  1052,   832,
-    1023,   565,  1040,   123,   335,  1173,   351,   212,  -278,   856,
-     457,   833,  1041,  1015,  1016,  1017,  1018,  -708,     3,  1074,
-    -278,  1074,   457,   267,   463,   710,  1103,   465,   401,   402,
-       3,   213,   122,   242,   242,   473,   395,   396,   476,   213,
-     872,  -710,   873,   213,   267,   316,   213,  1115,   877,   411,
-     403,   317,   878,   879,   880,   881,   882,   883,  1198,   748,
-    -705,   417,   749,  1204,   419,   910,   911,   267,  1047,  -278,
-    1071,   457,   416,   218,   218,   213,   404,   774,   475,     3,
-     912,   913,   405,  -609,   746,   218,   218,  -609,   218,  1093,
-     745,   750,  -608,   436,   412,  -710,  -608,  -422,   686,  -422,
-     320,  -607,   122,   267,   122,  -607,  1185,  -422,   410,   751,
-    1085,   320,   924,  1234,   406,   218,  1089,  1090,   211,  1091,
-     459,   590,   122,   590,   706,   122,   122,   218,  1207,   597,
-     747,  1071,  1053,  1054,   838,     3,    81,  1055,   774,   859,
-    1056,   846,  -530,   410,   621,   123,   833,   983,  1053,  1054,
-     564,   833,    81,  1055,   987,   833,  1056,   410,  -474,   457,
-     476,   989,   856,   505,   506,   579,    81,  1042,  1043,   584,
-     178,   587,    81,    82,   140,  1104,   212,    85,    86,   975,
-    1040,   710,     3,  1226,   418,  1116,  1225,  1182,   607,  1183,
-    1041,   457,   612,   413,  -626,  -710,  -710,  1241,  -626,     3,
-    -710,  -710,   991,   516,  -707,  1141,  1184,   420,   997,   998,
-     999,  1000,  1001,  1002,  1003,  1004,  1005,  1006,  1007,  -631,
-     508,   421,  1158,  -631,  1008,  1009,  1010,   218,   511,  -279,
-     512,   470,  1252,    81,    82,   140,  -630,  -644,    85,    86,
-    -630,  -644,  -629,  -278,   213,   457,  -629,   122,   393,   394,
-     218,  -706,   122,  -628,  -278,   218,   598,  -628,   833,   218,
-    1186,   211,   555,  -627,   645,   646,   123,  -627,  -651,   838,
-     426,   960,  -651,  -624,   838,   432,  -625,  -624,   838,   122,
-    -625,  1206,  -621,   433,   397,   398,  -621,   122,   437,    81,
-      82,   140,   859,  -652,    85,    86,   601,  -652,   123,   399,
-     400,  -622,   438,   573,  -613,  -622,   982,   444,  -613,   397,
-     398,  1094,   681,   682,  -616,   440,   687,   945,  -616,   212,
-     945,    81,    82,   140,   399,   400,    85,    86,    81,    82,
-     140,   476,   462,    85,    86,   640,    81,    82,   140,  1096,
-     467,    85,    86,  -636,    81,  1042,  1043,  -636,   178,  1048,
-     713,   464,  -641,    81,    82,   140,  -641,  1067,    85,    86,
-    -637,   466,   218,   482,  -637,   390,   391,   392,  -638,  -634,
-     472,   573,  -638,  -634,    23,    24,    25,    26,   579,    27,
-     776,   838,   410,   726,    32,    33,   377,   213,    36,    37,
-     488,    39,    40,    41,    42,  -640,  -617,   833,  -615,  -640,
-    -617,  -619,  -615,   906,   907,  -619,    54,    55,   390,   391,
-     392,   490,   827,  1167,  -620,   122,   122,   493,  -620,   573,
-     494,   378,   379,   380,   381,   382,   383,   384,   385,   386,
-     387,   495,    80,   560,  1098,  1099,  -618,   573,   669,   499,
-    -618,   500,    84,   562,   288,   289,   290,   774,   390,   391,
-     392,   945,   501,   945,   945,   945,   908,   909,  1108,   502,
-    1048,  1048,   891,   292,  1107,   503,   372,   509,   373,  1122,
-    -422,  1067,  1067,   903,   904,   905,  1132,  1133,  1134,   914,
-     915,   563,   207,   239,   239,   952,   682,  -422,  1122,   320,
-     374,   375,   567,   122,  1151,  1080,  1081,   559,   248,   249,
-     250,   218,   580,  1247,   410,  1170,   122,   578,  1188,  1189,
-     581,   122,   123,   282,   283,   669,   728,   934,   935,  1160,
-     838,   582,  -278,   585,   320,   123,   591,   608,   669,   596,
-    1164,   617,  1048,   122,   122,  1048,   609,  1122,  1122,   611,
-     622,   618,   410,   887,   626,   888,  1067,  -422,  1067,   627,
-     631,  1067,  1177,  1178,   632,  1067,   636,   122,   122,   638,
-    1067,   967,   639,  1208,  -422,   655,   122,   889,   890,   862,
-     659,   660,   662,   672,   675,   677,  1201,  1202,   678,   680,
-     122,   945,   683,   945,   685,   123,   691,   692,   272,   273,
-     274,   275,   276,   277,   278,   279,   702,   281,   198,   123,
-     284,   704,  1048,   122,   122,  1122,   707,   716,   628,   809,
-    1067,   717,   813,   816,   918,   823,   300,   869,   305,   306,
-     308,   824,  1228,  1229,   314,   777,   841,   207,   843,   863,
-     122,  1151,   200,   230,   230,   865,   867,   868,   916,   917,
-     300,   886,   919,   319,   922,   925,   931,   342,   953,   123,
-     954,   956,   932,   964,   933,  1067,   319,   319,   319,   319,
-     319,   319,   936,   344,   345,  1073,   970,   939,   966,   389,
-     973,   980,   207,   984,   985,   986,   988,   990,  1027,  1028,
-     207,  1082,   178,  1030,   207,   892,  1088,   207,  1092,  1095,
-    1128,  1165,  1147,  1086,  1187,   239,   424,  1140,  1159,  1203,
-     239,  1185,   239,  1210,  1214,  1213,  1216,  1218,   300,  1232,
-    1219,  1235,  1222,  1238,  1243,   239,   207,  1224,  1236,   299,
-     893,   894,   895,   896,   897,   898,   899,   900,   901,   902,
-    1245,  1246,  1248,  1249,  1255,  1256,   474,  1058,  1250,  1237,
-    1196,   331,  1102,   333,   261,   829,  1171,   439,  1109,  1227,
-     830,  1156,  1143,   993,   388,   296,   955,   831,   938,   832,
-     156,   157,   158,   159,   160,   161,   963,   674,   821,  1242,
-     819,   300,   976,   448,   450,   855,   294,   200,   162,   163,
-     164,   300,   246,   460,   504,   435,   458,  1221,   198,   979,
-     637,  1146,   556,   871,  1101,   864,   198,   978,     0,     0,
-     198,   314,   165,   198,     0,   203,   236,   236,     0,     0,
-       0,   422,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   200,     0,     0,     0,     0,     0,   300,     0,
-     200,     0,   198,     0,   200,     0,     0,   200,     0,     0,
-     300,     0,     0,   513,     0,   230,     0,   175,     0,     0,
-     230,     0,   230,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   230,   200,     0,     0,     0,
-    1212,     0,     0,     0,   204,   237,   237,     0,     0,     0,
-       0,     0,     0,     0,   454,   207,     0,     0,     0,     0,
-     319,   319,   319,   319,   319,   319,   319,   319,   319,   319,
-     319,   319,   319,   319,   319,   319,   239,   239,     0,     0,
-       0,   483,   484,   485,   486,   284,     0,     0,     0,    81,
-     176,   177,     0,   178,    85,    86,     0,     0,     0,     0,
-       0,   454,     0,     0,   583,   498,   586,     0,   592,   319,
-       0,   593,     0,   454,   458,     0,   599,     0,     0,     0,
-     203,   205,   238,   238,     0,   610,     0,   319,   314,     0,
-     330,   517,  1251,     0,     0,   619,   296,     0,     0,     0,
-       0,   156,   157,   158,   159,   160,   161,     0,     0,     0,
-     300,     0,     0,     0,     0,     0,     0,     0,     0,   162,
-     163,   164,     0,   319,     0,   203,     0,     0,     0,     0,
-       0,   198,     0,   203,     0,   319,     0,   203,     0,   561,
-     203,     0,     0,   165,     0,     0,     0,     0,   236,   204,
-       0,     0,     0,   236,     0,   236,     0,     0,   207,     0,
-       0,     0,     0,     0,     0,   200,     0,     0,   236,   203,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   319,
-       0,   319,     0,     0,     0,     0,   230,   230,   175,     0,
-     215,   244,   244,   671,   204,     0,   300,     0,     0,     0,
-       0,     0,   204,     0,     0,     0,   204,     0,     0,   204,
-       0,     0,   599,     0,     0,     0,     0,   237,     0,   693,
-     694,   695,   237,     0,   237,     0,   205,   314,   319,     0,
-       0,     0,     0,     0,     0,     0,     0,   237,   204,     0,
-     319,     0,     0,     0,     0,     0,     0,   300,     0,   217,
-     245,   245,     0,     0,     0,     0,     0,     0,   720,   721,
-      81,   297,   298,     0,   178,     0,     0,     0,   649,     0,
-       0,   205,   389,     0,   198,   723,   725,     0,     0,   205,
-       0,     0,     0,   205,     0,     0,   205,   743,   811,     0,
-       0,     0,     0,     0,   238,     0,   818,     0,   820,   238,
-       0,   238,   458,     0,     0,     0,     0,     0,   200,     0,
-       0,   839,   840,     0,   238,   205,   844,     0,     0,     0,
-     619,   857,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   389,     0,   215,     0,   300,   203,   300,
-    -258,     0,     0,     0,   486,   300,   296,     0,   743,     0,
-       0,   156,   157,   158,   159,   160,   161,     0,     0,   236,
-     236,   319,   319,   319,   319,   319,   319,   884,   885,   162,
-     163,   164,     0,   729,     0,     0,     0,   775,     0,     0,
-     215,     0,     0,     0,     0,     0,     0,     0,   215,     0,
-       0,     0,   215,   165,   217,   215,     0,     0,     0,     0,
-       0,     0,     0,   244,   830,     0,     0,   204,   244,   296,
-     244,   831,     0,   832,   156,   157,   158,   159,   160,   161,
-       0,     0,     0,   244,   215,   942,     0,     0,   237,   237,
-       0,     0,   162,   163,   164,   870,     0,     0,   175,   217,
-     454,     0,   454,     0,     0,     0,     0,   217,   876,     0,
-     319,   217,     0,     0,   217,     0,   165,     0,     0,     0,
-       0,   319,   245,     0,     0,     0,     0,   245,     0,   245,
-       0,     0,     0,   974,   857,     0,   599,     0,     0,     0,
-       0,   203,   245,   217,   205,   777,   778,   779,   780,     0,
-       0,     0,   781,   782,   783,   784,   785,   786,   787,     0,
-       0,   175,     0,     0,   319,   238,   238,     0,     0,     0,
-      81,   297,   298,     0,   178,     0,     0,     0,     0,     0,
+     123,   121,   133,   570,   322,   123,    99,   294,   493,   123,
+     219,   219,   219,   599,   548,   304,   549,   538,   539,   124,
+     550,   597,   540,   541,   124,   690,   759,   650,   142,  1066,
+     203,   509,   710,   652,   433,   744,   131,   756,   854,   471,
+     546,   547,  1042,   338,   339,   340,   341,   342,   343,  1047,
+    1076,   200,  1043,  1076,  1201,   542,   543,   544,   545,   572,
+     793,   425,   473,   477,   212,  1085,   429,   444,   430,   636,
+    -613,   477,   959,   932,  -613,   116,    95,   963,  1052,   132,
+     136,   967,   139,   571,   794,   655,  1131,   759,   942,   123,
+     121,   827,   520,   615,  1119,    99,   744,  1128,   756,  1182,
+    1183,   262,  -647,   668,  1120,   269,  -647,  1054,   124,   521,
+    1126,  1042,  -655,   970,  1174,  1114,  -655,  1115,  1128,   974,
+     828,  1043,   123,   412,   412,  -648,   409,   457,  1054,  -648,
+     644,   397,   398,   997,  1116,   754,   242,   242,   266,   755,
+     123,   124,   410,  1127,  1129,   403,   404,   213,  -711,   412,
+     998,   123,   214,   494,   397,   398,   219,  -475,   459,   319,
+    1112,  1113,   692,   297,   116,    95,   509,  1232,  -659,  1146,
+     329,   449,  -659,   318,   700,   219,   337,   854,   272,   817,
+    1076,   269,  1076,   854,  1071,  -279,   406,   459,   793,   272,
+     272,   243,   243,   269,  1200,     3,   754,   200,   698,  1206,
+     755,   219,  -711,   793,   454,   477,    81,  1044,  1045,   219,
+     212,   219,   794,   219,   559,   317,   219,  1132,  1194,  1202,
+    1197,   413,   922,   473,   219,   701,   271,   794,   498,   219,
+     702,   219,   703,   419,   477,  1181,   421,  1079,   923,  -279,
+    1086,   420,   200,   796,   219,   219,  -423,  -423,  -423,  1236,
+     200,  -423,  -423,   672,   200,   212,   288,   200,    81,  1121,
+     863,    81,  1057,   212,   847,   438,   306,   212,   751,   752,
+     212,   802,   753,   568,   429,    81,  1044,  1045,   535,   536,
+     537,   747,    81,  1057,   748,   412,   200,   123,   447,   625,
+     123,   123,   123,   213,   951,  1031,   750,   805,   214,   212,
+     320,   322,  -711,  -711,   854,   325,   124,  -711,  -711,   451,
+     453,   455,   123,   470,   950,   749,   459,   952,   123,   322,
+      81,    82,   141,  1159,     3,    85,    86,  1197,   412,   751,
+     752,   124,  1150,   753,  1099,   699,   461,   319,   213,   397,
+     398,   412,   747,   214,     3,   748,   213,  1222,  -642,   242,
+     213,   214,  -642,   213,   242,   214,   242,   750,   214,     3,
+     219,   392,   393,   394,  1155,   326,  1157,   322,   219,   242,
+     219,   796,   327,    81,    82,   141,   749,   458,    85,    86,
+     632,   631,   213,  1089,   953,   328,   796,   214,  -423,  -423,
+    -423,   395,   396,  -423,  -423,   961,   759,  1026,   411,   802,
+     330,   412,   690,  1028,   243,   744,   412,   756,   331,   243,
+     627,   243,   477,   863,   802,   219,   412,  -423,  -423,  -423,
+     635,   348,  -423,  -423,   243,   805,  -657,  1078,   350,  1080,
+    -657,  -423,   688,  -423,   405,   557,   219,   219,   642,   567,
+     805,  -423,   643,   219,   349,   123,   580,    81,    82,   141,
+     567,   -47,    85,    86,   123,  1138,   200,  1139,   403,   404,
+     322,  1052,   602,   459,   124,   123,   449,   123,     3,   212,
+     351,     3,   322,   592,  1140,   123,  1193,  1138,   123,  1139,
+    1053,  1178,   123,  1114,   124,  1115,   124,  1184,   352,  1185,
+    1054,  1033,  1034,  -280,   319,   264,  1140,   618,    81,    82,
+     141,   623,  1116,    85,    86,   754,  1186,   427,   318,   755,
+     412,   219,  1053,    81,    82,   141,   354,   716,    85,    86,
+     123,   123,  1054,  1035,  1036,  1227,  1184,  1023,  1185,  1024,
+    1013,  1014,   355,  1025,  -649,  1015,  1016,  1037,  -649,   645,
+     646,  1091,  1092,   353,  1093,  1186,   126,   127,   128,   507,
+     508,  1178,   213,  1021,  1022,  -705,  -652,   214,   219,   219,
+    -652,   242,   242,   397,   398,   567,   123,   660,  1017,  1018,
+    1019,  1020,   399,   400,   219,   399,   400,   219,   219,  1042,
+     683,   684,  1175,   567,  1138,   124,  1139,   401,   402,  1043,
+     401,   402,  -709,   858,   412,  -423,  -423,  -423,   658,   200,
+    -423,  -423,  -706,  1140,   208,   240,   240,   874,  -423,   875,
+     405,  -423,   212,  -423,   123,   879,   243,   243,   406,   880,
+     881,   882,   883,   884,   885,    81,    82,   141,   407,   411,
+      85,    86,   412,   319,   912,   913,   494,   414,   751,   752,
+    1055,  1056,   753,   491,    81,  1057,   412,   318,  1058,   914,
+     915,   747,   647,   648,   748,   219,   219,  1049,  -653,   776,
+    1095,   408,  -653,   249,   250,   251,   750,   219,   219,  -280,
+     219,   472,  1055,  1056,   399,   400,    81,  1057,  1042,   412,
+    1058,  1228,   322,   877,   123,   749,   123,  -531,  1043,   401,
+     402,   427,  -708,   322,   412,   213,   708,   219,   494,  1087,
+     214,   415,  -650,   592,   123,   592,  -650,   123,   123,   219,
+     412,   728,     3,  -644,   599,  -641,   840,  -644,  1072,  -641,
+     776,  1073,   461,   848,   395,   396,   623,   124,   392,   393,
+     394,   397,   398,  -279,   964,   459,   989,   833,  -279,   834,
+     459,   861,   420,    81,  1044,  1045,   858,   179,     3,   477,
+     208,   201,   231,   231,   274,   275,   276,   277,   278,   279,
+     280,   281,   422,   283,  1106,  -707,   286,  -610,  -423,   688,
+    -423,  -610,   423,  1243,  1118,   374,  -645,   375,  -423,  -423,
+    -645,  -279,   302,   600,   307,   308,   310,   395,   396,   434,
+     316,  1010,  1011,  1012,  1143,   208,  -423,  -609,  -608,   376,
+     377,  -609,  -608,   208,   908,   909,   302,   208,  1254,   219,
+     208,  1160,  -279,   344,   459,    81,    82,   141,   240,   426,
+      85,    86,     3,   240,   412,   240,   412,   412,   926,   123,
+     985,   991,   219,   428,   123,   391,  -627,   219,   240,   208,
+    -627,   219,    81,  1044,  1045,   435,   179,   439,   124,  1188,
+    -632,   840,   442,   962,  -632,  -631,   840,   446,  -630,  -631,
+     840,   123,  -630,   290,   291,   292,    81,    82,   141,   123,
+    1208,    85,    86,   603,   302,   889,   440,   890,  1096,  -423,
+     124,   379,  -629,  -628,   916,   917,  -629,  -628,   984,   947,
+     269,  -625,   947,  1105,   861,  -625,  -423,   201,   464,   891,
+     892,  -626,    81,    82,   141,  -626,   418,    85,    86,   977,
+     269,  -622,   466,  1117,   441,  -622,   380,   381,   382,   383,
+     384,   385,   386,   387,   388,   389,  -623,   468,  -614,  -617,
+    -623,  1050,  -614,  -617,   269,   910,   911,  1073,   302,  1069,
+     450,   452,   201,   642,   219,  -637,   469,  1098,   302,  -637,
+     201,  -638,  -639,   460,   201,  -638,  -639,   201,  -635,   474,
+    -618,   490,  -635,   840,  -618,   231,   484,   515,   316,  -616,
+     231,  -620,   231,  -616,   495,  -620,    81,    82,   141,  -621,
+    1169,    85,    86,  -621,  -619,   231,   201,   269,  -619,  1209,
+    1187,   492,  1073,   954,   684,   302,   497,   123,   123,   392,
+     393,   394,  1082,  1083,   204,   237,   237,   302,   496,   208,
+     905,   906,   907,  1134,  1135,  1136,  1100,  1101,   412,  1172,
+    1190,  1191,   501,   947,   502,   947,   947,   947,   503,   776,
+     240,   240,   284,   285,   504,   505,   561,   511,   564,   562,
+    1110,   569,  1050,  1050,   565,   582,  1109,   294,   598,   611,
+     583,  1124,   584,  1069,  1069,   510,  -279,   587,   593,   610,
+     613,   620,   628,   513,   624,   514,   619,   412,   629,   634,
+    1124,   322,   633,   640,   638,   123,  1153,   641,   657,   661,
+     677,   664,   286,   219,   662,  1249,   674,   679,   123,   580,
+     680,   682,   685,   123,   124,   694,   704,   693,   687,   706,
+     630,   585,   840,   588,   709,   594,   322,   124,   595,   718,
+     719,   460,  1166,   601,  1050,   123,   123,  1050,   811,  1124,
+    1124,  1162,   612,   815,   818,   316,   825,   826,  1069,   843,
+    1069,   779,   621,  1069,  1179,  1180,   845,  1069,   575,   123,
+     123,   865,  1069,   867,   870,  1210,   869,   302,   123,   871,
+     204,   919,   208,   947,   888,   947,   201,   918,  1203,  1204,
+     920,   921,   123,   779,   780,   781,   782,   124,   924,   927,
+     783,   784,   785,   786,   787,   788,   789,   231,   231,   933,
+     934,   124,   935,   938,  1050,   123,   123,  1124,   941,   955,
+     956,   958,  1069,   966,   972,   204,   975,   968,   982,   986,
+     987,   988,   990,   204,  1230,  1231,   575,   204,   992,  1029,
+     204,  1030,   123,  1153,  1084,   179,  1090,  1032,   237,  1094,
+    1097,  1130,  1149,   237,  1142,   237,  1161,  1189,  1167,  1205,
+     673,   124,  1187,   302,  1212,  1216,  1215,  1069,   237,   204,
+    1218,  1220,  1221,  1224,  1247,  1245,  1226,  1234,  1237,   601,
+    1238,  1240,  1248,  1060,   575,  1250,   695,   696,   697,  1251,
+     476,  1252,  1239,  1198,   316,  1104,   831,  1173,   263,  1111,
+    1229,  1145,   575,   671,   957,   995,   965,   199,   832,  1158,
+     390,   940,   676,   298,   302,   833,  1244,   834,   157,   158,
+     159,   160,   161,   162,   823,   722,   723,   821,   296,   201,
+     978,   462,   857,   247,  1223,   437,   163,   164,   165,   391,
+     506,   639,   558,   866,   252,   253,   254,   255,   256,   257,
+     258,   259,   260,   261,   873,   813,   981,  1103,   980,     0,
+     166,     0,     0,   820,     0,   822,     0,     0,     0,   460,
+       0,     0,     0,     0,     0,     0,     0,     0,   841,   842,
+     671,   730,     0,   846,     0,     0,   282,   621,   859,     0,
+     287,     0,   289,   671,   293,     0,     0,     0,     0,   295,
+     391,     0,     0,     0,   302,   176,   302,   321,     0,     0,
+       0,   311,   302,   312,     0,     0,     0,     0,     0,     0,
+     321,   321,   321,   321,   321,   321,     0,   346,   347,   301,
+       0,     0,     0,     0,   864,     0,     0,     0,     0,   204,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   319,   319,   319,   319,   319,   319,   319,
-     319,   319,   319,   319,   319,   319,   319,   319,   319,   319,
-     204,   319,     0,     0,     0,     0,     0,     0,     0,     0,
-    1072,     0,     0,     0,     0,     0,     0,  1079,     0,     0,
-       0,  -171,     0,    81,   176,   177,   296,   178,    85,    86,
-       0,   156,   157,   158,   159,   160,   161,     0,     0,     0,
-       0,     0,     0,   215,  -202,  -202,     0,     0,     0,   162,
-     163,   164,     0,     0,     0,     0,   994,     0,     0,     0,
-       0,     0,     0,     0,   244,   244,     0,     0,     0,     0,
-     319,     0,     0,   165,     0,     0,     0,   205,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   389,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   217,     0,     0,     0,     0,   743,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   175,     0,
-       0,     0,     0,   245,   245,     0,     0,     0,     0,  -171,
-       0,     0,     0,     0,   355,  1145,     0,     0,     0,   156,
-     157,   158,   159,   160,   161,   486,     0,     0,     0,     0,
-       0,   857,  -202,  -202,  1162,     0,     0,   162,   163,   164,
-     300,     0,     0,  1168,  1169,     0,     0,     0,     0,     0,
+       0,   333,     0,   335,     0,     0,   378,     0,   332,     0,
+     237,   237,     0,     0,   298,     0,     0,     0,     0,   157,
+     158,   159,   160,   161,   162,     0,     0,    81,   177,   178,
+       0,   179,    85,    86,     0,     0,     0,   163,   164,   165,
+       0,   499,   944,     0,     0,     0,     0,     0,   199,     0,
+       0,     0,     0,     0,     0,     0,   199,     0,     0,     0,
+     199,   166,     0,   199,     0,     0,     0,   518,     0,     0,
+       0,   424,   522,   523,   524,   525,   526,   527,   528,   529,
+     530,   531,   532,   894,     0,     0,     0,     0,     0,     0,
+     976,   859,   199,   601,     0,   445,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,   554,   176,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   895,   896,
+     897,   898,   899,   900,   901,   902,   903,   904,     0,     0,
+     465,     0,   204,   467,     0,   205,   238,   238,     0,     0,
+    -259,   475,     0,     0,   478,   456,   298,     0,     0,     0,
+       0,   157,   158,   159,   160,   161,   162,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   163,
+     164,   165,   485,   486,   487,   488,     0,  1074,    81,   299,
+     300,     0,   179,     0,  1081,     0,     0,     0,     0,     0,
+       0,     0,   456,   166,     0,     0,   500,     0,     0,     0,
+       0,     0,     0,     0,   456,   321,   321,   321,   321,   321,
+     321,   321,   321,   321,   321,   321,   321,   321,   321,   321,
+     321,     0,   519,     0,     0,     0,     0,     0,     0,   206,
+     239,   239,     0,     0,     0,     0,     0,     0,   176,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   165,     0,     0,     0,     0,   215,     0,     0,     0,
-      81,   297,   298,  1100,   178,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,  1205,     0,     0,     0,
-       0,     0,     0,  1209,  1211,    -1,     1,     0,     0,     0,
-       0,     0,     0,     0,     0,   857,   175,     0,     0,     0,
-       0,     0,     0,     2,     0,     0,     0,     0,     0,  -278,
-       0,     0,     0,     0,     0,   217,     0,     0,     0,     3,
-       0,  1231,     0,     0,     0,     0,     0,     0,  1163,     4,
-       0,     5,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,  1239,  1240,     0,     0,     0,     0,     0,  1244,     0,
-       0,     0,     0,  -422,  -422,  -422,     0,     6,     0,   319,
-       0,     0,     7,     8,     9,     0,     0,     0,    81,   297,
-     298,     0,   178,   319,     0,     0,     0,    10,    11,    12,
+       0,     0,     0,     0,   321,     0,   566,     0,     0,   391,
+       0,     0,   199,     0,     0,     0,   478,     0,     0,     0,
+     563,   581,   321,     0,     0,   586,     0,   589,     0,     0,
+       0,   205,     0,     0,     0,     0,     0,     0,   216,   245,
+     245,     0,     0,     0,   609,     0,     0,     0,   614,     0,
+       0,     0,  1147,     0,     0,     0,     0,     0,   321,     0,
+      81,   299,   300,     0,   179,     0,     0,     0,   859,     0,
+     321,  1164,     0,   712,     0,     0,   205,   302,     0,     0,
+    1170,  1171,     0,     0,   205,   721,     0,     0,   205,     0,
+       0,   205,     0,     0,     0,     0,     0,     0,     0,   238,
+       0,     0,     0,     0,   238,     0,   238,     0,     0,     0,
+       0,     0,     0,     0,   321,     0,   321,     0,     0,   238,
+     205,     0,  -172,  1207,     0,   206,     0,   298,     0,     0,
+    1211,  1213,   157,   158,   159,   160,   161,   162,     0,     0,
+     835,     0,   859,     0,     0,  -203,  -203,     0,     0,   651,
+     163,   164,   165,     0,   712,   199,     0,     0,   218,   246,
+     246,     0,     0,   321,     0,     0,     0,     0,  1233,     0,
+     206,     0,   689,     0,   166,   321,     0,     0,   206,     0,
+       0,     0,   206,     0,   216,   206,     0,   478,  1241,  1242,
+       0,     0,     0,   239,     0,  1246,     0,     0,   239,     0,
+     239,     0,     0,     0,     0,     0,   715,     0,     0,     0,
+     725,   727,     0,   239,   206,     0,     0,     0,     0,   176,
+       0,     0,   745,     0,     0,   488,     0,     0,     0,   216,
+       0,     0,     0,     0,   581,     0,   778,   216,     0,     0,
+       0,   216,     0,     0,   216,     0,     0,     0,     0,     0,
+       0,     0,   245,     0,   731,     0,     0,   245,   777,   245,
+       0,     0,     0,     0,     0,     0,     0,     0,   829,     0,
+       0,     0,   245,   216,     0,   835,     0,     0,     0,     0,
+     835,     0,     0,   745,   835,     0,     0,     0,     0,     0,
+     205,    81,   299,   300,     0,   179,   321,   321,   321,   321,
+     321,   321,   886,   887,   218,     0,     0,     0,     0,     0,
+     712,   238,   238,     0,     0,     0,   872,     0,   893,     0,
+       0,   456,     0,   456,     0,     0,     0,     0,     0,   878,
+       0,   993,   518,     0,     0,     0,     0,   999,  1000,  1001,
+    1002,  1003,  1004,  1005,  1006,  1007,  1008,  1009,     0,   218,
+       0,     0,     0,     0,     0,     0,     0,   218,     0,     0,
+       0,   218,     0,     0,   218,     0,     0,     0,     0,     0,
+       0,     0,   246,   936,   937,     0,     0,   246,     0,   246,
+       0,     0,     0,     0,   206,   321,     0,   835,     0,     0,
+       0,     0,   246,   218,     0,     0,   321,     0,     0,     0,
+       0,     0,     0,     0,     0,   239,   239,     0,  -172,     0,
+       0,     0,     0,   357,     0,     0,     0,   969,   157,   158,
+     159,   160,   161,   162,     0,     0,     0,     0,     0,     0,
+       0,  -203,  -203,   205,     0,     0,   163,   164,   165,   321,
+       0,     0,     0,   216,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   319,     0,     0,    13,    14,    15,
-      16,     0,    17,    18,    19,    20,    21,    22,    23,    24,
-      25,    26,     0,    27,    28,    29,    30,    31,    32,    33,
-      34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
-      44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
-      54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
-      64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
-      74,    75,    76,    77,    78,    79,    80,    -2,     1,     0,
-       0,     0,     0,    81,    82,    83,    84,     0,    85,    86,
-      87,     0,     0,     0,     0,     2,     0,     0,     0,     0,
-       0,  -278,     0,     0,     0,     0,     0,     0,     0,     0,
+     166,     0,     0,     0,   245,   245,     0,     0,   321,   321,
+     321,   321,   321,   321,   321,   321,   321,   321,   321,   321,
+     321,   321,   321,   321,   321,   832,   321,   996,     0,     0,
+     298,     0,   833,     0,   834,   157,   158,   159,   160,   161,
+     162,     0,     0,     0,     0,   176,     0,     0,     0,     0,
+       0,     0,     0,   163,   164,   165,     0,     0,     0,     0,
+       0,  1075,     0,     0,     0,     0,   835,   206,     0,     0,
+       0,     0,     0,    23,    24,    25,    26,   166,    27,     0,
+       0,     0,     0,    32,    33,     0,     0,    36,    37,  1088,
+      39,    40,    41,    42,     0,   321,     0,     0,     0,     0,
+       0,     0,     0,   218,     0,    54,    55,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   488,    81,   299,   300,
+       0,   179,   176,     0,   246,   246,   216,     0,     0,     0,
+       0,    80,   745,     0,     0,     0,     0,     0,     0,     0,
+       0,    84,   143,     0,     0,     0,     0,   144,   145,   146,
+       0,   147,   148,   149,   150,   151,   152,   153,   154,   155,
+    -560,     0,     0,     0,  1102,   156,     0,     0,     0,     0,
+     157,   158,   159,   160,   161,   162,     0,     0,     0,     0,
+       0,     0,     0,  -203,  -203,     0,     0,  1148,   163,   164,
+     165,     0,     0,     0,    81,   177,   178,     0,   179,    85,
+      86,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,   166,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,  1165,
+       0,     0,     0,     0,     0,     0,   167,   168,   169,   170,
+     171,   172,   173,   174,     0,     0,   218,    -2,     1,     0,
+       0,     0,   175,     0,     0,     0,     0,   176,     0,     0,
+       0,     0,     0,     0,     0,     2,  1214,     0,     0,     0,
+       0,  -279,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     3,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     4,     0,     5,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     3,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     4,     0,     5,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,  -422,  -422,  -422,     0,     6,
-       0,     0,     0,     0,     7,     8,     9,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,    10,
-      11,    12,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,    13,
+       0,     0,     0,     0,   321,  -423,  -423,  -423,     0,     6,
+       0,     0,     0,     0,     7,     8,     9,     0,   321,    81,
+     177,   178,     0,   179,   180,    86,     0,     0,     0,    10,
+      11,    12,     0,     0,     0,     0,     0,     0,     0,   321,
+       0,     0,     0,     0,     0,     0,     0,     0,  1253,    13,
       14,    15,    16,     0,    17,    18,    19,    20,    21,    22,
       23,    24,    25,    26,     0,    27,    28,    29,    30,    31,
       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
       14,    15,    16,     0,    17,    18,    19,    20,    21,    22,
       23,    24,    25,    26,     0,    27,    28,    29,    30,    31,
       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
-      72,    73,    74,    75,    76,    77,    78,    79,    80,     0,
-       0,     0,     0,     0,     0,    81,    82,    83,    84,   142,
-      85,    86,    87,     0,   143,   144,   145,     0,   146,   147,
-     148,   149,   150,   151,   152,   153,   154,  -559,   553,     0,
-       0,     0,   155,     0,     0,     0,     0,   156,   157,   158,
-     159,   160,   161,     0,     0,     0,     0,     0,     0,     0,
-    -202,  -202,     4,     0,     5,   162,   163,   164,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,  -422,  -422,  -422,   165,
-       6,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   167,   168,   169,   170,   171,   172,
-     173,     0,     0,     0,     0,     0,     0,     0,     0,   174,
-      13,    14,    15,    16,   175,    17,    18,    19,    20,    21,
-      22,    23,    24,    25,    26,     0,    27,    28,    29,    30,
-      31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
-      41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
-      51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
-      61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
-      71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
-       0,     0,     0,     0,     0,     0,    81,   176,   554,    84,
-     178,   179,    86,    87,   142,     0,     0,     0,     0,   143,
-     144,   145,     0,   146,   147,   148,   149,   150,   151,   152,
-     153,   154,  -171,     0,     0,     0,     0,   155,     0,     0,
-       0,     0,   156,   157,   158,   159,   160,   161,     0,     0,
-       0,     0,     0,     0,     0,  -202,  -202,  -278,     0,     0,
-     162,   163,   164,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,  -278,  -278,  -278,   165,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   167,
-     168,   169,   170,   171,   172,   173,     0,     0,     0,     0,
-       0,     0,     0,     0,   174,  -278,  -278,  -278,  -278,   175,
-    -278,  -278,  -278,  -278,  -278,  -278,  -278,  -278,  -278,  -278,
-       0,  -278,  -278,  -278,  -278,  -278,  -278,  -278,  -278,  -278,
-    -278,  -278,  -278,  -278,  -278,  -278,  -278,  -278,  -278,  -278,
-    -278,  -278,  -278,  -278,  -278,  -278,  -278,  -278,  -278,  -278,
-    -278,  -278,  -278,  -278,  -278,  -278,  -278,  -278,  -278,  -278,
-    -278,  -278,  -278,  -278,  -278,  -278,  -278,  -278,  -278,  -278,
-    -278,  -278,  -278,  -278,  -278,     0,     0,     0,     0,     0,
-       0,    81,   176,   177,  -278,   178,   179,    86,  -278,   220,
-       0,     0,     0,     0,   143,   144,   145,     0,     0,   221,
-     148,   149,   150,   151,   152,   153,   222,  -171,  -563,     0,
-       0,     0,   223,     0,     0,     0,     0,   156,   157,   158,
-     159,   160,   161,     0,     0,     0,     0,     0,     0,     0,
-    -202,  -202,  -278,     0,     0,   162,   163,   164,     0,     0,
+      72,    73,    74,    75,    76,    77,    78,    79,    80,    -3,
+       1,     0,     0,     0,     0,    81,    82,    83,    84,     0,
+      85,    86,    87,     0,     0,     0,     0,     2,     0,     0,
+       0,     0,     0,  -279,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     3,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     4,     0,     5,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,  -278,  -278,  -278,   165,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   168,   169,   170,   171,   172,
-     173,     0,     0,     0,     0,     0,     0,     0,     0,   174,
-    -278,  -278,  -278,  -278,   175,  -278,  -278,  -278,  -278,  -278,
-    -278,  -278,  -278,  -278,  -278,     0,  -278,  -278,  -278,  -278,
-    -278,  -278,  -278,  -278,  -278,  -278,  -278,  -278,  -278,  -278,
-    -278,  -278,  -278,  -278,  -278,  -278,  -278,  -278,  -278,  -278,
-    -278,  -278,  -278,  -278,  -278,  -278,  -278,  -278,  -278,  -278,
-    -278,  -278,  -278,  -278,  -278,  -278,  -278,  -278,  -278,  -278,
-    -278,  -278,  -278,  -278,  -278,  -278,  -278,  -278,  -278,  -278,
-       0,     0,     0,     0,     0,     0,    81,   176,   177,  -278,
-     178,   224,   225,  -278,  -169,     0,     0,     0,     0,  -169,
-    -169,  -169,     0,  -169,  -169,  -169,  -169,  -169,  -169,  -169,
-    -169,  -169,  -169,  -169,  -169,  -708,  -169,  -169,     0,  -169,
-       0,  -169,  -169,  -169,  -169,  -169,  -169,  -169,  -169,  -169,
-    -169,  -169,  -169,  -169,  -169,  -169,  -169,     0,  -169,     0,
-    -169,  -169,  -169,  -169,  -169,  -169,  -169,  -169,  -169,  -169,
-    -169,  -169,  -169,  -169,  -169,  -169,  -169,  -169,  -169,  -169,
-    -169,     0,     0,     0,  -169,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,  -169,
-    -169,  -169,  -169,  -169,  -169,  -169,     0,     0,     0,     0,
-       0,   142,     0,     0,  -169,     0,   143,   144,   145,  -169,
-     146,   147,   148,   149,   150,   151,   152,   153,   154,  -559,
-       0,     0,     0,     0,   155,     0,     0,     0,     0,   156,
-     157,   158,   159,   160,   161,     0,     0,     0,     0,     0,
-       0,     0,  -202,  -202,     0,     0,     0,   162,   163,   164,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   165,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,  -169,  -169,  -169,     0,  -169,  -169,  -169,     0,     0,
-       0,     0,     0,     0,     0,   166,   167,   168,   169,   170,
-     171,   172,   173,     0,     0,     0,     0,     0,   142,     0,
-       0,   174,     0,   143,   144,   145,   175,   146,   147,   148,
-     149,   150,   151,   152,   153,   154,  -559,     0,     0,     0,
-       0,   155,     0,     0,     0,     0,   156,   157,   158,   159,
-     160,   161,     0,     0,     0,     0,     0,     0,     0,  -202,
-    -202,     0,     0,     0,   162,   163,   164,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   165,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,    81,   176,
-     177,     0,   178,   179,    86,     0,     0,     0,     0,     0,
-       0,     0,  -531,   167,   168,   169,   170,   171,   172,   173,
-       0,     0,     0,     0,   220,     0,     0,     0,   174,   143,
-     144,   145,     0,   175,   221,   148,   149,   150,   151,   152,
-     153,   222,  -503,  -503,     0,     0,     0,   223,  -503,     0,
-       0,     0,   156,   157,   158,   159,   160,   161,     0,     0,
-       0,     0,     0,     0,     0,  -202,  -202,     0,     0,     0,
-     162,   163,   164,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   165,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,    81,   176,   177,     0,   178,
-     179,    86,     0,     0,     0,     0,     0,     0,  -503,     0,
-     168,   169,   170,   171,   172,   173,     0,     0,     0,     0,
-       0,   142,     0,     0,   174,     0,   143,   144,   145,   175,
-     146,   147,   148,   149,   150,   151,   152,   153,   154,  -559,
-     651,     0,     0,     0,   155,     0,     0,     0,     0,   156,
-     157,   158,   159,   160,   161,     0,     0,     0,     0,     0,
-       0,     0,  -202,  -202,     0,     0,     0,   162,   163,   164,
+       0,     0,     0,     0,     0,     0,     0,  -423,  -423,  -423,
+       0,     6,     0,     0,     0,     0,     7,     8,     9,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,    10,    11,    12,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   165,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,    81,   176,   177,     0,   178,   224,   225,     0,     0,
-       0,     0,     0,     0,     0,     0,   167,   168,   169,   170,
-     171,   172,   173,     0,     0,     0,     0,     0,   142,     0,
-       0,   174,     0,   143,   144,   145,   175,   146,   147,   148,
-     149,   150,   151,   152,   153,   154,  -559,     0,     0,     0,
-       0,   155,     0,     0,     0,     0,   156,   157,   158,   159,
-     160,   161,     0,     0,     0,     0,     0,     0,     0,  -202,
-    -202,     0,     0,     0,   162,   163,   164,     0,     0,     0,
+       0,    13,    14,    15,    16,     0,    17,    18,    19,    20,
+      21,    22,    23,    24,    25,    26,     0,    27,    28,    29,
+      30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
+      40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
+      50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
+      60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
+      70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
+      80,     0,     0,     0,     0,     0,     0,    81,    82,    83,
+      84,   143,    85,    86,    87,     0,   144,   145,   146,     0,
+     147,   148,   149,   150,   151,   152,   153,   154,   155,  -560,
+     555,     0,     0,     0,   156,     0,     0,     0,     0,   157,
+     158,   159,   160,   161,   162,     0,     0,     0,     0,     0,
+       0,     0,  -203,  -203,     4,     0,     5,   163,   164,   165,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   165,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,    81,   176,
-     177,     0,   178,   179,    86,     0,     0,     0,     0,     0,
-       0,     0,     0,   167,   168,   169,   170,   171,   172,   173,
-       0,     0,     0,     0,   220,     0,     0,     0,   174,   143,
-     144,   145,     0,   175,   221,   148,   149,   150,   151,   152,
-     153,   222,  -559,  -563,     0,     0,     0,   223,     0,     0,
-       0,     0,   156,   157,   158,   159,   160,   161,     0,     0,
-       0,     0,     0,     0,     0,  -202,  -202,     0,     0,     0,
-     162,   163,   164,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,  -423,  -423,
+    -423,   166,     6,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   165,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,    81,   176,   177,     0,   178,
-     179,    86,     0,     0,     0,     0,     0,     0,  -499,     0,
-     168,   169,   170,   171,   172,   173,     0,     0,     0,     0,
-     220,     0,     0,     0,   174,   143,   144,   145,     0,   175,
-     221,   148,   149,   150,   151,   152,   153,   222,  -559,  -563,
-       0,     0,     0,   223,     0,     0,     0,     0,   156,   157,
-     158,   159,   160,   161,     0,     0,     0,     0,     0,     0,
-       0,  -202,  -202,     0,     0,     0,   162,   163,   164,     0,
+       0,     0,     0,     0,     0,     0,   168,   169,   170,   171,
+     172,   173,   174,     0,     0,     0,     0,     0,     0,     0,
+       0,   175,    13,    14,    15,    16,   176,    17,    18,    19,
+      20,    21,    22,    23,    24,    25,    26,     0,    27,    28,
+      29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
+      39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
+      49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
+      59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
+      69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
+      79,    80,     0,     0,     0,     0,     0,     0,    81,   177,
+     556,    84,   179,   180,    86,    87,   143,     0,     0,     0,
+       0,   144,   145,   146,     0,   147,   148,   149,   150,   151,
+     152,   153,   154,   155,  -172,     0,     0,     0,     0,   156,
+       0,     0,     0,     0,   157,   158,   159,   160,   161,   162,
+       0,     0,     0,     0,     0,     0,     0,  -203,  -203,  -279,
+       0,     0,   163,   164,   165,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,  -279,  -279,  -279,   166,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     165,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,    81,   176,   177,     0,   178,   224,   225,     0,     0,
-       0,     0,     0,     0,     0,     0,   168,   169,   170,   171,
-     172,   173,     0,     0,     0,     0,     0,     0,     0,     0,
-     174,     0,   143,   144,   145,   175,   146,   147,   148,   149,
-     150,   151,   152,   153,   222,  -559,   571,     0,     0,     0,
-     355,     0,     0,     0,     0,   156,   157,   158,   159,   160,
-     161,     0,     0,     0,     0,     0,     0,     0,  -202,  -202,
-       4,     0,     5,   162,   163,   164,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   165,     6,     0,
-       0,     0,     0,     0,     0,     0,     0,    81,   176,   177,
-       0,   178,   224,   225,     0,     0,     0,     0,     0,     0,
-       0,     0,   167,   168,   169,   170,   171,   172,   173,     0,
-       0,     0,     0,     0,     0,     0,     0,   572,    13,    14,
-      15,    16,   175,    17,    18,    19,    20,    21,    22,    23,
-      24,    25,    26,     0,    27,    28,    29,    30,    31,    32,
-      33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
-      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
-      53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
-      63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
-      73,    74,    75,    76,    77,    78,    79,    80,     0,     0,
-       0,     0,     0,     0,    81,   176,   554,    84,   178,   179,
-      86,    87,   143,   144,   145,     0,   146,   147,   148,   149,
-     150,   151,   152,   153,   222,  -559,   652,     0,     0,     0,
-     355,     0,     0,     0,     0,   156,   157,   158,   159,   160,
-     161,     0,     0,     0,     0,     0,     0,     0,  -202,  -202,
-       4,     0,     5,   162,   163,   164,     0,     0,     0,     0,
+       0,   168,   169,   170,   171,   172,   173,   174,     0,     0,
+       0,     0,     0,     0,     0,     0,   175,  -279,  -279,  -279,
+    -279,   176,  -279,  -279,  -279,  -279,  -279,  -279,  -279,  -279,
+    -279,  -279,     0,  -279,  -279,  -279,  -279,  -279,  -279,  -279,
+    -279,  -279,  -279,  -279,  -279,  -279,  -279,  -279,  -279,  -279,
+    -279,  -279,  -279,  -279,  -279,  -279,  -279,  -279,  -279,  -279,
+    -279,  -279,  -279,  -279,  -279,  -279,  -279,  -279,  -279,  -279,
+    -279,  -279,  -279,  -279,  -279,  -279,  -279,  -279,  -279,  -279,
+    -279,  -279,  -279,  -279,  -279,  -279,  -279,     0,     0,     0,
+       0,     0,     0,    81,   177,   178,  -279,   179,   180,    86,
+    -279,   221,     0,     0,     0,     0,   144,   145,   146,     0,
+       0,   222,   149,   150,   151,   152,   153,   154,   223,  -172,
+    -564,     0,     0,     0,   224,     0,     0,     0,     0,   157,
+     158,   159,   160,   161,   162,     0,     0,     0,     0,     0,
+       0,     0,  -203,  -203,  -279,     0,     0,   163,   164,   165,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   165,     6,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,  -279,  -279,
+    -279,   166,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   169,   170,   171,
+     172,   173,   174,     0,     0,     0,     0,     0,     0,     0,
+       0,   175,  -279,  -279,  -279,  -279,   176,  -279,  -279,  -279,
+    -279,  -279,  -279,  -279,  -279,  -279,  -279,     0,  -279,  -279,
+    -279,  -279,  -279,  -279,  -279,  -279,  -279,  -279,  -279,  -279,
+    -279,  -279,  -279,  -279,  -279,  -279,  -279,  -279,  -279,  -279,
+    -279,  -279,  -279,  -279,  -279,  -279,  -279,  -279,  -279,  -279,
+    -279,  -279,  -279,  -279,  -279,  -279,  -279,  -279,  -279,  -279,
+    -279,  -279,  -279,  -279,  -279,  -279,  -279,  -279,  -279,  -279,
+    -279,  -279,     0,     0,     0,     0,     0,     0,    81,   177,
+     178,  -279,   179,   225,   226,  -279,  -170,     0,     0,     0,
+       0,  -170,  -170,  -170,     0,  -170,  -170,  -170,  -170,  -170,
+    -170,  -170,  -170,  -170,  -170,  -170,  -170,  -709,  -170,  -170,
+       0,  -170,     0,  -170,  -170,  -170,  -170,  -170,  -170,  -170,
+    -170,  -170,  -170,  -170,  -170,  -170,  -170,  -170,  -170,     0,
+    -170,     0,  -170,  -170,  -170,  -170,  -170,  -170,  -170,  -170,
+    -170,  -170,  -170,  -170,  -170,  -170,  -170,  -170,  -170,  -170,
+    -170,  -170,  -170,     0,     0,     0,  -170,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   167,   168,   169,   170,   171,   172,   173,     0,
-       0,     0,     0,     0,     0,     0,     0,   174,    13,    14,
-      15,    16,   175,    17,    18,    19,    20,    21,    22,    23,
-      24,    25,    26,     0,    27,    28,    29,    30,    31,    32,
-      33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
-      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
-      53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
-      63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
-      73,    74,    75,    76,    77,    78,    79,    80,     0,     0,
-       0,     0,     0,     0,    81,   176,   554,    84,   178,   179,
-      86,    87,   143,   144,   145,     0,   146,   147,   148,   149,
-     150,   151,   152,   153,   222,  -559,   664,     0,     0,     0,
-     355,     0,     0,     0,     0,   156,   157,   158,   159,   160,
-     161,     0,     0,     0,     0,     0,     0,     0,  -202,  -202,
-       4,     0,     5,   162,   163,   164,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   165,     6,     0,
+       0,  -170,  -170,  -170,  -170,  -170,  -170,  -170,     0,     0,
+       0,     0,     0,   143,     0,     0,  -170,     0,   144,   145,
+     146,  -170,   147,   148,   149,   150,   151,   152,   153,   154,
+     155,  -560,     0,     0,     0,     0,   156,     0,     0,     0,
+       0,   157,   158,   159,   160,   161,   162,     0,     0,     0,
+       0,     0,     0,     0,  -203,  -203,     0,     0,     0,   163,
+     164,   165,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   166,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,  -170,  -170,  -170,     0,  -170,  -170,  -170,
+       0,     0,     0,     0,     0,     0,     0,  -532,   168,   169,
+     170,   171,   172,   173,   174,     0,     0,     0,     0,   221,
+       0,     0,     0,   175,   144,   145,   146,     0,   176,   222,
+     149,   150,   151,   152,   153,   154,   223,  -504,  -504,     0,
+       0,     0,   224,  -504,     0,     0,     0,   157,   158,   159,
+     160,   161,   162,     0,     0,     0,     0,     0,     0,     0,
+    -203,  -203,     0,     0,     0,   163,   164,   165,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   167,   168,   169,   170,   171,   172,   173,     0,
-       0,     0,     0,     0,     0,     0,     0,   665,    13,    14,
-      15,    16,   175,    17,    18,    19,    20,    21,    22,    23,
-      24,    25,    26,     0,    27,    28,    29,    30,    31,    32,
-      33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
-      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
-      53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
-      63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
-      73,    74,    75,    76,    77,    78,    79,    80,     0,     0,
-       0,     0,     0,     0,    81,   176,   554,    84,   178,   179,
-      86,    87,   143,   144,   145,     0,   146,   147,   148,   149,
-     150,   151,   152,   153,   222,  -559,   663,     0,     0,     0,
-     355,     0,     0,     0,     0,   156,   157,   158,   159,   160,
-     161,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   162,   163,   164,   143,   144,   145,     0,
-     146,   147,   148,   149,   150,   151,   152,   153,   222,  -559,
-     667,     0,     0,     0,   355,     0,     0,   165,     0,   156,
-     157,   158,   159,   160,   161,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   162,   163,   164,
-       0,     0,   167,   168,   169,   170,   171,   172,   173,     0,
-       0,     0,     0,     0,     0,     0,     0,   174,     0,     0,
-       0,   165,   175,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   166,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   167,   168,   169,   170,
-     171,   172,   173,     0,     0,     0,     0,     0,     0,     0,
-       0,   668,     0,   143,   144,   145,   175,   146,   147,   148,
-     149,   150,   151,   152,   153,   222,  -559,   727,     0,     0,
-       0,   355,     0,     0,     0,     0,   156,   157,   158,   159,
-     160,   161,     0,     0,    81,   176,   177,     0,   178,   179,
-      86,     0,     0,     0,   162,   163,   164,   143,   144,   145,
-       0,   146,   147,   148,   149,   150,   151,   152,   153,   222,
-    -559,   805,     0,     0,     0,   355,     0,     0,   165,     0,
-     156,   157,   158,   159,   160,   161,     0,     0,    81,   176,
-     177,     0,   178,   179,    86,     0,     0,     0,   162,   163,
-     164,     0,     0,   167,   168,   169,   170,   171,   172,   173,
-       0,     0,     0,     0,     0,     0,     0,     0,   174,     0,
-       0,     0,   165,   175,     0,     0,     0,     0,     0,     0,
+      81,   177,   178,     0,   179,   180,    86,     0,     0,     0,
+       0,     0,     0,  -504,     0,   169,   170,   171,   172,   173,
+     174,     0,     0,     0,     0,     0,   143,     0,     0,   175,
+       0,   144,   145,   146,   176,   147,   148,   149,   150,   151,
+     152,   153,   154,   155,  -560,   653,     0,     0,     0,   156,
+       0,     0,     0,     0,   157,   158,   159,   160,   161,   162,
+       0,     0,     0,     0,     0,     0,     0,  -203,  -203,     0,
+       0,     0,   163,   164,   165,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   167,   168,   169,
-     170,   171,   172,   173,     0,     0,     0,     0,     0,     0,
-       0,     0,   174,     0,   143,   144,   145,   175,   146,   147,
-     148,   149,   150,   151,   152,   153,   222,  -559,   806,     0,
-       0,     0,   355,     0,     0,     0,     0,   156,   157,   158,
-     159,   160,   161,     0,     0,    81,   176,   177,     0,   178,
-     179,    86,     0,     0,     0,   162,   163,   164,   143,   144,
-     145,     0,   146,   147,   148,   149,   150,   151,   152,   153,
-     222,  -559,   808,     0,     0,     0,   355,     0,     0,   165,
-       0,   156,   157,   158,   159,   160,   161,     0,     0,    81,
-     176,   177,     0,   178,   179,    86,     0,     0,     0,   162,
-     163,   164,     0,     0,   167,   168,   169,   170,   171,   172,
-     173,     0,     0,     0,     0,     0,     0,     0,     0,   807,
-       0,     0,     0,   165,   175,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   166,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,    81,   177,   178,     0,
+     179,   225,   226,     0,     0,     0,     0,     0,     0,     0,
+       0,   168,   169,   170,   171,   172,   173,   174,     0,     0,
+       0,     0,     0,   143,     0,     0,   175,     0,   144,   145,
+     146,   176,   147,   148,   149,   150,   151,   152,   153,   154,
+     155,  -560,     0,     0,     0,     0,   156,     0,     0,     0,
+       0,   157,   158,   159,   160,   161,   162,     0,     0,     0,
+       0,     0,     0,     0,  -203,  -203,     0,     0,     0,   163,
+     164,   165,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   167,   168,
-     169,   170,   171,   172,   173,     0,     0,     0,     0,     0,
-       0,     0,     0,   174,     0,   143,   144,   145,   175,   146,
-     147,   148,   149,   150,   151,   152,   153,   222,  -559,   941,
-       0,     0,     0,   355,     0,     0,     0,     0,   156,   157,
-     158,   159,   160,   161,     0,     0,    81,   176,   177,     0,
-     178,   179,    86,     0,     0,     0,   162,   163,   164,   143,
-     144,   145,     0,   146,   147,   148,   149,   150,   151,   152,
-     153,   222,  -559,     0,     0,     0,     0,   355,     0,     0,
-     165,     0,   156,   157,   158,   159,   160,   161,     0,     0,
-      81,   176,   177,     0,   178,   179,    86,     0,     0,     0,
-     162,   163,   164,     0,     0,   167,   168,   169,   170,   171,
-     172,   173,     0,     0,     0,     0,     0,     0,     0,     0,
-     174,     0,     0,     0,   165,   175,     0,     0,     0,     0,
+       0,     0,     0,   166,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,    81,   177,   178,     0,   179,   180,    86,
+       0,     0,     0,     0,     0,     0,     0,     0,   168,   169,
+     170,   171,   172,   173,   174,     0,     0,     0,     0,   221,
+       0,     0,     0,   175,   144,   145,   146,     0,   176,   222,
+     149,   150,   151,   152,   153,   154,   223,  -560,  -564,     0,
+       0,     0,   224,     0,     0,     0,     0,   157,   158,   159,
+     160,   161,   162,     0,     0,     0,     0,     0,     0,     0,
+    -203,  -203,     0,     0,     0,   163,   164,   165,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   167,
-     168,   169,   170,   171,   172,   173,  -135,     0,     0,     0,
-       0,  -135,     0,     0,   174,     0,     0,     0,     0,   175,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   166,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     4,     0,     5,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,    81,   176,   177,
-       0,   178,   179,    86,     0,     0,     0,     0,     0,     6,
+      81,   177,   178,     0,   179,   180,    86,     0,     0,     0,
+       0,     0,     0,  -500,     0,   169,   170,   171,   172,   173,
+     174,     0,     0,     0,     0,   221,     0,     0,     0,   175,
+     144,   145,   146,     0,   176,   222,   149,   150,   151,   152,
+     153,   154,   223,  -560,  -564,     0,     0,     0,   224,     0,
+       0,     0,     0,   157,   158,   159,   160,   161,   162,     0,
+       0,     0,     0,     0,     0,     0,  -203,  -203,     0,     0,
+       0,   163,   164,   165,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,   166,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,    81,   177,   178,     0,
+     179,   225,   226,     0,     0,     0,     0,     0,     0,     0,
+       0,   169,   170,   171,   172,   173,   174,     0,     0,     0,
+       0,     0,     0,     0,     0,   175,     0,   144,   145,   146,
+     176,   147,   148,   149,   150,   151,   152,   153,   154,   223,
+    -560,   573,     0,     0,     0,   357,     0,     0,     0,     0,
+     157,   158,   159,   160,   161,   162,     0,     0,     0,     0,
+       0,     0,     0,  -203,  -203,     4,     0,     5,   163,   164,
+     165,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,   166,     6,     0,     0,     0,     0,     0,     0,
+       0,     0,    81,   177,   178,     0,   179,   225,   226,     0,
+       0,     0,     0,     0,     0,     0,     0,   168,   169,   170,
+     171,   172,   173,   174,     0,     0,     0,     0,     0,     0,
+       0,     0,   574,    13,    14,    15,    16,   176,    17,    18,
+      19,    20,    21,    22,    23,    24,    25,    26,     0,    27,
+      28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
+      38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
+      48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
+      58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
+      68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
+      78,    79,    80,     0,     0,     0,     0,     0,     0,    81,
+     177,   556,    84,   179,   180,    86,    87,   144,   145,   146,
+       0,   147,   148,   149,   150,   151,   152,   153,   154,   223,
+    -560,   654,     0,     0,     0,   357,     0,     0,     0,     0,
+     157,   158,   159,   160,   161,   162,     0,     0,     0,     0,
+       0,     0,     0,  -203,  -203,     4,     0,     5,   163,   164,
+     165,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,    81,   176,   177,     0,   178,   179,    86,     0,    13,
-      14,    15,    16,     0,    17,    18,    19,    20,    21,    22,
-      23,    24,    25,    26,     0,    27,    28,    29,    30,    31,
-      32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
-      42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
-      52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
-      62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
-      72,    73,    74,    75,    76,    77,    78,    79,    80,  -562,
-       0,     0,     0,     0,     0,     0,     0,   137,    84,     0,
-       0,     0,    87,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     4,     0,     0,     0,     0,     0,     0,
+       0,     0,   166,     6,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   168,   169,   170,
+     171,   172,   173,   174,     0,     0,     0,     0,     0,     0,
+       0,     0,   175,    13,    14,    15,    16,   176,    17,    18,
+      19,    20,    21,    22,    23,    24,    25,    26,     0,    27,
+      28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
+      38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
+      48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
+      58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
+      68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
+      78,    79,    80,     0,     0,     0,     0,     0,     0,    81,
+     177,   556,    84,   179,   180,    86,    87,   144,   145,   146,
+       0,   147,   148,   149,   150,   151,   152,   153,   154,   223,
+    -560,   666,     0,     0,     0,   357,     0,     0,     0,     0,
+     157,   158,   159,   160,   161,   162,     0,     0,     0,     0,
+       0,     0,     0,  -203,  -203,     4,     0,     5,   163,   164,
+     165,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,   166,     6,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   168,   169,   170,
+     171,   172,   173,   174,     0,     0,     0,     0,     0,     0,
+       0,     0,   667,    13,    14,    15,    16,   176,    17,    18,
+      19,    20,    21,    22,    23,    24,    25,    26,     0,    27,
+      28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
+      38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
+      48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
+      58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
+      68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
+      78,    79,    80,     0,     0,     0,     0,     0,     0,    81,
+     177,   556,    84,   179,   180,    86,    87,   144,   145,   146,
+       0,   147,   148,   149,   150,   151,   152,   153,   154,   223,
+    -560,   665,     0,     0,     0,   357,     0,     0,     0,     0,
+     157,   158,   159,   160,   161,   162,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   163,   164,
+     165,   144,   145,   146,     0,   147,   148,   149,   150,   151,
+     152,   153,   154,   223,  -560,   669,     0,     0,     0,   357,
+       0,     0,   166,     0,   157,   158,   159,   160,   161,   162,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,   163,   164,   165,     0,     0,   168,   169,   170,
+     171,   172,   173,   174,     0,     0,     0,     0,     0,     0,
+       0,     0,   175,     0,     0,     0,   166,   176,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,    13,    14,    15,    16,     0,    17,    18,    19,    20,
-      21,    22,    23,    24,    25,    26,     0,    27,    28,    29,
-      30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
-      40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
-      50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
-      60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
-      70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
-      80,     0,     0,     0,     0,     0,   709,  -702,     0,   137,
-      84,   296,     0,     0,    87,     0,   156,   157,   158,   159,
-     160,   161,     0,     0,     0,     0,     0,   628,     0,     0,
-       0,     0,   296,     0,   162,   163,   164,   156,   157,   158,
-     159,   160,   161,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   709,   162,   163,   164,   165,   296,
-       0,     0,     0,     0,   156,   157,   158,   159,   160,   161,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   165,
-       0,     0,   162,   163,   164,     0,     0,     0,     0,     0,
+       0,   168,   169,   170,   171,   172,   173,   174,     0,     0,
+       0,     0,     0,     0,     0,     0,   670,     0,   144,   145,
+     146,   176,   147,   148,   149,   150,   151,   152,   153,   154,
+     223,  -560,   729,     0,     0,     0,   357,     0,     0,     0,
+       0,   157,   158,   159,   160,   161,   162,     0,     0,    81,
+     177,   178,     0,   179,   180,    86,     0,     0,     0,   163,
+     164,   165,   144,   145,   146,     0,   147,   148,   149,   150,
+     151,   152,   153,   154,   223,  -560,   807,     0,     0,     0,
+     357,     0,     0,   166,     0,   157,   158,   159,   160,   161,
+     162,     0,     0,    81,   177,   178,     0,   179,   180,    86,
+       0,     0,     0,   163,   164,   165,     0,     0,   168,   169,
+     170,   171,   172,   173,   174,     0,     0,     0,     0,     0,
+       0,     0,     0,   175,     0,     0,     0,   166,   176,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   175,     0,     0,   165,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   175,     0,     0,     0,     0,     0,
+       0,     0,   168,   169,   170,   171,   172,   173,   174,     0,
+       0,     0,     0,     0,     0,     0,     0,   175,     0,   144,
+     145,   146,   176,   147,   148,   149,   150,   151,   152,   153,
+     154,   223,  -560,   808,     0,     0,     0,   357,     0,     0,
+       0,     0,   157,   158,   159,   160,   161,   162,     0,     0,
+      81,   177,   178,     0,   179,   180,    86,     0,     0,     0,
+     163,   164,   165,   144,   145,   146,     0,   147,   148,   149,
+     150,   151,   152,   153,   154,   223,  -560,   810,     0,     0,
+       0,   357,     0,     0,   166,     0,   157,   158,   159,   160,
+     161,   162,     0,     0,    81,   177,   178,     0,   179,   180,
+      86,     0,     0,     0,   163,   164,   165,     0,     0,   168,
+     169,   170,   171,   172,   173,   174,     0,     0,     0,     0,
+       0,     0,     0,     0,   809,     0,     0,     0,   166,   176,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-    -278,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       3,   175,     0,     0,     0,     0,     0,     0,     0,     0,
-       4,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,    81,   297,   298,     0,   178,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,    81,   297,   298,     0,
-     178,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   168,   169,   170,   171,   172,   173,   174,
+       0,     0,     0,     0,     0,     0,     0,     0,   175,     0,
+     144,   145,   146,   176,   147,   148,   149,   150,   151,   152,
+     153,   154,   223,  -560,   943,     0,     0,     0,   357,     0,
+       0,     0,     0,   157,   158,   159,   160,   161,   162,     0,
+       0,    81,   177,   178,     0,   179,   180,    86,     0,     0,
+       0,   163,   164,   165,   144,   145,   146,     0,   147,   148,
+     149,   150,   151,   152,   153,   154,   223,  -560,     0,     0,
+       0,     0,   357,     0,     0,   166,     0,   157,   158,   159,
+     160,   161,   162,     0,     0,    81,   177,   178,     0,   179,
+     180,    86,     0,     0,     0,   163,   164,   165,     0,     0,
+     168,   169,   170,   171,   172,   173,   174,     0,     0,     0,
+       0,     0,     0,     0,     0,   175,     0,     0,     0,   166,
+     176,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,    81,   297,   298,     0,   178,    13,    14,
-      15,    16,     0,    17,    18,    19,    20,    21,    22,    23,
-      24,    25,    26,     0,    27,    28,    29,    30,    31,    32,
-      33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
-      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
-      53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
-      63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
-      73,    74,    75,    76,    77,    78,    79,    80,     0,     0,
-       0,     0,     0,     0,    81,    82,    83,    84,   296,    85,
-      86,    87,     0,   156,   157,   158,   159,   160,   161,     0,
-       0,     0,     0,     0,     0,     0,  -202,  -202,     0,   296,
-     514,   162,   163,   164,   156,   157,   158,   159,   160,   161,
-     296,     0,     0,   594,     0,   156,   157,   158,   159,   160,
-     161,     0,   162,   163,   164,   165,     0,     0,     0,     0,
-       0,   296,   992,   162,   163,   164,   156,   157,   158,   159,
-     160,   161,   296,     0,     0,   689,   165,   156,   157,   158,
-     159,   160,   161,     0,   162,   163,   164,   165,     0,     0,
-       0,     0,     0,     0,     0,   162,   163,   164,     0,     0,
-     175,     0,     0,     0,   296,  -258,     0,     0,   165,   156,
-     157,   158,   159,   160,   161,     0,     0,     0,     0,   165,
-       0,   175,     0,     0,     0,     0,     0,   162,   163,   164,
-       0,   296,   175,     0,     0,     0,   156,   157,   158,   159,
-     160,   161,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   165,     0,   175,   162,   163,   164,     0,     0,     0,
-     343,     0,     0,     0,   175,   156,   157,   158,   159,   160,
-     161,     0,    81,   297,   298,     0,   178,     0,   165,     0,
-       0,     0,     0,   162,   163,   164,     0,     0,     0,     0,
-       0,     0,     0,    81,   297,   298,   175,   178,     0,     0,
-       0,     0,     0,     0,    81,   297,   298,   165,   178,   722,
-       0,     0,     0,     0,   156,   157,   158,   159,   160,   161,
-       0,     0,     0,   175,     0,    81,   297,   298,     0,   178,
-       0,     0,   162,   163,   164,     0,    81,   297,   298,   724,
-     178,     0,     0,     0,   156,   157,   158,   159,   160,   161,
-       0,     0,   175,     0,     0,     0,   165,     0,     0,     0,
-       0,     0,   162,   163,   164,     0,     0,     0,    81,   297,
-     298,     0,   178,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   165,     0,     0,     0,
-       0,     0,     0,     0,     0,    81,   297,   298,   730,   178,
-       0,   175,     0,   731,   732,   733,   734,   735,   736,     0,
+       0,     0,     0,     0,   168,   169,   170,   171,   172,   173,
+     174,  -136,     0,     0,     0,     0,  -136,     0,     0,   175,
+       0,     0,     0,     0,   176,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     4,     0,     5,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   162,   737,   738,    81,   297,   298,     0,   178,     0,
-       0,   175,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   739,     0,     0,     0,     0,
+       0,     0,    81,   177,   178,     0,   179,   180,    86,     0,
+       0,     0,     0,     0,     6,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,    81,   297,   298,     0,   178,     0,     0,
+       0,     0,     0,     0,     0,     0,    81,   177,   178,     0,
+     179,   180,    86,     0,    13,    14,    15,    16,     0,    17,
+      18,    19,    20,    21,    22,    23,    24,    25,    26,     0,
+      27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
+      37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
+      47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
+      57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
+      67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
+      77,    78,    79,    80,  -563,     0,     0,     0,     0,     0,
+       0,     0,   138,    84,     0,     0,     0,    87,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     4,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     175,     0,     0,     0,     0,     0,     0,     0,     0,     4,
-       0,     5,     0,    81,   297,   298,     0,   178,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,  -422,  -422,  -422,     0,     6,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,    81,   740,   741,     0,   178,    13,    14,    15,
-      16,     0,    17,    18,    19,    20,    21,    22,    23,    24,
-      25,    26,     0,    27,    28,    29,    30,    31,    32,    33,
-      34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
-      44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
-      54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
-      64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
-      74,    75,    76,    77,    78,    79,    80,     4,     0,     5,
-       0,     0,     0,     0,     0,   137,    84,     0,     0,     0,
-      87,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     6,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,    13,    14,    15,    16,
+       0,    17,    18,    19,    20,    21,    22,    23,    24,    25,
+      26,     0,    27,    28,    29,    30,    31,    32,    33,    34,
+      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
+      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
+      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
+      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
+      75,    76,    77,    78,    79,    80,     0,     0,     0,     0,
+       0,   711,  -703,     0,   138,    84,   298,     0,     0,    87,
+       0,   157,   158,   159,   160,   161,   162,     0,     0,     0,
+       0,     0,   630,     0,     0,     0,     0,   298,     0,   163,
+     164,   165,   157,   158,   159,   160,   161,   162,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   711,
+     163,   164,   165,   166,   298,     0,     0,     0,     0,   157,
+     158,   159,   160,   161,   162,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   166,     0,     0,   163,   164,   165,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   176,     0,
+       0,   166,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   176,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,    13,    14,    15,    16,     0,
-      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-       0,    27,    28,    29,    30,    31,    32,    33,    34,    35,
-      36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
-      46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
-      56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
-      66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
-      76,    77,    78,    79,    80,     4,     0,     0,     0,     0,
-       0,    81,  1105,   137,    84,     0,     0,     0,    87,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,  -422,
-    -422,  -422,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,  -279,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     3,   176,     0,     0,     0,
+       0,     0,     0,     0,     0,     4,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+      81,   299,   300,     0,   179,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,    81,   299,   300,     0,   179,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,    13,    14,    15,    16,     0,    17,    18,
+       0,     0,     0,     0,     0,     0,     0,     0,    81,   299,
+     300,     0,   179,    13,    14,    15,    16,     0,    17,    18,
       19,    20,    21,    22,    23,    24,    25,    26,     0,    27,
       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
       19,    20,    21,    22,    23,    24,    25,    26,     0,    27,
       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
-      78,    79,    80,     4,     0,     0,     0,     0,     0,     0,
-       0,   137,    84,     0,     0,     0,    87,     0,     0,     0,
+      78,    79,    80,     0,     0,     0,     0,     0,     0,    81,
+      82,    83,    84,   298,    85,    86,    87,     0,   157,   158,
+     159,   160,   161,   162,     0,     0,     0,     0,     0,     0,
+       0,  -203,  -203,     0,   298,   516,   163,   164,   165,   157,
+     158,   159,   160,   161,   162,   298,     0,     0,   596,     0,
+     157,   158,   159,   160,   161,   162,     0,   163,   164,   165,
+     166,     0,     0,     0,     0,     0,   298,   994,   163,   164,
+     165,   157,   158,   159,   160,   161,   162,   298,     0,     0,
+     691,   166,   157,   158,   159,   160,   161,   162,     0,   163,
+     164,   165,   166,     0,     0,     0,     0,     0,     0,     0,
+     163,   164,   165,     0,     0,   176,     0,     0,     0,   298,
+    -259,     0,     0,   166,   157,   158,   159,   160,   161,   162,
+       0,     0,     0,     0,   166,     0,   176,     0,     0,     0,
+       0,     0,   163,   164,   165,     0,   298,   176,     0,     0,
+       0,   157,   158,   159,   160,   161,   162,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   166,     0,   176,   163,
+     164,   165,     0,     0,     0,   345,     0,     0,     0,   176,
+     157,   158,   159,   160,   161,   162,     0,    81,   299,   300,
+       0,   179,     0,   166,     0,     0,     0,     0,   163,   164,
+     165,     0,     0,     0,     0,     0,     0,     0,    81,   299,
+     300,   176,   179,     0,     0,     0,     0,     0,     0,    81,
+     299,   300,   166,   179,   724,     0,     0,     0,     0,   157,
+     158,   159,   160,   161,   162,     0,     0,     0,   176,     0,
+      81,   299,   300,     0,   179,     0,     0,   163,   164,   165,
+       0,    81,   299,   300,   726,   179,     0,     0,     0,   157,
+     158,   159,   160,   161,   162,     0,     0,   176,     0,     0,
+       0,   166,     0,     0,     0,     0,     0,   163,   164,   165,
+       0,     0,     0,    81,   299,   300,     0,   179,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,   166,     0,     0,     0,     0,     0,     0,     0,     0,
+      81,   299,   300,   732,   179,     0,   176,     0,   733,   734,
+     735,   736,   737,   738,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   163,   739,   740,    81,
+     299,   300,     0,   179,     0,     0,   176,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     741,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,    10,    11,    12,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,    81,   299,
+     300,     0,   179,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,   176,     0,     0,     0,     0,
+       0,     0,     0,     0,     4,     0,     5,     0,    81,   299,
+     300,     0,   179,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,  -423,  -423,
+    -423,     0,     6,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,    13,    14,    15,    16,     0,    17,    18,    19,    20,
-      21,    22,    23,    24,    25,    26,     0,    27,    28,    29,
-      30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
-      40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
-      50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
-      60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
-      70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
-      80,     4,     0,     5,     0,     0,     0,     0,     0,   137,
-      84,     0,     0,     0,    87,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     6,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,    81,   742,   743,
+       0,   179,    13,    14,    15,    16,     0,    17,    18,    19,
+      20,    21,    22,    23,    24,    25,    26,     0,    27,    28,
+      29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
+      39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
+      49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
+      59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
+      69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
+      79,    80,     4,     0,     5,     0,     0,     0,     0,     0,
+     138,    84,     0,     0,     0,    87,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       6,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,    13,
-      14,    15,    16,     0,    17,    18,    19,    20,    21,    22,
-      23,    24,    25,    26,     0,    27,    28,    29,    30,    31,
-      32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
-      42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
-      52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
-      62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
-      72,    73,    74,    75,    76,    77,    78,    79,    80,     4,
-       0,     0,     0,     0,     0,     0,     0,   137,    84,     0,
-       0,     0,    87,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+      13,    14,    15,    16,     0,    17,    18,    19,    20,    21,
+      22,    23,    24,    25,    26,     0,    27,    28,    29,    30,
+      31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
+      41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
+      51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
+      61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
+      71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
+       4,     0,     0,     0,     0,     0,    81,  1107,   138,    84,
+       0,     0,     0,    87,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,  -423,  -423,  -423,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,    13,    14,
+      15,    16,     0,    17,    18,    19,    20,    21,    22,    23,
+      24,    25,    26,     0,    27,    28,    29,    30,    31,    32,
+      33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
+      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
+      53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
+      63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
+      73,    74,    75,    76,    77,    78,    79,    80,     4,     0,
+       0,     0,     0,     0,     0,     0,   138,    84,     0,     0,
+       0,    87,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,    10,    11,    12,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,    13,    14,    15,    16,
+       0,    17,    18,    19,    20,    21,    22,    23,    24,    25,
+      26,     0,    27,    28,    29,    30,    31,    32,    33,    34,
+      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
+      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
+      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
+      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
+      75,    76,    77,    78,    79,    80,     4,     0,     5,     0,
+       0,     0,     0,     0,   138,    84,     0,     0,     0,    87,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     6,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,    13,    14,    15,    16,     0,    17,
+      18,    19,    20,    21,    22,    23,    24,    25,    26,     0,
+      27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
+      37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
+      47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
+      57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
+      67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
+      77,    78,    79,    80,     4,     0,     0,     0,     0,     0,
+       0,     0,   138,    84,     0,     0,     0,    87,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,    13,    14,    15,
-      16,     0,    17,    18,    19,    20,    21,    22,    23,    24,
-      25,    26,     0,    27,    28,    29,    30,    31,    32,    33,
-      34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
-      44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
-      54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
-      64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
-      74,    75,    76,    77,    78,    79,    80,     0,     0,     0,
-       0,     0,     0,     0,     0,   137,    84,     0,     0,     0,
-      87
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,    13,    14,    15,    16,     0,    17,    18,    19,
+      20,    21,    22,    23,    24,    25,    26,     0,    27,    28,
+      29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
+      39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
+      49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
+      59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
+      69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
+      79,    80,     0,     0,     0,     0,     0,     0,     0,     0,
+     138,    84,     0,     0,     0,    87
 };
 
 static const short yycheck[] =
 {
 };
 
 static const short yycheck[] =
 {
-       0,     0,     5,   143,   121,     5,     0,   439,   459,     9,
-      10,    11,    12,   401,   402,   596,     3,   332,   403,     0,
-     929,   313,   937,   440,     5,   457,   549,    10,     9,   131,
-     311,   626,   395,   396,   657,   551,   393,   394,    27,   234,
-     355,   679,   657,   965,   657,   830,   223,   703,   404,   473,
-     835,   228,    56,   230,   839,    24,     0,   156,   157,   158,
-     159,   160,   161,   789,     5,    19,    21,   405,    21,   842,
-      25,   266,    25,   505,    19,   848,   661,   661,   804,   661,
-     397,   398,   399,   400,    25,     0,    24,     5,    88,    88,
-       5,     5,     7,    18,    88,   718,    34,   557,   815,    24,
-      21,    54,    55,   718,    25,   718,    24,    88,    21,    34,
-     691,    25,  1117,  1118,    27,   575,    34,   661,    28,    21,
-      18,   121,    22,    25,    11,    12,    26,   949,    28,    50,
-      51,  1040,  1041,    24,   657,    45,  1051,  1052,    24,   139,
-     121,   657,   129,    34,    88,    45,    41,  1069,    50,    51,
-     150,    26,   139,    28,    28,   155,    22,   942,   139,    21,
-      18,     5,    57,    25,    18,    23,   598,    21,    34,   150,
-      45,    45,   155,    88,   174,   490,   814,    39,   610,   817,
-    1185,    25,   474,   187,   286,    21,   842,   102,   612,    25,
-      11,    12,   848,    41,   611,   718,   969,    21,   113,   114,
-     200,    25,   718,   192,   789,   789,  1115,   789,   208,    57,
-     210,  1126,   212,  1128,   661,   215,    18,   200,   413,   804,
-     804,    88,   804,   223,   139,   208,    50,    51,   228,   212,
-     230,   948,   215,   950,   188,   189,   190,   192,    26,   193,
-     194,   343,   346,   243,   244,   789,    34,   188,   189,   190,
-     188,   189,   193,   194,  1076,   706,  1078,   434,   435,    21,
-     804,   244,   577,   188,   189,   190,     5,    24,   372,   657,
-     188,   189,   657,   377,   378,   379,   380,   381,   382,   383,
-     384,   385,   386,   387,    18,   285,   285,    21,   288,   289,
-     290,   390,   391,   392,   657,    10,  1081,   188,   189,   439,
-     657,   657,    24,   926,   285,    24,   410,   288,   289,   290,
-     310,   310,    34,   969,   301,    21,   316,   457,     5,   657,
-    1235,    27,   188,   189,   190,    21,   607,   193,   194,   310,
-     718,    27,     5,   718,    24,   316,   223,    24,    25,    26,
-     657,   228,   789,   230,   188,   189,   190,    34,    34,   193,
-     194,    89,    90,    10,    24,   718,   243,   804,   358,    21,
-      21,   718,   718,    25,    25,   505,   366,    26,   368,    28,
-      70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
-     718,    24,   977,   121,   122,   300,    45,    21,   820,    50,
-      51,    25,   973,   495,   493,    29,   919,   135,    24,   831,
-      26,   718,   223,    18,  1027,   921,    21,   228,   859,   230,
-      25,   111,  1027,   413,  1027,   115,    21,   117,    18,   119,
-      25,    10,   243,    26,   124,    28,   112,   113,   114,    21,
-     413,    37,    38,    25,   434,   435,   136,   431,   138,    10,
-     155,   441,    45,   443,   443,    18,    52,    53,   442,   188,
-     189,   190,   452,    21,   193,   194,    18,    25,   598,    21,
-     463,    23,   443,   463,    24,   465,   188,   189,   190,   946,
-     610,   452,   949,   473,    25,    26,   476,    28,    24,   581,
-     480,   181,   463,    21,   465,   200,   473,    25,    18,  1112,
-      16,    21,   473,   208,    45,   476,    16,   212,   155,   480,
-     215,   188,   189,   190,  1027,    18,   193,   194,    21,   509,
-      21,  1027,    25,    15,    25,   188,   189,   190,   518,   519,
-     193,   194,    25,    26,   628,    28,   914,   915,    21,   244,
-     632,   916,    25,     5,    32,    33,   640,   518,   519,    32,
-      33,    18,    45,   200,    21,   908,   909,   434,   435,   906,
-     907,   208,    24,    16,  1051,   212,   556,   557,   215,  1182,
-     102,   917,    34,   557,   564,   564,   155,    21,    24,   269,
-      22,    25,   572,   556,    23,   575,   576,    26,    34,    28,
-     918,   575,    24,   564,   155,    27,    16,   244,    24,   706,
-      26,   695,    34,   910,   911,   912,   913,    22,    34,  1076,
-      24,  1078,    26,    18,   304,   709,    21,   307,    54,    55,
-      34,   200,   612,   434,   435,   315,    50,    51,   318,   208,
-     722,    34,   724,   212,    18,   612,   215,    21,   730,   200,
-      29,   612,   731,   732,   733,   734,   735,   736,  1135,  1027,
-      22,   212,  1027,  1140,   215,    37,    38,    18,   929,    24,
-      21,    26,   210,   653,   654,   244,    39,   657,     5,    34,
-      52,    53,    40,    21,  1027,   665,   666,    25,   668,   984,
-    1027,  1027,    21,   244,    95,    88,    25,    24,    25,    26,
-     820,    21,   682,    18,   684,    25,    21,    34,    21,  1027,
-     971,   831,    25,  1190,    56,   695,    25,    26,   413,    28,
-     687,   682,   702,   684,   619,   705,   706,   707,    18,  1160,
-    1027,    21,   184,   185,   695,    34,   188,   189,   718,   706,
-     192,   702,    95,    21,   705,   706,   830,    25,   184,   185,
-     430,   835,   188,   189,   874,   839,   192,    21,    25,    26,
-     440,    25,   859,     6,     7,   445,   188,   189,   190,   449,
-     192,   451,   188,   189,   190,  1036,   413,   193,   194,   195,
-      24,   865,    34,    27,   192,  1046,    25,    26,   468,    28,
-      34,    26,   472,    19,    21,   188,   189,  1209,    25,    34,
-     193,   194,   886,   887,    22,  1066,    45,    22,   892,   893,
-     894,   895,   896,   897,   898,   899,   900,   901,   902,    21,
-     358,    24,  1083,    25,   903,   904,   905,   807,   366,    24,
-     368,    26,  1244,   188,   189,   190,    21,    21,   193,   194,
-      25,    25,    21,    24,   413,    26,    25,   827,    32,    33,
-     830,    22,   832,    21,    24,   835,    26,    25,   942,   839,
-    1121,   556,   413,    21,    42,    43,   827,    25,    21,   830,
-      95,   832,    25,    21,   835,    19,    21,    25,   839,   859,
-      25,  1142,    21,    20,    37,    38,    25,   867,    95,   188,
-     189,   190,   859,    21,   193,   194,   195,    25,   859,    52,
-      53,    21,    27,   441,    21,    25,   867,    18,    25,    37,
-      38,   990,    20,    21,    21,    24,   596,   812,    25,   556,
-     815,   188,   189,   190,    52,    53,   193,   194,   188,   189,
-     190,   611,    25,   193,   194,    21,   188,   189,   190,    25,
-      23,   193,   194,    21,   188,   189,   190,    25,   192,   929,
-     630,    18,    21,   188,   189,   190,    25,   937,   193,   194,
-      21,    18,   942,    22,    25,    34,    35,    36,    21,    21,
-      24,   509,    25,    25,   123,   124,   125,   126,   658,   128,
-     660,   942,    21,    22,   133,   134,    23,   556,   137,   138,
-      18,   140,   141,   142,   143,    21,    21,  1081,    21,    25,
-      25,    21,    25,    32,    33,    25,   155,   156,    34,    35,
-      36,    24,   692,  1095,    21,   995,   996,    25,    25,   557,
-      25,    58,    59,    60,    61,    62,    63,    64,    65,    66,
-      67,    24,   181,    11,   995,   996,    21,   575,   576,    18,
-      25,    18,   191,    25,    68,    69,    70,  1027,    34,    35,
-      36,   946,    18,   948,   949,   950,    50,    51,  1038,    18,
-    1040,  1041,   742,  1160,  1038,    18,    24,    19,    26,  1049,
-      28,  1051,  1052,    34,    35,    36,    52,    53,    54,    54,
-      55,    24,    10,    11,    12,    20,    21,    45,  1068,  1209,
-      48,    49,    11,  1073,  1073,    20,    21,     9,    13,    14,
-      15,  1081,    91,  1223,    21,    22,  1086,  1086,    32,    33,
-      21,  1091,  1073,   113,   114,   653,   654,   797,   798,  1086,
-    1081,    19,    19,    19,  1244,  1086,    19,    91,   666,    24,
-    1091,    25,  1112,  1113,  1114,  1115,    27,  1117,  1118,    24,
-      22,    21,    21,    24,    18,    26,  1126,    28,  1128,    25,
-      25,  1131,  1113,  1114,    21,  1135,    25,  1137,  1138,    11,
-    1140,   841,    24,  1146,    45,    24,  1146,    48,    49,   707,
-      24,    27,    25,    23,    20,    19,  1137,  1138,    20,    19,
-    1160,  1076,    23,  1078,    27,  1146,    24,    21,   103,   104,
-     105,   106,   107,   108,   109,   110,    21,   112,    10,  1160,
-     115,     5,  1182,  1183,  1184,  1185,    25,    22,    19,    25,
-    1190,    24,    20,    20,    40,    25,   131,    22,   133,   134,
-     135,    27,  1183,  1184,   139,    73,    27,   155,    25,    18,
-    1210,  1210,    10,    11,    12,    21,    21,    25,    29,    39,
-     155,    24,    56,   143,    25,   189,    91,   162,    25,  1210,
-      25,    18,    91,    22,    91,  1235,   156,   157,   158,   159,
-     160,   161,    91,   163,   164,   945,    25,    91,    91,   184,
-      24,    20,   200,    25,    25,    25,    18,    25,    21,    18,
-     208,    27,   192,    40,   212,    23,    20,   215,    18,    21,
-      23,   194,    18,   973,    22,   223,   224,    24,    91,    22,
-     228,    21,   230,    21,    20,    22,    20,    91,   223,   196,
-      25,    40,    25,    25,    18,   243,   244,    27,    27,   131,
-      58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
-      20,    20,    27,    25,     0,     0,   316,   937,  1235,  1203,
-    1131,   153,  1030,   155,    88,   693,  1103,   262,  1039,  1182,
-      19,    20,  1068,   887,   184,    24,   827,    26,   802,    28,
-      29,    30,    31,    32,    33,    34,   836,   581,   684,  1210,
-     682,   286,   859,   288,   289,   705,   129,   155,    47,    48,
-      49,   296,    12,   301,   353,   243,   301,  1166,   200,   865,
-     509,  1071,   413,   718,  1027,   709,   208,   864,    -1,    -1,
-     212,   316,    71,   215,    -1,    10,    11,    12,    -1,    -1,
-      -1,   223,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   200,    -1,    -1,    -1,    -1,    -1,   343,    -1,
-     208,    -1,   244,    -1,   212,    -1,    -1,   215,    -1,    -1,
-     355,    -1,    -1,   371,    -1,   223,    -1,   116,    -1,    -1,
-     228,    -1,   230,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   243,   244,    -1,    -1,    -1,
-    1150,    -1,    -1,    -1,    10,    11,    12,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   296,   413,    -1,    -1,    -1,    -1,
-     390,   391,   392,   393,   394,   395,   396,   397,   398,   399,
-     400,   401,   402,   403,   404,   405,   434,   435,    -1,    -1,
-      -1,   323,   324,   325,   326,   430,    -1,    -1,    -1,   188,
-     189,   190,    -1,   192,   193,   194,    -1,    -1,    -1,    -1,
-      -1,   343,    -1,    -1,   449,   347,   451,    -1,   453,   439,
-      -1,   456,    -1,   355,   459,    -1,   461,    -1,    -1,    -1,
-     155,    10,    11,    12,    -1,   470,    -1,   457,   473,    -1,
-      18,   373,  1242,    -1,    -1,   480,    24,    -1,    -1,    -1,
-      -1,    29,    30,    31,    32,    33,    34,    -1,    -1,    -1,
-     495,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    47,
-      48,    49,    -1,   493,    -1,   200,    -1,    -1,    -1,    -1,
-      -1,   413,    -1,   208,    -1,   505,    -1,   212,    -1,   421,
-     215,    -1,    -1,    71,    -1,    -1,    -1,    -1,   223,   155,
-      -1,    -1,    -1,   228,    -1,   230,    -1,    -1,   556,    -1,
-      -1,    -1,    -1,    -1,    -1,   413,    -1,    -1,   243,   244,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   549,
-      -1,   551,    -1,    -1,    -1,    -1,   434,   435,   116,    -1,
-      10,    11,    12,   578,   200,    -1,   581,    -1,    -1,    -1,
-      -1,    -1,   208,    -1,    -1,    -1,   212,    -1,    -1,   215,
-      -1,    -1,   597,    -1,    -1,    -1,    -1,   223,    -1,   604,
-     605,   606,   228,    -1,   230,    -1,   155,   612,   598,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   243,   244,    -1,
-     610,    -1,    -1,    -1,    -1,    -1,    -1,   632,    -1,    10,
-      11,    12,    -1,    -1,    -1,    -1,    -1,    -1,   643,   644,
-     188,   189,   190,    -1,   192,    -1,    -1,    -1,   550,    -1,
-      -1,   200,   657,    -1,   556,   645,   646,    -1,    -1,   208,
-      -1,    -1,    -1,   212,    -1,    -1,   215,   657,   673,    -1,
-      -1,    -1,    -1,    -1,   223,    -1,   681,    -1,   683,   228,
-      -1,   230,   687,    -1,    -1,    -1,    -1,    -1,   556,    -1,
-      -1,   696,   697,    -1,   243,   244,   701,    -1,    -1,    -1,
-     705,   706,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   718,    -1,   155,    -1,   722,   413,   724,
-      18,    -1,    -1,    -1,   626,   730,    24,    -1,   718,    -1,
-      -1,    29,    30,    31,    32,    33,    34,    -1,    -1,   434,
-     435,   731,   732,   733,   734,   735,   736,   737,   738,    47,
-      48,    49,    -1,   655,    -1,    -1,    -1,   659,    -1,    -1,
-     200,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   208,    -1,
-      -1,    -1,   212,    71,   155,   215,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   223,    19,    -1,    -1,   413,   228,    24,
-     230,    26,    -1,    28,    29,    30,    31,    32,    33,    34,
-      -1,    -1,    -1,   243,   244,   810,    -1,    -1,   434,   435,
-      -1,    -1,    47,    48,    49,   717,    -1,    -1,   116,   200,
-     722,    -1,   724,    -1,    -1,    -1,    -1,   208,   730,    -1,
-     820,   212,    -1,    -1,   215,    -1,    71,    -1,    -1,    -1,
-      -1,   831,   223,    -1,    -1,    -1,    -1,   228,    -1,   230,
-      -1,    -1,    -1,   858,   859,    -1,   861,    -1,    -1,    -1,
-      -1,   556,   243,   244,   413,    73,    74,    75,    76,    -1,
-      -1,    -1,    80,    81,    82,    83,    84,    85,    86,    -1,
-      -1,   116,    -1,    -1,   874,   434,   435,    -1,    -1,    -1,
-     188,   189,   190,    -1,   192,    -1,    -1,    -1,    -1,    -1,
+       0,     0,     5,   441,   144,     5,     0,   122,   334,     9,
+      10,    11,    12,   461,   405,   132,   406,   395,   396,     0,
+     407,   459,   397,   398,     5,   598,   659,   551,     9,   939,
+      10,   357,   628,   553,   235,   659,     3,   659,   705,   313,
+     403,   404,    24,   157,   158,   159,   160,   161,   162,   931,
+     948,    10,    34,   951,    27,   399,   400,   401,   402,   442,
+     663,   224,   315,     5,    10,   967,   229,   268,   231,   507,
+      21,     5,   832,   791,    25,     0,     0,   837,     5,    24,
+       5,   841,     7,    25,   663,   559,    56,   720,   806,    89,
+      89,    25,    28,   475,    24,    89,   720,    24,   720,  1119,
+    1120,     0,    21,   577,    34,    18,    25,    34,    89,    45,
+    1053,    24,    21,   844,    25,    26,    25,    28,    24,   850,
+     693,    34,   122,    21,    21,    21,    41,    25,    34,    25,
+      27,    50,    51,    28,    45,   659,    11,    12,    19,   659,
+     140,   122,    57,  1053,  1054,    54,    55,    10,    34,    21,
+      45,   151,    10,    25,    50,    51,   156,    25,    26,   140,
+    1042,  1043,   600,   130,    89,    89,   492,  1187,    21,  1071,
+     151,   288,    25,   140,   612,   175,   156,   844,   103,   681,
+    1078,    18,  1080,   850,   944,    24,    39,    26,   791,   114,
+     115,    11,    12,    18,  1137,    34,   720,   156,    23,  1142,
+     720,   201,    88,   806,    19,     5,   188,   189,   190,   209,
+     156,   211,   791,   213,   415,   140,   216,   187,  1128,   192,
+    1130,   201,    41,   476,   224,    25,    24,   806,   345,   229,
+     613,   231,   614,   213,     5,  1117,   216,   951,    57,    18,
+     971,   192,   201,   663,   244,   245,   188,   189,   190,  1192,
+     209,   193,   194,   579,   213,   201,    88,   216,   188,   189,
+     708,   188,   189,   209,     5,   245,    21,   213,   659,   659,
+     216,   663,   659,   436,   437,   188,   189,   190,   392,   393,
+     394,   659,   188,   189,   659,    21,   245,   287,   287,    25,
+     290,   291,   292,   156,   817,   928,   659,   663,   156,   245,
+      24,   441,   188,   189,   971,    24,   287,   193,   194,   290,
+     291,   292,   312,   312,   816,   659,    26,   819,   318,   459,
+     188,   189,   190,  1083,    34,   193,   194,  1237,    21,   720,
+     720,   312,    22,   720,    27,   609,   303,   318,   201,    50,
+      51,    21,   720,   201,    34,   720,   209,    27,    21,   224,
+     213,   209,    25,   216,   229,   213,   231,   720,   216,    34,
+     360,    34,    35,    36,  1078,    24,  1080,   507,   368,   244,
+     370,   791,    24,   188,   189,   190,   720,   302,   193,   194,
+     497,   495,   245,   979,   822,    24,   806,   245,   188,   189,
+     190,    32,    33,   193,   194,   833,  1029,   921,    18,   791,
+      18,    21,   975,   923,   224,  1029,    21,  1029,    18,   229,
+      25,   231,     5,   861,   806,   415,    21,   188,   189,   190,
+      25,    24,   193,   194,   244,   791,    21,   950,    16,   952,
+      25,    24,    25,    26,    29,   415,   436,   437,    21,   433,
+     806,    34,    25,   443,    24,   445,   445,   188,   189,   190,
+     444,    22,   193,   194,   454,    26,   415,    28,    54,    55,
+     600,     5,   465,    26,   445,   465,   583,   467,    34,   415,
+      16,    34,   612,   454,    45,   475,    25,    26,   478,    28,
+      24,  1114,   482,    26,   465,    28,   467,    26,    16,    28,
+      34,    89,    90,    24,   475,    26,    45,   478,   188,   189,
+     190,   482,    45,   193,   194,  1029,    45,    18,   475,  1029,
+      21,   511,    24,   188,   189,   190,    15,   634,   193,   194,
+     520,   521,    34,   121,   122,    25,    26,   918,    28,   919,
+     908,   909,   102,   920,    21,   910,   911,   135,    25,   520,
+     521,    25,    26,    16,    28,    45,   112,   113,   114,     6,
+       7,  1184,   415,   916,   917,    22,    21,   415,   558,   559,
+      25,   436,   437,    50,    51,   559,   566,   566,   912,   913,
+     914,   915,    37,    38,   574,    37,    38,   577,   578,    24,
+      20,    21,    27,   577,    26,   566,    28,    52,    53,    34,
+      52,    53,    22,   708,    21,   188,   189,   190,    25,   558,
+     193,   194,    22,    45,    10,    11,    12,   724,    18,   726,
+      29,    21,   558,    23,   614,   732,   436,   437,    39,   733,
+     734,   735,   736,   737,   738,   188,   189,   190,    40,    18,
+     193,   194,    21,   614,    37,    38,    25,    95,  1029,  1029,
+     184,   185,  1029,    18,   188,   189,    21,   614,   192,    52,
+      53,  1029,    42,    43,  1029,   655,   656,   931,    21,   659,
+     986,    56,    25,    13,    14,    15,  1029,   667,   668,    24,
+     670,    26,   184,   185,    37,    38,   188,   189,    24,    21,
+     192,    27,   822,    25,   684,  1029,   686,    95,    34,    52,
+      53,    18,    22,   833,    21,   558,   621,   697,    25,   973,
+     558,    19,    21,   684,   704,   686,    25,   707,   708,   709,
+      21,    22,    34,    21,  1162,    21,   697,    25,    18,    25,
+     720,    21,   689,   704,    32,    33,   707,   708,    34,    35,
+      36,    50,    51,    24,    23,    26,   876,    26,    24,    28,
+      26,   708,   192,   188,   189,   190,   861,   192,    34,     5,
+     156,    10,    11,    12,   104,   105,   106,   107,   108,   109,
+     110,   111,    22,   113,  1038,    22,   116,    21,    24,    25,
+      26,    25,    24,  1211,  1048,    24,    21,    26,    34,    28,
+      25,    24,   132,    26,   134,   135,   136,    32,    33,    19,
+     140,   905,   906,   907,  1068,   201,    45,    21,    21,    48,
+      49,    25,    25,   209,    32,    33,   156,   213,  1246,   809,
+     216,  1085,    24,   163,    26,   188,   189,   190,   224,   225,
+     193,   194,    34,   229,    21,   231,    21,    21,    25,   829,
+      25,    25,   832,    95,   834,   185,    21,   837,   244,   245,
+      25,   841,   188,   189,   190,    20,   192,    95,   829,  1123,
+      21,   832,    24,   834,    25,    21,   837,    18,    21,    25,
+     841,   861,    25,    68,    69,    70,   188,   189,   190,   869,
+    1144,   193,   194,   195,   224,    24,    27,    26,   992,    28,
+     861,    23,    21,    21,    54,    55,    25,    25,   869,   814,
+      18,    21,   817,    21,   861,    25,    45,   156,    25,    48,
+      49,    21,   188,   189,   190,    25,   211,   193,   194,   195,
+      18,    21,    18,    21,   264,    25,    58,    59,    60,    61,
+      62,    63,    64,    65,    66,    67,    21,    18,    21,    21,
+      25,   931,    25,    25,    18,    50,    51,    21,   288,   939,
+     290,   291,   201,    21,   944,    21,    23,    25,   298,    25,
+     209,    21,    21,   303,   213,    25,    25,   216,    21,    24,
+      21,    18,    25,   944,    25,   224,    22,   373,   318,    21,
+     229,    21,   231,    25,    25,    25,   188,   189,   190,    21,
+    1097,   193,   194,    25,    21,   244,   245,    18,    25,    18,
+      21,    24,    21,    20,    21,   345,    24,   997,   998,    34,
+      35,    36,    20,    21,    10,    11,    12,   357,    25,   415,
+      34,    35,    36,    52,    53,    54,   997,   998,    21,    22,
+      32,    33,    18,   948,    18,   950,   951,   952,    18,  1029,
+     436,   437,   114,   115,    18,    18,     9,    19,    25,    11,
+    1040,    11,  1042,  1043,    24,    91,  1040,  1162,    24,    27,
+      21,  1051,    19,  1053,  1054,   360,    19,    19,    19,    91,
+      24,    21,    18,   368,    22,   370,    25,    21,    25,    21,
+    1070,  1211,    25,    11,    25,  1075,  1075,    24,    24,    24,
+      20,    25,   432,  1083,    27,  1225,    23,    19,  1088,  1088,
+      20,    19,    23,  1093,  1075,    21,    21,    24,    27,     5,
+      19,   451,  1083,   453,    25,   455,  1246,  1088,   458,    22,
+      24,   461,  1093,   463,  1114,  1115,  1116,  1117,    25,  1119,
+    1120,  1088,   472,    20,    20,   475,    25,    27,  1128,    27,
+    1130,    73,   482,  1133,  1115,  1116,    25,  1137,   443,  1139,
+    1140,    18,  1142,    21,    25,  1148,    21,   497,  1148,    22,
+     156,    39,   558,  1078,    24,  1080,   415,    29,  1139,  1140,
+      40,    56,  1162,    73,    74,    75,    76,  1148,    25,   189,
+      80,    81,    82,    83,    84,    85,    86,   436,   437,    91,
+      91,  1162,    91,    91,  1184,  1185,  1186,  1187,    91,    25,
+      25,    18,  1192,    22,    25,   201,    24,    91,    20,    25,
+      25,    25,    18,   209,  1185,  1186,   511,   213,    25,    21,
+     216,    18,  1212,  1212,    27,   192,    20,    40,   224,    18,
+      21,    23,    18,   229,    24,   231,    91,    22,   194,    22,
+     580,  1212,    21,   583,    21,    20,    22,  1237,   244,   245,
+      20,    91,    25,    25,    20,    18,    27,   196,    40,   599,
+      27,    25,    20,   939,   559,    27,   606,   607,   608,    25,
+     318,  1237,  1205,  1133,   614,  1032,   695,  1105,    89,  1041,
+    1184,  1070,   577,   578,   829,   889,   838,    10,    19,    20,
+     185,   804,   583,    24,   634,    26,  1212,    28,    29,    30,
+      31,    32,    33,    34,   686,   645,   646,   684,   130,   558,
+     861,   303,   707,    12,  1168,   244,    47,    48,    49,   659,
+     355,   511,   415,   711,    70,    71,    72,    73,    74,    75,
+      76,    77,    78,    79,   720,   675,   867,  1029,   866,    -1,
+      71,    -1,    -1,   683,    -1,   685,    -1,    -1,    -1,   689,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   698,   699,
+     655,   656,    -1,   703,    -1,    -1,   112,   707,   708,    -1,
+     116,    -1,   118,   668,   120,    -1,    -1,    -1,    -1,   125,
+     720,    -1,    -1,    -1,   724,   116,   726,   144,    -1,    -1,
+      -1,   137,   732,   139,    -1,    -1,    -1,    -1,    -1,    -1,
+     157,   158,   159,   160,   161,   162,    -1,   164,   165,   132,
+      -1,    -1,    -1,    -1,   709,    -1,    -1,    -1,    -1,   415,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   903,   904,   905,   906,   907,   908,   909,
-     910,   911,   912,   913,   914,   915,   916,   917,   918,   919,
-     556,   921,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     945,    -1,    -1,    -1,    -1,    -1,    -1,   952,    -1,    -1,
-      -1,    19,    -1,   188,   189,   190,    24,   192,   193,   194,
+      -1,   154,    -1,   156,    -1,    -1,   182,    -1,    18,    -1,
+     436,   437,    -1,    -1,    24,    -1,    -1,    -1,    -1,    29,
+      30,    31,    32,    33,    34,    -1,    -1,   188,   189,   190,
+      -1,   192,   193,   194,    -1,    -1,    -1,    47,    48,    49,
+      -1,   348,   812,    -1,    -1,    -1,    -1,    -1,   201,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   209,    -1,    -1,    -1,
+     213,    71,    -1,   216,    -1,    -1,    -1,   374,    -1,    -1,
+      -1,   224,   379,   380,   381,   382,   383,   384,   385,   386,
+     387,   388,   389,    23,    -1,    -1,    -1,    -1,    -1,    -1,
+     860,   861,   245,   863,    -1,   271,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   412,   116,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    58,    59,
+      60,    61,    62,    63,    64,    65,    66,    67,    -1,    -1,
+     306,    -1,   558,   309,    -1,    10,    11,    12,    -1,    -1,
+      18,   317,    -1,    -1,   320,   298,    24,    -1,    -1,    -1,
       -1,    29,    30,    31,    32,    33,    34,    -1,    -1,    -1,
       -1,    29,    30,    31,    32,    33,    34,    -1,    -1,    -1,
-      -1,    -1,    -1,   413,    42,    43,    -1,    -1,    -1,    47,
-      48,    49,    -1,    -1,    -1,    -1,   888,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   434,   435,    -1,    -1,    -1,    -1,
-     990,    -1,    -1,    71,    -1,    -1,    -1,   556,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,  1027,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   413,    -1,    -1,    -1,    -1,  1027,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   116,    -1,
-      -1,    -1,    -1,   434,   435,    -1,    -1,    -1,    -1,    19,
-      -1,    -1,    -1,    -1,    24,  1070,    -1,    -1,    -1,    29,
-      30,    31,    32,    33,    34,   977,    -1,    -1,    -1,    -1,
-      -1,  1086,    42,    43,  1089,    -1,    -1,    47,    48,    49,
-    1095,    -1,    -1,  1098,  1099,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    47,
+      48,    49,   325,   326,   327,   328,    -1,   947,   188,   189,
+     190,    -1,   192,    -1,   954,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   345,    71,    -1,    -1,   349,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   357,   392,   393,   394,   395,   396,
+     397,   398,   399,   400,   401,   402,   403,   404,   405,   406,
+     407,    -1,   375,    -1,    -1,    -1,    -1,    -1,    -1,    10,
+      11,    12,    -1,    -1,    -1,    -1,    -1,    -1,   116,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    71,    -1,    -1,    -1,    -1,   556,    -1,    -1,    -1,
-     188,   189,   190,  1025,   192,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,  1141,    -1,    -1,    -1,
-      -1,    -1,    -1,  1148,  1149,     0,     1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,  1160,   116,    -1,    -1,    -1,
-      -1,    -1,    -1,    18,    -1,    -1,    -1,    -1,    -1,    24,
-      -1,    -1,    -1,    -1,    -1,   556,    -1,    -1,    -1,    34,
-      -1,  1186,    -1,    -1,    -1,    -1,    -1,    -1,  1090,    44,
-      -1,    46,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,  1206,  1207,    -1,    -1,    -1,    -1,    -1,  1213,    -1,
-      -1,    -1,    -1,    68,    69,    70,    -1,    72,    -1,  1209,
-      -1,    -1,    77,    78,    79,    -1,    -1,    -1,   188,   189,
-     190,    -1,   192,  1223,    -1,    -1,    -1,    92,    93,    94,
+      -1,    -1,    -1,    -1,   441,    -1,   432,    -1,    -1,  1029,
+      -1,    -1,   415,    -1,    -1,    -1,   442,    -1,    -1,    -1,
+     423,   447,   459,    -1,    -1,   451,    -1,   453,    -1,    -1,
+      -1,   156,    -1,    -1,    -1,    -1,    -1,    -1,    10,    11,
+      12,    -1,    -1,    -1,   470,    -1,    -1,    -1,   474,    -1,
+      -1,    -1,  1072,    -1,    -1,    -1,    -1,    -1,   495,    -1,
+     188,   189,   190,    -1,   192,    -1,    -1,    -1,  1088,    -1,
+     507,  1091,    -1,   630,    -1,    -1,   201,  1097,    -1,    -1,
+    1100,  1101,    -1,    -1,   209,   642,    -1,    -1,   213,    -1,
+      -1,   216,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   224,
+      -1,    -1,    -1,    -1,   229,    -1,   231,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   551,    -1,   553,    -1,    -1,   244,
+     245,    -1,    19,  1143,    -1,   156,    -1,    24,    -1,    -1,
+    1150,  1151,    29,    30,    31,    32,    33,    34,    -1,    -1,
+     697,    -1,  1162,    -1,    -1,    42,    43,    -1,    -1,   552,
+      47,    48,    49,    -1,   711,   558,    -1,    -1,    10,    11,
+      12,    -1,    -1,   600,    -1,    -1,    -1,    -1,  1188,    -1,
+     201,    -1,   598,    -1,    71,   612,    -1,    -1,   209,    -1,
+      -1,    -1,   213,    -1,   156,   216,    -1,   613,  1208,  1209,
+      -1,    -1,    -1,   224,    -1,  1215,    -1,    -1,   229,    -1,
+     231,    -1,    -1,    -1,    -1,    -1,   632,    -1,    -1,    -1,
+     647,   648,    -1,   244,   245,    -1,    -1,    -1,    -1,   116,
+      -1,    -1,   659,    -1,    -1,   628,    -1,    -1,    -1,   201,
+      -1,    -1,    -1,    -1,   660,    -1,   662,   209,    -1,    -1,
+      -1,   213,    -1,    -1,   216,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   224,    -1,   657,    -1,    -1,   229,   661,   231,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   694,    -1,
+      -1,    -1,   244,   245,    -1,   832,    -1,    -1,    -1,    -1,
+     837,    -1,    -1,   720,   841,    -1,    -1,    -1,    -1,    -1,
+     415,   188,   189,   190,    -1,   192,   733,   734,   735,   736,
+     737,   738,   739,   740,   156,    -1,    -1,    -1,    -1,    -1,
+     867,   436,   437,    -1,    -1,    -1,   719,    -1,   744,    -1,
+      -1,   724,    -1,   726,    -1,    -1,    -1,    -1,    -1,   732,
+      -1,   888,   889,    -1,    -1,    -1,    -1,   894,   895,   896,
+     897,   898,   899,   900,   901,   902,   903,   904,    -1,   201,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   209,    -1,    -1,
+      -1,   213,    -1,    -1,   216,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   224,   799,   800,    -1,    -1,   229,    -1,   231,
+      -1,    -1,    -1,    -1,   415,   822,    -1,   944,    -1,    -1,
+      -1,    -1,   244,   245,    -1,    -1,   833,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   436,   437,    -1,    19,    -1,
+      -1,    -1,    -1,    24,    -1,    -1,    -1,   843,    29,    30,
+      31,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    42,    43,   558,    -1,    -1,    47,    48,    49,   876,
+      -1,    -1,    -1,   415,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,  1244,    -1,    -1,   112,   113,   114,
-     115,    -1,   117,   118,   119,   120,   121,   122,   123,   124,
-     125,   126,    -1,   128,   129,   130,   131,   132,   133,   134,
-     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
-     145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
-     155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
-     165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
-     175,   176,   177,   178,   179,   180,   181,     0,     1,    -1,
-      -1,    -1,    -1,   188,   189,   190,   191,    -1,   193,   194,
-     195,    -1,    -1,    -1,    -1,    18,    -1,    -1,    -1,    -1,
+      71,    -1,    -1,    -1,   436,   437,    -1,    -1,   905,   906,
+     907,   908,   909,   910,   911,   912,   913,   914,   915,   916,
+     917,   918,   919,   920,   921,    19,   923,   890,    -1,    -1,
+      24,    -1,    26,    -1,    28,    29,    30,    31,    32,    33,
+      34,    -1,    -1,    -1,    -1,   116,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    47,    48,    49,    -1,    -1,    -1,    -1,
+      -1,   947,    -1,    -1,    -1,    -1,  1083,   558,    -1,    -1,
+      -1,    -1,    -1,   123,   124,   125,   126,    71,   128,    -1,
+      -1,    -1,    -1,   133,   134,    -1,    -1,   137,   138,   975,
+     140,   141,   142,   143,    -1,   992,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   415,    -1,   155,   156,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   979,   188,   189,   190,
+      -1,   192,   116,    -1,   436,   437,   558,    -1,    -1,    -1,
+      -1,   181,  1029,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   191,     1,    -1,    -1,    -1,    -1,     6,     7,     8,
+      -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
+      19,    -1,    -1,    -1,  1027,    24,    -1,    -1,    -1,    -1,
+      29,    30,    31,    32,    33,    34,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    42,    43,    -1,    -1,  1073,    47,    48,
+      49,    -1,    -1,    -1,   188,   189,   190,    -1,   192,   193,
+     194,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1092,
+      -1,    -1,    -1,    -1,    -1,    -1,    95,    96,    97,    98,
+      99,   100,   101,   102,    -1,    -1,   558,     0,     1,    -1,
+      -1,    -1,   111,    -1,    -1,    -1,    -1,   116,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    18,  1152,    -1,    -1,    -1,
       -1,    24,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    44,    -1,    46,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    24,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    44,    -1,    46,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    68,    69,    70,    -1,    72,
-      -1,    -1,    -1,    -1,    77,    78,    79,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    92,
-      93,    94,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   112,
+      -1,    -1,    -1,    -1,  1211,    68,    69,    70,    -1,    72,
+      -1,    -1,    -1,    -1,    77,    78,    79,    -1,  1225,   188,
+     189,   190,    -1,   192,   193,   194,    -1,    -1,    -1,    92,
+      93,    94,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1246,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1244,   112,
      113,   114,   115,    -1,   117,   118,   119,   120,   121,   122,
      123,   124,   125,   126,    -1,   128,   129,   130,   131,   132,
      133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
      143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
      153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
      163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
      113,   114,   115,    -1,   117,   118,   119,   120,   121,   122,
      123,   124,   125,   126,    -1,   128,   129,   130,   131,   132,
      133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
      143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
      153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
      163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
-     173,   174,   175,   176,   177,   178,   179,   180,   181,    -1,
-      -1,    -1,    -1,    -1,    -1,   188,   189,   190,   191,     1,
-     193,   194,   195,    -1,     6,     7,     8,    -1,    10,    11,
-      12,    13,    14,    15,    16,    17,    18,    19,    20,    -1,
-      -1,    -1,    24,    -1,    -1,    -1,    -1,    29,    30,    31,
-      32,    33,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      42,    43,    44,    -1,    46,    47,    48,    49,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    68,    69,    70,    71,
-      72,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    96,    97,    98,    99,   100,   101,
-     102,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,
-     112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
-     122,   123,   124,   125,   126,    -1,   128,   129,   130,   131,
-     132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
-     142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
-     152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
-     162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
-     172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
-      -1,    -1,    -1,    -1,    -1,    -1,   188,   189,   190,   191,
-     192,   193,   194,   195,     1,    -1,    -1,    -1,    -1,     6,
-       7,     8,    -1,    10,    11,    12,    13,    14,    15,    16,
-      17,    18,    19,    -1,    -1,    -1,    -1,    24,    -1,    -1,
-      -1,    -1,    29,    30,    31,    32,    33,    34,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    42,    43,    44,    -1,    -1,
-      47,    48,    49,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    68,    69,    70,    71,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    96,
-      97,    98,    99,   100,   101,   102,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   111,   112,   113,   114,   115,   116,
-     117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
-      -1,   128,   129,   130,   131,   132,   133,   134,   135,   136,
-     137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
-     147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
-     157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
-     167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
-     177,   178,   179,   180,   181,    -1,    -1,    -1,    -1,    -1,
-      -1,   188,   189,   190,   191,   192,   193,   194,   195,     1,
-      -1,    -1,    -1,    -1,     6,     7,     8,    -1,    -1,    11,
-      12,    13,    14,    15,    16,    17,    18,    19,    20,    -1,
-      -1,    -1,    24,    -1,    -1,    -1,    -1,    29,    30,    31,
-      32,    33,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      42,    43,    44,    -1,    -1,    47,    48,    49,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    68,    69,    70,    71,
+     173,   174,   175,   176,   177,   178,   179,   180,   181,     0,
+       1,    -1,    -1,    -1,    -1,   188,   189,   190,   191,    -1,
+     193,   194,   195,    -1,    -1,    -1,    -1,    18,    -1,    -1,
+      -1,    -1,    -1,    24,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    34,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    44,    -1,    46,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    68,    69,    70,
+      -1,    72,    -1,    -1,    -1,    -1,    77,    78,    79,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    97,    98,    99,   100,   101,
-     102,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,
-     112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
-     122,   123,   124,   125,   126,    -1,   128,   129,   130,   131,
-     132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
-     142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
-     152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
-     162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
-     172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
-      -1,    -1,    -1,    -1,    -1,    -1,   188,   189,   190,   191,
-     192,   193,   194,   195,     1,    -1,    -1,    -1,    -1,     6,
-       7,     8,    -1,    10,    11,    12,    13,    14,    15,    16,
-      17,    18,    19,    20,    21,    22,    23,    24,    -1,    26,
-      -1,    28,    29,    30,    31,    32,    33,    34,    35,    36,
-      37,    38,    39,    40,    41,    42,    43,    -1,    45,    -1,
-      47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
-      57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
-      67,    -1,    -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,
+      -1,    92,    93,    94,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    96,
-      97,    98,    99,   100,   101,   102,    -1,    -1,    -1,    -1,
-      -1,     1,    -1,    -1,   111,    -1,     6,     7,     8,   116,
+      -1,   112,   113,   114,   115,    -1,   117,   118,   119,   120,
+     121,   122,   123,   124,   125,   126,    -1,   128,   129,   130,
+     131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
+     141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
+     151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
+     161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
+     171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
+     181,    -1,    -1,    -1,    -1,    -1,    -1,   188,   189,   190,
+     191,     1,   193,   194,   195,    -1,     6,     7,     8,    -1,
       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
-      -1,    -1,    -1,    -1,    24,    -1,    -1,    -1,    -1,    29,
+      20,    -1,    -1,    -1,    24,    -1,    -1,    -1,    -1,    29,
       30,    31,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,
       30,    31,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    42,    43,    -1,    -1,    -1,    47,    48,    49,
+      -1,    -1,    42,    43,    44,    -1,    46,    47,    48,    49,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    68,    69,
+      70,    71,    72,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   188,   189,   190,    -1,   192,   193,   194,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    95,    96,    97,    98,    99,
-     100,   101,   102,    -1,    -1,    -1,    -1,    -1,     1,    -1,
-      -1,   111,    -1,     6,     7,     8,   116,    10,    11,    12,
-      13,    14,    15,    16,    17,    18,    19,    -1,    -1,    -1,
-      -1,    24,    -1,    -1,    -1,    -1,    29,    30,    31,    32,
-      33,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,
-      43,    -1,    -1,    -1,    47,    48,    49,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    96,    97,    98,    99,
+     100,   101,   102,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   111,   112,   113,   114,   115,   116,   117,   118,   119,
+     120,   121,   122,   123,   124,   125,   126,    -1,   128,   129,
+     130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
+     140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
+     150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
+     160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
+     170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
+     180,   181,    -1,    -1,    -1,    -1,    -1,    -1,   188,   189,
+     190,   191,   192,   193,   194,   195,     1,    -1,    -1,    -1,
+      -1,     6,     7,     8,    -1,    10,    11,    12,    13,    14,
+      15,    16,    17,    18,    19,    -1,    -1,    -1,    -1,    24,
+      -1,    -1,    -1,    -1,    29,    30,    31,    32,    33,    34,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,    43,    44,
+      -1,    -1,    47,    48,    49,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    71,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   188,   189,
-     190,    -1,   192,   193,   194,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    95,    96,    97,    98,    99,   100,   101,   102,
-      -1,    -1,    -1,    -1,     1,    -1,    -1,    -1,   111,     6,
-       7,     8,    -1,   116,    11,    12,    13,    14,    15,    16,
-      17,    18,    19,    20,    -1,    -1,    -1,    24,    25,    -1,
-      -1,    -1,    29,    30,    31,    32,    33,    34,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    42,    43,    -1,    -1,    -1,
-      47,    48,    49,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    68,    69,    70,    71,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   188,   189,   190,    -1,   192,
-     193,   194,    -1,    -1,    -1,    -1,    -1,    -1,    95,    -1,
-      97,    98,    99,   100,   101,   102,    -1,    -1,    -1,    -1,
-      -1,     1,    -1,    -1,   111,    -1,     6,     7,     8,   116,
-      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    96,    97,    98,    99,   100,   101,   102,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   111,   112,   113,   114,
+     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
+     125,   126,    -1,   128,   129,   130,   131,   132,   133,   134,
+     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
+     145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
+     155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
+     165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
+     175,   176,   177,   178,   179,   180,   181,    -1,    -1,    -1,
+      -1,    -1,    -1,   188,   189,   190,   191,   192,   193,   194,
+     195,     1,    -1,    -1,    -1,    -1,     6,     7,     8,    -1,
+      -1,    11,    12,    13,    14,    15,    16,    17,    18,    19,
       20,    -1,    -1,    -1,    24,    -1,    -1,    -1,    -1,    29,
       30,    31,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,
       20,    -1,    -1,    -1,    24,    -1,    -1,    -1,    -1,    29,
       30,    31,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    42,    43,    -1,    -1,    -1,    47,    48,    49,
+      -1,    -1,    42,    43,    44,    -1,    -1,    47,    48,    49,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    68,    69,
+      70,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   188,   189,   190,    -1,   192,   193,   194,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    96,    97,    98,    99,
-     100,   101,   102,    -1,    -1,    -1,    -1,    -1,     1,    -1,
-      -1,   111,    -1,     6,     7,     8,   116,    10,    11,    12,
-      13,    14,    15,    16,    17,    18,    19,    -1,    -1,    -1,
-      -1,    24,    -1,    -1,    -1,    -1,    29,    30,    31,    32,
-      33,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,
-      43,    -1,    -1,    -1,    47,    48,    49,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    97,    98,    99,
+     100,   101,   102,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   111,   112,   113,   114,   115,   116,   117,   118,   119,
+     120,   121,   122,   123,   124,   125,   126,    -1,   128,   129,
+     130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
+     140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
+     150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
+     160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
+     170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
+     180,   181,    -1,    -1,    -1,    -1,    -1,    -1,   188,   189,
+     190,   191,   192,   193,   194,   195,     1,    -1,    -1,    -1,
+      -1,     6,     7,     8,    -1,    10,    11,    12,    13,    14,
+      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
+      -1,    26,    -1,    28,    29,    30,    31,    32,    33,    34,
+      35,    36,    37,    38,    39,    40,    41,    42,    43,    -1,
+      45,    -1,    47,    48,    49,    50,    51,    52,    53,    54,
+      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
+      65,    66,    67,    -1,    -1,    -1,    71,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    71,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   188,   189,
-     190,    -1,   192,   193,   194,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    96,    97,    98,    99,   100,   101,   102,
-      -1,    -1,    -1,    -1,     1,    -1,    -1,    -1,   111,     6,
-       7,     8,    -1,   116,    11,    12,    13,    14,    15,    16,
-      17,    18,    19,    20,    -1,    -1,    -1,    24,    -1,    -1,
-      -1,    -1,    29,    30,    31,    32,    33,    34,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    42,    43,    -1,    -1,    -1,
-      47,    48,    49,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   188,   189,   190,    -1,   192,
-     193,   194,    -1,    -1,    -1,    -1,    -1,    -1,    95,    -1,
-      97,    98,    99,   100,   101,   102,    -1,    -1,    -1,    -1,
-       1,    -1,    -1,    -1,   111,     6,     7,     8,    -1,   116,
-      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
-      -1,    -1,    -1,    24,    -1,    -1,    -1,    -1,    29,    30,
-      31,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    42,    43,    -1,    -1,    -1,    47,    48,    49,    -1,
+      -1,    96,    97,    98,    99,   100,   101,   102,    -1,    -1,
+      -1,    -1,    -1,     1,    -1,    -1,   111,    -1,     6,     7,
+       8,   116,    10,    11,    12,    13,    14,    15,    16,    17,
+      18,    19,    -1,    -1,    -1,    -1,    24,    -1,    -1,    -1,
+      -1,    29,    30,    31,    32,    33,    34,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    42,    43,    -1,    -1,    -1,    47,
+      48,    49,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   188,   189,   190,    -1,   192,   193,   194,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    95,    96,    97,
+      98,    99,   100,   101,   102,    -1,    -1,    -1,    -1,     1,
+      -1,    -1,    -1,   111,     6,     7,     8,    -1,   116,    11,
+      12,    13,    14,    15,    16,    17,    18,    19,    20,    -1,
+      -1,    -1,    24,    25,    -1,    -1,    -1,    29,    30,    31,
+      32,    33,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      42,    43,    -1,    -1,    -1,    47,    48,    49,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   188,   189,   190,    -1,   192,   193,   194,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    97,    98,    99,   100,
-     101,   102,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     111,    -1,     6,     7,     8,   116,    10,    11,    12,    13,
-      14,    15,    16,    17,    18,    19,    20,    -1,    -1,    -1,
-      24,    -1,    -1,    -1,    -1,    29,    30,    31,    32,    33,
-      34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,    43,
-      44,    -1,    46,    47,    48,    49,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    71,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    71,    72,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   188,   189,   190,
-      -1,   192,   193,   194,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    96,    97,    98,    99,   100,   101,   102,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,   112,   113,
-     114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
-     124,   125,   126,    -1,   128,   129,   130,   131,   132,   133,
-     134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
-     144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
-     154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
-     164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
-     174,   175,   176,   177,   178,   179,   180,   181,    -1,    -1,
-      -1,    -1,    -1,    -1,   188,   189,   190,   191,   192,   193,
-     194,   195,     6,     7,     8,    -1,    10,    11,    12,    13,
-      14,    15,    16,    17,    18,    19,    20,    -1,    -1,    -1,
-      24,    -1,    -1,    -1,    -1,    29,    30,    31,    32,    33,
-      34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,    43,
-      44,    -1,    46,    47,    48,    49,    -1,    -1,    -1,    -1,
+     188,   189,   190,    -1,   192,   193,   194,    -1,    -1,    -1,
+      -1,    -1,    -1,    95,    -1,    97,    98,    99,   100,   101,
+     102,    -1,    -1,    -1,    -1,    -1,     1,    -1,    -1,   111,
+      -1,     6,     7,     8,   116,    10,    11,    12,    13,    14,
+      15,    16,    17,    18,    19,    20,    -1,    -1,    -1,    24,
+      -1,    -1,    -1,    -1,    29,    30,    31,    32,    33,    34,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,    43,    -1,
+      -1,    -1,    47,    48,    49,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    71,    72,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   188,   189,   190,    -1,
+     192,   193,   194,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    96,    97,    98,    99,   100,   101,   102,    -1,    -1,
+      -1,    -1,    -1,     1,    -1,    -1,   111,    -1,     6,     7,
+       8,   116,    10,    11,    12,    13,    14,    15,    16,    17,
+      18,    19,    -1,    -1,    -1,    -1,    24,    -1,    -1,    -1,
+      -1,    29,    30,    31,    32,    33,    34,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    42,    43,    -1,    -1,    -1,    47,
+      48,    49,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   188,   189,   190,    -1,   192,   193,   194,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    96,    97,
+      98,    99,   100,   101,   102,    -1,    -1,    -1,    -1,     1,
+      -1,    -1,    -1,   111,     6,     7,     8,    -1,   116,    11,
+      12,    13,    14,    15,    16,    17,    18,    19,    20,    -1,
+      -1,    -1,    24,    -1,    -1,    -1,    -1,    29,    30,    31,
+      32,    33,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      42,    43,    -1,    -1,    -1,    47,    48,    49,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    96,    97,    98,    99,   100,   101,   102,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,   112,   113,
-     114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
-     124,   125,   126,    -1,   128,   129,   130,   131,   132,   133,
-     134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
-     144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
-     154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
-     164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
-     174,   175,   176,   177,   178,   179,   180,   181,    -1,    -1,
-      -1,    -1,    -1,    -1,   188,   189,   190,   191,   192,   193,
-     194,   195,     6,     7,     8,    -1,    10,    11,    12,    13,
-      14,    15,    16,    17,    18,    19,    20,    -1,    -1,    -1,
-      24,    -1,    -1,    -1,    -1,    29,    30,    31,    32,    33,
-      34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,    43,
-      44,    -1,    46,    47,    48,    49,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    71,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    71,    72,    -1,
+     188,   189,   190,    -1,   192,   193,   194,    -1,    -1,    -1,
+      -1,    -1,    -1,    95,    -1,    97,    98,    99,   100,   101,
+     102,    -1,    -1,    -1,    -1,     1,    -1,    -1,    -1,   111,
+       6,     7,     8,    -1,   116,    11,    12,    13,    14,    15,
+      16,    17,    18,    19,    20,    -1,    -1,    -1,    24,    -1,
+      -1,    -1,    -1,    29,    30,    31,    32,    33,    34,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    42,    43,    -1,    -1,
+      -1,    47,    48,    49,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   188,   189,   190,    -1,
+     192,   193,   194,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    97,    98,    99,   100,   101,   102,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   111,    -1,     6,     7,     8,
+     116,    10,    11,    12,    13,    14,    15,    16,    17,    18,
+      19,    20,    -1,    -1,    -1,    24,    -1,    -1,    -1,    -1,
+      29,    30,    31,    32,    33,    34,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    42,    43,    44,    -1,    46,    47,    48,
+      49,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    96,    97,    98,    99,   100,   101,   102,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,   112,   113,
-     114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
-     124,   125,   126,    -1,   128,   129,   130,   131,   132,   133,
-     134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
-     144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
-     154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
-     164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
-     174,   175,   176,   177,   178,   179,   180,   181,    -1,    -1,
-      -1,    -1,    -1,    -1,   188,   189,   190,   191,   192,   193,
-     194,   195,     6,     7,     8,    -1,    10,    11,    12,    13,
-      14,    15,    16,    17,    18,    19,    20,    -1,    -1,    -1,
-      24,    -1,    -1,    -1,    -1,    29,    30,    31,    32,    33,
-      34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    47,    48,    49,     6,     7,     8,    -1,
-      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
-      20,    -1,    -1,    -1,    24,    -1,    -1,    71,    -1,    29,
-      30,    31,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    47,    48,    49,
-      -1,    -1,    96,    97,    98,    99,   100,   101,   102,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,
-      -1,    71,   116,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    71,    72,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   188,   189,   190,    -1,   192,   193,   194,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    96,    97,    98,
+      99,   100,   101,   102,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   111,   112,   113,   114,   115,   116,   117,   118,
+     119,   120,   121,   122,   123,   124,   125,   126,    -1,   128,
+     129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
+     139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
+     149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
+     159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
+     169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
+     179,   180,   181,    -1,    -1,    -1,    -1,    -1,    -1,   188,
+     189,   190,   191,   192,   193,   194,   195,     6,     7,     8,
+      -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
+      19,    20,    -1,    -1,    -1,    24,    -1,    -1,    -1,    -1,
+      29,    30,    31,    32,    33,    34,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    42,    43,    44,    -1,    46,    47,    48,
+      49,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    96,    97,    98,    99,
-     100,   101,   102,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   111,    -1,     6,     7,     8,   116,    10,    11,    12,
-      13,    14,    15,    16,    17,    18,    19,    20,    -1,    -1,
-      -1,    24,    -1,    -1,    -1,    -1,    29,    30,    31,    32,
-      33,    34,    -1,    -1,   188,   189,   190,    -1,   192,   193,
-     194,    -1,    -1,    -1,    47,    48,    49,     6,     7,     8,
+      -1,    -1,    71,    72,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    96,    97,    98,
+      99,   100,   101,   102,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   111,   112,   113,   114,   115,   116,   117,   118,
+     119,   120,   121,   122,   123,   124,   125,   126,    -1,   128,
+     129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
+     139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
+     149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
+     159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
+     169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
+     179,   180,   181,    -1,    -1,    -1,    -1,    -1,    -1,   188,
+     189,   190,   191,   192,   193,   194,   195,     6,     7,     8,
       -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
       -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
-      19,    20,    -1,    -1,    -1,    24,    -1,    -1,    71,    -1,
-      29,    30,    31,    32,    33,    34,    -1,    -1,   188,   189,
-     190,    -1,   192,   193,   194,    -1,    -1,    -1,    47,    48,
-      49,    -1,    -1,    96,    97,    98,    99,   100,   101,   102,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,
-      -1,    -1,    71,   116,    -1,    -1,    -1,    -1,    -1,    -1,
+      19,    20,    -1,    -1,    -1,    24,    -1,    -1,    -1,    -1,
+      29,    30,    31,    32,    33,    34,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    42,    43,    44,    -1,    46,    47,    48,
+      49,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    71,    72,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    96,    97,    98,
       99,   100,   101,   102,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    96,    97,    98,
       99,   100,   101,   102,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   111,    -1,     6,     7,     8,   116,    10,    11,
-      12,    13,    14,    15,    16,    17,    18,    19,    20,    -1,
-      -1,    -1,    24,    -1,    -1,    -1,    -1,    29,    30,    31,
-      32,    33,    34,    -1,    -1,   188,   189,   190,    -1,   192,
-     193,   194,    -1,    -1,    -1,    47,    48,    49,     6,     7,
-       8,    -1,    10,    11,    12,    13,    14,    15,    16,    17,
-      18,    19,    20,    -1,    -1,    -1,    24,    -1,    -1,    71,
+      -1,    -1,   111,   112,   113,   114,   115,   116,   117,   118,
+     119,   120,   121,   122,   123,   124,   125,   126,    -1,   128,
+     129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
+     139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
+     149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
+     159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
+     169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
+     179,   180,   181,    -1,    -1,    -1,    -1,    -1,    -1,   188,
+     189,   190,   191,   192,   193,   194,   195,     6,     7,     8,
+      -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
+      19,    20,    -1,    -1,    -1,    24,    -1,    -1,    -1,    -1,
+      29,    30,    31,    32,    33,    34,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    47,    48,
+      49,     6,     7,     8,    -1,    10,    11,    12,    13,    14,
+      15,    16,    17,    18,    19,    20,    -1,    -1,    -1,    24,
+      -1,    -1,    71,    -1,    29,    30,    31,    32,    33,    34,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    47,    48,    49,    -1,    -1,    96,    97,    98,
+      99,   100,   101,   102,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   111,    -1,    -1,    -1,    71,   116,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    96,    97,    98,    99,   100,   101,   102,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,     6,     7,
+       8,   116,    10,    11,    12,    13,    14,    15,    16,    17,
+      18,    19,    20,    -1,    -1,    -1,    24,    -1,    -1,    -1,
       -1,    29,    30,    31,    32,    33,    34,    -1,    -1,   188,
      189,   190,    -1,   192,   193,   194,    -1,    -1,    -1,    47,
       -1,    29,    30,    31,    32,    33,    34,    -1,    -1,   188,
      189,   190,    -1,   192,   193,   194,    -1,    -1,    -1,    47,
-      48,    49,    -1,    -1,    96,    97,    98,    99,   100,   101,
-     102,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,
-      -1,    -1,    -1,    71,   116,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    96,    97,
+      48,    49,     6,     7,     8,    -1,    10,    11,    12,    13,
+      14,    15,    16,    17,    18,    19,    20,    -1,    -1,    -1,
+      24,    -1,    -1,    71,    -1,    29,    30,    31,    32,    33,
+      34,    -1,    -1,   188,   189,   190,    -1,   192,   193,   194,
+      -1,    -1,    -1,    47,    48,    49,    -1,    -1,    96,    97,
       98,    99,   100,   101,   102,    -1,    -1,    -1,    -1,    -1,
       98,    99,   100,   101,   102,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   111,    -1,     6,     7,     8,   116,    10,
-      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
-      -1,    -1,    -1,    24,    -1,    -1,    -1,    -1,    29,    30,
-      31,    32,    33,    34,    -1,    -1,   188,   189,   190,    -1,
-     192,   193,   194,    -1,    -1,    -1,    47,    48,    49,     6,
-       7,     8,    -1,    10,    11,    12,    13,    14,    15,    16,
-      17,    18,    19,    -1,    -1,    -1,    -1,    24,    -1,    -1,
-      71,    -1,    29,    30,    31,    32,    33,    34,    -1,    -1,
-     188,   189,   190,    -1,   192,   193,   194,    -1,    -1,    -1,
-      47,    48,    49,    -1,    -1,    96,    97,    98,    99,   100,
-     101,   102,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     111,    -1,    -1,    -1,    71,   116,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   111,    -1,    -1,    -1,    71,   116,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    96,
-      97,    98,    99,   100,   101,   102,    19,    -1,    -1,    -1,
-      -1,    24,    -1,    -1,   111,    -1,    -1,    -1,    -1,   116,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    44,    -1,    46,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   188,   189,   190,
-      -1,   192,   193,   194,    -1,    -1,    -1,    -1,    -1,    72,
+      -1,    -1,    96,    97,    98,    99,   100,   101,   102,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,     6,
+       7,     8,   116,    10,    11,    12,    13,    14,    15,    16,
+      17,    18,    19,    20,    -1,    -1,    -1,    24,    -1,    -1,
+      -1,    -1,    29,    30,    31,    32,    33,    34,    -1,    -1,
+     188,   189,   190,    -1,   192,   193,   194,    -1,    -1,    -1,
+      47,    48,    49,     6,     7,     8,    -1,    10,    11,    12,
+      13,    14,    15,    16,    17,    18,    19,    20,    -1,    -1,
+      -1,    24,    -1,    -1,    71,    -1,    29,    30,    31,    32,
+      33,    34,    -1,    -1,   188,   189,   190,    -1,   192,   193,
+     194,    -1,    -1,    -1,    47,    48,    49,    -1,    -1,    96,
+      97,    98,    99,   100,   101,   102,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    71,   116,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    96,    97,    98,    99,   100,   101,   102,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,
+       6,     7,     8,   116,    10,    11,    12,    13,    14,    15,
+      16,    17,    18,    19,    20,    -1,    -1,    -1,    24,    -1,
+      -1,    -1,    -1,    29,    30,    31,    32,    33,    34,    -1,
+      -1,   188,   189,   190,    -1,   192,   193,   194,    -1,    -1,
+      -1,    47,    48,    49,     6,     7,     8,    -1,    10,    11,
+      12,    13,    14,    15,    16,    17,    18,    19,    -1,    -1,
+      -1,    -1,    24,    -1,    -1,    71,    -1,    29,    30,    31,
+      32,    33,    34,    -1,    -1,   188,   189,   190,    -1,   192,
+     193,   194,    -1,    -1,    -1,    47,    48,    49,    -1,    -1,
+      96,    97,    98,    99,   100,   101,   102,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    71,
+     116,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   188,   189,   190,    -1,   192,   193,   194,    -1,   112,
-     113,   114,   115,    -1,   117,   118,   119,   120,   121,   122,
-     123,   124,   125,   126,    -1,   128,   129,   130,   131,   132,
-     133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
-     143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
-     153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
-     163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
-     173,   174,   175,   176,   177,   178,   179,   180,   181,    20,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   190,   191,    -1,
-      -1,    -1,   195,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    44,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    96,    97,    98,    99,   100,   101,
+     102,    19,    -1,    -1,    -1,    -1,    24,    -1,    -1,   111,
+      -1,    -1,    -1,    -1,   116,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    44,    -1,    46,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   188,   189,   190,    -1,   192,   193,   194,    -1,
+      -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   188,   189,   190,    -1,
+     192,   193,   194,    -1,   112,   113,   114,   115,    -1,   117,
+     118,   119,   120,   121,   122,   123,   124,   125,   126,    -1,
+     128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
+     138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
+     148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
+     158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
+     168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
+     178,   179,   180,   181,    20,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   190,   191,    -1,    -1,    -1,   195,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    44,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   112,   113,   114,   115,    -1,   117,   118,   119,   120,
-     121,   122,   123,   124,   125,   126,    -1,   128,   129,   130,
-     131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
-     141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
-     151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
-     161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
-     171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
-     181,    -1,    -1,    -1,    -1,    -1,    19,    20,    -1,   190,
-     191,    24,    -1,    -1,   195,    -1,    29,    30,    31,    32,
-      33,    34,    -1,    -1,    -1,    -1,    -1,    19,    -1,    -1,
-      -1,    -1,    24,    -1,    47,    48,    49,    29,    30,    31,
-      32,    33,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    19,    47,    48,    49,    71,    24,
-      -1,    -1,    -1,    -1,    29,    30,    31,    32,    33,    34,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    71,
-      -1,    -1,    47,    48,    49,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   116,    -1,    -1,    71,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   116,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      24,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      34,   116,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      44,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   188,   189,   190,    -1,   192,
+      -1,    -1,    -1,    -1,    -1,    -1,   112,   113,   114,   115,
+      -1,   117,   118,   119,   120,   121,   122,   123,   124,   125,
+     126,    -1,   128,   129,   130,   131,   132,   133,   134,   135,
+     136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
+     146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
+     156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
+     166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
+     176,   177,   178,   179,   180,   181,    -1,    -1,    -1,    -1,
+      -1,    19,    20,    -1,   190,   191,    24,    -1,    -1,   195,
+      -1,    29,    30,    31,    32,    33,    34,    -1,    -1,    -1,
+      -1,    -1,    19,    -1,    -1,    -1,    -1,    24,    -1,    47,
+      48,    49,    29,    30,    31,    32,    33,    34,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    19,
+      47,    48,    49,    71,    24,    -1,    -1,    -1,    -1,    29,
+      30,    31,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    71,    -1,    -1,    47,    48,    49,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   188,   189,   190,    -1,
-     192,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   116,    -1,
+      -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   116,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   188,   189,   190,    -1,   192,   112,   113,
-     114,   115,    -1,   117,   118,   119,   120,   121,   122,   123,
-     124,   125,   126,    -1,   128,   129,   130,   131,   132,   133,
-     134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
-     144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
-     154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
-     164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
-     174,   175,   176,   177,   178,   179,   180,   181,    -1,    -1,
-      -1,    -1,    -1,    -1,   188,   189,   190,   191,    24,   193,
-     194,   195,    -1,    29,    30,    31,    32,    33,    34,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    42,    43,    -1,    24,
-      25,    47,    48,    49,    29,    30,    31,    32,    33,    34,
-      24,    -1,    -1,    27,    -1,    29,    30,    31,    32,    33,
-      34,    -1,    47,    48,    49,    71,    -1,    -1,    -1,    -1,
-      -1,    24,    25,    47,    48,    49,    29,    30,    31,    32,
-      33,    34,    24,    -1,    -1,    27,    71,    29,    30,    31,
-      32,    33,    34,    -1,    47,    48,    49,    71,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    47,    48,    49,    -1,    -1,
-     116,    -1,    -1,    -1,    24,    25,    -1,    -1,    71,    29,
-      30,    31,    32,    33,    34,    -1,    -1,    -1,    -1,    71,
-      -1,   116,    -1,    -1,    -1,    -1,    -1,    47,    48,    49,
-      -1,    24,   116,    -1,    -1,    -1,    29,    30,    31,    32,
-      33,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    71,    -1,   116,    47,    48,    49,    -1,    -1,    -1,
-      24,    -1,    -1,    -1,   116,    29,    30,    31,    32,    33,
-      34,    -1,   188,   189,   190,    -1,   192,    -1,    71,    -1,
-      -1,    -1,    -1,    47,    48,    49,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   188,   189,   190,   116,   192,    -1,    -1,
-      -1,    -1,    -1,    -1,   188,   189,   190,    71,   192,    24,
-      -1,    -1,    -1,    -1,    29,    30,    31,    32,    33,    34,
-      -1,    -1,    -1,   116,    -1,   188,   189,   190,    -1,   192,
-      -1,    -1,    47,    48,    49,    -1,   188,   189,   190,    24,
-     192,    -1,    -1,    -1,    29,    30,    31,    32,    33,    34,
-      -1,    -1,   116,    -1,    -1,    -1,    71,    -1,    -1,    -1,
-      -1,    -1,    47,    48,    49,    -1,    -1,    -1,   188,   189,
-     190,    -1,   192,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   188,   189,   190,    24,   192,
-      -1,   116,    -1,    29,    30,    31,    32,    33,    34,    -1,
+      -1,    -1,    -1,    -1,    -1,    24,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    34,   116,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    44,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    47,    48,    49,   188,   189,   190,    -1,   192,    -1,
-      -1,   116,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,    -1,
+     188,   189,   190,    -1,   192,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   188,   189,   190,    -1,   192,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   188,   189,
+     190,    -1,   192,   112,   113,   114,   115,    -1,   117,   118,
+     119,   120,   121,   122,   123,   124,   125,   126,    -1,   128,
+     129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
+     139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
+     149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
+     159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
+     169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
+     179,   180,   181,    -1,    -1,    -1,    -1,    -1,    -1,   188,
+     189,   190,   191,    24,   193,   194,   195,    -1,    29,    30,
+      31,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    42,    43,    -1,    24,    25,    47,    48,    49,    29,
+      30,    31,    32,    33,    34,    24,    -1,    -1,    27,    -1,
+      29,    30,    31,    32,    33,    34,    -1,    47,    48,    49,
+      71,    -1,    -1,    -1,    -1,    -1,    24,    25,    47,    48,
+      49,    29,    30,    31,    32,    33,    34,    24,    -1,    -1,
+      27,    71,    29,    30,    31,    32,    33,    34,    -1,    47,
+      48,    49,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      47,    48,    49,    -1,    -1,   116,    -1,    -1,    -1,    24,
+      25,    -1,    -1,    71,    29,    30,    31,    32,    33,    34,
+      -1,    -1,    -1,    -1,    71,    -1,   116,    -1,    -1,    -1,
+      -1,    -1,    47,    48,    49,    -1,    24,   116,    -1,    -1,
+      -1,    29,    30,    31,    32,    33,    34,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    71,    -1,   116,    47,
+      48,    49,    -1,    -1,    -1,    24,    -1,    -1,    -1,   116,
+      29,    30,    31,    32,    33,    34,    -1,   188,   189,   190,
+      -1,   192,    -1,    71,    -1,    -1,    -1,    -1,    47,    48,
+      49,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   188,   189,
+     190,   116,   192,    -1,    -1,    -1,    -1,    -1,    -1,   188,
+     189,   190,    71,   192,    24,    -1,    -1,    -1,    -1,    29,
+      30,    31,    32,    33,    34,    -1,    -1,    -1,   116,    -1,
+     188,   189,   190,    -1,   192,    -1,    -1,    47,    48,    49,
+      -1,   188,   189,   190,    24,   192,    -1,    -1,    -1,    29,
+      30,    31,    32,    33,    34,    -1,    -1,   116,    -1,    -1,
+      -1,    71,    -1,    -1,    -1,    -1,    -1,    47,    48,    49,
       -1,    -1,    -1,   188,   189,   190,    -1,   192,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,   188,   189,   190,    -1,   192,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     116,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    44,
-      -1,    46,    -1,   188,   189,   190,    -1,   192,    -1,    -1,
+      -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     188,   189,   190,    24,   192,    -1,   116,    -1,    29,    30,
+      31,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    47,    48,    49,   188,
+     189,   190,    -1,   192,    -1,    -1,   116,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    68,    69,    70,    -1,    72,    -1,    -1,
+      71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   188,   189,
+     190,    -1,   192,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   116,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    44,    -1,    46,    -1,   188,   189,
+     190,    -1,   192,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    68,    69,
+      70,    -1,    72,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   188,   189,   190,    -1,   192,   112,   113,   114,
-     115,    -1,   117,   118,   119,   120,   121,   122,   123,   124,
-     125,   126,    -1,   128,   129,   130,   131,   132,   133,   134,
-     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
-     145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
-     155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
-     165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
-     175,   176,   177,   178,   179,   180,   181,    44,    -1,    46,
-      -1,    -1,    -1,    -1,    -1,   190,   191,    -1,    -1,    -1,
-     195,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   188,   189,   190,
+      -1,   192,   112,   113,   114,   115,    -1,   117,   118,   119,
+     120,   121,   122,   123,   124,   125,   126,    -1,   128,   129,
+     130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
+     140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
+     150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
+     160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
+     170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
+     180,   181,    44,    -1,    46,    -1,    -1,    -1,    -1,    -1,
+     190,   191,    -1,    -1,    -1,   195,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      72,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   112,   113,   114,   115,    -1,
-     117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
-      -1,   128,   129,   130,   131,   132,   133,   134,   135,   136,
-     137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
-     147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
-     157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
-     167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
-     177,   178,   179,   180,   181,    44,    -1,    -1,    -1,    -1,
-      -1,   188,   189,   190,   191,    -1,    -1,    -1,   195,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    68,
-      69,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     112,   113,   114,   115,    -1,   117,   118,   119,   120,   121,
+     122,   123,   124,   125,   126,    -1,   128,   129,   130,   131,
+     132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
+     142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
+     152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
+     162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
+     172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
+      44,    -1,    -1,    -1,    -1,    -1,   188,   189,   190,   191,
+      -1,    -1,    -1,   195,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    68,    69,    70,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   112,   113,   114,   115,    -1,   117,   118,
-     119,   120,   121,   122,   123,   124,   125,   126,    -1,   128,
-     129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
-     139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
-     149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
-     159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
-     169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
-     179,   180,   181,    44,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   190,   191,    -1,    -1,    -1,   195,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   112,   113,
+     114,   115,    -1,   117,   118,   119,   120,   121,   122,   123,
+     124,   125,   126,    -1,   128,   129,   130,   131,   132,   133,
+     134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
+     144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
+     154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
+     164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
+     174,   175,   176,   177,   178,   179,   180,   181,    44,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   190,   191,    -1,    -1,
+      -1,   195,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    92,    93,    94,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    92,    93,    94,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   112,   113,   114,   115,    -1,   117,   118,   119,   120,
-     121,   122,   123,   124,   125,   126,    -1,   128,   129,   130,
-     131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
-     141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
-     151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
-     161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
-     171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
-     181,    44,    -1,    46,    -1,    -1,    -1,    -1,    -1,   190,
-     191,    -1,    -1,    -1,   195,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    72,
+      -1,    -1,    -1,    -1,    -1,    -1,   112,   113,   114,   115,
+      -1,   117,   118,   119,   120,   121,   122,   123,   124,   125,
+     126,    -1,   128,   129,   130,   131,   132,   133,   134,   135,
+     136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
+     146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
+     156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
+     166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
+     176,   177,   178,   179,   180,   181,    44,    -1,    46,    -1,
+      -1,    -1,    -1,    -1,   190,   191,    -1,    -1,    -1,   195,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   112,
-     113,   114,   115,    -1,   117,   118,   119,   120,   121,   122,
-     123,   124,   125,   126,    -1,   128,   129,   130,   131,   132,
-     133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
-     143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
-     153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
-     163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
-     173,   174,   175,   176,   177,   178,   179,   180,   181,    44,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   190,   191,    -1,
-      -1,    -1,   195,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   112,   113,   114,   115,    -1,   117,
+     118,   119,   120,   121,   122,   123,   124,   125,   126,    -1,
+     128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
+     138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
+     148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
+     158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
+     168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
+     178,   179,   180,   181,    44,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   190,   191,    -1,    -1,    -1,   195,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   112,   113,   114,
-     115,    -1,   117,   118,   119,   120,   121,   122,   123,   124,
-     125,   126,    -1,   128,   129,   130,   131,   132,   133,   134,
-     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
-     145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
-     155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
-     165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
-     175,   176,   177,   178,   179,   180,   181,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   190,   191,    -1,    -1,    -1,
-     195
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   112,   113,   114,   115,    -1,   117,   118,   119,
+     120,   121,   122,   123,   124,   125,   126,    -1,   128,   129,
+     130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
+     140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
+     150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
+     160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
+     170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
+     180,   181,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     190,   191,    -1,    -1,    -1,   195
 };
 };
-/* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
-
-/* Skeleton output parser for bison,
-
-   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software
-   Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
-   any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
-
-/* As a special exception, when this file is copied by Bison into a
-   Bison output file, you may use that output file without restriction.
-   This special exception was added by the Free Software Foundation
-   in version 1.24 of Bison.  */
-
-/* This is the parser code that is written into each bison parser when
-   the %semantic_parser declaration is not specified in the grammar.
-   It was written by Richard Stallman by simplifying the hairy parser
-   used when %semantic_parser is specified.  */
-
-/* All symbols defined below should begin with yy or YY, to avoid
-   infringing on user name space.  This should be done even for local
-   variables, as they might otherwise be expanded by user macros.
-   There are some unavoidable exceptions within include files to
-   define necessary library symbols; they are noted "INFRINGES ON
-   USER NAME SPACE" below.  */
-
-#if ! defined (yyoverflow) || defined (YYERROR_VERBOSE)
-
-/* The parser invokes alloca or malloc; define the necessary symbols.  */
-
-# if YYSTACK_USE_ALLOCA
-#  define YYSTACK_ALLOC alloca
-# else
-#  ifndef YYSTACK_USE_ALLOCA
-#   if defined (alloca) || defined (_ALLOCA_H)
-#    define YYSTACK_ALLOC alloca
-#   else
-#    ifdef __GNUC__
-#     define YYSTACK_ALLOC __builtin_alloca
-#    endif
-#   endif
-#  endif
-# endif
-
-# ifdef YYSTACK_ALLOC
-   /* Pacify GCC's `empty if-body' warning. */
-#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
-# else
-#  if defined (__STDC__) || defined (__cplusplus)
-#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-#   define YYSIZE_T size_t
-#  endif
-#  define YYSTACK_ALLOC malloc
-#  define YYSTACK_FREE free
-# endif
-#endif /* ! defined (yyoverflow) || defined (YYERROR_VERBOSE) */
-
-
-#if (! defined (yyoverflow) \
-     && (! defined (__cplusplus) \
-        || (YYLTYPE_IS_TRIVIAL && cgrammar_YYSTYPE_IS_TRIVIAL)))
 
 
-/* A type that is properly aligned for any stack member.  */
-union yyalloc
+/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
+   symbol of state STATE-NUM.  */
+static const unsigned short yystos[] =
 {
 {
-  short yyss;
-  cgrammar_YYSTYPE yyvs;
-# if YYLSP_NEEDED
-  YYLTYPE yyls;
-# endif
+       0,     1,    18,    34,    44,    46,    72,    77,    78,    79,
+      92,    93,    94,   112,   113,   114,   115,   117,   118,   119,
+     120,   121,   122,   123,   124,   125,   126,   128,   129,   130,
+     131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
+     141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
+     151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
+     161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
+     171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
+     181,   188,   189,   190,   191,   193,   194,   195,   198,   199,
+     200,   201,   202,   206,   212,   215,   216,   256,   261,   301,
+     302,   308,   310,   322,   332,   333,   334,   335,   336,   337,
+     338,   339,   340,   341,   342,   343,   345,   347,   350,   359,
+     364,   369,   373,   466,   467,   468,   112,   113,   114,   371,
+     372,   373,    24,   306,   312,   313,   345,   369,   190,   345,
+     203,   190,   467,     1,     6,     7,     8,    10,    11,    12,
+      13,    14,    15,    16,    17,    18,    24,    29,    30,    31,
+      32,    33,    34,    47,    48,    49,    71,    95,    96,    97,
+      98,    99,   100,   101,   102,   111,   116,   189,   190,   192,
+     193,   269,   271,   273,   275,   278,   281,   282,   283,   284,
+     285,   286,   287,   288,   289,   290,   292,   294,   297,   298,
+     386,   391,   401,   402,   403,   405,   408,   412,   413,   421,
+     427,   428,   429,   432,   434,   440,   460,   462,   463,   466,
+     467,     1,    11,    18,    24,   193,   194,   298,   387,   389,
+     390,   391,   394,   396,   397,   399,   400,   403,   405,   408,
+     413,   417,   426,   428,   433,   460,   463,   387,   388,   310,
+     310,   310,   359,   359,   359,   359,   359,   359,   359,   359,
+     359,   359,     0,   200,    26,   311,    19,   257,   259,    18,
+     464,    24,   345,   348,   310,   310,   310,   310,   310,   310,
+     310,   310,   359,   310,   348,   348,   310,   359,    88,   359,
+      68,    69,    70,   359,   206,   359,   371,   373,    24,   189,
+     190,   298,   310,   344,   381,   466,    21,   310,   310,   309,
+     310,   359,   359,   204,   205,   209,   310,   345,   373,   467,
+      24,   273,   294,   300,   409,    24,    24,    24,    24,   467,
+      18,    18,    18,   298,   270,   298,   381,   402,   281,   281,
+     281,   281,   281,   281,   310,    24,   273,   273,    24,    24,
+      16,    16,    16,    16,    15,   102,   404,    24,   385,   386,
+     391,   403,   405,   408,   411,   413,   426,   429,   432,   434,
+     460,   461,   463,   435,    24,    26,    48,    49,   359,    23,
+      58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
+     276,   310,    34,    35,    36,    32,    33,    50,    51,    37,
+      38,    52,    53,    54,    55,    29,    39,    40,    56,    41,
+      57,    18,    21,   402,    95,    19,   420,   402,   385,   402,
+     192,   402,    22,    24,   298,   396,   413,    18,    95,   396,
+     396,   301,   345,   422,    19,    20,   398,   389,   402,    95,
+      27,   310,    24,   258,   422,   359,    18,   369,   346,   381,
+     310,   467,   310,   467,    19,   467,   298,    25,   345,    26,
+     310,   373,   382,   384,    25,   359,    18,   359,    18,    23,
+     369,   464,    26,   311,    24,   359,   209,     5,   359,   370,
+     376,   377,   378,   406,    22,   298,   298,   298,   298,   299,
+      18,    18,    24,   411,    25,    25,    25,    24,   381,   297,
+     298,    18,    18,    18,    18,    18,   404,     6,     7,   411,
+     385,    19,   419,   385,   385,   413,    25,   272,   297,   298,
+      28,    45,   297,   297,   297,   297,   297,   297,   297,   297,
+     297,   297,   297,   279,   277,   281,   281,   281,   282,   282,
+     283,   283,   284,   284,   284,   284,   285,   285,   286,   287,
+     288,   291,   295,   293,   297,    20,   190,   402,   421,   422,
+     414,     9,    11,   298,    25,    24,   359,   301,   396,    11,
+     300,    25,   370,    20,   111,   385,   418,   422,   425,   260,
+     369,   359,    91,    21,    19,   310,   359,    19,   310,   359,
+     366,   367,   467,    19,   310,   310,    27,   300,    24,   384,
+      26,   310,   306,   195,   305,   306,   314,   315,   307,   359,
+      91,    27,   310,    24,   359,   205,   374,   375,   467,    25,
+      21,   310,   380,   467,    22,    25,   431,    25,    18,    25,
+      19,   281,   381,    25,    21,    25,   300,   410,    25,   418,
+      11,    24,    21,    25,    27,   467,   467,    42,    43,   280,
+     289,   298,   290,    20,    20,   425,   430,    24,    25,   395,
+     369,    24,    27,   207,    25,    20,    20,   111,   425,    20,
+     111,   385,   411,   310,    23,   303,   346,    20,   355,    19,
+      20,   357,    19,    20,    21,    23,   365,    27,    25,   359,
+     376,    27,   300,    24,    21,   310,   310,   310,    23,   464,
+     300,    25,   370,   205,    21,   213,     5,   379,   345,    25,
+     299,    19,   297,   423,   424,   359,   381,   407,    22,    24,
+     436,   297,   310,   310,    24,   273,    24,   273,    22,    20,
+     385,   298,    24,    29,    30,    31,    32,    33,    34,    48,
+      49,    71,   189,   190,   271,   273,   276,   282,   283,   284,
+     285,   286,   287,   288,   289,   290,   292,   437,   439,   440,
+     441,   442,   443,   444,   445,   446,   447,   448,   449,   450,
+     451,   452,   453,   454,   455,   458,   466,   298,   359,    73,
+      74,    75,    76,    80,    81,    82,    83,    84,    85,    86,
+     233,   235,   237,   238,   240,   241,   242,   247,   248,   254,
+     255,   323,   324,   326,   327,   328,   208,    20,    20,   111,
+      20,    25,   304,   310,   415,    20,   351,   415,    20,   353,
+     310,   367,   310,   366,   382,    25,    27,    25,   376,   359,
+     246,   247,    19,    26,    28,   297,   317,   318,   319,   320,
+     467,   310,   310,    27,   210,    25,   310,     5,   467,   234,
+     236,   238,   240,   242,   248,   324,   328,   380,   206,   310,
+     368,   373,   383,   384,   385,    18,   423,    21,   465,    21,
+      25,    22,   298,   437,   381,   381,   296,    25,   298,   381,
+     281,   281,   281,   281,   281,   281,   273,   273,    24,    24,
+      26,    48,    49,   359,    23,    58,    59,    60,    61,    62,
+      63,    64,    65,    66,    67,    34,    35,    36,    32,    33,
+      50,    51,    37,    38,    52,    53,    54,    55,    29,    39,
+      40,    56,    41,    57,    25,   438,    25,   189,   244,   245,
+     239,   243,   233,    91,    91,    91,   359,   359,    91,   330,
+     334,    91,   233,    20,   310,   316,   215,   345,   360,   361,
+     415,   360,   415,   300,    20,    25,    25,   305,    18,   317,
+     321,   300,   467,   317,    23,   320,    22,   317,    91,   359,
+     234,   211,    25,   214,   234,    24,   310,   195,   368,   392,
+     465,   424,    20,   274,   467,    25,    25,    25,    25,   294,
+      18,    25,    25,   297,    25,   272,   298,    28,    45,   297,
+     297,   297,   297,   297,   297,   297,   297,   297,   297,   297,
+     281,   281,   281,   282,   282,   283,   283,   284,   284,   284,
+     284,   285,   285,   286,   287,   288,   289,   456,   290,    21,
+      18,   440,    40,    89,    90,   121,   122,   135,   249,   250,
+     251,   253,    24,    34,   189,   190,   262,   263,   265,   464,
+     466,   325,     5,    24,    34,   184,   185,   189,   192,   217,
+     218,   224,   225,   226,   228,   229,   230,   231,   331,   466,
+     329,   317,    18,    21,   310,   359,   361,   416,   360,   416,
+     360,   310,    20,    21,    27,   316,   234,   464,   359,   299,
+      20,    25,    26,    28,    18,   411,   281,    21,    25,    27,
+     467,   467,   298,   439,   244,    21,   464,   189,   252,   301,
+     466,   251,   263,   263,    26,    28,    45,    21,   464,    24,
+      34,   189,   266,   268,   466,   220,   228,   230,    24,   230,
+      23,    56,   187,   223,    52,    53,    54,   227,    26,    28,
+      45,   219,    24,   464,   267,   268,   316,   310,   359,    18,
+      22,   362,   363,   369,   356,   416,   358,   416,    20,   317,
+     464,    91,   373,   393,   310,   298,   467,   194,   459,   381,
+     310,   310,    22,   250,    25,    27,   263,   264,   440,   467,
+     467,   263,   266,   266,    26,    28,    45,    21,   464,    22,
+      32,    33,   232,    25,   230,   218,   221,   230,   224,   230,
+     228,    27,   192,   467,   467,    22,   228,   310,   464,    18,
+     306,   310,    21,   310,   359,    22,    20,   352,    20,   354,
+      91,    25,    27,   414,    25,   457,    27,    25,    27,   264,
+     467,   467,   266,   310,   196,   222,   228,    40,    27,   222,
+      25,   310,   310,   300,   363,    18,   310,    20,    20,   294,
+      27,    25,   221,   359,   300,   349
 };
 
 };
 
-/* The size of the maximum gap between one aligned stack and the next.  */
-# define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1)
-
-/* The size of an array large to enough to hold all stacks, each with
-   N elements.  */
-# if YYLSP_NEEDED
-#  define YYSTACK_BYTES(N) \
-     ((N) * (sizeof (short) + sizeof (cgrammar_YYSTYPE) + sizeof (YYLTYPE))    \
-      + 2 * YYSTACK_GAP_MAX)
-# else
-#  define YYSTACK_BYTES(N) \
-     ((N) * (sizeof (short) + sizeof (cgrammar_YYSTYPE))                               \
-      + YYSTACK_GAP_MAX)
-# endif
-
-/* Copy COUNT objects from FROM to TO.  The source and destination do
-   not overlap.  */
-# ifndef YYCOPY
-#  if 1 < __GNUC__
-#   define YYCOPY(To, From, Count) \
-      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
-#  else
-#   define YYCOPY(To, From, Count)             \
-      do                                       \
-       {                                       \
-         register YYSIZE_T yyi;                \
-         for (yyi = 0; yyi < (Count); yyi++)   \
-           (To)[yyi] = (From)[yyi];            \
-       }                                       \
-      while (0)
-#  endif
-# endif
-
-/* Relocate STACK from its old location to the new one.  The
-   local variables YYSIZE and YYSTACKSIZE give the old and new number of
-   elements in the stack, and YYPTR gives the new location of the
-   stack.  Advance YYPTR to a properly aligned location for the next
-   stack.  */
-# define YYSTACK_RELOCATE(Stack)                                       \
-    do                                                                 \
-      {                                                                        \
-       YYSIZE_T yynewbytes;                                            \
-       YYCOPY (&yyptr->Stack, Stack, yysize);                          \
-       Stack = &yyptr->Stack;                                          \
-       yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAX;   \
-       yyptr += yynewbytes / sizeof (*yyptr);                          \
-      }                                                                        \
-    while (0)
-
-#endif
-
-
 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
 # define YYSIZE_T __SIZE_TYPE__
 #endif
 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
 # define YYSIZE_T __SIZE_TYPE__
 #endif
@@ -2976,29 +3395,35 @@ union yyalloc
 
 #define yyerrok                (yyerrstatus = 0)
 #define yyclearin      (yychar = YYEMPTY)
 
 #define yyerrok                (yyerrstatus = 0)
 #define yyclearin      (yychar = YYEMPTY)
-#define YYEMPTY                -2
+#define YYEMPTY                (-2)
 #define YYEOF          0
 #define YYEOF          0
+
 #define YYACCEPT       goto yyacceptlab
 #define YYACCEPT       goto yyacceptlab
-#define YYABORT        goto yyabortlab
+#define YYABORT                goto yyabortlab
 #define YYERROR                goto yyerrlab1
 #define YYERROR                goto yyerrlab1
+
+
 /* Like YYERROR except do call yyerror.  This remains here temporarily
    to ease the transition to the new meaning of YYERROR, for GCC.
    Once GCC version 2 has supplanted version 1, this can go.  */
 /* Like YYERROR except do call yyerror.  This remains here temporarily
    to ease the transition to the new meaning of YYERROR, for GCC.
    Once GCC version 2 has supplanted version 1, this can go.  */
+
 #define YYFAIL         goto yyerrlab
 #define YYFAIL         goto yyerrlab
+
 #define YYRECOVERING()  (!!yyerrstatus)
 #define YYRECOVERING()  (!!yyerrstatus)
+
 #define YYBACKUP(Token, Value)                                 \
 do                                                             \
   if (yychar == YYEMPTY && yylen == 1)                         \
     {                                                          \
       yychar = (Token);                                                \
       yylval = (Value);                                                \
 #define YYBACKUP(Token, Value)                                 \
 do                                                             \
   if (yychar == YYEMPTY && yylen == 1)                         \
     {                                                          \
       yychar = (Token);                                                \
       yylval = (Value);                                                \
-      yychar1 = YYTRANSLATE (yychar);                          \
+      yytoken = YYTRANSLATE (yychar);                          \
       YYPOPSTACK;                                              \
       goto yybackup;                                           \
     }                                                          \
   else                                                         \
     {                                                          \
       YYPOPSTACK;                                              \
       goto yybackup;                                           \
     }                                                          \
   else                                                         \
     {                                                          \
-      yyerror ("syntax error: cannot back up");                        \
+      yyerror ("syntax error: cannot back up");\
       YYERROR;                                                 \
     }                                                          \
 while (0)
       YYERROR;                                                 \
     }                                                          \
 while (0)
@@ -3006,41 +3431,24 @@ while (0)
 #define YYTERROR       1
 #define YYERRCODE      256
 
 #define YYTERROR       1
 #define YYERRCODE      256
 
-
 /* YYLLOC_DEFAULT -- Compute the default location (before the actions
 /* YYLLOC_DEFAULT -- Compute the default location (before the actions
-   are run).
-
-   When YYLLOC_DEFAULT is run, CURRENT is set the location of the
-   first token.  By default, to implement support for ranges, extend
-   its range to the last symbol.  */
+   are run).  */
 
 #ifndef YYLLOC_DEFAULT
 
 #ifndef YYLLOC_DEFAULT
-# define YYLLOC_DEFAULT(Current, Rhs, N)               \
-   Current.last_line   = Rhs[N].last_line;     \
-   Current.last_column = Rhs[N].last_column;
+# define YYLLOC_DEFAULT(Current, Rhs, N)         \
+  Current.first_line   = Rhs[1].first_line;      \
+  Current.first_column = Rhs[1].first_column;    \
+  Current.last_line    = Rhs[N].last_line;       \
+  Current.last_column  = Rhs[N].last_column;
 #endif
 
 #endif
 
-
 /* YYLEX -- calling `yylex' with the right arguments.  */
 
 /* YYLEX -- calling `yylex' with the right arguments.  */
 
-#if YYPURE
-# if YYLSP_NEEDED
-#  ifdef YYLEX_PARAM
-#   define YYLEX               yylex (&yylval, &yylloc, YYLEX_PARAM)
-#  else
-#   define YYLEX               yylex (&yylval, &yylloc)
-#  endif
-# else /* !YYLSP_NEEDED */
-#  ifdef YYLEX_PARAM
-#   define YYLEX               yylex (&yylval, YYLEX_PARAM)
-#  else
-#   define YYLEX               yylex (&yylval)
-#  endif
-# endif /* !YYLSP_NEEDED */
-#else /* !YYPURE */
-# define YYLEX                 yylex ()
-#endif /* !YYPURE */
-
+#ifdef YYLEX_PARAM
+# define YYLEX yylex (YYLEX_PARAM)
+#else
+# define YYLEX yylex ()
+#endif
 
 /* Enable debugging if requested.  */
 #if YYDEBUG
 
 /* Enable debugging if requested.  */
 #if YYDEBUG
@@ -3055,13 +3463,93 @@ do {                                            \
   if (yydebug)                                 \
     YYFPRINTF Args;                            \
 } while (0)
   if (yydebug)                                 \
     YYFPRINTF Args;                            \
 } while (0)
+
+# define YYDSYMPRINT(Args)                     \
+do {                                           \
+  if (yydebug)                                 \
+    yysymprint Args;                           \
+} while (0)
+
+# define YYDSYMPRINTF(Title, Token, Value, Location)           \
+do {                                                           \
+  if (yydebug)                                                 \
+    {                                                          \
+      YYFPRINTF (stderr, "%s ", Title);                                \
+      yysymprint (stderr,                                      \
+                  Token, Value);       \
+      YYFPRINTF (stderr, "\n");                                        \
+    }                                                          \
+} while (0)
+
+/*------------------------------------------------------------------.
+| yy_stack_print -- Print the state stack from its BOTTOM up to its |
+| TOP (cinluded).                                                   |
+`------------------------------------------------------------------*/
+
+#if defined (__STDC__) || defined (__cplusplus)
+static void
+yy_stack_print (short *bottom, short *top)
+#else
+static void
+yy_stack_print (bottom, top)
+    short *bottom;
+    short *top;
+#endif
+{
+  YYFPRINTF (stderr, "Stack now");
+  for (/* Nothing. */; bottom <= top; ++bottom)
+    YYFPRINTF (stderr, " %d", *bottom);
+  YYFPRINTF (stderr, "\n");
+}
+
+# define YY_STACK_PRINT(Bottom, Top)                           \
+do {                                                           \
+  if (yydebug)                                                 \
+    yy_stack_print ((Bottom), (Top));                          \
+} while (0)
+
+
+/*------------------------------------------------.
+| Report that the YYRULE is going to be reduced.  |
+`------------------------------------------------*/
+
+#if defined (__STDC__) || defined (__cplusplus)
+static void
+yy_reduce_print (int yyrule)
+#else
+static void
+yy_reduce_print (yyrule)
+    int yyrule;
+#endif
+{
+  int yyi;
+  unsigned int yylineno = yyrline[yyrule];
+  YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
+             yyrule - 1, yylineno);
+  /* Print the symbols being reduced, and their result.  */
+  for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
+    YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
+  YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
+}
+
+# define YY_REDUCE_PRINT(Rule)         \
+do {                                   \
+  if (yydebug)                         \
+    yy_reduce_print (Rule);            \
+} while (0)
+
 /* Nonzero means print parse trace.  It is left uninitialized so that
    multiple parsers can coexist.  */
 int yydebug;
 #else /* !YYDEBUG */
 # define YYDPRINTF(Args)
 /* Nonzero means print parse trace.  It is left uninitialized so that
    multiple parsers can coexist.  */
 int yydebug;
 #else /* !YYDEBUG */
 # define YYDPRINTF(Args)
+# define YYDSYMPRINT(Args)
+# define YYDSYMPRINTF(Title, Token, Value, Location)
+# define YY_STACK_PRINT(Bottom, Top)
+# define YY_REDUCE_PRINT(Rule)
 #endif /* !YYDEBUG */
 
 #endif /* !YYDEBUG */
 
+
 /* YYINITDEPTH -- initial size of the parser's stacks.  */
 #ifndef        YYINITDEPTH
 # define YYINITDEPTH 200
 /* YYINITDEPTH -- initial size of the parser's stacks.  */
 #ifndef        YYINITDEPTH
 # define YYINITDEPTH 200
@@ -3081,8 +3569,10 @@ int yydebug;
 #ifndef YYMAXDEPTH
 # define YYMAXDEPTH 10000
 #endif
 #ifndef YYMAXDEPTH
 # define YYMAXDEPTH 10000
 #endif
+
 \f
 \f
-#ifdef YYERROR_VERBOSE
+
+#if YYERROR_VERBOSE
 
 # ifndef yystrlen
 #  if defined (__GLIBC__) && defined (_STRING_H)
 
 # ifndef yystrlen
 #  if defined (__GLIBC__) && defined (_STRING_H)
@@ -3132,85 +3622,134 @@ yystpcpy (yydest, yysrc)
 }
 #  endif
 # endif
 }
 #  endif
 # endif
-#endif
-\f
 
 
+#endif /* !YYERROR_VERBOSE */
 
 
-/* The user can define YYPARSE_PARAM as the name of an argument to be passed
-   into yyparse.  The argument should have type void *.
-   It should actually point to an object.
-   Grammar actions can access the variable by casting it
-   to the proper pointer type.  */
-
-#ifdef YYPARSE_PARAM
-# if defined (__STDC__) || defined (__cplusplus)
-#  define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
-#  define YYPARSE_PARAM_DECL
-# else
-#  define YYPARSE_PARAM_ARG YYPARSE_PARAM
-#  define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
-# endif
-#else /* !YYPARSE_PARAM */
-# define YYPARSE_PARAM_ARG
-# define YYPARSE_PARAM_DECL
-#endif /* !YYPARSE_PARAM */
-
-/* Prevent warning if -Wstrict-prototypes.  */
-#ifdef __GNUC__
-# ifdef YYPARSE_PARAM
-int yyparse (void *);
-# else
-int yyparse (void);
-# endif
-#endif
+\f
 
 
-/* YY_DECL_VARIABLES -- depending whether we use a pure parser,
-   variables are global, or local to YYPARSE.  */
-
-#define YY_DECL_NON_LSP_VARIABLES                      \
-/* The lookahead symbol.  */                           \
-int yychar;                                            \
-                                                       \
-/* The semantic value of the lookahead symbol. */      \
-cgrammar_YYSTYPE yylval;                                               \
-                                                       \
-/* Number of parse errors so far.  */                  \
-int yynerrs;
+#if YYDEBUG
+/*--------------------------------.
+| Print this symbol on YYOUTPUT.  |
+`--------------------------------*/
 
 
-#if YYLSP_NEEDED
-# define YY_DECL_VARIABLES                     \
-YY_DECL_NON_LSP_VARIABLES                      \
-                                               \
-/* Location data for the lookahead symbol.  */ \
-YYLTYPE yylloc;
+#if defined (__STDC__) || defined (__cplusplus)
+static void
+yysymprint (FILE *yyoutput, int yytype, cgrammar_YYSTYPE *yyvaluep)
 #else
 #else
-# define YY_DECL_VARIABLES                     \
-YY_DECL_NON_LSP_VARIABLES
+static void
+yysymprint (yyoutput, yytype, yyvaluep)
+    FILE *yyoutput;
+    int yytype;
+    cgrammar_YYSTYPE *yyvaluep;
 #endif
 #endif
+{
+  /* Pacify ``unused variable'' warnings.  */
+  (void) yyvaluep;
 
 
+  if (yytype < YYNTOKENS)
+    {
+      YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
+# ifdef YYPRINT
+      YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
+# endif
+    }
+  else
+    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
 
 
-/* If nonreentrant, generate the variables here. */
+  switch (yytype)
+    {
+      default:
+        break;
+    }
+  YYFPRINTF (yyoutput, ")");
+}
 
 
-#if !YYPURE
-YY_DECL_VARIABLES
-#endif  /* !YYPURE */
+#endif /* ! YYDEBUG */
+/*-----------------------------------------------.
+| Release the memory associated to this symbol.  |
+`-----------------------------------------------*/
 
 
-int
-yyparse (YYPARSE_PARAM_ARG)
-     YYPARSE_PARAM_DECL
+#if defined (__STDC__) || defined (__cplusplus)
+static void
+yydestruct (int yytype, cgrammar_YYSTYPE *yyvaluep)
+#else
+static void
+yydestruct (yytype, yyvaluep)
+    int yytype;
+    cgrammar_YYSTYPE *yyvaluep;
+#endif
 {
 {
-  /* If reentrant, generate the variables here. */
-#if YYPURE
-  YY_DECL_VARIABLES
-#endif  /* !YYPURE */
+  /* Pacify ``unused variable'' warnings.  */
+  (void) yyvaluep;
 
 
+  switch (yytype)
+    {
+
+      default:
+        break;
+    }
+}
+\f
+
+/* Prevent warnings from -Wmissing-prototypes.  */
+
+#ifdef YYPARSE_PARAM
+# if defined (__STDC__) || defined (__cplusplus)
+int yyparse (void *YYPARSE_PARAM);
+# else
+int yyparse ();
+# endif
+#else /* ! YYPARSE_PARAM */
+#if defined (__STDC__) || defined (__cplusplus)
+int yyparse (void);
+#else
+int yyparse ();
+#endif
+#endif /* ! YYPARSE_PARAM */
+
+
+
+/* The lookahead symbol.  */
+int yychar;
+
+/* The semantic value of the lookahead symbol.  */
+cgrammar_YYSTYPE yylval;
+
+/* Number of syntax errors so far.  */
+int yynerrs;
+
+
+
+/*----------.
+| yyparse.  |
+`----------*/
+
+#ifdef YYPARSE_PARAM
+# if defined (__STDC__) || defined (__cplusplus)
+int yyparse (void *YYPARSE_PARAM)
+# else
+int yyparse (YYPARSE_PARAM)
+  void *YYPARSE_PARAM;
+# endif
+#else /* ! YYPARSE_PARAM */
+#if defined (__STDC__) || defined (__cplusplus)
+int
+yyparse (void)
+#else
+int
+yyparse ()
+
+#endif
+#endif
+{
+  
   register int yystate;
   register int yyn;
   int yyresult;
   /* Number of tokens to shift before error messages enabled.  */
   int yyerrstatus;
   /* Lookahead token as an internal (translated) token number.  */
   register int yystate;
   register int yyn;
   int yyresult;
   /* Number of tokens to shift before error messages enabled.  */
   int yyerrstatus;
   /* Lookahead token as an internal (translated) token number.  */
-  int yychar1 = 0;
+  int yytoken = 0;
 
   /* Three stacks and their tools:
      `yyss': related to states,
 
   /* Three stacks and their tools:
      `yyss': related to states,
@@ -3220,7 +3759,7 @@ yyparse (YYPARSE_PARAM_ARG)
      Refer to the stacks thru separate pointers, to allow yyoverflow
      to reallocate them elsewhere.  */
 
      Refer to the stacks thru separate pointers, to allow yyoverflow
      to reallocate them elsewhere.  */
 
-  /* The state stack. */
+  /* The state stack.  */
   short        yyssa[YYINITDEPTH];
   short *yyss = yyssa;
   register short *yyssp;
   short        yyssa[YYINITDEPTH];
   short *yyss = yyssa;
   register short *yyssp;
@@ -3230,31 +3769,19 @@ yyparse (YYPARSE_PARAM_ARG)
   cgrammar_YYSTYPE *yyvs = yyvsa;
   register cgrammar_YYSTYPE *yyvsp;
 
   cgrammar_YYSTYPE *yyvs = yyvsa;
   register cgrammar_YYSTYPE *yyvsp;
 
-#if YYLSP_NEEDED
-  /* The location stack.  */
-  YYLTYPE yylsa[YYINITDEPTH];
-  YYLTYPE *yyls = yylsa;
-  YYLTYPE *yylsp;
-#endif
 
 
-#if YYLSP_NEEDED
-# define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--)
-#else
-# define YYPOPSTACK   (yyvsp--, yyssp--)
-#endif
 
 
-  YYSIZE_T yystacksize = YYINITDEPTH;
+#define YYPOPSTACK   (yyvsp--, yyssp--)
 
 
+  YYSIZE_T yystacksize = YYINITDEPTH;
 
   /* The variables used to return semantic value and location from the
      action routines.  */
   cgrammar_YYSTYPE yyval;
 
   /* The variables used to return semantic value and location from the
      action routines.  */
   cgrammar_YYSTYPE yyval;
-#if YYLSP_NEEDED
-  YYLTYPE yyloc;
-#endif
+
 
   /* When reducing, the number of symbols on the RHS of the reduced
 
   /* When reducing, the number of symbols on the RHS of the reduced
-     rule. */
+     rule.  */
   int yylen;
 
   YYDPRINTF ((stderr, "Starting parse\n"));
   int yylen;
 
   YYDPRINTF ((stderr, "Starting parse\n"));
@@ -3271,9 +3798,7 @@ yyparse (YYPARSE_PARAM_ARG)
 
   yyssp = yyss;
   yyvsp = yyvs;
 
   yyssp = yyss;
   yyvsp = yyvs;
-#if YYLSP_NEEDED
-  yylsp = yyls;
-#endif
+
   goto yysetstate;
 
 /*------------------------------------------------------------.
   goto yysetstate;
 
 /*------------------------------------------------------------.
@@ -3288,7 +3813,7 @@ yyparse (YYPARSE_PARAM_ARG)
  yysetstate:
   *yyssp = yystate;
 
  yysetstate:
   *yyssp = yystate;
 
-  if (yyssp >= yyss + yystacksize - 1)
+  if (yyss + yystacksize - 1 <= yyssp)
     {
       /* Get the current used size of the three stacks, in elements.  */
       YYSIZE_T yysize = yyssp - yyss + 1;
     {
       /* Get the current used size of the three stacks, in elements.  */
       YYSIZE_T yysize = yyssp - yyss + 1;
@@ -3301,24 +3826,17 @@ yyparse (YYPARSE_PARAM_ARG)
        cgrammar_YYSTYPE *yyvs1 = yyvs;
        short *yyss1 = yyss;
 
        cgrammar_YYSTYPE *yyvs1 = yyvs;
        short *yyss1 = yyss;
 
+
        /* Each stack pointer address is followed by the size of the
        /* Each stack pointer address is followed by the size of the
-          data in use in that stack, in bytes.  */
-# if YYLSP_NEEDED
-       YYLTYPE *yyls1 = yyls;
-       /* This used to be a conditional around just the two extra args,
-          but that might be undefined if yyoverflow is a macro.  */
-       yyoverflow ("parser stack overflow",
-                   &yyss1, yysize * sizeof (*yyssp),
-                   &yyvs1, yysize * sizeof (*yyvsp),
-                   &yyls1, yysize * sizeof (*yylsp),
-                   &yystacksize);
-       yyls = yyls1;
-# else
+          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 ("parser stack overflow",
                    &yyss1, yysize * sizeof (*yyssp),
                    &yyvs1, yysize * sizeof (*yyvsp),
        yyoverflow ("parser stack overflow",
                    &yyss1, yysize * sizeof (*yyssp),
                    &yyvs1, yysize * sizeof (*yyvsp),
+
                    &yystacksize);
                    &yystacksize);
-# endif
+
        yyss = yyss1;
        yyvs = yyvs1;
       }
        yyss = yyss1;
        yyvs = yyvs1;
       }
@@ -3327,10 +3845,10 @@ yyparse (YYPARSE_PARAM_ARG)
       goto yyoverflowlab;
 # else
       /* Extend the stack our own way.  */
       goto yyoverflowlab;
 # else
       /* Extend the stack our own way.  */
-      if (yystacksize >= YYMAXDEPTH)
+      if (YYMAXDEPTH <= yystacksize)
        goto yyoverflowlab;
       yystacksize *= 2;
        goto yyoverflowlab;
       yystacksize *= 2;
-      if (yystacksize > YYMAXDEPTH)
+      if (YYMAXDEPTH < yystacksize)
        yystacksize = YYMAXDEPTH;
 
       {
        yystacksize = YYMAXDEPTH;
 
       {
@@ -3341,10 +3859,8 @@ yyparse (YYPARSE_PARAM_ARG)
          goto yyoverflowlab;
        YYSTACK_RELOCATE (yyss);
        YYSTACK_RELOCATE (yyvs);
          goto yyoverflowlab;
        YYSTACK_RELOCATE (yyss);
        YYSTACK_RELOCATE (yyvs);
-# if YYLSP_NEEDED
-       YYSTACK_RELOCATE (yyls);
-# endif
-# undef YYSTACK_RELOCATE
+
+#  undef YYSTACK_RELOCATE
        if (yyss1 != yyssa)
          YYSTACK_FREE (yyss1);
       }
        if (yyss1 != yyssa)
          YYSTACK_FREE (yyss1);
       }
@@ -3353,14 +3869,12 @@ yyparse (YYPARSE_PARAM_ARG)
 
       yyssp = yyss + yysize - 1;
       yyvsp = yyvs + yysize - 1;
 
       yyssp = yyss + yysize - 1;
       yyvsp = yyvs + yysize - 1;
-#if YYLSP_NEEDED
-      yylsp = yyls + yysize - 1;
-#endif
+
 
       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
                  (unsigned long int) yystacksize));
 
 
       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
                  (unsigned long int) yystacksize));
 
-      if (yyssp >= yyss + yystacksize - 1)
+      if (yyss + yystacksize - 1 <= yyssp)
        YYABORT;
     }
 
        YYABORT;
     }
 
@@ -3368,7 +3882,6 @@ yyparse (YYPARSE_PARAM_ARG)
 
   goto yybackup;
 
 
   goto yybackup;
 
-
 /*-----------.
 | yybackup.  |
 `-----------*/
 /*-----------.
 | yybackup.  |
 `-----------*/
@@ -3381,88 +3894,55 @@ yybackup:
   /* First try to decide what to do without reference to lookahead token.  */
 
   yyn = yypact[yystate];
   /* First try to decide what to do without reference to lookahead token.  */
 
   yyn = yypact[yystate];
-  if (yyn == YYFLAG)
+  if (yyn == YYPACT_NINF)
     goto yydefault;
 
   /* Not known => get a lookahead token if don't already have one.  */
 
     goto yydefault;
 
   /* Not known => get a lookahead token if don't already have one.  */
 
-  /* yychar is either YYEMPTY or YYEOF
-     or a valid token in external form.  */
-
+  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
   if (yychar == YYEMPTY)
     {
       YYDPRINTF ((stderr, "Reading a token: "));
       yychar = YYLEX;
     }
 
   if (yychar == YYEMPTY)
     {
       YYDPRINTF ((stderr, "Reading a token: "));
       yychar = YYLEX;
     }
 
-  /* Convert token to internal form (in yychar1) for indexing tables with */
-
-  if (yychar <= 0)             /* This means end of input. */
+  if (yychar <= YYEOF)
     {
     {
-      yychar1 = 0;
-      yychar = YYEOF;          /* Don't call YYLEX any more */
-
+      yychar = yytoken = YYEOF;
       YYDPRINTF ((stderr, "Now at end of input.\n"));
     }
   else
     {
       YYDPRINTF ((stderr, "Now at end of input.\n"));
     }
   else
     {
-      yychar1 = YYTRANSLATE (yychar);
-
-#if YYDEBUG
-     /* We have to keep this `#if YYDEBUG', since we use variables
-       which are defined only if `YYDEBUG' is set.  */
-      if (yydebug)
-       {
-         YYFPRINTF (stderr, "Next token is %d (%s",
-                    yychar, yytname[yychar1]);
-         /* Give the individual parser a way to print the precise
-            meaning of a token, for further debugging info.  */
-# ifdef YYPRINT
-         YYPRINT (stderr, yychar, yylval);
-# endif
-         YYFPRINTF (stderr, ")\n");
-       }
-#endif
+      yytoken = YYTRANSLATE (yychar);
+      YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);
     }
 
     }
 
-  yyn += yychar1;
-  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
+  /* If the proper action on seeing token YYTOKEN is to reduce or to
+     detect an error, take that action.  */
+  yyn += yytoken;
+  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
     goto yydefault;
     goto yydefault;
-
   yyn = yytable[yyn];
   yyn = yytable[yyn];
-
-  /* yyn is what to do for this token type in this state.
-     Negative => reduce, -yyn is rule number.
-     Positive => shift, yyn is new state.
-       New state is final state => don't bother to shift,
-       just return success.
-     0, or most negative number => error.  */
-
-  if (yyn < 0)
+  if (yyn <= 0)
     {
     {
-      if (yyn == YYFLAG)
+      if (yyn == 0 || yyn == YYTABLE_NINF)
        goto yyerrlab;
       yyn = -yyn;
       goto yyreduce;
     }
        goto yyerrlab;
       yyn = -yyn;
       goto yyreduce;
     }
-  else if (yyn == 0)
-    goto yyerrlab;
 
   if (yyn == YYFINAL)
     YYACCEPT;
 
   /* Shift the lookahead token.  */
 
   if (yyn == YYFINAL)
     YYACCEPT;
 
   /* Shift the lookahead token.  */
-  YYDPRINTF ((stderr, "Shifting token %d (%s), ",
-             yychar, yytname[yychar1]));
+  YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));
 
   /* Discard the token being shifted unless it is eof.  */
   if (yychar != YYEOF)
     yychar = YYEMPTY;
 
   *++yyvsp = yylval;
 
   /* Discard the token being shifted unless it is eof.  */
   if (yychar != YYEOF)
     yychar = YYEMPTY;
 
   *++yyvsp = yylval;
-#if YYLSP_NEEDED
-  *++yylsp = yylloc;
-#endif
+
 
   /* Count tokens shifted since error; after three, turn off error
      status.  */
 
   /* Count tokens shifted since error; after three, turn off error
      status.  */
@@ -3493,109 +3973,128 @@ yyreduce:
   /* If YYLEN is nonzero, implement the default value of the action:
      `$$ = $1'.
 
   /* If YYLEN is nonzero, implement the default value of the action:
      `$$ = $1'.
 
-     Otherwise, the following line sets YYVAL to the semantic value of
-     the lookahead token.  This behavior is undocumented and Bison
+     Otherwise, the following line sets YYVAL to garbage.
+     This behavior is undocumented and Bison
      users should not rely upon it.  Assigning to YYVAL
      unconditionally makes the parser a bit smaller, and it avoids a
      GCC warning that YYVAL may be used uninitialized.  */
   yyval = yyvsp[1-yylen];
 
      users should not rely upon it.  Assigning to YYVAL
      unconditionally makes the parser a bit smaller, and it avoids a
      GCC warning that YYVAL may be used uninitialized.  */
   yyval = yyvsp[1-yylen];
 
-#if YYLSP_NEEDED
-  /* Similarly for the default location.  Let the user run additional
-     commands if for instance locations are ranges.  */
-  yyloc = yylsp[1-yylen];
-  YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
-#endif
 
 
-#if YYDEBUG
-  /* We have to keep this `#if YYDEBUG', since we use variables which
-     are defined only if `YYDEBUG' is set.  */
-  if (yydebug)
+  YY_REDUCE_PRINT (yyn);
+  switch (yyn)
     {
     {
-      int yyi;
+        case 4:
 
 
-      YYFPRINTF (stderr, "Reducing via rule %d (line %d), ",
-                yyn, yyrline[yyn]);
+    { context_checkGlobalScope (); ;}
+    break;
 
 
-      /* Print the symbols being reduced, and their result.  */
-      for (yyi = yyprhs[yyn]; yyrhs[yyi] > 0; yyi++)
-       YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]);
-      YYFPRINTF (stderr, " -> %s\n", yytname[yyr1[yyn]]);
-    }
-#endif
+  case 5:
+
+    { context_checkGlobalScope (); ;}
+    break;
+
+  case 6:
+
+    { uentry_clearDecl (); ;}
+    break;
+
+  case 7:
+
+    { uentry_clearDecl (); ;}
+    break;
+
+  case 8:
+
+    { uentry_clearDecl (); ;}
+    break;
+
+  case 9:
+
+    { uentry_clearDecl (); ;}
+    break;
+
+  case 10:
+
+    { uentry_clearDecl (); ;}
+    break;
+
+  case 11:
+
+    { uentry_checkDecl (); exprNode_free (yyvsp[0].expr); ;}
+    break;
+
+  case 12:
+
+    { uentry_clearDecl (); lltok_free (yyvsp[0].tok); /* evans 2002-02-08: okay to have a null statement */ ;}
+    break;
+
+  case 13:
+
+    { uentry_clearDecl (); ;}
+    break;
+
+  case 14:
 
 
-  switch (yyn) {
-
-case 3:
-{ context_checkGlobalScope (); ;
-    break;}
-case 4:
-{ context_checkGlobalScope (); ;
-    break;}
-case 5:
-{ uentry_clearDecl (); ;
-    break;}
-case 6:
-{ uentry_clearDecl (); ;
-    break;}
-case 7:
-{ uentry_clearDecl (); ;
-    break;}
-case 8:
-{ uentry_clearDecl (); ;
-    break;}
-case 9:
-{ uentry_clearDecl (); ;
-    break;}
-case 10:
-{ uentry_checkDecl (); exprNode_free (yyvsp[0].expr); ;
-    break;}
-case 11:
-{ uentry_clearDecl (); lltok_free (yyvsp[0].tok); /* evans 2002-02-08: okay to have a null statement */ ;
-    break;}
-case 12:
-{ uentry_clearDecl (); ;
-    break;}
-case 13:
-{ checkConstant (yyvsp[-6].qtyp, yyvsp[-4].ntyp); lltok_free2 (yyvsp[-7].tok, yyvsp[0].tok); ;
-    break;}
-case 14:
-{ checkValueConstant (yyvsp[-9].qtyp, yyvsp[-7].ntyp, yyvsp[-3].expr); lltok_free3 (yyvsp[-10].tok, yyvsp[-5].tok, yyvsp[0].tok); ;
-    break;}
-case 15:
-{ context_enterFunctionHeader (); ;
-    break;}
-case 16:
-{ 
+    { checkConstant (yyvsp[-6].qtyp, yyvsp[-4].ntyp); lltok_free2 (yyvsp[-7].tok, yyvsp[0].tok); ;}
+    break;
+
+  case 15:
+
+    { checkValueConstant (yyvsp[-9].qtyp, yyvsp[-7].ntyp, yyvsp[-3].expr); lltok_free3 (yyvsp[-10].tok, yyvsp[-5].tok, yyvsp[0].tok); ;}
+    break;
+
+  case 16:
+
+    { context_enterFunctionHeader (); ;}
+    break;
+
+  case 17:
+
+    { 
      declareStaticFunction (yyvsp[-2].ntyp); context_quietExitFunction (); 
      context_exitFunctionHeader (); 
      lltok_free2 (yyvsp[-4].tok, yyvsp[0].tok); /*!*/
      declareStaticFunction (yyvsp[-2].ntyp); context_quietExitFunction (); 
      context_exitFunctionHeader (); 
      lltok_free2 (yyvsp[-4].tok, yyvsp[0].tok); /*!*/
-   ;
-    break;}
-case 17:
-{ 
+   ;}
+    break;
+
+  case 18:
+
+    { 
      qtype qint = qtype_create (ctype_int);
      yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint);
      qtype_free (qint);
      qtype qint = qtype_create (ctype_int);
      yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint);
      qtype_free (qint);
-   ;
-    break;}
-case 18:
-{ yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ;
-    break;}
-case 20:
-{ yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].pointers, idDecl_getTyp (yyval.ntyp)); ;
-    break;}
-case 21:
-{ yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ;
-    break;}
-case 22:
-{ yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); lltok_free2 (yyvsp[-4].tok, yyvsp[0].tok); ;
-    break;}
-case 23:
-{ yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeInnerArray (idDecl_getCtype (yyvsp[-2].ntyp))); lltok_free2 (yyvsp[-1].tok, yyvsp[0].tok); ;
-    break;}
-case 24:
-{
+   ;}
+    break;
+
+  case 19:
+
+    { yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ;}
+    break;
+
+  case 21:
+
+    { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].pointers, idDecl_getTyp (yyval.ntyp)); ;}
+    break;
+
+  case 22:
+
+    { yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ;}
+    break;
+
+  case 23:
+
+    { yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); lltok_free2 (yyvsp[-4].tok, yyvsp[0].tok); ;}
+    break;
+
+  case 24:
+
+    { yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeInnerArray (idDecl_getCtype (yyvsp[-2].ntyp))); lltok_free2 (yyvsp[-1].tok, yyvsp[0].tok); ;}
+    break;
+
+  case 25:
+
+    {
      exprNode_findValue (yyvsp[-2].expr);
      idDecl_notExpectingFunction (yyvsp[-5].ntyp);
 
      exprNode_findValue (yyvsp[-2].expr);
      idDecl_notExpectingFunction (yyvsp[-5].ntyp);
 
@@ -3610,13 +4109,17 @@ case 24:
        }
 
      lltok_free2 (yyvsp[-4].tok, yyvsp[-1].tok);
        }
 
      lltok_free2 (yyvsp[-4].tok, yyvsp[-1].tok);
-   ;
-    break;}
-case 25:
-{ setCurrentParams (uentryList_missingParams); ;
-    break;}
-case 26:
-{ /* need to support globals and modifies here! */
+   ;}
+    break;
+
+  case 26:
+
+    { setCurrentParams (uentryList_missingParams); ;}
+    break;
+
+  case 27:
+
+    { /* need to support globals and modifies here! */
      functionClauseList fcl;
      ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp), 
                                    uentryList_makeMissingParams ());
      functionClauseList fcl;
      ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp), 
                                    uentryList_makeMissingParams ());
@@ -3643,13 +4146,17 @@ case 26:
      
      context_popLoc ();
      lltok_free2 (yyvsp[-3].tok, yyvsp[-2].tok);
      
      context_popLoc ();
      lltok_free2 (yyvsp[-3].tok, yyvsp[-2].tok);
-   ;
-    break;}
-case 27:
-{ setCurrentParams (yyvsp[-1].entrylist); ;
-    break;}
-case 28:
-{
+   ;}
+    break;
+
+  case 28:
+
+    { setCurrentParams (yyvsp[-1].entrylist); ;}
+    break;
+
+  case 29:
+
+    {
      functionClauseList fcl;
      setImplicitfcnConstraints ();
      clearCurrentParams ();
      functionClauseList fcl;
      setImplicitfcnConstraints ();
      clearCurrentParams ();
@@ -3672,21 +4179,29 @@ case 28:
      
      context_popLoc (); 
      lltok_free2 (yyvsp[-4].tok, yyvsp[-2].tok);
      
      context_popLoc (); 
      lltok_free2 (yyvsp[-4].tok, yyvsp[-2].tok);
-   ;
-    break;}
-case 29:
-{ yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ;
-    break;}
-case 30:
-{ yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); lltok_free2 (yyvsp[-4].tok, yyvsp[0].tok); ;
-    break;}
-case 31:
-{ yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeInnerArray (idDecl_getCtype (yyvsp[-2].ntyp))); 
+   ;}
+    break;
+
+  case 30:
+
+    { yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ;}
+    break;
+
+  case 31:
+
+    { yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); lltok_free2 (yyvsp[-4].tok, yyvsp[0].tok); ;}
+    break;
+
+  case 32:
+
+    { yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeInnerArray (idDecl_getCtype (yyvsp[-2].ntyp))); 
      lltok_free2 (yyvsp[-1].tok, yyvsp[0].tok); 
      lltok_free2 (yyvsp[-1].tok, yyvsp[0].tok); 
-   ;
-    break;}
-case 32:
-{ 
+   ;}
+    break;
+
+  case 33:
+
+    { 
      int value;
 
      if (exprNode_hasValue (yyvsp[-2].expr) 
      int value;
 
      if (exprNode_hasValue (yyvsp[-2].expr) 
@@ -3701,13 +4216,17 @@ case 32:
 
      yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeInnerFixedArray (idDecl_getCtype (yyvsp[-5].ntyp), value));
      lltok_free2 (yyvsp[-4].tok, yyvsp[-1].tok);
 
      yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeInnerFixedArray (idDecl_getCtype (yyvsp[-5].ntyp), value));
      lltok_free2 (yyvsp[-4].tok, yyvsp[-1].tok);
-   ;
-    break;}
-case 33:
-{ setCurrentParams (uentryList_missingParams); ;
-    break;}
-case 34:
-{
+   ;}
+    break;
+
+  case 34:
+
+    { setCurrentParams (uentryList_missingParams); ;}
+    break;
+
+  case 35:
+
+    {
      ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp), 
                                    uentryList_makeMissingParams ());
      
      ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp), 
                                    uentryList_makeMissingParams ());
      
@@ -3715,396 +4234,612 @@ case 34:
      idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist);
      context_popLoc (); 
      lltok_free2 (yyvsp[-3].tok, yyvsp[-2].tok);
      idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist);
      context_popLoc (); 
      lltok_free2 (yyvsp[-3].tok, yyvsp[-2].tok);
-   ;
-    break;}
-case 35:
-{ setCurrentParams (yyvsp[-1].entrylist); ;
-    break;}
-case 36:
-{ 
+   ;}
+    break;
+
+  case 36:
+
+    { setCurrentParams (yyvsp[-1].entrylist); ;}
+    break;
+
+  case 37:
+
+    { 
      clearCurrentParams ();
      yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), yyvsp[-3].entrylist));
      idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist);
      context_popLoc (); 
      lltok_free (yyvsp[-4].tok);
      /*!! lltok_free2 ($3, $5); */
      clearCurrentParams ();
      yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), yyvsp[-3].entrylist));
      idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist);
      context_popLoc (); 
      lltok_free (yyvsp[-4].tok);
      /*!! lltok_free2 ($3, $5); */
-   ;
-    break;}
-case 37:
-{ setCurrentParams (yyvsp[-1].entrylist); ;
-    break;}
-case 38:
-{ clearCurrentParams (); ;
-    break;}
-case 39:
-{ declareCIter (yyvsp[-8].cname, yyvsp[-6].entrylist); 
+   ;}
+    break;
+
+  case 38:
+
+    { setCurrentParams (yyvsp[-1].entrylist); ;}
+    break;
+
+  case 39:
+
+    { clearCurrentParams (); ;}
+    break;
+
+  case 40:
+
+    { declareCIter (yyvsp[-8].cname, yyvsp[-6].entrylist); 
      lltok_free3 (yyvsp[-9].tok, yyvsp[-7].tok, yyvsp[-5].tok); 
      lltok_free3 (yyvsp[-9].tok, yyvsp[-7].tok, yyvsp[-5].tok); 
-   ;
-    break;}
-case 40:
-{ exprNode_checkMacroBody (yyvsp[-1].expr); lltok_free2 (yyvsp[-2].tok, yyvsp[0].tok); ;
-    break;}
-case 41:
-{ exprNode_checkIterBody (yyvsp[-1].expr); lltok_free2 (yyvsp[-2].tok, yyvsp[0].tok); ;
-    break;}
-case 42:
-{ exprNode_checkIterEnd (yyvsp[-1].expr); lltok_free2 (yyvsp[-2].tok, yyvsp[0].tok);;
-    break;}
-case 43:
-{ exprChecks_checkEmptyMacroBody (); lltok_free2 (yyvsp[-1].tok, yyvsp[0].tok); ;
-    break;}
-case 44:
-{ clabstract_declareFunction (yyvsp[0].ntyp); ;
-    break;}
-case 45:
-{ yyval.msconstraint = metaStateConstraint_create (yyvsp[-2].msspec, yyvsp[0].msexpr); lltok_free (yyvsp[-1].tok); ;
-    break;}
-case 46:
-{ cscannerHelp_expectingMetaStateName (); ;
-    break;}
-case 47:
-{ cscannerHelp_clearExpectingMetaStateName ();
+   ;}
+    break;
+
+  case 41:
+
+    { exprNode_checkMacroBody (yyvsp[-1].expr); lltok_free2 (yyvsp[-2].tok, yyvsp[0].tok); ;}
+    break;
+
+  case 42:
+
+    { exprNode_checkIterBody (yyvsp[-1].expr); lltok_free2 (yyvsp[-2].tok, yyvsp[0].tok); ;}
+    break;
+
+  case 43:
+
+    { exprNode_checkIterEnd (yyvsp[-1].expr); lltok_free2 (yyvsp[-2].tok, yyvsp[0].tok);;}
+    break;
+
+  case 44:
+
+    { exprChecks_checkEmptyMacroBody (); lltok_free2 (yyvsp[-1].tok, yyvsp[0].tok); ;}
+    break;
+
+  case 45:
+
+    { clabstract_declareFunction (yyvsp[0].ntyp); ;}
+    break;
+
+  case 46:
+
+    { yyval.msconstraint = metaStateConstraint_create (yyvsp[-2].msspec, yyvsp[0].msexpr); lltok_free (yyvsp[-1].tok); ;}
+    break;
+
+  case 47:
+
+    { cscannerHelp_expectingMetaStateName (); ;}
+    break;
+
+  case 48:
+
+    { cscannerHelp_clearExpectingMetaStateName ();
       yyval.msspec = metaStateSpecifier_create (yyvsp[-3].sr, yyvsp[0].msinfo); 
       lltok_free (yyvsp[-1].tok); 
       yyval.msspec = metaStateSpecifier_create (yyvsp[-3].sr, yyvsp[0].msinfo); 
       lltok_free (yyvsp[-1].tok); 
-    ;
-    break;}
-case 48:
-{ cscannerHelp_expectingMetaStateName (); ;
-    break;}
-case 49:
-{ cscannerHelp_clearExpectingMetaStateName ();
+    ;}
+    break;
+
+  case 49:
+
+    { cscannerHelp_expectingMetaStateName (); ;}
+    break;
+
+  case 50:
+
+    { cscannerHelp_clearExpectingMetaStateName ();
       yyval.msspec = metaStateSpecifier_createElipsis (yyvsp[0].msinfo); 
       lltok_free2 (yyvsp[-3].tok, yyvsp[-1].tok);
       yyval.msspec = metaStateSpecifier_createElipsis (yyvsp[0].msinfo); 
       lltok_free2 (yyvsp[-3].tok, yyvsp[-1].tok);
-    ;
-    break;}
-case 50:
-{ yyval.msexpr = metaStateExpression_create (yyvsp[0].msspec); ;
-    break;}
-case 51:
-{ yyval.msexpr = metaStateExpression_createMerge (yyvsp[-2].msspec, yyvsp[0].msexpr); lltok_free (yyvsp[-1].tok); ;
-    break;}
-case 55:
-{ yyval.conL = constraintList_add (yyvsp[0].conL, yyvsp[-2].con); ;
-    break;}
-case 56:
-{ yyval.conL = constraintList_single (yyvsp[0].con); ;
-    break;}
-case 57:
-{
+    ;}
+    break;
+
+  case 51:
+
+    { yyval.msexpr = metaStateExpression_create (yyvsp[0].msspec); ;}
+    break;
+
+  case 52:
+
+    { yyval.msexpr = metaStateExpression_createMerge (yyvsp[-2].msspec, yyvsp[0].msexpr); lltok_free (yyvsp[-1].tok); ;}
+    break;
+
+  case 56:
+
+    { yyval.conL = constraintList_add (yyvsp[0].conL, yyvsp[-2].con); ;}
+    break;
+
+  case 57:
+
+    { yyval.conL = constraintList_single (yyvsp[0].con); ;}
+    break;
+
+  case 58:
+
+    {
  yyval.con = makeConstraintParse3 (yyvsp[-2].conE, yyvsp[-1].tok, yyvsp[0].conE);
  yyval.con = makeConstraintParse3 (yyvsp[-2].conE, yyvsp[-1].tok, yyvsp[0].conE);
- DPRINTF(("Done BufConstraint1\n")); ;
-    break;}
-case 64:
-{yyval.conE = constraintExpr_parseMakeUnaryOp (yyvsp[-3].tok, yyvsp[-1].conE);  DPRINTF( ("Got BufConstraintExpr UNary Op ") ); ;
-    break;}
-case 65:
-{
+ DPRINTF(("Done BufConstraint1\n")); ;}
+    break;
+
+  case 65:
+
+    {yyval.conE = constraintExpr_parseMakeUnaryOp (yyvsp[-3].tok, yyvsp[-1].conE);  DPRINTF( ("Got BufConstraintExpr UNary Op ") ); ;}
+    break;
+
+  case 66:
+
+    {
    DPRINTF( ("Got BufConstraintExpr BINary Op ") );
    DPRINTF( ("Got BufConstraintExpr BINary Op ") );
-   yyval.conE = constraintExpr_parseMakeBinaryOp (yyvsp[-3].conE, yyvsp[-2].tok, yyvsp[-1].conE); ;
-    break;}
-case 66:
-{ yyval.conE =  constraintExpr_makeTermsRef (yyvsp[0].sr);;
-    break;}
-case 67:
-{ yyval.conE = constraintExpr_makeIntLiteral (exprNode_getLongValue (yyvsp[0].expr)); ;
-    break;}
-case 68:
-{ /*@-onlytrans@*/ yyval.sr = checkbufferConstraintClausesId (yyvsp[0].entry); /*@=onlytrans@*/ /*@i523@*/ ;
-    break;}
-case 69:
-{ yyval.sr = fixStateClausesId (yyvsp[0].cname); ;
-    break;}
-case 70:
-{ yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-2].sr); ;
-    break;}
-case 71:
-{
+   yyval.conE = constraintExpr_parseMakeBinaryOp (yyvsp[-3].conE, yyvsp[-2].tok, yyvsp[-1].conE); ;}
+    break;
+
+  case 67:
+
+    { yyval.conE =  constraintExpr_makeTermsRef (yyvsp[0].sr);;}
+    break;
+
+  case 68:
+
+    { yyval.conE = constraintExpr_makeIntLiteral (exprNode_getLongValue (yyvsp[0].expr)); ;}
+    break;
+
+  case 69:
+
+    { /*@-onlytrans@*/ yyval.sr = checkbufferConstraintClausesId (yyvsp[0].entry); /*@=onlytrans@*/ /*@i523@*/ ;}
+    break;
+
+  case 70:
+
+    { yyval.sr = fixStateClausesId (yyvsp[0].cname); ;}
+    break;
+
+  case 71:
+
+    { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-2].sr); ;}
+    break;
+
+  case 72:
+
+    {
     /*
     char *t; int c; 
     t =  cstring_toCharsSafe (exprNode_unparse($3)); 
     c = atoi( t );
     */
     yyval.sr = sRef_makeArrayFetchKnown (yyvsp[-3].sr, exprNode_getLongValue (yyvsp[-1].expr));
     /*
     char *t; int c; 
     t =  cstring_toCharsSafe (exprNode_unparse($3)); 
     c = atoi( t );
     */
     yyval.sr = sRef_makeArrayFetchKnown (yyvsp[-3].sr, exprNode_getLongValue (yyvsp[-1].expr));
-  ;
-    break;}
-case 72:
-{ yyval.sr = sRef_constructPointer (yyvsp[0].sr); ;
-    break;}
-case 73:
-{ yyval.sr = yyvsp[-1].sr; ;
-    break;}
-case 74:
-{ cstring_markOwned (yyvsp[0].cname); yyval.sr = sRef_buildField (yyvsp[-2].sr, yyvsp[0].cname); ;
-    break;}
-case 75:
-{ cstring_markOwned (yyvsp[0].cname); yyval.sr = sRef_makeArrow (yyvsp[-2].sr, yyvsp[0].cname); ;
-    break;}
-case 79:
-{ yyval.funcclauselist = functionClauseList_new (); ;
-    break;}
-case 80:
-{ yyval.funcclauselist = functionClauseList_prepend (yyvsp[0].funcclauselist, yyvsp[-1].funcclause); ;
-    break;}
-case 81:
-{ yyval.funcclauselist = functionClauseList_new (); ;
-    break;}
-case 82:
-{ yyval.funcclauselist = functionClauseList_prepend (yyvsp[0].funcclauselist, yyvsp[-1].funcclause); ;
-    break;}
-case 83:
-{ yyval.funcclause = functionClause_createGlobals (yyvsp[0].globsclause); ;
-    break;}
-case 84:
-{ yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
-    break;}
-case 85:
-{ yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
-    break;}
-case 86:
-{ yyval.funcclause = functionClause_createState (yyvsp[0].stateclause); ;
-    break;}
-case 87:
-{ yyval.funcclause = yyvsp[0].funcclause; ;
-    break;}
-case 88:
-{ yyval.funcclause = functionClause_createWarn (yyvsp[0].warnclause); ;
-    break;}
-case 89:
-{ yyval.funcclause = functionClause_createGlobals (yyvsp[0].globsclause); ;
-    break;}
-case 90:
-{ yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
-    break;}
-case 91:
-{ yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
-    break;}
-case 92:
-{ yyval.funcclause = functionClause_createState (yyvsp[0].stateclause); ;
-    break;}
-case 93:
-{ yyval.funcclause = yyvsp[0].funcclause; ;
-    break;}
-case 94:
-{ yyval.funcclause = functionClause_createWarn (yyvsp[0].warnclause); ;
-    break;}
-case 95:
-{ yyval.globsclause = yyvsp[-1].globsclause; ;
-    break;}
-case 96:
-{ setProcessingGlobalsList (); ;
-    break;}
-case 97:
-{ 
+  ;}
+    break;
+
+  case 73:
+
+    { yyval.sr = sRef_constructPointer (yyvsp[0].sr); ;}
+    break;
+
+  case 74:
+
+    { yyval.sr = yyvsp[-1].sr; ;}
+    break;
+
+  case 75:
+
+    { cstring_markOwned (yyvsp[0].cname); yyval.sr = sRef_buildField (yyvsp[-2].sr, yyvsp[0].cname); ;}
+    break;
+
+  case 76:
+
+    { cstring_markOwned (yyvsp[0].cname); yyval.sr = sRef_makeArrow (yyvsp[-2].sr, yyvsp[0].cname); ;}
+    break;
+
+  case 80:
+
+    { yyval.funcclauselist = functionClauseList_new (); ;}
+    break;
+
+  case 81:
+
+    { yyval.funcclauselist = functionClauseList_prepend (yyvsp[0].funcclauselist, yyvsp[-1].funcclause); ;}
+    break;
+
+  case 82:
+
+    { yyval.funcclauselist = functionClauseList_new (); ;}
+    break;
+
+  case 83:
+
+    { yyval.funcclauselist = functionClauseList_prepend (yyvsp[0].funcclauselist, yyvsp[-1].funcclause); ;}
+    break;
+
+  case 84:
+
+    { yyval.funcclause = functionClause_createGlobals (yyvsp[0].globsclause); ;}
+    break;
+
+  case 85:
+
+    { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;}
+    break;
+
+  case 86:
+
+    { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;}
+    break;
+
+  case 87:
+
+    { yyval.funcclause = functionClause_createState (yyvsp[0].stateclause); ;}
+    break;
+
+  case 88:
+
+    { yyval.funcclause = yyvsp[0].funcclause; ;}
+    break;
+
+  case 89:
+
+    { yyval.funcclause = functionClause_createWarn (yyvsp[0].warnclause); ;}
+    break;
+
+  case 90:
+
+    { yyval.funcclause = functionClause_createGlobals (yyvsp[0].globsclause); ;}
+    break;
+
+  case 91:
+
+    { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;}
+    break;
+
+  case 92:
+
+    { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;}
+    break;
+
+  case 93:
+
+    { yyval.funcclause = functionClause_createState (yyvsp[0].stateclause); ;}
+    break;
+
+  case 94:
+
+    { yyval.funcclause = yyvsp[0].funcclause; ;}
+    break;
+
+  case 95:
+
+    { yyval.funcclause = functionClause_createWarn (yyvsp[0].warnclause); ;}
+    break;
+
+  case 96:
+
+    { yyval.globsclause = yyvsp[-1].globsclause; ;}
+    break;
+
+  case 97:
+
+    { setProcessingGlobalsList (); ;}
+    break;
+
+  case 98:
+
+    { 
      unsetProcessingGlobals (); 
      yyval.globsclause = globalsClause_create (yyvsp[-3].tok, yyvsp[-1].globset); 
      unsetProcessingGlobals (); 
      yyval.globsclause = globalsClause_create (yyvsp[-3].tok, yyvsp[-1].globset); 
-   ;
-    break;}
-case 98:
-{ yyval.modsclause = modifiesClause_createNoMods (yyvsp[0].tok); ;
-    break;}
-case 99:
-{ yyval.modsclause = yyvsp[-1].modsclause; ;
-    break;}
-case 100:
-{
-     context_setProtectVars (); enterParamsTemp (); 
-     sRef_setGlobalScopeSafe (); 
-   ;
-    break;}
-case 101:
-{ 
-     exitParamsTemp ();
-     sRef_clearGlobalScopeSafe (); 
-     context_releaseVars ();
+   ;}
+    break;
+
+  case 99:
+
+    { yyval.modsclause = modifiesClause_createNoMods (yyvsp[0].tok); ;}
+    break;
+
+  case 100:
+
+    { yyval.modsclause = yyvsp[-1].modsclause; ;}
+    break;
+
+  case 101:
+
+    {
+     context_setProtectVars (); enterParamsTemp (); 
+     sRef_setGlobalScopeSafe (); 
+   ;}
+    break;
+
+  case 102:
+
+    { 
+     exitParamsTemp ();
+     sRef_clearGlobalScopeSafe (); 
+     context_releaseVars ();
      yyval.modsclause = modifiesClause_create (yyvsp[-2].tok, yyvsp[0].srset);
      yyval.modsclause = modifiesClause_create (yyvsp[-2].tok, yyvsp[0].srset);
-   ;
-    break;}
-case 102:
-{ yyval.flagspec = flagSpec_createPlain (yyvsp[0].cname); ;
-    break;}
-case 103:
-{ yyval.flagspec = flagSpec_createOr (yyvsp[-2].cname, yyvsp[0].flagspec); ;
-    break;}
-case 106:
-{ yyval.warnclause = warnClause_undefined; ;
-    break;}
-case 107:
-{ yyval.warnclause = yyvsp[-1].warnclause; ;
-    break;}
-case 108:
-{      
+   ;}
+    break;
+
+  case 103:
+
+    { yyval.flagspec = flagSpec_createPlain (yyvsp[0].cname); ;}
+    break;
+
+  case 104:
+
+    { yyval.flagspec = flagSpec_createOr (yyvsp[-2].cname, yyvsp[0].flagspec); ;}
+    break;
+
+  case 107:
+
+    { yyval.warnclause = warnClause_undefined; ;}
+    break;
+
+  case 108:
+
+    { yyval.warnclause = yyvsp[-1].warnclause; ;}
+    break;
+
+  case 109:
+
+    {      
      llassert (exprNode_knownStringValue (yyvsp[0].expr));
      yyval.warnclause = warnClause_create (yyvsp[-2].tok, yyvsp[-1].flagspec, cstring_copy (multiVal_forceString (exprNode_getValue (yyvsp[0].expr)))); 
      exprNode_free (yyvsp[0].expr);
      llassert (exprNode_knownStringValue (yyvsp[0].expr));
      yyval.warnclause = warnClause_create (yyvsp[-2].tok, yyvsp[-1].flagspec, cstring_copy (multiVal_forceString (exprNode_getValue (yyvsp[0].expr)))); 
      exprNode_free (yyvsp[0].expr);
-   ;
-    break;}
-case 109:
-{ yyval.warnclause = warnClause_create (yyvsp[-1].tok, yyvsp[0].flagspec, cstring_undefined); ;
-    break;}
-case 110:
-{ yyval.globset = globSet_single (yyvsp[0].sr); ;
-    break;}
-case 111:
-{ yyval.globset = globSet_insert (yyvsp[-2].globset, yyvsp[0].sr); ;
-    break;}
-case 112:
-{ yyval.sr = clabstract_createGlobal (yyvsp[0].sr, yyvsp[-1].tquallist); ;
-    break;}
-case 113:
-{ yyval.tquallist = qualList_undefined; ;
-    break;}
-case 114:
-{ yyval.tquallist = qualList_add (yyvsp[0].tquallist, yyvsp[-1].typequal); ;
-    break;}
-case 115:
-{ yyval.sr = uentry_getSref (yyvsp[0].entry); ;
-    break;}
-case 116:
-{ yyval.sr = clabstract_unrecognizedGlobal (yyvsp[0].cname); ;
-    break;}
-case 117:
-{ yyval.sr = clabstract_checkGlobal (yyvsp[0].expr); ;
-    break;}
-case 118:
-{ yyval.typequal = qual_createUndef (); ;
-    break;}
-case 119:
-{ yyval.typequal = qual_createKilled (); ;
-    break;}
-case 120:
-{ yyval.typequal = qual_createOut (); ;
-    break;}
-case 121:
-{ yyval.typequal = qual_createIn (); ;
-    break;}
-case 122:
-{ yyval.typequal = qual_createPartial (); ;
-    break;}
-case 130:
-{ 
+   ;}
+    break;
+
+  case 110:
+
+    { yyval.warnclause = warnClause_create (yyvsp[-1].tok, yyvsp[0].flagspec, cstring_undefined); ;}
+    break;
+
+  case 111:
+
+    { yyval.globset = globSet_single (yyvsp[0].sr); ;}
+    break;
+
+  case 112:
+
+    { yyval.globset = globSet_insert (yyvsp[-2].globset, yyvsp[0].sr); ;}
+    break;
+
+  case 113:
+
+    { yyval.sr = clabstract_createGlobal (yyvsp[0].sr, yyvsp[-1].tquallist); ;}
+    break;
+
+  case 114:
+
+    { yyval.tquallist = qualList_undefined; ;}
+    break;
+
+  case 115:
+
+    { yyval.tquallist = qualList_add (yyvsp[0].tquallist, yyvsp[-1].typequal); ;}
+    break;
+
+  case 116:
+
+    { yyval.sr = uentry_getSref (yyvsp[0].entry); ;}
+    break;
+
+  case 117:
+
+    { yyval.sr = clabstract_unrecognizedGlobal (yyvsp[0].cname); ;}
+    break;
+
+  case 118:
+
+    { yyval.sr = clabstract_checkGlobal (yyvsp[0].expr); ;}
+    break;
+
+  case 119:
+
+    { yyval.typequal = qual_createUndef (); ;}
+    break;
+
+  case 120:
+
+    { yyval.typequal = qual_createKilled (); ;}
+    break;
+
+  case 121:
+
+    { yyval.typequal = qual_createOut (); ;}
+    break;
+
+  case 122:
+
+    { yyval.typequal = qual_createIn (); ;}
+    break;
+
+  case 123:
+
+    { yyval.typequal = qual_createPartial (); ;}
+    break;
+
+  case 131:
+
+    { 
      /**!!! deal with fred; fred (int); declarations! **/
      qtype qint = qtype_create (ctype_int); 
      yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint);
      qtype_free (qint);
      /**!!! deal with fred; fred (int); declarations! **/
      qtype qint = qtype_create (ctype_int); 
      yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint);
      qtype_free (qint);
-   ;
-    break;}
-case 131:
-{ yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ;
-    break;}
-case 132:
-{ checkDoneParams (); context_enterInnerContext (); ;
-    break;}
-case 133:
-{  
+   ;}
+    break;
+
+  case 132:
+
+    { yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ;}
+    break;
+
+  case 133:
+
+    { checkDoneParams (); context_enterInnerContext (); ;}
+    break;
+
+  case 134:
+
+    {  
      exprNode_checkFunctionBody (yyvsp[0].expr); yyval.expr = yyvsp[0].expr; 
      context_exitInner (yyvsp[0].expr); 
      exprNode_checkFunctionBody (yyvsp[0].expr); yyval.expr = yyvsp[0].expr; 
      context_exitInner (yyvsp[0].expr); 
-   ;
-    break;}
-case 134:
-{ context_enterOldStyleScope (); ;
-    break;}
-case 135:
-{ oldStyleDoneParams (); context_enterInnerContext (); ;
-    break;}
-case 136:
-{
+   ;}
+    break;
+
+  case 135:
+
+    { context_enterOldStyleScope (); ;}
+    break;
+
+  case 136:
+
+    { oldStyleDoneParams (); context_enterInnerContext (); ;}
+    break;
+
+  case 137:
+
+    {
      exprNode_checkFunctionBody (yyvsp[0].expr); 
      yyval.expr = yyvsp[0].expr; /* oldstyle */ 
      context_exitInner (yyvsp[0].expr);
      exprNode_checkFunctionBody (yyvsp[0].expr); 
      yyval.expr = yyvsp[0].expr; /* oldstyle */ 
      context_exitInner (yyvsp[0].expr);
-   ;
-    break;}
-case 137:
-{ 
+   ;}
+    break;
+
+  case 138:
+
+    { 
      context_setFunctionDefined (exprNode_loc (yyvsp[0].expr)); 
      exprNode_checkFunction (context_getHeader (),  yyvsp[0].expr); 
      /* DRL 8 8 2000 */
      
      context_exitFunction ();
      context_setFunctionDefined (exprNode_loc (yyvsp[0].expr)); 
      exprNode_checkFunction (context_getHeader (),  yyvsp[0].expr); 
      /* DRL 8 8 2000 */
      
      context_exitFunction ();
-   ;
-    break;}
-case 138:
-{ yyval.srset = yyvsp[-1].srset; ;
-    break;}
-case 139:
-{ yyval.srset = sRefSet_new (); ;
-    break;}
-case 140:
-{ yyval.sr = uentry_getSref (yyvsp[0].entry); checkModifiesId (yyvsp[0].entry); ;
-    break;}
-case 141:
-{ yyval.sr = fixModifiesId (yyvsp[0].cname); ;
-    break;}
-case 142:
-{ yyval.sr = fixModifiesId (yyvsp[0].cname); ;
-    break;}
-case 143:
-{ yyval.sr = modListArrayFetch (yyvsp[-2].sr, sRef_undefined); ;
-    break;}
-case 144:
-{ yyval.sr = modListArrayFetch (yyvsp[-3].sr, yyvsp[-1].sr); ;
-    break;}
-case 145:
-{ yyval.sr = modListPointer (yyvsp[0].sr); ;
-    break;}
-case 146:
-{ yyval.sr = yyvsp[-1].sr; ;
-    break;}
-case 147:
-{ yyval.sr = modListFieldAccess (yyvsp[-2].sr, yyvsp[0].cname); ;
-    break;}
-case 148:
-{ yyval.sr = modListArrowAccess (yyvsp[-2].sr, yyvsp[0].cname); ;
-    break;}
-case 149:
-{ yyval.sr = yyvsp[0].sr; ;
-    break;}
-case 150:
-{ yyval.sr = sRef_makeUnknown (); /* sRef_makeConstant ($1); ? */ ;
-    break;}
-case 151:
-{ yyval.srset = sRefSet_single (yyvsp[0].sr); ;
-    break;}
-case 152:
-{ yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr); ;
-    break;}
-case 153:
-{ yyval.sr = checkStateClausesId (yyvsp[0].entry); ;
-    break;}
-case 154:
-{ yyval.sr = fixStateClausesId (yyvsp[0].cname); ;
-    break;}
-case 155:
-{ yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-2].sr); ;
-    break;}
-case 156:
-{ yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-3].sr); ;
-    break;}
-case 157:
-{ yyval.sr = sRef_constructPointer (yyvsp[0].sr); ;
-    break;}
-case 158:
-{ yyval.sr = yyvsp[-1].sr; ;
-    break;}
-case 159:
-{ cstring_markOwned (yyvsp[0].cname);
-                                           yyval.sr = sRef_buildField (yyvsp[-2].sr, yyvsp[0].cname); ;
-    break;}
-case 160:
-{ cstring_markOwned (yyvsp[0].cname);
-                                            yyval.sr = sRef_makeArrow (yyvsp[-2].sr, yyvsp[0].cname); ;
-    break;}
-case 161:
-{ DPRINTF ((message("Empty optSpecClauseList") )); yyval.srset = sRefSet_undefined ;
-    break;}
-case 163:
-{ if (sRef_isValid (yyvsp[0].sr)) { yyval.srset = sRefSet_single (yyvsp[0].sr); } 
+   ;}
+    break;
+
+  case 139:
+
+    { yyval.srset = yyvsp[-1].srset; ;}
+    break;
+
+  case 140:
+
+    { yyval.srset = sRefSet_new (); ;}
+    break;
+
+  case 141:
+
+    { yyval.sr = uentry_getSref (yyvsp[0].entry); checkModifiesId (yyvsp[0].entry); ;}
+    break;
+
+  case 142:
+
+    { yyval.sr = fixModifiesId (yyvsp[0].cname); ;}
+    break;
+
+  case 143:
+
+    { yyval.sr = fixModifiesId (yyvsp[0].cname); ;}
+    break;
+
+  case 144:
+
+    { yyval.sr = modListArrayFetch (yyvsp[-2].sr, sRef_undefined); ;}
+    break;
+
+  case 145:
+
+    { yyval.sr = modListArrayFetch (yyvsp[-3].sr, yyvsp[-1].sr); ;}
+    break;
+
+  case 146:
+
+    { yyval.sr = modListPointer (yyvsp[0].sr); ;}
+    break;
+
+  case 147:
+
+    { yyval.sr = yyvsp[-1].sr; ;}
+    break;
+
+  case 148:
+
+    { yyval.sr = modListFieldAccess (yyvsp[-2].sr, yyvsp[0].cname); ;}
+    break;
+
+  case 149:
+
+    { yyval.sr = modListArrowAccess (yyvsp[-2].sr, yyvsp[0].cname); ;}
+    break;
+
+  case 150:
+
+    { yyval.sr = yyvsp[0].sr; ;}
+    break;
+
+  case 151:
+
+    { yyval.sr = sRef_makeUnknown (); /* sRef_makeConstant ($1); ? */ ;}
+    break;
+
+  case 152:
+
+    { yyval.srset = sRefSet_single (yyvsp[0].sr); ;}
+    break;
+
+  case 153:
+
+    { yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr); ;}
+    break;
+
+  case 154:
+
+    { yyval.sr = checkStateClausesId (yyvsp[0].entry); ;}
+    break;
+
+  case 155:
+
+    { yyval.sr = fixStateClausesId (yyvsp[0].cname); ;}
+    break;
+
+  case 156:
+
+    { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-2].sr); ;}
+    break;
+
+  case 157:
+
+    { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-3].sr); ;}
+    break;
+
+  case 158:
+
+    { yyval.sr = sRef_constructPointer (yyvsp[0].sr); ;}
+    break;
+
+  case 159:
+
+    { yyval.sr = yyvsp[-1].sr; ;}
+    break;
+
+  case 160:
+
+    { cstring_markOwned (yyvsp[0].cname);
+                                           yyval.sr = sRef_buildField (yyvsp[-2].sr, yyvsp[0].cname); ;}
+    break;
+
+  case 161:
+
+    { cstring_markOwned (yyvsp[0].cname);
+                                            yyval.sr = sRef_makeArrow (yyvsp[-2].sr, yyvsp[0].cname); ;}
+    break;
+
+  case 162:
+
+    { DPRINTF ((message("Empty optSpecClauseList") )); yyval.srset = sRefSet_undefined ;}
+    break;
+
+  case 164:
+
+    { if (sRef_isValid (yyvsp[0].sr)) { yyval.srset = sRefSet_single (yyvsp[0].sr); } 
       else {
        DPRINTF((message("returning sRefSEt_undefined ")  ));
        yyval.srset = sRefSet_undefined; } 
       else {
        DPRINTF((message("returning sRefSEt_undefined ")  ));
        yyval.srset = sRefSet_undefined; } 
-    ;
-    break;}
-case 164:
-{ if (sRef_isValid (yyvsp[0].sr))
+    ;}
+    break;
+
+  case 165:
+
+    { if (sRef_isValid (yyvsp[0].sr))
        {
          yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr); 
        }
        {
          yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr); 
        }
@@ -4112,442 +4847,700 @@ case 164:
        {
          yyval.srset = yyvsp[-2].srset;
        }
        {
          yyval.srset = yyvsp[-2].srset;
        }
-    ;
-    break;}
-case 165:
-{ yyval.expr = exprNode_fromIdentifier (yyvsp[0].entry); ;
-    break;}
-case 166:
-{ yyval.expr = exprNode_fromUIO (yyvsp[0].cname); ;
-    break;}
-case 168:
-{ yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
-    break;}
-case 169:
-{ yyval.expr = exprNode_fromIdentifier (cscannerHelp_coerceId (yyvsp[0].cname)); ;
-    break;}
-case 170:
-{ yyval.expr = exprNode_makeError (); ;
-    break;}
-case 171:
-{ exprChecks_inCompoundStatementExpression (); ;
-    break;}
-case 172:
-{ exprChecks_leaveCompoundStatementExpression (); yyval.expr = exprNode_compoundStatementExpression (yyvsp[-3].tok, yyvsp[-1].expr); ;
-    break;}
-case 174:
-{ yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ;
-    break;}
-case 175:
-{ yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ;
-    break;}
-case 176:
-{ yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].exprlist); ;
-    break;}
-case 177:
-{ yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ;
-    break;}
-case 178:
-{ yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
-    break;}
-case 179:
-{ yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
-    break;}
-case 180:
-{ yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
-    break;}
-case 181:
-{ yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
-    break;}
-case 182:
-{ /* added for C99 */ yyval.expr = exprNode_undefined; /*@i87 no checking */ ;
-    break;}
-case 183:
-{ yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
-    break;}
-case 184:
-{ yyval.exprlist = exprNodeList_push (yyvsp[-2].exprlist, yyvsp[0].expr); ;
-    break;}
-case 186:
-{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 187:
-{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 188:
-{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 189:
-{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 190:
-{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 191:
-{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 192:
-{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 193:
-{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 194:
-{ yyval.expr = yyvsp[-1].expr; ;
-    break;}
-case 195:
-{ yyval.expr = yyvsp[0].expr; ;
-    break;}
-case 196:
-{ yyval.cstringlist = cstringList_add (yyvsp[-2].cstringlist, yyvsp[0].cname); lltok_free (yyvsp[-1].tok); ;
-    break;}
-case 197:
-{ yyval.cstringlist = yyvsp[-3].cstringlist; lltok_free2 (yyvsp[-2].tok, yyvsp[0].tok); ;
-    break;}
-case 198:
-{ yyval.cstringlist = cstringList_single (yyvsp[0].cname); ;
-    break;}
-case 199:
-{ yyval.expr = exprNode_offsetof (yyvsp[-5].qtyp, yyvsp[-2].cstringlist); 
-     lltok_free3 (yyvsp[-8].tok, yyvsp[-6].tok, yyvsp[-3].tok); lltok_free (yyvsp[-1].tok); ;
-    break;}
-case 200:
-{ context_setProtectVars (); ;
-    break;}
-case 201:
-{ context_sizeofReleaseVars (); yyval.expr = yyvsp[0].expr; ;
-    break;}
-case 202:
-{context_enterSizeof();
-    break;}
-case 203:
-{context_leaveSizeof();
-    break;}
-case 204:
-{ yyval.expr = exprNode_sizeofType (yyvsp[-1].qtyp); lltok_free3 (yyvsp[-3].tok, yyvsp[-2].tok, yyvsp[0].tok);  ;
-    break;}
-case 205:
-{ yyval.expr = exprNode_sizeofExpr (yyvsp[0].expr); lltok_free (yyvsp[-1].tok); ;
-    break;}
-case 206:
-{ yyval.expr = exprNode_alignofType (yyvsp[-1].qtyp); lltok_free3 (yyvsp[-3].tok, yyvsp[-2].tok, yyvsp[0].tok); ;
-    break;}
-case 207:
-{ yyval.expr = exprNode_alignofExpr (yyvsp[0].expr); lltok_free (yyvsp[-1].tok); ;
-    break;}
-case 209:
-{ yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); lltok_free (yyvsp[-1].tok); ;
-    break;}
-case 211:
-{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 212:
-{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 213:
-{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 215:
-{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 216:
-{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 218:
-{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 219:
-{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 221:
-{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 222:
-{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 223:
-{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 224:
-{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 226:
-{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 227:
-{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 229:
-{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 231:
-{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 233:
-{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 235:
-{ exprNode_produceGuards (yyvsp[-1].expr); 
+    ;}
+    break;
+
+  case 166:
+
+    { yyval.expr = exprNode_fromIdentifier (yyvsp[0].entry); ;}
+    break;
+
+  case 167:
+
+    { yyval.expr = exprNode_fromUIO (yyvsp[0].cname); ;}
+    break;
+
+  case 169:
+
+    { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;}
+    break;
+
+  case 170:
+
+    { yyval.expr = exprNode_fromIdentifier (cscannerHelp_coerceId (yyvsp[0].cname)); ;}
+    break;
+
+  case 171:
+
+    { yyval.expr = exprNode_makeError (); ;}
+    break;
+
+  case 172:
+
+    { exprChecks_inCompoundStatementExpression (); ;}
+    break;
+
+  case 173:
+
+    { exprChecks_leaveCompoundStatementExpression (); yyval.expr = exprNode_compoundStatementExpression (yyvsp[-3].tok, yyvsp[-1].expr); ;}
+    break;
+
+  case 175:
+
+    { yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ;}
+    break;
+
+  case 176:
+
+    { yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ;}
+    break;
+
+  case 177:
+
+    { yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].exprlist); ;}
+    break;
+
+  case 178:
+
+    { yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ;}
+    break;
+
+  case 179:
+
+    { yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;}
+    break;
+
+  case 180:
+
+    { yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;}
+    break;
+
+  case 181:
+
+    { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;}
+    break;
+
+  case 182:
+
+    { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;}
+    break;
+
+  case 183:
+
+    { /* added for C99 */ yyval.expr = exprNode_undefined; /*@i87 no checking */ ;}
+    break;
+
+  case 184:
+
+    { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;}
+    break;
+
+  case 185:
+
+    { yyval.exprlist = exprNodeList_push (yyvsp[-2].exprlist, yyvsp[0].expr); ;}
+    break;
+
+  case 187:
+
+    { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 188:
+
+    { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 189:
+
+    { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 190:
+
+    { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 191:
+
+    { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 192:
+
+    { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 193:
+
+    { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 194:
+
+    { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 195:
+
+    { yyval.expr = yyvsp[-1].expr; ;}
+    break;
+
+  case 196:
+
+    { yyval.expr = yyvsp[0].expr; ;}
+    break;
+
+  case 197:
+
+    { yyval.cstringlist = cstringList_add (yyvsp[-2].cstringlist, yyvsp[0].cname); lltok_free (yyvsp[-1].tok); ;}
+    break;
+
+  case 198:
+
+    { yyval.cstringlist = yyvsp[-3].cstringlist; lltok_free2 (yyvsp[-2].tok, yyvsp[0].tok); ;}
+    break;
+
+  case 199:
+
+    { yyval.cstringlist = cstringList_single (yyvsp[0].cname); ;}
+    break;
+
+  case 200:
+
+    { yyval.expr = exprNode_offsetof (yyvsp[-5].qtyp, yyvsp[-2].cstringlist); 
+     lltok_free3 (yyvsp[-8].tok, yyvsp[-6].tok, yyvsp[-3].tok); lltok_free (yyvsp[-1].tok); ;}
+    break;
+
+  case 201:
+
+    { context_setProtectVars (); ;}
+    break;
+
+  case 202:
+
+    { context_sizeofReleaseVars (); yyval.expr = yyvsp[0].expr; ;}
+    break;
+
+  case 203:
+
+    {context_enterSizeof();}
+    break;
+
+  case 204:
+
+    {context_leaveSizeof();}
+    break;
+
+  case 205:
+
+    { yyval.expr = exprNode_sizeofType (yyvsp[-1].qtyp); lltok_free3 (yyvsp[-3].tok, yyvsp[-2].tok, yyvsp[0].tok);  ;}
+    break;
+
+  case 206:
+
+    { yyval.expr = exprNode_sizeofExpr (yyvsp[0].expr); lltok_free (yyvsp[-1].tok); ;}
+    break;
+
+  case 207:
+
+    { yyval.expr = exprNode_alignofType (yyvsp[-1].qtyp); lltok_free3 (yyvsp[-3].tok, yyvsp[-2].tok, yyvsp[0].tok); ;}
+    break;
+
+  case 208:
+
+    { yyval.expr = exprNode_alignofExpr (yyvsp[0].expr); lltok_free (yyvsp[-1].tok); ;}
+    break;
+
+  case 210:
+
+    { yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); lltok_free (yyvsp[-1].tok); ;}
+    break;
+
+  case 212:
+
+    { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 213:
+
+    { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 214:
+
+    { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 216:
+
+    { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 217:
+
+    { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 219:
+
+    { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 220:
+
+    { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 222:
+
+    { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 223:
+
+    { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 224:
+
+    { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 225:
+
+    { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 227:
+
+    { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 228:
+
+    { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 230:
+
+    { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 232:
+
+    { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 234:
+
+    { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 236:
+
+    { exprNode_produceGuards (yyvsp[-1].expr); 
      context_enterAndClause (yyvsp[-1].expr); 
      context_enterAndClause (yyvsp[-1].expr); 
-   ;
-    break;}
-case 236:
-{ 
+   ;}
+    break;
+
+  case 237:
+
+    { 
      yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok); 
      context_exitAndClause (yyval.expr, yyvsp[0].expr);
      yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok); 
      context_exitAndClause (yyval.expr, yyvsp[0].expr);
-   ;
-    break;}
-case 238:
-{ 
+   ;}
+    break;
+
+  case 239:
+
+    { 
      exprNode_produceGuards (yyvsp[-1].expr);
      context_enterOrClause (yyvsp[-1].expr); 
      exprNode_produceGuards (yyvsp[-1].expr);
      context_enterOrClause (yyvsp[-1].expr); 
-   ;
-    break;}
-case 239:
-{ 
+   ;}
+    break;
+
+  case 240:
+
+    { 
      yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok); 
      context_exitOrClause (yyval.expr, yyvsp[0].expr);
      yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok); 
      context_exitOrClause (yyval.expr, yyvsp[0].expr);
-   ;
-    break;}
-case 241:
-{ exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr); ;
-    break;}
-case 242:
-{ context_enterFalseClause (yyvsp[-4].expr); ;
-    break;}
-case 243:
-{ yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); context_exitClause (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ;
-    break;}
-case 245:
-{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 246:
-{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 247:
-{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 248:
-{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 249:
-{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 250:
-{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 251:
-{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 252:
-{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 253:
-{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 254:
-{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 255:
-{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 257:
-{ yyval.expr = exprNode_comma (yyvsp[-2].expr, yyvsp[0].expr); ;
-    break;}
-case 258:
-{ yyval.expr = exprNode_undefined; ;
-    break;}
-case 261:
-{ yyval.expr = yyvsp[0].expr; ;
-    break;}
-case 262:
-{ doVaDcl (); yyval.expr = exprNode_makeError (); ;
-    break;}
-case 263:
-{ yyval.expr = exprNode_makeError (); ;
-    break;}
-case 264:
-{ yyval.expr = exprNode_makeError (); ;
-    break;}
-case 265:
-{
-     setProcessingVars (yyvsp[-3].qtyp); 
-     processNamedDecl (yyvsp[-1].ntyp); 
-   ;
-    break;}
-case 266:
-{ 
-     unsetProcessingVars (); 
-     yyval.expr = exprNode_makeEmptyInitialization (yyvsp[-6].ntyp); 
-     DPRINTF (("Empty initialization: %s", exprNode_unparse (yyval.expr)));
-   ;
-    break;}
-case 267:
-{ setProcessingVars (yyvsp[-4].qtyp); processNamedDecl (yyvsp[-2].ntyp); ;
-    break;}
-case 268:
-{ yyval.expr = exprNode_concat (yyvsp[-2].expr, exprNode_makeInitialization (yyvsp[-8].ntyp, yyvsp[-3].expr)); 
-     unsetProcessingVars ();
-   ;
-    break;}
-case 269:
-{ yyval.expr = yyvsp[0].expr; ;
-    break;}
-case 270:
-{ yyval.expr = exprNode_fromIdentifier (usymtab_getTypeEntry (ctype_typeId (yyvsp[0].ctyp))); ;
-    break;}
-case 271:
-{ 
-     processNamedDecl (yyvsp[-1].ntyp); 
-     yyval.expr = exprNode_makeEmptyInitialization (yyvsp[-1].ntyp);
-   ;
-    break;}
-case 272:
-{ processNamedDecl (yyvsp[-2].ntyp); ;
-    break;}
-case 273:
-{ yyval.expr = exprNode_makeInitialization (yyvsp[-5].ntyp, yyvsp[0].expr); ;
-    break;}
-case 274:
-{ setProcessingTypedef (yyvsp[0].qtyp); ;
-    break;}
-case 275:
-{ clabstract_declareType (yyvsp[-3].exprlist, yyvsp[-1].warnclause); ;
-    break;}
-case 276:
-{ /* in the ANSI grammar, semantics unclear */ ;
-    break;}
-case 277:
-{ /* in the ANSI grammar, semantics unclear */ ;
-    break;}
-case 278:
-{ cscannerHelp_setExpectingTypeName (); ;
-    break;}
-case 279:
-{ cscannerHelp_setExpectingTypeName (); context_pushLoc (); ;
-    break;}
-case 280:
-{ yyval.exprlist = yyvsp[-1].exprlist; ;
-    break;}
-case 281:
-{ yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
-    break;}
-case 282:
-{ yyval.exprlist = exprNodeList_push (yyvsp[-3].exprlist, yyvsp[0].expr); ;
-    break;}
-case 283:
-{ yyval.exprlist = yyvsp[-1].exprlist; ;
-    break;}
-case 284:
-{ yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
-    break;}
-case 285:
-{ yyval.exprlist = exprNodeList_push (yyvsp[-3].exprlist, yyvsp[0].expr); ;
-    break;}
-case 286:
-{ yyval.expr = exprNode_makeError (); ;
-    break;}
-case 287:
-{ yyval.expr = exprNode_concat (yyvsp[-3].expr, yyvsp[0].expr); ;
-    break;}
-case 289:
-{ yyval.expr = exprNode_makeInitBlock (yyvsp[-2].tok, yyvsp[-1].exprlist); lltok_free (yyvsp[0].tok); ;
-    break;}
-case 290:
-{ yyval.expr = exprNode_makeInitBlock (yyvsp[-3].tok, yyvsp[-2].exprlist); lltok_free2 (yyvsp[-1].tok, yyvsp[0].tok); ;
-    break;}
-case 291:
-{ yyval.expr = exprNode_undefined; ;
-    break;}
-case 292:
-{ yyval.expr = yyvsp[-1].expr; ;
-    break;}
-case 293:
-{ yyval.expr = exprNode_undefined; 
-                                     /* gcc extension, obsolete since 2.5 */ ;
-    break;}
-case 294:
-{ yyval.expr = exprNode_undefined; ;
-    break;}
-case 295:
-{ yyval.expr = exprNode_undefined; ;
-    break;}
-case 296:
-{ yyval.expr = exprNode_undefined; ;
-    break;}
-case 297:
-{ yyval.expr = exprNode_undefined; ;
-    break;}
-case 298:
-{ yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
-    break;}
-case 299:
-{ yyval.exprlist = exprNodeList_push (yyvsp[-2].exprlist, yyvsp[0].expr); ;
-    break;}
-case 300:
-{ setStorageClass (SCEXTERN); yyval.typequal = qual_createExtern (); ;
-    break;}
-case 301:
-{ yyval.typequal = qual_createInline (); ;
-    break;}
-case 302:
-{ setStorageClass (SCSTATIC); yyval.typequal = qual_createStatic (); ;
-    break;}
-case 303:
-{ yyval.typequal = qual_createAuto (); ;
-    break;}
-case 304:
-{ yyval.typequal = qual_createRegister (); ;
-    break;}
-case 305:
-{ yyval.stateclause = yyvsp[-1].stateclause; ;
-    break;}
-case 306:
-{
-     context_setProtectVars (); 
-     enterParamsTemp (); 
+   ;}
+    break;
+
+  case 242:
+
+    { exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr); ;}
+    break;
+
+  case 243:
+
+    { context_enterFalseClause (yyvsp[-4].expr); ;}
+    break;
+
+  case 244:
+
+    { yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); context_exitClause (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ;}
+    break;
+
+  case 246:
+
+    { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 247:
+
+    { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 248:
+
+    { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 249:
+
+    { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 250:
+
+    { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 251:
+
+    { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 252:
+
+    { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 253:
+
+    { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 254:
+
+    { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 255:
+
+    { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 256:
+
+    { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 258:
+
+    { yyval.expr = exprNode_comma (yyvsp[-2].expr, yyvsp[0].expr); ;}
+    break;
+
+  case 259:
+
+    { yyval.expr = exprNode_undefined; ;}
+    break;
+
+  case 262:
+
+    { yyval.expr = yyvsp[0].expr; ;}
+    break;
+
+  case 263:
+
+    { doVaDcl (); yyval.expr = exprNode_makeError (); ;}
+    break;
+
+  case 264:
+
+    { yyval.expr = exprNode_makeError (); ;}
+    break;
+
+  case 265:
+
+    { yyval.expr = exprNode_makeError (); ;}
+    break;
+
+  case 266:
+
+    {
+     setProcessingVars (yyvsp[-3].qtyp); 
+     processNamedDecl (yyvsp[-1].ntyp); 
+   ;}
+    break;
+
+  case 267:
+
+    { 
+     unsetProcessingVars (); 
+     yyval.expr = exprNode_makeEmptyInitialization (yyvsp[-6].ntyp); 
+     DPRINTF (("Empty initialization: %s", exprNode_unparse (yyval.expr)));
+   ;}
+    break;
+
+  case 268:
+
+    { setProcessingVars (yyvsp[-4].qtyp); processNamedDecl (yyvsp[-2].ntyp); ;}
+    break;
+
+  case 269:
+
+    { yyval.expr = exprNode_concat (yyvsp[-2].expr, exprNode_makeInitialization (yyvsp[-8].ntyp, yyvsp[-3].expr)); 
+     unsetProcessingVars ();
+   ;}
+    break;
+
+  case 270:
+
+    { yyval.expr = yyvsp[0].expr; ;}
+    break;
+
+  case 271:
+
+    { yyval.expr = exprNode_fromIdentifier (usymtab_getTypeEntry (ctype_typeId (yyvsp[0].ctyp))); ;}
+    break;
+
+  case 272:
+
+    { 
+     processNamedDecl (yyvsp[-1].ntyp); 
+     yyval.expr = exprNode_makeEmptyInitialization (yyvsp[-1].ntyp);
+   ;}
+    break;
+
+  case 273:
+
+    { processNamedDecl (yyvsp[-2].ntyp); ;}
+    break;
+
+  case 274:
+
+    { yyval.expr = exprNode_makeInitialization (yyvsp[-5].ntyp, yyvsp[0].expr); ;}
+    break;
+
+  case 275:
+
+    { setProcessingTypedef (yyvsp[0].qtyp); ;}
+    break;
+
+  case 276:
+
+    { clabstract_declareType (yyvsp[-3].exprlist, yyvsp[-1].warnclause); ;}
+    break;
+
+  case 277:
+
+    { /* in the ANSI grammar, semantics unclear */ ;}
+    break;
+
+  case 278:
+
+    { /* in the ANSI grammar, semantics unclear */ ;}
+    break;
+
+  case 279:
+
+    { cscannerHelp_setExpectingTypeName (); ;}
+    break;
+
+  case 280:
+
+    { cscannerHelp_setExpectingTypeName (); context_pushLoc (); ;}
+    break;
+
+  case 281:
+
+    { yyval.exprlist = yyvsp[-1].exprlist; ;}
+    break;
+
+  case 282:
+
+    { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;}
+    break;
+
+  case 283:
+
+    { yyval.exprlist = exprNodeList_push (yyvsp[-3].exprlist, yyvsp[0].expr); ;}
+    break;
+
+  case 284:
+
+    { yyval.exprlist = yyvsp[-1].exprlist; ;}
+    break;
+
+  case 285:
+
+    { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;}
+    break;
+
+  case 286:
+
+    { yyval.exprlist = exprNodeList_push (yyvsp[-3].exprlist, yyvsp[0].expr); ;}
+    break;
+
+  case 287:
+
+    { yyval.expr = exprNode_makeError (); ;}
+    break;
+
+  case 288:
+
+    { yyval.expr = exprNode_concat (yyvsp[-3].expr, yyvsp[0].expr); ;}
+    break;
+
+  case 290:
+
+    { yyval.expr = exprNode_makeInitBlock (yyvsp[-2].tok, yyvsp[-1].exprlist); lltok_free (yyvsp[0].tok); ;}
+    break;
+
+  case 291:
+
+    { yyval.expr = exprNode_makeInitBlock (yyvsp[-3].tok, yyvsp[-2].exprlist); lltok_free2 (yyvsp[-1].tok, yyvsp[0].tok); ;}
+    break;
+
+  case 292:
+
+    { yyval.expr = exprNode_undefined; ;}
+    break;
+
+  case 293:
+
+    { yyval.expr = yyvsp[-1].expr; ;}
+    break;
+
+  case 294:
+
+    { yyval.expr = exprNode_undefined; 
+                                     /* gcc extension, obsolete since 2.5 */ ;}
+    break;
+
+  case 295:
+
+    { yyval.expr = exprNode_undefined; ;}
+    break;
+
+  case 296:
+
+    { yyval.expr = exprNode_undefined; ;}
+    break;
+
+  case 297:
+
+    { yyval.expr = exprNode_undefined; ;}
+    break;
+
+  case 298:
+
+    { yyval.expr = exprNode_undefined; ;}
+    break;
+
+  case 299:
+
+    { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;}
+    break;
+
+  case 300:
+
+    { yyval.exprlist = exprNodeList_push (yyvsp[-2].exprlist, yyvsp[0].expr); ;}
+    break;
+
+  case 301:
+
+    { setStorageClass (SCEXTERN); yyval.typequal = qual_createExtern (); ;}
+    break;
+
+  case 302:
+
+    { yyval.typequal = qual_createInline (); ;}
+    break;
+
+  case 303:
+
+    { setStorageClass (SCSTATIC); yyval.typequal = qual_createStatic (); ;}
+    break;
+
+  case 304:
+
+    { yyval.typequal = qual_createAuto (); ;}
+    break;
+
+  case 305:
+
+    { yyval.typequal = qual_createRegister (); ;}
+    break;
+
+  case 306:
+
+    { yyval.stateclause = yyvsp[-1].stateclause; ;}
+    break;
+
+  case 307:
+
+    {
+     context_setProtectVars (); 
+     enterParamsTemp (); 
      sRef_setGlobalScopeSafe (); 
      sRef_setGlobalScopeSafe (); 
-   ;
-    break;}
-case 307:
-{ 
+   ;}
+    break;
+
+  case 308:
+
+    { 
      exitParamsTemp ();
      sRef_clearGlobalScopeSafe (); 
      context_releaseVars ();
      yyval.stateclause = stateClause_createPlain (yyvsp[-5].tok, yyvsp[-2].srset);
      exitParamsTemp ();
      sRef_clearGlobalScopeSafe (); 
      context_releaseVars ();
      yyval.stateclause = stateClause_createPlain (yyvsp[-5].tok, yyvsp[-2].srset);
-   ;
-    break;}
-case 308:
-{ yyval.funcclause = yyvsp[-1].funcclause; ;
-    break;}
-case 309:
-{ yyval.tok = yyvsp[-1].tok; context_enterFunctionHeader (); ;
-    break;}
-case 310:
-{
+   ;}
+    break;
+
+  case 309:
+
+    { yyval.funcclause = yyvsp[-1].funcclause; ;}
+    break;
+
+  case 310:
+
+    { yyval.tok = yyvsp[-1].tok; context_enterFunctionHeader (); ;}
+    break;
+
+  case 311:
+
+    {
      context_exitFunctionHeader ();
      context_setProtectVars (); 
      enterParamsTemp (); 
      sRef_setGlobalScopeSafe (); 
      context_exitFunctionHeader ();
      context_setProtectVars (); 
      enterParamsTemp (); 
      sRef_setGlobalScopeSafe (); 
-   ;
-    break;}
-case 311:
-{ 
+   ;}
+    break;
+
+  case 312:
+
+    { 
      exitParamsTemp ();
      sRef_clearGlobalScopeSafe (); 
      context_releaseVars ();
      yyval.funcclause = functionClause_createState (stateClause_create (yyvsp[-5].tok, yyvsp[-4].typequal, yyvsp[-2].srset));
      exitParamsTemp ();
      sRef_clearGlobalScopeSafe (); 
      context_releaseVars ();
      yyval.funcclause = functionClause_createState (stateClause_create (yyvsp[-5].tok, yyvsp[-4].typequal, yyvsp[-2].srset));
-   ;
-    break;}
-case 312:
-{
+   ;}
+    break;
+
+  case 313:
+
+    {
      context_setProtectVars (); 
      enterParamsTemp (); 
      sRef_setGlobalScopeSafe (); 
      context_setProtectVars (); 
      enterParamsTemp (); 
      sRef_setGlobalScopeSafe (); 
-   ;
-    break;}
-case 313:
-{
+   ;}
+    break;
+
+  case 314:
+
+    {
      context_exitFunctionHeader ();
      exitParamsTemp ();
      sRef_clearGlobalScopeSafe (); 
      context_exitFunctionHeader ();
      exitParamsTemp ();
      sRef_clearGlobalScopeSafe (); 
@@ -4568,780 +5561,1262 @@ case 313:
        }
 
      DPRINTF (("FunctionclauseS: %s", functionClause_unparse (yyval.funcclause)));
        }
 
      DPRINTF (("FunctionclauseS: %s", functionClause_unparse (yyval.funcclause)));
-   ;
-    break;}
-case 314:
-{ yyval.fcnconstraint = functionConstraint_createBufferConstraint (yyvsp[0].conL); ;
-    break;}
-case 315:
-{ yyval.fcnconstraint = functionConstraint_createMetaStateConstraint (yyvsp[0].msconstraint); DPRINTF (("Made constraint: %s", functionConstraint_unparse (yyval.fcnconstraint))); ;
-    break;}
-case 316:
-{ yyval.typequal = qual_createExits (); ;
-    break;}
-case 317:
-{ yyval.typequal = qual_createMayExit (); ;
-    break;}
-case 318:
-{ yyval.typequal = qual_createTrueExit (); ;
-    break;}
-case 319:
-{ yyval.typequal = qual_createFalseExit (); ;
-    break;}
-case 320:
-{ yyval.typequal = qual_createNeverExit (); ;
-    break;}
-case 321:
-{ yyval.typequal = qual_createChecked (); ;
-    break;}
-case 322:
-{ yyval.typequal = qual_createCheckMod (); ;
-    break;}
-case 323:
-{ yyval.typequal = qual_createUnchecked (); ;
-    break;}
-case 324:
-{ yyval.typequal = qual_createCheckedStrict (); ;
-    break;}
-case 325:
-{ yyval.typequal = qual_createOwned (); ;
-    break;}
-case 326:
-{ yyval.typequal = qual_createDependent (); ;
-    break;}
-case 327:
-{ yyval.typequal = qual_createYield (); ;
-    break;}
-case 328:
-{ yyval.typequal = qual_createTemp (); ;
-    break;}
-case 329:
-{ yyval.typequal = qual_createOnly (); ;
-    break;}
-case 330:
-{ yyval.typequal = qual_createKeep (); ;
-    break;}
-case 331:
-{ yyval.typequal = qual_createKept (); ;
-    break;}
-case 332:
-{ yyval.typequal = qual_createShared (); ;
-    break;}
-case 333:
-{ yyval.typequal = qual_createUnique (); ;
-    break;}
-case 334:
-{ yyval.typequal = qual_createNull (); ;
-    break;}
-case 335:
-{ yyval.typequal = qual_createIsNull (); ;
-    break;}
-case 336:
-{ yyval.typequal = qual_createRelNull (); ;
-    break;}
-case 337:
-{ yyval.typequal = qual_createNotNull (); ;
-    break;}
-case 338:
-{ yyval.typequal = qual_createExposed (); ;
-    break;}
-case 339:
-{ yyval.typequal = qual_createObserver (); ;
-    break;}
-case 340:
-{ yyval.typequal = qual_createNullTerminated (); ;
-    break;}
-case 341:
-{ yyval.typequal = qual_createMetaState (yyvsp[0].annotation); ;
-    break;}
-case 342:
-{ yyval.typequal = qual_createReturned (); ;
-    break;}
-case 343:
-{ yyval.typequal = qual_createSef (); ;
-    break;}
-case 344:
-{ yyval.typequal = qual_createUnused (); ;
-    break;}
-case 345:
-{ yyval.typequal = qual_createExternal (); ;
-    break;}
-case 346:
-{ yyval.typequal = qual_createTrueNull (); ;
-    break;}
-case 347:
-{ yyval.typequal = qual_createFalseNull (); ;
-    break;}
-case 348:
-{ yyval.typequal = qual_createAbstract (); ;
-    break;}
-case 349:
-{ yyval.typequal = qual_createNumAbstract (); ;
-    break;}
-case 350:
-{ yyval.typequal = qual_createConcrete (); ;
-    break;}
-case 351:
-{ yyval.typequal = qual_createMutable (); ;
-    break;}
-case 352:
-{ yyval.typequal = qual_createImmutable (); ;
-    break;}
-case 353:
-{ yyval.typequal = qual_createRefCounted (); ;
-    break;}
-case 354:
-{ yyval.typequal = qual_createRefs (); ;
-    break;}
-case 355:
-{ yyval.typequal = qual_createKillRef (); ;
-    break;}
-case 356:
-{ yyval.typequal = qual_createRelDef (); ;
-    break;}
-case 357:
-{ yyval.typequal = qual_createNewRef (); ;
-    break;}
-case 358:
-{ yyval.typequal = qual_createTempRef (); ;
-    break;}
-case 359:
-{ yyval.typequal = qual_createShort (); ;
-    break;}
-case 360:
-{ yyval.typequal = qual_createLong (); ;
-    break;}
-case 361:
-{ yyval.typequal = qual_createSigned (); ;
-    break;}
-case 362:
-{ yyval.typequal = qual_createUnsigned (); ;
-    break;}
-case 363:
-{ yyval.typequal = qual_createOut (); ;
-    break;}
-case 364:
-{ yyval.typequal = qual_createIn (); ;
-    break;}
-case 365:
-{ yyval.typequal = qual_createPartial (); ;
-    break;}
-case 366:
-{ yyval.typequal = qual_createSpecial (); ;
-    break;}
-case 367:
-{ yyval.typequal = qual_createConst (); ;
-    break;}
-case 368:
-{ yyval.typequal = qual_createVolatile (); ;
-    break;}
-case 369:
-{ yyval.typequal = qual_createRestrict (); ;
-    break;}
-case 370:
-{ yyval.typequal = yyvsp[-1].typequal; ;
-    break;}
-case 371:
-{ yyval.typequal = yyvsp[-1].typequal; ;
-    break;}
-case 372:
-{ yyval.typequal = yyvsp[-1].typequal; ;
-    break;}
-case 373:
-{ yyval.typequal = yyvsp[-1].typequal; ;
-    break;}
-case 374:
-{ yyval.typequal = yyvsp[-1].typequal; ;
-    break;}
-case 375:
-{ yyval.typequal = yyvsp[-1].typequal; ;
-    break;}
-case 376:
-{ yyval.typequal = yyvsp[-1].typequal; ;
-    break;}
-case 377:
-{ yyval.typequal = yyvsp[-1].typequal; ;
-    break;}
-case 378:
-{ yyval.typequal = yyvsp[-1].typequal; ;
-    break;}
-case 385:
-{ yyval.ctyp = ctype_makeAnytype (); ;
-    break;}
-case 386:
-{ yyval.ctyp = ctype_anyintegral; ;
-    break;}
-case 387:
-{ yyval.ctyp = ctype_unsignedintegral; ;
-    break;}
-case 388:
-{ yyval.ctyp = ctype_signedintegral; ;
-    break;}
-case 392:
-{ yyval.ctyp = ctype_fromQual (yyvsp[-1].typequal); ;
-    break;}
-case 393:
-{ yyval.qtyp = qtype_resolve (yyvsp[-1].qtyp); ;
-    break;}
-case 394:
-{ yyval.qtyp = yyvsp[0].qtyp; ;
-    break;}
-case 395:
-{ yyval.qtyp = qtype_mergeAlt (yyvsp[-3].qtyp, yyvsp[-1].qtyp); ;
-    break;}
-case 397:
-{ yyval.qtyp = qtype_mergeAlt (yyvsp[-2].qtyp, yyvsp[0].qtyp); ;
-    break;}
-case 398:
-{ yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ;
-    break;}
-case 399:
-{ yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ;
-    break;}
-case 400:
-{ yyval.qtyp = qtype_combine (yyvsp[0].qtyp, yyvsp[-1].ctyp); ;
-    break;}
-case 401:
-{ yyval.qtyp = qtype_unknown (); ;
-    break;}
-case 402:
-{ yyval.qtyp = yyvsp[0].qtyp; ;
-    break;}
-case 403:
-{ yyval.conL = constraintList_undefined; ;
-    break;}
-case 404:
-{ sRef_setGlobalScopeSafe (); ;
-    break;}
-case 405:
-{ sRef_clearGlobalScopeSafe (); ;
-    break;}
-case 406:
-{ ctype ct; ct = declareStruct (yyvsp[-9].cname, yyvsp[-4].flist); /* context_setGlobalStructInfo(ct, $12); */ yyval.ctyp = ct; ;
-    break;}
-case 407:
-{ sRef_setGlobalScopeSafe (); ;
-    break;}
-case 408:
-{ sRef_clearGlobalScopeSafe (); ;
-    break;}
-case 409:
-{ yyval.ctyp = declareUnion (yyvsp[-8].cname, yyvsp[-3].flist); ;
-    break;}
-case 410:
-{ yyval.ctyp = declareStruct (yyvsp[-3].cname, uentryList_new ()); ;
-    break;}
-case 411:
-{ yyval.ctyp = declareUnion (yyvsp[-3].cname, uentryList_new ()); ;
-    break;}
-case 412:
-{ sRef_setGlobalScopeSafe (); ;
-    break;}
-case 413:
-{ sRef_clearGlobalScopeSafe (); ;
-    break;}
-case 414:
-{ yyval.ctyp = declareUnnamedStruct (yyvsp[-3].flist); ;
-    break;}
-case 415:
-{ sRef_setGlobalScopeSafe (); ;
-    break;}
-case 416:
-{ sRef_clearGlobalScopeSafe (); ;
-    break;}
-case 417:
-{ yyval.ctyp = declareUnnamedUnion (yyvsp[-3].flist); ;
-    break;}
-case 418:
-{ yyval.ctyp = ctype_createUnnamedStruct (uentryList_new ()); ;
-    break;}
-case 419:
-{ yyval.ctyp = ctype_createUnnamedUnion (uentryList_new ()); ;
-    break;}
-case 420:
-{ yyval.ctyp = handleStruct (yyvsp[-1].cname); ;
-    break;}
-case 421:
-{ yyval.ctyp = handleUnion (yyvsp[-1].cname); ;
-    break;}
-case 422:
-{ cscannerHelp_clearExpectingTypeName (); ;
-    break;}
-case 424:
-{ yyval.flist = uentryList_undefined; /* bogus! */ ;
-    break;}
-case 425:
-{ yyval.flist = uentryList_mergeFields (yyvsp[-1].flist, yyvsp[0].flist); ;
-    break;}
-case 426:
-{ yyval.flist = fixUentryList (yyvsp[-2].ntyplist, yyvsp[-4].qtyp); ;
-    break;}
-case 427:
-{ yyval.flist = fixUnnamedDecl (yyvsp[-2].qtyp); ;
-    break;}
-case 428:
-{ yyval.ntyplist = idDeclList_singleton (yyvsp[-1].ntyp); ;
-    break;}
-case 429:
-{ yyval.ntyplist = idDeclList_add (yyvsp[-3].ntyplist, yyvsp[-1].ntyp); ;
-    break;}
-case 430:
-{ yyval.ntyp = yyvsp[0].ntyp; ;
-    break;}
-case 431:
-{ yyval.ntyp = idDecl_undefined; ;
-    break;}
-case 432:
-{ yyval.ntyp = yyvsp[-3].ntyp; ;
-    break;}
-case 433:
-{ yyval.ctyp = declareUnnamedEnum (yyvsp[-2].enumnamelist); ;
-    break;}
-case 434:
-{ context_pushLoc (); ;
-    break;}
-case 435:
-{ context_popLoc (); yyval.ctyp = declareEnum (yyvsp[-5].cname, yyvsp[-2].enumnamelist); ;
-    break;}
-case 436:
-{ yyval.ctyp = handleEnum (yyvsp[-1].cname); ;
-    break;}
-case 437:
-{ yyval.enumnamelist = enumNameList_single (yyvsp[0].cname); ;
-    break;}
-case 438:
-{ yyval.enumnamelist = enumNameList_push (yyvsp[-2].enumnamelist, yyvsp[0].cname); ;
-    break;}
-case 440:
-{ uentry ue = uentry_makeEnumConstant (yyvsp[0].cname, ctype_unknown);
-     usymtab_supGlobalEntry (ue);
-     yyval.cname = yyvsp[0].cname;
-   ;
-    break;}
-case 441:
-{ uentry ue = uentry_makeEnumInitializedConstant (yyvsp[-3].cname, ctype_unknown, yyvsp[0].expr);
-     usymtab_supGlobalEntry (ue);
-     yyval.cname = yyvsp[-3].cname; 
-   ;
-    break;}
-case 443:
-{ yyval.ntyp = idDecl_create (cstring_undefined, qtype_create (yyvsp[0].ctyp)); ;
-    break;}
-case 444:
-{ 
-     qtype qt = qtype_unknown ();
-     qtype_adjustPointers (yyvsp[-1].pointers, qt);
-     yyval.ntyp = idDecl_create (cstring_copy (cscannerHelp_observeLastIdentifier ()), qt);
-   ;
-    break;}
-case 445:
-{ yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].pointers, idDecl_getTyp (yyval.ntyp)); ;
-    break;}
-case 447:
-{ yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].pointers, idDecl_getTyp (yyval.ntyp)); ;
-    break;}
-case 448:
-{ yyval.entrylist = handleParamTypeList (yyvsp[0].entrylist); ;
-    break;}
-case 449:
-{ yyval.entrylist = handleParamIdList (yyvsp[0].entrylist); ;
-    break;}
-case 450:
-{ yyval.typequal = qual_createConst (); ;
-    break;}
-case 451:
-{ yyval.typequal = qual_createRestrict (); ;
-    break;}
-case 452:
-{ yyval.typequal = qual_createVolatile (); ;
-    break;}
-case 453:
-{ yyval.tquallist = qualList_single (yyvsp[0].typequal); ;
-    break;}
-case 454:
-{ yyval.tquallist = qualList_add (yyvsp[-1].tquallist, yyvsp[0].typequal); ;
-    break;}
-case 455:
-{ yyval.pointers = pointers_create (yyvsp[0].tok); ;
-    break;}
-case 456:
-{ yyval.pointers = pointers_createMods (yyvsp[-1].tok, yyvsp[0].tquallist); ;
-    break;}
-case 457:
-{ yyval.pointers = pointers_extend (pointers_create (yyvsp[-1].tok), yyvsp[0].pointers); ;
-    break;}
-case 458:
-{ yyval.pointers = pointers_extend (pointers_createMods (yyvsp[-2].tok, yyvsp[-1].tquallist), yyvsp[0].pointers); ;
-    break;}
-case 460:
-{ yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ;
-    break;}
-case 461:
-{ yyval.entrylist = uentryList_single (uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ;
-    break;}
-case 462:
-{ yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ;
-    break;}
-case 463:
-{ yyval.entrylist = uentryList_single (uentry_makeElipsisMarker ()); ;
-    break;}
-case 465:
-{ yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ;
-    break;}
-case 466:
-{ storeLoc (); ;
-    break;}
-case 467:
-{ yyval.entrylist = uentryList_single (yyvsp[0].oentry); ;
-    break;}
-case 468:
-{ storeLoc (); ;
-    break;}
-case 469:
-{ yyval.entrylist = uentryList_add (yyvsp[-3].entrylist, yyvsp[0].oentry); ;
-    break;}
-case 470:
-{ 
-     if (isFlipOldStyle ()) 
-       { 
-        llparseerror (cstring_makeLiteral ("Inconsistent function parameter syntax (mixing old and new style declaration)")); 
-       }
-     else 
-       { 
-        setNewStyle (); 
-       }
-     yyval.oentry = makeCurrentParam (idDecl_fixParamBase (yyvsp[-1].ntyp, yyvsp[-2].qtyp)); 
-   ;
-    break;}
-case 471:
-{ 
-     idDecl tparam = idDecl_create (yyvsp[0].cname, qtype_unknown ());
+   ;}
+    break;
 
 
-     if (isNewStyle ()) 
-       {
-        llparseerror (message ("Inconsistent function parameter syntax: %q",
-                               idDecl_unparse (tparam))); 
-       }
+  case 315:
 
 
-     setFlipOldStyle ();
-     yyval.oentry = makeCurrentParam (tparam);
-     idDecl_free (tparam);
-   ;
-    break;}
-case 473:
-{ yyval.qtyp = qtype_newBase (yyvsp[-1].qtyp, yyvsp[0].ctyp); ;
-    break;}
-case 474:
-{ yyval.ctyp = ctype_adjustPointers (yyvsp[0].pointers, ctype_unknown); ;
-    break;}
-case 476:
-{ yyval.ctyp = ctype_adjustPointers (yyvsp[-1].pointers, yyvsp[0].ctyp); ;
-    break;}
-case 477:
-{ yyval.ctyp = ctype_unknown; ;
-    break;}
-case 479:
-{ yyval.ctyp = ctype_expectFunction (yyvsp[-1].ctyp); ;
-    break;}
-case 480:
-{ yyval.ctyp = ctype_makeArray (ctype_unknown); ;
-    break;}
-case 481:
-{ yyval.ctyp = ctype_makeFixedArray (ctype_unknown, exprNode_getLongValue (yyvsp[-1].expr)); ;
-    break;}
-case 482:
-{ yyval.ctyp = ctype_makeInnerArray (yyvsp[-2].ctyp); ;
-    break;}
-case 483:
-{ yyval.ctyp = ctype_makeInnerFixedArray (yyvsp[-3].ctyp, exprNode_getLongValue (yyvsp[-1].expr)); ;
-    break;}
-case 484:
-{ yyval.ctyp = ctype_makeFunction (ctype_unknown, uentryList_makeMissingParams ()); ;
-    break;}
-case 485:
-{ yyval.ctyp = ctype_makeParamsFunction (ctype_unknown, yyvsp[-1].entrylist); ;
-    break;}
-case 486:
-{ yyval.ctyp = ctype_makeFunction (yyvsp[-3].ctyp, uentryList_makeMissingParams ()); ;
-    break;}
-case 487:
-{ yyval.ctyp = ctype_makeParamsFunction (yyvsp[-4].ctyp, yyvsp[-1].entrylist); ;
-    break;}
-case 498:
-{ exprNode_revealState (yyvsp[-1].expr); yyval.expr = exprNode_undefined; ;
-    break;}
-case 499:
-{ yyval.expr = yyvsp[0].expr; ;
-    break;}
-case 502:
-{ yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
-    break;}
-case 503:
-{ yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); ;
-    break;}
-case 504:
-{ yyval.expr = exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr); ;
-    break;}
-case 505:
-{ yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ;
-    break;}
-case 506:
-{ yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); ;
-    break;}
-case 507:
-{ context_setProtectVars (); ;
-    break;}
-case 508:
-{ context_sizeofReleaseVars (); ;
-    break;}
-case 509:
-{ yyval.expr = exprNode_forPred (yyvsp[-7].expr, yyvsp[-5].expr, yyvsp[-2].expr); 
-     context_enterForClause (yyvsp[-5].expr); ;
-    break;}
-case 510:
-{ setProcessingIterVars (yyvsp[-2].entry); ;
-    break;}
-case 511:
-{ yyval.expr = exprNode_iterStart (yyvsp[-5].entry, yyvsp[-1].exprlist); ;
-    break;}
-case 512:
-{ yyval.expr = exprNode_createId (yyvsp[0].entry); ;
-    break;}
-case 516:
-{ yyval.expr = yyvsp[-1].expr; DPRINTF (("def stmt: %s", exprNode_unparse (yyval.expr))); ;
-    break;}
-case 524:
-{ yyval.expr = yyvsp[-1].expr; ;
-    break;}
-case 525:
-{ yyval.expr = exprNode_makeError (); ;
-    break;}
-case 526:
-{ exprNode_checkIfPred (yyvsp[0].expr); ;
-    break;}
-case 527:
-{ /* don't: context_exitTrueClause ($1, $2); */
-     yyval.expr = exprNode_if (yyvsp[-2].expr, yyvsp[0].expr); 
-   ;
-    break;}
-case 528:
-{ yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
-    break;}
-case 529:
-{ yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
-    break;}
-case 540:
-{ yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
-    break;}
-case 543:
-{ yyval.expr = exprNode_makeError (); ;
-    break;}
-case 544:
-{ yyval.expr = exprNode_labelMarker (yyvsp[-1].cname); ;
-    break;}
-case 545:
-{ yyval.expr = exprNode_notReached (yyvsp[0].expr); ;
-    break;}
-case 546:
-{ ; ;
-    break;}
-case 547:
-{ ; ;
-    break;}
-case 548:
-{ context_enterCaseClause (yyvsp[0].expr); ;
-    break;}
-case 549:
-{ yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, FALSE); ;
-    break;}
-case 550:
-{ context_enterCaseClause (yyvsp[0].expr); ;
-    break;}
-case 551:
-{ yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, TRUE); ;
-    break;}
-case 552:
-{ context_enterCaseClause (exprNode_undefined); ;
-    break;}
-case 553:
-{ yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, FALSE); ;
-    break;}
-case 554:
-{ context_enterCaseClause (exprNode_undefined); ;
-    break;}
-case 555:
-{ yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, TRUE); ;
-    break;}
-case 556:
-{ yyval.expr = yyvsp[-1].expr; ;
-    break;}
-case 557:
-{ yyval.expr = yyvsp[0].expr; context_exitInner (yyvsp[0].expr); ;
-    break;}
-case 558:
-{ yyval.expr = yyvsp[-1].expr; ;
-    break;}
-case 559:
-{ context_enterInnerContext (); ;
-    break;}
-case 560:
-{ context_exitInnerPlain (); ;
-    break;}
-case 561:
-{ context_enterStructInnerContext (); ;
-    break;}
-case 562:
-{ context_exitStructInnerContext (); ;
-    break;}
-case 563:
-{ context_exitInnerSafe (); ;
-    break;}
-case 564:
-{ yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
-    break;}
-case 565:
-{ yyval.expr = exprNode_notReached (exprNode_createTok (yyvsp[0].tok)); ;
-    break;}
-case 566:
-{ yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
-    break;}
-case 567:
-{ yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ;
-    break;}
-case 568:
-{ yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
-    break;}
-case 569:
-{ yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ;
-    break;}
-case 570:
-{ yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ;
-    break;}
-case 571:
-{ yyval.expr = exprNode_notReached (exprNode_updateLocation (exprNode_concat (yyvsp[-3].expr, yyvsp[-2].expr), 
-                                                       lltok_getLoc (yyvsp[-1].tok))); 
-   ;
-    break;}
-case 572:
-{ yyval.expr = exprNode_makeBlock (yyvsp[0].expr); ;
-    break;}
-case 573:
-{ yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
-    break;}
-case 574:
-{ yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
-    break;}
-case 575:
-{ yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
-    break;}
-case 576:
-{ yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ;
-    break;}
-case 578:
-{ yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
-    break;}
-case 579:
-{ yyval.expr = yyvsp[0].expr; ;
-    break;}
-case 580:
-{ yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
-    break;}
-case 581:
-{ yyval.expr = yyvsp[0].expr; ;
-    break;}
-case 582:
-{ yyval.expr = exprNode_concat (yyvsp[-2].expr, yyvsp[0].expr); ;
-    break;}
-case 583:
-{ yyval.expr = yyvsp[0].expr; ;
-    break;}
-case 584:
-{ yyval.expr = yyvsp[-2].expr; ;
-    break;}
-case 585:
-{ yyval.expr = yyvsp[0].expr; ;
-    break;}
-case 586:
-{ yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
-    break;}
-case 587:
-{ yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
-    break;}
-case 588:
-{ yyval.expr = exprNode_statement (yyvsp[-1].expr, yyvsp[0].tok); ;
-    break;}
-case 589:
-{ yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
-    break;}
-case 590:
-{ yyval.expr = exprNode_statement (yyvsp[-1].expr, yyvsp[0].tok); ;
-    break;}
-case 591:
-{ yyval.expr = exprNode_checkExpr (yyvsp[0].expr); ;
-    break;}
-case 592:
-{ 
+    { yyval.fcnconstraint = functionConstraint_createBufferConstraint (yyvsp[0].conL); ;}
+    break;
+
+  case 316:
+
+    { yyval.fcnconstraint = functionConstraint_createMetaStateConstraint (yyvsp[0].msconstraint); DPRINTF (("Made constraint: %s", functionConstraint_unparse (yyval.fcnconstraint))); ;}
+    break;
+
+  case 317:
+
+    { yyval.typequal = qual_createExits (); ;}
+    break;
+
+  case 318:
+
+    { yyval.typequal = qual_createMayExit (); ;}
+    break;
+
+  case 319:
+
+    { yyval.typequal = qual_createTrueExit (); ;}
+    break;
+
+  case 320:
+
+    { yyval.typequal = qual_createFalseExit (); ;}
+    break;
+
+  case 321:
+
+    { yyval.typequal = qual_createNeverExit (); ;}
+    break;
+
+  case 322:
+
+    { yyval.typequal = qual_createChecked (); ;}
+    break;
+
+  case 323:
+
+    { yyval.typequal = qual_createCheckMod (); ;}
+    break;
+
+  case 324:
+
+    { yyval.typequal = qual_createUnchecked (); ;}
+    break;
+
+  case 325:
+
+    { yyval.typequal = qual_createCheckedStrict (); ;}
+    break;
+
+  case 326:
+
+    { yyval.typequal = qual_createOwned (); ;}
+    break;
+
+  case 327:
+
+    { yyval.typequal = qual_createDependent (); ;}
+    break;
+
+  case 328:
+
+    { yyval.typequal = qual_createYield (); ;}
+    break;
+
+  case 329:
+
+    { yyval.typequal = qual_createTemp (); ;}
+    break;
+
+  case 330:
+
+    { yyval.typequal = qual_createOnly (); ;}
+    break;
+
+  case 331:
+
+    { yyval.typequal = qual_createKeep (); ;}
+    break;
+
+  case 332:
+
+    { yyval.typequal = qual_createKept (); ;}
+    break;
+
+  case 333:
+
+    { yyval.typequal = qual_createShared (); ;}
+    break;
+
+  case 334:
+
+    { yyval.typequal = qual_createUnique (); ;}
+    break;
+
+  case 335:
+
+    { yyval.typequal = qual_createNull (); ;}
+    break;
+
+  case 336:
+
+    { yyval.typequal = qual_createIsNull (); ;}
+    break;
+
+  case 337:
+
+    { yyval.typequal = qual_createRelNull (); ;}
+    break;
+
+  case 338:
+
+    { yyval.typequal = qual_createNotNull (); ;}
+    break;
+
+  case 339:
+
+    { yyval.typequal = qual_createExposed (); ;}
+    break;
+
+  case 340:
+
+    { yyval.typequal = qual_createObserver (); ;}
+    break;
+
+  case 341:
+
+    { yyval.typequal = qual_createNullTerminated (); ;}
+    break;
+
+  case 342:
+
+    { yyval.typequal = qual_createMetaState (yyvsp[0].annotation); ;}
+    break;
+
+  case 343:
+
+    { yyval.typequal = qual_createReturned (); ;}
+    break;
+
+  case 344:
+
+    { yyval.typequal = qual_createSef (); ;}
+    break;
+
+  case 345:
+
+    { yyval.typequal = qual_createUnused (); ;}
+    break;
+
+  case 346:
+
+    { yyval.typequal = qual_createExternal (); ;}
+    break;
+
+  case 347:
+
+    { yyval.typequal = qual_createTrueNull (); ;}
+    break;
+
+  case 348:
+
+    { yyval.typequal = qual_createFalseNull (); ;}
+    break;
+
+  case 349:
+
+    { yyval.typequal = qual_createAbstract (); ;}
+    break;
+
+  case 350:
+
+    { yyval.typequal = qual_createNumAbstract (); ;}
+    break;
+
+  case 351:
+
+    { yyval.typequal = qual_createConcrete (); ;}
+    break;
+
+  case 352:
+
+    { yyval.typequal = qual_createMutable (); ;}
+    break;
+
+  case 353:
+
+    { yyval.typequal = qual_createImmutable (); ;}
+    break;
+
+  case 354:
+
+    { yyval.typequal = qual_createRefCounted (); ;}
+    break;
+
+  case 355:
+
+    { yyval.typequal = qual_createRefs (); ;}
+    break;
+
+  case 356:
+
+    { yyval.typequal = qual_createKillRef (); ;}
+    break;
+
+  case 357:
+
+    { yyval.typequal = qual_createRelDef (); ;}
+    break;
+
+  case 358:
+
+    { yyval.typequal = qual_createNewRef (); ;}
+    break;
+
+  case 359:
+
+    { yyval.typequal = qual_createTempRef (); ;}
+    break;
+
+  case 360:
+
+    { yyval.typequal = qual_createShort (); ;}
+    break;
+
+  case 361:
+
+    { yyval.typequal = qual_createLong (); ;}
+    break;
+
+  case 362:
+
+    { yyval.typequal = qual_createSigned (); ;}
+    break;
+
+  case 363:
+
+    { yyval.typequal = qual_createUnsigned (); ;}
+    break;
+
+  case 364:
+
+    { yyval.typequal = qual_createOut (); ;}
+    break;
+
+  case 365:
+
+    { yyval.typequal = qual_createIn (); ;}
+    break;
+
+  case 366:
+
+    { yyval.typequal = qual_createPartial (); ;}
+    break;
+
+  case 367:
+
+    { yyval.typequal = qual_createSpecial (); ;}
+    break;
+
+  case 368:
+
+    { yyval.typequal = qual_createConst (); ;}
+    break;
+
+  case 369:
+
+    { yyval.typequal = qual_createVolatile (); ;}
+    break;
+
+  case 370:
+
+    { yyval.typequal = qual_createRestrict (); ;}
+    break;
+
+  case 371:
+
+    { yyval.typequal = yyvsp[-1].typequal; ;}
+    break;
+
+  case 372:
+
+    { yyval.typequal = yyvsp[-1].typequal; ;}
+    break;
+
+  case 373:
+
+    { yyval.typequal = yyvsp[-1].typequal; ;}
+    break;
+
+  case 374:
+
+    { yyval.typequal = yyvsp[-1].typequal; ;}
+    break;
+
+  case 375:
+
+    { yyval.typequal = yyvsp[-1].typequal; ;}
+    break;
+
+  case 376:
+
+    { yyval.typequal = yyvsp[-1].typequal; ;}
+    break;
+
+  case 377:
+
+    { yyval.typequal = yyvsp[-1].typequal; ;}
+    break;
+
+  case 378:
+
+    { yyval.typequal = yyvsp[-1].typequal; ;}
+    break;
+
+  case 379:
+
+    { yyval.typequal = yyvsp[-1].typequal; ;}
+    break;
+
+  case 386:
+
+    { yyval.ctyp = ctype_makeAnytype (); ;}
+    break;
+
+  case 387:
+
+    { yyval.ctyp = ctype_anyintegral; ;}
+    break;
+
+  case 388:
+
+    { yyval.ctyp = ctype_unsignedintegral; ;}
+    break;
+
+  case 389:
+
+    { yyval.ctyp = ctype_signedintegral; ;}
+    break;
+
+  case 393:
+
+    { yyval.ctyp = ctype_fromQual (yyvsp[-1].typequal); ;}
+    break;
+
+  case 394:
+
+    { yyval.qtyp = qtype_resolve (yyvsp[-1].qtyp); ;}
+    break;
+
+  case 395:
+
+    { yyval.qtyp = yyvsp[0].qtyp; ;}
+    break;
+
+  case 396:
+
+    { yyval.qtyp = qtype_mergeAlt (yyvsp[-3].qtyp, yyvsp[-1].qtyp); ;}
+    break;
+
+  case 398:
+
+    { yyval.qtyp = qtype_mergeAlt (yyvsp[-2].qtyp, yyvsp[0].qtyp); ;}
+    break;
+
+  case 399:
+
+    { yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ;}
+    break;
+
+  case 400:
+
+    { yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ;}
+    break;
+
+  case 401:
+
+    { yyval.qtyp = qtype_combine (yyvsp[0].qtyp, yyvsp[-1].ctyp); ;}
+    break;
+
+  case 402:
+
+    { yyval.qtyp = qtype_unknown (); ;}
+    break;
+
+  case 403:
+
+    { yyval.qtyp = yyvsp[0].qtyp; ;}
+    break;
+
+  case 404:
+
+    { yyval.conL = constraintList_undefined; ;}
+    break;
+
+  case 405:
+
+    { sRef_setGlobalScopeSafe (); ;}
+    break;
+
+  case 406:
+
+    { sRef_clearGlobalScopeSafe (); ;}
+    break;
+
+  case 407:
+
+    { ctype ct; ct = declareStruct (yyvsp[-9].cname, yyvsp[-4].flist); /* context_setGlobalStructInfo(ct, $12); */ yyval.ctyp = ct; ;}
+    break;
+
+  case 408:
+
+    { sRef_setGlobalScopeSafe (); ;}
+    break;
+
+  case 409:
+
+    { sRef_clearGlobalScopeSafe (); ;}
+    break;
+
+  case 410:
+
+    { yyval.ctyp = declareUnion (yyvsp[-8].cname, yyvsp[-3].flist); ;}
+    break;
+
+  case 411:
+
+    { yyval.ctyp = declareStruct (yyvsp[-3].cname, uentryList_new ()); ;}
+    break;
+
+  case 412:
+
+    { yyval.ctyp = declareUnion (yyvsp[-3].cname, uentryList_new ()); ;}
+    break;
+
+  case 413:
+
+    { sRef_setGlobalScopeSafe (); ;}
+    break;
+
+  case 414:
+
+    { sRef_clearGlobalScopeSafe (); ;}
+    break;
+
+  case 415:
+
+    { yyval.ctyp = declareUnnamedStruct (yyvsp[-3].flist); ;}
+    break;
+
+  case 416:
+
+    { sRef_setGlobalScopeSafe (); ;}
+    break;
+
+  case 417:
+
+    { sRef_clearGlobalScopeSafe (); ;}
+    break;
+
+  case 418:
+
+    { yyval.ctyp = declareUnnamedUnion (yyvsp[-3].flist); ;}
+    break;
+
+  case 419:
+
+    { yyval.ctyp = ctype_createUnnamedStruct (uentryList_new ()); ;}
+    break;
+
+  case 420:
+
+    { yyval.ctyp = ctype_createUnnamedUnion (uentryList_new ()); ;}
+    break;
+
+  case 421:
+
+    { yyval.ctyp = handleStruct (yyvsp[-1].cname); ;}
+    break;
+
+  case 422:
+
+    { yyval.ctyp = handleUnion (yyvsp[-1].cname); ;}
+    break;
+
+  case 423:
+
+    { cscannerHelp_clearExpectingTypeName (); ;}
+    break;
+
+  case 425:
+
+    { yyval.flist = uentryList_undefined; /* bogus! */ ;}
+    break;
+
+  case 426:
+
+    { yyval.flist = uentryList_mergeFields (yyvsp[-1].flist, yyvsp[0].flist); ;}
+    break;
+
+  case 427:
+
+    { yyval.flist = fixUentryList (yyvsp[-2].ntyplist, yyvsp[-4].qtyp); ;}
+    break;
+
+  case 428:
+
+    { yyval.flist = fixUnnamedDecl (yyvsp[-2].qtyp); ;}
+    break;
+
+  case 429:
+
+    { yyval.ntyplist = idDeclList_singleton (yyvsp[-1].ntyp); ;}
+    break;
+
+  case 430:
+
+    { yyval.ntyplist = idDeclList_add (yyvsp[-3].ntyplist, yyvsp[-1].ntyp); ;}
+    break;
+
+  case 431:
+
+    { yyval.ntyp = yyvsp[0].ntyp; ;}
+    break;
+
+  case 432:
+
+    { yyval.ntyp = idDecl_undefined; ;}
+    break;
+
+  case 433:
+
+    { yyval.ntyp = yyvsp[-3].ntyp; ;}
+    break;
+
+  case 434:
+
+    { yyval.ctyp = declareUnnamedEnum (yyvsp[-2].enumnamelist); ;}
+    break;
+
+  case 435:
+
+    { context_pushLoc (); ;}
+    break;
+
+  case 436:
+
+    { context_popLoc (); yyval.ctyp = declareEnum (yyvsp[-5].cname, yyvsp[-2].enumnamelist); ;}
+    break;
+
+  case 437:
+
+    { yyval.ctyp = handleEnum (yyvsp[-1].cname); ;}
+    break;
+
+  case 438:
+
+    { yyval.enumnamelist = enumNameList_single (yyvsp[0].cname); ;}
+    break;
+
+  case 439:
+
+    { yyval.enumnamelist = enumNameList_push (yyvsp[-2].enumnamelist, yyvsp[0].cname); ;}
+    break;
+
+  case 441:
+
+    { uentry ue = uentry_makeEnumConstant (yyvsp[0].cname, ctype_unknown);
+     usymtab_supGlobalEntry (ue);
+     yyval.cname = yyvsp[0].cname;
+   ;}
+    break;
+
+  case 442:
+
+    { uentry ue = uentry_makeEnumInitializedConstant (yyvsp[-3].cname, ctype_unknown, yyvsp[0].expr);
+     usymtab_supGlobalEntry (ue);
+     yyval.cname = yyvsp[-3].cname; 
+   ;}
+    break;
+
+  case 444:
+
+    { yyval.ntyp = idDecl_create (cstring_undefined, qtype_create (yyvsp[0].ctyp)); ;}
+    break;
+
+  case 445:
+
+    { 
+     qtype qt = qtype_unknown ();
+     qtype_adjustPointers (yyvsp[-1].pointers, qt);
+     yyval.ntyp = idDecl_create (cstring_copy (cscannerHelp_observeLastIdentifier ()), qt);
+   ;}
+    break;
+
+  case 446:
+
+    { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].pointers, idDecl_getTyp (yyval.ntyp)); ;}
+    break;
+
+  case 448:
+
+    { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].pointers, idDecl_getTyp (yyval.ntyp)); ;}
+    break;
+
+  case 449:
+
+    { yyval.entrylist = handleParamTypeList (yyvsp[0].entrylist); ;}
+    break;
+
+  case 450:
+
+    { yyval.entrylist = handleParamIdList (yyvsp[0].entrylist); ;}
+    break;
+
+  case 451:
+
+    { yyval.typequal = qual_createConst (); ;}
+    break;
+
+  case 452:
+
+    { yyval.typequal = qual_createRestrict (); ;}
+    break;
+
+  case 453:
+
+    { yyval.typequal = qual_createVolatile (); ;}
+    break;
+
+  case 454:
+
+    { yyval.tquallist = qualList_single (yyvsp[0].typequal); ;}
+    break;
+
+  case 455:
+
+    { yyval.tquallist = qualList_add (yyvsp[-1].tquallist, yyvsp[0].typequal); ;}
+    break;
+
+  case 456:
+
+    { yyval.pointers = pointers_create (yyvsp[0].tok); ;}
+    break;
+
+  case 457:
+
+    { yyval.pointers = pointers_createMods (yyvsp[-1].tok, yyvsp[0].tquallist); ;}
+    break;
+
+  case 458:
+
+    { yyval.pointers = pointers_extend (pointers_create (yyvsp[-1].tok), yyvsp[0].pointers); ;}
+    break;
+
+  case 459:
+
+    { yyval.pointers = pointers_extend (pointers_createMods (yyvsp[-2].tok, yyvsp[-1].tquallist), yyvsp[0].pointers); ;}
+    break;
+
+  case 461:
+
+    { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ;}
+    break;
+
+  case 462:
+
+    { yyval.entrylist = uentryList_single (uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ;}
+    break;
+
+  case 463:
+
+    { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ;}
+    break;
+
+  case 464:
+
+    { yyval.entrylist = uentryList_single (uentry_makeElipsisMarker ()); ;}
+    break;
+
+  case 466:
+
+    { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ;}
+    break;
+
+  case 467:
+
+    { storeLoc (); ;}
+    break;
+
+  case 468:
+
+    { yyval.entrylist = uentryList_single (yyvsp[0].oentry); ;}
+    break;
+
+  case 469:
+
+    { storeLoc (); ;}
+    break;
+
+  case 470:
+
+    { yyval.entrylist = uentryList_add (yyvsp[-3].entrylist, yyvsp[0].oentry); ;}
+    break;
+
+  case 471:
+
+    { 
+     if (isFlipOldStyle ()) 
+       { 
+        llparseerror (cstring_makeLiteral ("Inconsistent function parameter syntax (mixing old and new style declaration)")); 
+       }
+     else 
+       { 
+        setNewStyle (); 
+       }
+     yyval.oentry = makeCurrentParam (idDecl_fixParamBase (yyvsp[-1].ntyp, yyvsp[-2].qtyp)); 
+   ;}
+    break;
+
+  case 472:
+
+    { 
+     idDecl tparam = idDecl_create (yyvsp[0].cname, qtype_unknown ());
+
+     if (isNewStyle ()) 
+       {
+        llparseerror (message ("Inconsistent function parameter syntax: %q",
+                               idDecl_unparse (tparam))); 
+       }
+
+     setFlipOldStyle ();
+     yyval.oentry = makeCurrentParam (tparam);
+     idDecl_free (tparam);
+   ;}
+    break;
+
+  case 474:
+
+    { yyval.qtyp = qtype_newBase (yyvsp[-1].qtyp, yyvsp[0].ctyp); ;}
+    break;
+
+  case 475:
+
+    { yyval.ctyp = ctype_adjustPointers (yyvsp[0].pointers, ctype_unknown); ;}
+    break;
+
+  case 477:
+
+    { yyval.ctyp = ctype_adjustPointers (yyvsp[-1].pointers, yyvsp[0].ctyp); ;}
+    break;
+
+  case 478:
+
+    { yyval.ctyp = ctype_unknown; ;}
+    break;
+
+  case 480:
+
+    { yyval.ctyp = ctype_expectFunction (yyvsp[-1].ctyp); ;}
+    break;
+
+  case 481:
+
+    { yyval.ctyp = ctype_makeArray (ctype_unknown); ;}
+    break;
+
+  case 482:
+
+    { yyval.ctyp = ctype_makeFixedArray (ctype_unknown, exprNode_getLongValue (yyvsp[-1].expr)); ;}
+    break;
+
+  case 483:
+
+    { yyval.ctyp = ctype_makeInnerArray (yyvsp[-2].ctyp); ;}
+    break;
+
+  case 484:
+
+    { yyval.ctyp = ctype_makeInnerFixedArray (yyvsp[-3].ctyp, exprNode_getLongValue (yyvsp[-1].expr)); ;}
+    break;
+
+  case 485:
+
+    { yyval.ctyp = ctype_makeFunction (ctype_unknown, uentryList_makeMissingParams ()); ;}
+    break;
+
+  case 486:
+
+    { yyval.ctyp = ctype_makeParamsFunction (ctype_unknown, yyvsp[-1].entrylist); ;}
+    break;
+
+  case 487:
+
+    { yyval.ctyp = ctype_makeFunction (yyvsp[-3].ctyp, uentryList_makeMissingParams ()); ;}
+    break;
+
+  case 488:
+
+    { yyval.ctyp = ctype_makeParamsFunction (yyvsp[-4].ctyp, yyvsp[-1].entrylist); ;}
+    break;
+
+  case 499:
+
+    { exprNode_revealState (yyvsp[-1].expr); yyval.expr = exprNode_undefined; ;}
+    break;
+
+  case 500:
+
+    { yyval.expr = yyvsp[0].expr; ;}
+    break;
+
+  case 503:
+
+    { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;}
+    break;
+
+  case 504:
+
+    { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); ;}
+    break;
+
+  case 505:
+
+    { yyval.expr = exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr); ;}
+    break;
+
+  case 506:
+
+    { yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ;}
+    break;
+
+  case 507:
+
+    { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); ;}
+    break;
+
+  case 508:
+
+    { context_setProtectVars (); ;}
+    break;
+
+  case 509:
+
+    { context_sizeofReleaseVars (); ;}
+    break;
+
+  case 510:
+
+    { yyval.expr = exprNode_forPred (yyvsp[-7].expr, yyvsp[-5].expr, yyvsp[-2].expr); 
+     context_enterForClause (yyvsp[-5].expr); ;}
+    break;
+
+  case 511:
+
+    { setProcessingIterVars (yyvsp[-2].entry); ;}
+    break;
+
+  case 512:
+
+    { yyval.expr = exprNode_iterStart (yyvsp[-5].entry, yyvsp[-1].exprlist); ;}
+    break;
+
+  case 513:
+
+    { yyval.expr = exprNode_createId (yyvsp[0].entry); ;}
+    break;
+
+  case 517:
+
+    { yyval.expr = yyvsp[-1].expr; DPRINTF (("def stmt: %s", exprNode_unparse (yyval.expr))); ;}
+    break;
+
+  case 525:
+
+    { yyval.expr = yyvsp[-1].expr; ;}
+    break;
+
+  case 526:
+
+    { yyval.expr = exprNode_makeError (); ;}
+    break;
+
+  case 527:
+
+    { exprNode_checkIfPred (yyvsp[0].expr); ;}
+    break;
+
+  case 528:
+
+    { /* don't: context_exitTrueClause ($1, $2); */
+     yyval.expr = exprNode_if (yyvsp[-2].expr, yyvsp[0].expr); 
+   ;}
+    break;
+
+  case 529:
+
+    { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;}
+    break;
+
+  case 530:
+
+    { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;}
+    break;
+
+  case 541:
+
+    { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;}
+    break;
+
+  case 544:
+
+    { yyval.expr = exprNode_makeError (); ;}
+    break;
+
+  case 545:
+
+    { yyval.expr = exprNode_labelMarker (yyvsp[-1].cname); ;}
+    break;
+
+  case 546:
+
+    { yyval.expr = exprNode_notReached (yyvsp[0].expr); ;}
+    break;
+
+  case 547:
+
+    { ; ;}
+    break;
+
+  case 548:
+
+    { ; ;}
+    break;
+
+  case 549:
+
+    { context_enterCaseClause (yyvsp[0].expr); ;}
+    break;
+
+  case 550:
+
+    { yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, FALSE); ;}
+    break;
+
+  case 551:
+
+    { context_enterCaseClause (yyvsp[0].expr); ;}
+    break;
+
+  case 552:
+
+    { yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, TRUE); ;}
+    break;
+
+  case 553:
+
+    { context_enterCaseClause (exprNode_undefined); ;}
+    break;
+
+  case 554:
+
+    { yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, FALSE); ;}
+    break;
+
+  case 555:
+
+    { context_enterCaseClause (exprNode_undefined); ;}
+    break;
+
+  case 556:
+
+    { yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, TRUE); ;}
+    break;
+
+  case 557:
+
+    { yyval.expr = yyvsp[-1].expr; ;}
+    break;
+
+  case 558:
+
+    { yyval.expr = yyvsp[0].expr; context_exitInner (yyvsp[0].expr); ;}
+    break;
+
+  case 559:
+
+    { yyval.expr = yyvsp[-1].expr; ;}
+    break;
+
+  case 560:
+
+    { context_enterInnerContext (); ;}
+    break;
+
+  case 561:
+
+    { context_exitInnerPlain (); ;}
+    break;
+
+  case 562:
+
+    { context_enterStructInnerContext (); ;}
+    break;
+
+  case 563:
+
+    { context_exitStructInnerContext (); ;}
+    break;
+
+  case 564:
+
+    { context_exitInnerSafe (); ;}
+    break;
+
+  case 565:
+
+    { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;}
+    break;
+
+  case 566:
+
+    { yyval.expr = exprNode_notReached (exprNode_createTok (yyvsp[0].tok)); ;}
+    break;
+
+  case 567:
+
+    { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;}
+    break;
+
+  case 568:
+
+    { yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ;}
+    break;
+
+  case 569:
+
+    { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;}
+    break;
+
+  case 570:
+
+    { yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ;}
+    break;
+
+  case 571:
+
+    { yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ;}
+    break;
+
+  case 572:
+
+    { yyval.expr = exprNode_notReached (exprNode_updateLocation (exprNode_concat (yyvsp[-3].expr, yyvsp[-2].expr), 
+                                                       lltok_getLoc (yyvsp[-1].tok))); 
+   ;}
+    break;
+
+  case 573:
+
+    { yyval.expr = exprNode_makeBlock (yyvsp[0].expr); ;}
+    break;
+
+  case 574:
+
+    { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;}
+    break;
+
+  case 575:
+
+    { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;}
+    break;
+
+  case 576:
+
+    { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;}
+    break;
+
+  case 577:
+
+    { yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ;}
+    break;
+
+  case 579:
+
+    { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;}
+    break;
+
+  case 580:
+
+    { yyval.expr = yyvsp[0].expr; ;}
+    break;
+
+  case 581:
+
+    { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;}
+    break;
+
+  case 582:
+
+    { yyval.expr = yyvsp[0].expr; ;}
+    break;
+
+  case 583:
+
+    { yyval.expr = exprNode_concat (yyvsp[-2].expr, yyvsp[0].expr); ;}
+    break;
+
+  case 584:
+
+    { yyval.expr = yyvsp[0].expr; ;}
+    break;
+
+  case 585:
+
+    { yyval.expr = yyvsp[-2].expr; ;}
+    break;
+
+  case 586:
+
+    { yyval.expr = yyvsp[0].expr; ;}
+    break;
+
+  case 587:
+
+    { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;}
+    break;
+
+  case 588:
+
+    { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;}
+    break;
+
+  case 589:
+
+    { yyval.expr = exprNode_statement (yyvsp[-1].expr, yyvsp[0].tok); ;}
+    break;
+
+  case 590:
+
+    { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;}
+    break;
+
+  case 591:
+
+    { yyval.expr = exprNode_statement (yyvsp[-1].expr, yyvsp[0].tok); ;}
+    break;
+
+  case 592:
+
+    { yyval.expr = exprNode_checkExpr (yyvsp[0].expr); ;}
+    break;
+
+  case 593:
+
+    { 
      exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr); 
      exprNode_checkIfPred (yyvsp[-1].expr);
      yyval.expr = yyvsp[-1].expr;
      exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr); 
      exprNode_checkIfPred (yyvsp[-1].expr);
      yyval.expr = yyvsp[-1].expr;
-   ;
-    break;}
-case 593:
-{ 
+   ;}
+    break;
+
+  case 594:
+
+    { 
      context_exitTrueClause (yyvsp[-1].expr, yyvsp[0].expr);
      yyval.expr = exprNode_if (yyvsp[-1].expr, yyvsp[0].expr); 
      context_exitTrueClause (yyvsp[-1].expr, yyvsp[0].expr);
      yyval.expr = exprNode_if (yyvsp[-1].expr, yyvsp[0].expr); 
-   ;
-    break;}
-case 594:
-{ context_enterFalseClause (yyvsp[-2].expr); ;
-    break;}
-case 595:
-{
+   ;}
+    break;
+
+  case 595:
+
+    { context_enterFalseClause (yyvsp[-2].expr); ;}
+    break;
+
+  case 596:
+
+    {
      context_exitClause (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr);
      yyval.expr = exprNode_ifelse (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr); 
      context_exitClause (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr);
      yyval.expr = exprNode_ifelse (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr); 
-   ;
-    break;}
-case 596:
-{ context_enterSwitch (yyvsp[0].expr); ;
-    break;}
-case 597:
-{ yyval.expr = exprNode_switch (yyvsp[-3].expr, yyvsp[0].expr); ;
-    break;}
-case 598:
-{ yyval.expr = exprNode_whilePred (yyvsp[-1].expr); context_enterWhileClause (yyvsp[-1].expr); ;
-    break;}
-case 599:
-{ yyval.expr = exprNode_whilePred(yyvsp[-1].expr); ;
-    break;}
-case 600:
-{ context_enterIterClause (); ;
-    break;}
-case 601:
-{ setProcessingIterVars (yyvsp[-3].entry); ;
-    break;}
-case 602:
-{ 
+   ;}
+    break;
+
+  case 597:
+
+    { context_enterSwitch (yyvsp[0].expr); ;}
+    break;
+
+  case 598:
+
+    { yyval.expr = exprNode_switch (yyvsp[-3].expr, yyvsp[0].expr); ;}
+    break;
+
+  case 599:
+
+    { yyval.expr = exprNode_whilePred (yyvsp[-1].expr); context_enterWhileClause (yyvsp[-1].expr); ;}
+    break;
+
+  case 600:
+
+    { yyval.expr = exprNode_whilePred(yyvsp[-1].expr); ;}
+    break;
+
+  case 601:
+
+    { context_enterIterClause (); ;}
+    break;
+
+  case 602:
+
+    { setProcessingIterVars (yyvsp[-3].entry); ;}
+    break;
+
+  case 603:
+
+    { 
      yyval.expr = exprNode_iter (yyvsp[-9].entry, yyvsp[-4].exprlist, yyvsp[-2].expr, yyvsp[-1].entry); 
 
      yyval.expr = exprNode_iter (yyvsp[-9].entry, yyvsp[-4].exprlist, yyvsp[-2].expr, yyvsp[-1].entry); 
 
-   ;
-    break;}
-case 603:
-{ yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
-    break;}
-case 604:
-{ nextIterParam (); ;
-    break;}
-case 605:
-{ yyval.exprlist = exprNodeList_push (yyvsp[-3].exprlist, yyvsp[0].expr); ;
-    break;}
-case 606:
-{ yyval.expr = exprNode_iterExpr (yyvsp[0].expr); ;
-    break;}
-case 607:
-{ yyval.expr = exprNode_iterId (yyvsp[0].entry); ;
-    break;}
-case 608:
-{ uentry ue = cscannerHelp_coerceIterId (yyvsp[0].cname);
+   ;}
+    break;
+
+  case 604:
+
+    { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;}
+    break;
+
+  case 605:
+
+    { nextIterParam (); ;}
+    break;
+
+  case 606:
+
+    { yyval.exprlist = exprNodeList_push (yyvsp[-3].exprlist, yyvsp[0].expr); ;}
+    break;
+
+  case 607:
+
+    { yyval.expr = exprNode_iterExpr (yyvsp[0].expr); ;}
+    break;
+
+  case 608:
+
+    { yyval.expr = exprNode_iterId (yyvsp[0].entry); ;}
+    break;
+
+  case 609:
+
+    { uentry ue = cscannerHelp_coerceIterId (yyvsp[0].cname);
 
                      if (uentry_isValid (ue)) 
                        {
 
                      if (uentry_isValid (ue)) 
                        {
@@ -5351,279 +6826,433 @@ case 608:
                        {
                          yyval.expr = exprNode_iterNewId (cstring_copy (cscannerHelp_observeLastIdentifier ()));
                        }
                        {
                          yyval.expr = exprNode_iterNewId (cstring_copy (cscannerHelp_observeLastIdentifier ()));
                        }
-                   ;
-    break;}
-case 609:
-{ yyval.expr = exprNode_iterNewId (yyvsp[0].cname); ;
-    break;}
-case 611:
-{ yyval.expr = exprNode_combineLiterals (yyvsp[-1].expr, yyvsp[0].expr); ;
-    break;}
-case 613:
-{ yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
-    break;}
-case 615:
-{ yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ;
-    break;}
-case 616:
-{ yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ;
-    break;}
-case 617:
-{ yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].exprlist); ;
-    break;}
-case 618:
-{ yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ;
-    break;}
-case 619:
-{ yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
-    break;}
-case 620:
-{ yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
-    break;}
-case 621:
-{ yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
-    break;}
-case 622:
-{ yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
-    break;}
-case 624:
-{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 625:
-{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 626:
-{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 627:
-{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 628:
-{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 629:
-{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 630:
-{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 631:
-{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 632:
-{ yyval.expr = yyvsp[0].expr; ;
-    break;}
-case 634:
-{ yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ;
-    break;}
-case 636:
-{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 637:
-{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 638:
-{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 640:
-{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 641:
-{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 643:
-{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 644:
-{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 646:
-{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 647:
-{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 648:
-{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 649:
-{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 651:
-{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 652:
-{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 654:
-{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 656:
-{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 658:
-{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 660:
-{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 662:
-{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 664:
-{ context_enterTrueClause (yyvsp[-1].expr); ;
-    break;}
-case 665:
-{ context_enterFalseClause (yyvsp[-4].expr); ;
-    break;}
-case 666:
-{ yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ;
-    break;}
-case 668:
-{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 669:
-{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 670:
-{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 671:
-{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 672:
-{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 673:
-{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 674:
-{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 675:
-{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 676:
-{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 677:
-{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 678:
-{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
-    break;}
-case 679:
-{ yyval.entry = yyvsp[0].entry; ;
-    break;}
-case 680:
-{ yyval.entry = uentry_undefined; ;
-    break;}
-case 681:
-{ context_enterDoWhileClause (); yyval.tok = yyvsp[0].tok; ;
-    break;}
-case 682:
-{ yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ;
-    break;}
-case 683:
-{ yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr), yyvsp[0].tok); ;
-    break;}
-case 684:
-{ yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ;
-    break;}
-case 685:
-{ yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ;
-    break;}
-case 686:
-{ yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr), yyvsp[0].tok); ;
-    break;}
-case 687:
-{ yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ;
-    break;}
-case 688:
-{ yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ;
-    break;}
-case 689:
-{ yyval.expr = exprNode_goto (yyvsp[-1].cname); ;
-    break;}
-case 690:
-{ yyval.expr = exprNode_continue (yyvsp[-1].tok, BADTOK); ;
-    break;}
-case 691:
-{ yyval.expr = exprNode_continue (yyvsp[-2].tok, QINNERCONTINUE); ;
-    break;}
-case 692:
-{ yyval.expr = exprNode_break (yyvsp[-1].tok, BADTOK); ;
-    break;}
-case 693:
-{ yyval.expr = exprNode_break (yyvsp[-1].tok, QSWITCHBREAK); ;
-    break;}
-case 694:
-{ yyval.expr = exprNode_break (yyvsp[-1].tok, QLOOPBREAK); ;
-    break;}
-case 695:
-{ yyval.expr = exprNode_break (yyvsp[-1].tok, QINNERBREAK); ;
-    break;}
-case 696:
-{ yyval.expr = exprNode_break (yyvsp[-1].tok, QSAFEBREAK); ;
-    break;}
-case 697:
-{ yyval.expr = exprNode_nullReturn (yyvsp[-1].tok); ;
-    break;}
-case 698:
-{ yyval.expr = exprNode_return (yyvsp[-1].expr); ;
-    break;}
-case 700:
-{ ; ;
-    break;}
-case 702:
-{ ; ;
-    break;}
-case 705:
-{ yyval.cname = uentry_getName (yyvsp[0].entry); ;
-    break;}
-case 706:
-{ yyval.cname = uentry_getName (yyvsp[0].entry); ;
-    break;}
-case 707:
-{ yyval.cname = uentry_getName (yyvsp[0].entry); ;
-    break;}
-case 708:
-{ yyval.cname = yyvsp[0].cname; ;
-    break;}
-case 710:
-{ yyval.ctyp = ctype_unknown; ;
-    break;}
-case 711:
-{ yyval.ctyp = exprNode_getType (yyvsp[-1].expr); exprNode_free (yyvsp[-1].expr); ;
-    break;}
-case 712:
-{ yyval.ctyp = qtype_getType (yyvsp[-1].qtyp); ;
-    break;}
-}
+                   ;}
+    break;
+
+  case 610:
+
+    { yyval.expr = exprNode_iterNewId (yyvsp[0].cname); ;}
+    break;
+
+  case 612:
+
+    { yyval.expr = exprNode_combineLiterals (yyvsp[-1].expr, yyvsp[0].expr); ;}
+    break;
+
+  case 614:
+
+    { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;}
+    break;
+
+  case 616:
+
+    { yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ;}
+    break;
+
+  case 617:
+
+    { yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ;}
+    break;
+
+  case 618:
+
+    { yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].exprlist); ;}
+    break;
+
+  case 619:
+
+    { yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ;}
+    break;
+
+  case 620:
+
+    { yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;}
+    break;
+
+  case 621:
+
+    { yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;}
+    break;
+
+  case 622:
+
+    { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;}
+    break;
+
+  case 623:
+
+    { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;}
+    break;
+
+  case 625:
+
+    { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 626:
+
+    { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 627:
+
+    { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 628:
+
+    { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 629:
+
+    { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 630:
+
+    { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 631:
+
+    { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 632:
+
+    { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 633:
+
+    { yyval.expr = yyvsp[0].expr; ;}
+    break;
+
+  case 635:
+
+    { yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ;}
+    break;
+
+  case 637:
+
+    { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 638:
+
+    { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 639:
+
+    { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 641:
+
+    { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 642:
+
+    { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 644:
+
+    { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 645:
+
+    { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 647:
+
+    { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 648:
+
+    { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 649:
+
+    { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 650:
+
+    { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 652:
+
+    { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 653:
+
+    { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 655:
+
+    { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 657:
+
+    { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 659:
+
+    { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 661:
+
+    { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 663:
+
+    { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 665:
+
+    { context_enterTrueClause (yyvsp[-1].expr); ;}
+    break;
+
+  case 666:
+
+    { context_enterFalseClause (yyvsp[-4].expr); ;}
+    break;
+
+  case 667:
+
+    { yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ;}
+    break;
+
+  case 669:
+
+    { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 670:
+
+    { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 671:
+
+    { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
 
 
+  case 672:
+
+    { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 673:
+
+    { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 674:
+
+    { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 675:
+
+    { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 676:
+
+    { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 677:
+
+    { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 678:
+
+    { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 679:
+
+    { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;}
+    break;
+
+  case 680:
+
+    { yyval.entry = yyvsp[0].entry; ;}
+    break;
+
+  case 681:
+
+    { yyval.entry = uentry_undefined; ;}
+    break;
+
+  case 682:
+
+    { context_enterDoWhileClause (); yyval.tok = yyvsp[0].tok; ;}
+    break;
+
+  case 683:
+
+    { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ;}
+    break;
+
+  case 684:
+
+    { yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr), yyvsp[0].tok); ;}
+    break;
+
+  case 685:
+
+    { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ;}
+    break;
+
+  case 686:
+
+    { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ;}
+    break;
+
+  case 687:
+
+    { yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr), yyvsp[0].tok); ;}
+    break;
+
+  case 688:
+
+    { yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ;}
+    break;
+
+  case 689:
+
+    { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ;}
+    break;
+
+  case 690:
+
+    { yyval.expr = exprNode_goto (yyvsp[-1].cname); ;}
+    break;
+
+  case 691:
+
+    { yyval.expr = exprNode_continue (yyvsp[-1].tok, BADTOK); ;}
+    break;
+
+  case 692:
+
+    { yyval.expr = exprNode_continue (yyvsp[-2].tok, QINNERCONTINUE); ;}
+    break;
+
+  case 693:
+
+    { yyval.expr = exprNode_break (yyvsp[-1].tok, BADTOK); ;}
+    break;
+
+  case 694:
+
+    { yyval.expr = exprNode_break (yyvsp[-1].tok, QSWITCHBREAK); ;}
+    break;
+
+  case 695:
+
+    { yyval.expr = exprNode_break (yyvsp[-1].tok, QLOOPBREAK); ;}
+    break;
+
+  case 696:
+
+    { yyval.expr = exprNode_break (yyvsp[-1].tok, QINNERBREAK); ;}
+    break;
+
+  case 697:
+
+    { yyval.expr = exprNode_break (yyvsp[-1].tok, QSAFEBREAK); ;}
+    break;
+
+  case 698:
+
+    { yyval.expr = exprNode_nullReturn (yyvsp[-1].tok); ;}
+    break;
+
+  case 699:
+
+    { yyval.expr = exprNode_return (yyvsp[-1].expr); ;}
+    break;
+
+  case 701:
+
+    { ; ;}
+    break;
+
+  case 703:
+
+    { ; ;}
+    break;
+
+  case 706:
+
+    { yyval.cname = uentry_getName (yyvsp[0].entry); ;}
+    break;
+
+  case 707:
+
+    { yyval.cname = uentry_getName (yyvsp[0].entry); ;}
+    break;
+
+  case 708:
+
+    { yyval.cname = uentry_getName (yyvsp[0].entry); ;}
+    break;
+
+  case 709:
+
+    { yyval.cname = yyvsp[0].cname; ;}
+    break;
+
+  case 711:
+
+    { yyval.ctyp = ctype_unknown; ;}
+    break;
+
+  case 712:
+
+    { yyval.ctyp = exprNode_getType (yyvsp[-1].expr); exprNode_free (yyvsp[-1].expr); ;}
+    break;
+
+  case 713:
+
+    { yyval.ctyp = qtype_getType (yyvsp[-1].qtyp); ;}
+    break;
+
+
+    }
+
+/* Line 999 of yacc.c.  */
 
 \f
   yyvsp -= yylen;
   yyssp -= yylen;
 
 \f
   yyvsp -= yylen;
   yyssp -= yylen;
-#if YYLSP_NEEDED
-  yylsp -= yylen;
-#endif
 
 
-#if YYDEBUG
-  if (yydebug)
-    {
-      short *yyssp1 = yyss - 1;
-      YYFPRINTF (stderr, "state stack now");
-      while (yyssp1 != yyssp)
-       YYFPRINTF (stderr, " %d", *++yyssp1);
-      YYFPRINTF (stderr, "\n");
-    }
-#endif
+
+  YY_STACK_PRINT (yyss, yyssp);
 
   *++yyvsp = yyval;
 
   *++yyvsp = yyval;
-#if YYLSP_NEEDED
-  *++yylsp = yyloc;
-#endif
+
 
   /* Now `shift' the result of the reduction.  Determine what state
      that goes to, based on the state we popped back to and the rule
 
   /* Now `shift' the result of the reduction.  Determine what state
      that goes to, based on the state we popped back to and the rule
@@ -5631,11 +7260,11 @@ case 712:
 
   yyn = yyr1[yyn];
 
 
   yyn = yyr1[yyn];
 
-  yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
-  if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
+  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
+  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
     yystate = yytable[yystate];
   else
     yystate = yytable[yystate];
   else
-    yystate = yydefgoto[yyn - YYNTBASE];
+    yystate = yydefgoto[yyn - YYNTOKENS];
 
   goto yynewstate;
 
 
   goto yynewstate;
 
@@ -5648,13 +7277,13 @@ yyerrlab:
   if (!yyerrstatus)
     {
       ++yynerrs;
   if (!yyerrstatus)
     {
       ++yynerrs;
-
-#ifdef YYERROR_VERBOSE
+#if YYERROR_VERBOSE
       yyn = yypact[yystate];
 
       yyn = yypact[yystate];
 
-      if (yyn > YYFLAG && yyn < YYLAST)
+      if (YYPACT_NINF < yyn && yyn < YYLAST)
        {
          YYSIZE_T yysize = 0;
        {
          YYSIZE_T yysize = 0;
+         int yytype = YYTRANSLATE (yychar);
          char *yymsg;
          int yyx, yycount;
 
          char *yymsg;
          int yyx, yycount;
 
@@ -5663,15 +7292,15 @@ yyerrlab:
             YYCHECK.  */
          for (yyx = yyn < 0 ? -yyn : 0;
               yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)
             YYCHECK.  */
          for (yyx = yyn < 0 ? -yyn : 0;
               yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)
-           if (yycheck[yyx + yyn] == yyx)
+           if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
              yysize += yystrlen (yytname[yyx]) + 15, yycount++;
              yysize += yystrlen (yytname[yyx]) + 15, yycount++;
-         yysize += yystrlen ("parse error, unexpected ") + 1;
-         yysize += yystrlen (yytname[YYTRANSLATE (yychar)]);
+         yysize += yystrlen ("syntax error, unexpected ") + 1;
+         yysize += yystrlen (yytname[yytype]);
          yymsg = (char *) YYSTACK_ALLOC (yysize);
          if (yymsg != 0)
            {
          yymsg = (char *) YYSTACK_ALLOC (yysize);
          if (yymsg != 0)
            {
-             char *yyp = yystpcpy (yymsg, "parse error, unexpected ");
-             yyp = yystpcpy (yyp, yytname[YYTRANSLATE (yychar)]);
+             char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
+             yyp = yystpcpy (yyp, yytname[yytype]);
 
              if (yycount < 5)
                {
 
              if (yycount < 5)
                {
@@ -5679,7 +7308,7 @@ yyerrlab:
                  for (yyx = yyn < 0 ? -yyn : 0;
                       yyx < (int) (sizeof (yytname) / sizeof (char *));
                       yyx++)
                  for (yyx = yyn < 0 ? -yyn : 0;
                       yyx < (int) (sizeof (yytname) / sizeof (char *));
                       yyx++)
-                   if (yycheck[yyx + yyn] == yyx)
+                   if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
                      {
                        const char *yyq = ! yycount ? ", expecting " : " or ";
                        yyp = yystpcpy (yyp, yyq);
                      {
                        const char *yyq = ! yycount ? ", expecting " : " or ";
                        yyp = yystpcpy (yyp, yyq);
@@ -5691,102 +7320,77 @@ yyerrlab:
              YYSTACK_FREE (yymsg);
            }
          else
              YYSTACK_FREE (yymsg);
            }
          else
-           yyerror ("parse error; also virtual memory exhausted");
+           yyerror ("syntax error; also virtual memory exhausted");
        }
       else
        }
       else
-#endif /* defined (YYERROR_VERBOSE) */
-       yyerror ("parse error");
+#endif /* YYERROR_VERBOSE */
+       yyerror ("syntax error");
     }
     }
-  goto yyerrlab1;
 
 
 
 
-/*--------------------------------------------------.
-| yyerrlab1 -- error raised explicitly by an action |
-`--------------------------------------------------*/
-yyerrlab1:
+
   if (yyerrstatus == 3)
     {
       /* If just tried and failed to reuse lookahead token after an
         error, discard it.  */
 
   if (yyerrstatus == 3)
     {
       /* If just tried and failed to reuse lookahead token after an
         error, discard it.  */
 
-      /* return failure if at end of input */
+      /* Return failure if at end of input.  */
       if (yychar == YYEOF)
       if (yychar == YYEOF)
-       YYABORT;
-      YYDPRINTF ((stderr, "Discarding token %d (%s).\n",
-                 yychar, yytname[yychar1]));
+        {
+         /* Pop the error token.  */
+          YYPOPSTACK;
+         /* Pop the rest of the stack.  */
+         while (yyss < yyssp)
+           {
+             YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
+             yydestruct (yystos[*yyssp], yyvsp);
+             YYPOPSTACK;
+           }
+         YYABORT;
+        }
+
+      YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
+      yydestruct (yytoken, &yylval);
       yychar = YYEMPTY;
       yychar = YYEMPTY;
+
     }
 
   /* Else will try to reuse lookahead token after shifting the error
      token.  */
     }
 
   /* Else will try to reuse lookahead token after shifting the error
      token.  */
-
-  yyerrstatus = 3;             /* Each real token shifted decrements this */
-
-  goto yyerrhandle;
-
-
-/*-------------------------------------------------------------------.
-| yyerrdefault -- current state does not do anything special for the |
-| error token.                                                       |
-`-------------------------------------------------------------------*/
-yyerrdefault:
-#if 0
-  /* This is wrong; only states that explicitly want error tokens
-     should shift them.  */
-
-  /* If its default is to accept any token, ok.  Otherwise pop it.  */
-  yyn = yydefact[yystate];
-  if (yyn)
-    goto yydefault;
-#endif
+  goto yyerrlab1;
 
 
 
 
-/*---------------------------------------------------------------.
-| yyerrpop -- pop the current state because it cannot handle the |
-| error token                                                    |
-`---------------------------------------------------------------*/
-yyerrpop:
-  if (yyssp == yyss)
-    YYABORT;
-  yyvsp--;
-  yystate = *--yyssp;
-#if YYLSP_NEEDED
-  yylsp--;
-#endif
+/*----------------------------------------------------.
+| yyerrlab1 -- error raised explicitly by an action.  |
+`----------------------------------------------------*/
+yyerrlab1:
+  yyerrstatus = 3;     /* Each real token shifted decrements this.  */
 
 
-#if YYDEBUG
-  if (yydebug)
+  for (;;)
     {
     {
-      short *yyssp1 = yyss - 1;
-      YYFPRINTF (stderr, "Error: state stack now");
-      while (yyssp1 != yyssp)
-       YYFPRINTF (stderr, " %d", *++yyssp1);
-      YYFPRINTF (stderr, "\n");
-    }
-#endif
+      yyn = yypact[yystate];
+      if (yyn != YYPACT_NINF)
+       {
+         yyn += YYTERROR;
+         if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
+           {
+             yyn = yytable[yyn];
+             if (0 < yyn)
+               break;
+           }
+       }
 
 
-/*--------------.
-| yyerrhandle.  |
-`--------------*/
-yyerrhandle:
-  yyn = yypact[yystate];
-  if (yyn == YYFLAG)
-    goto yyerrdefault;
+      /* Pop the current state because it cannot handle the error token.  */
+      if (yyssp == yyss)
+       YYABORT;
 
 
-  yyn += YYTERROR;
-  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
-    goto yyerrdefault;
+      YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
+      yydestruct (yystos[yystate], yyvsp);
+      yyvsp--;
+      yystate = *--yyssp;
 
 
-  yyn = yytable[yyn];
-  if (yyn < 0)
-    {
-      if (yyn == YYFLAG)
-       goto yyerrpop;
-      yyn = -yyn;
-      goto yyreduce;
+      YY_STACK_PRINT (yyss, yyssp);
     }
     }
-  else if (yyn == 0)
-    goto yyerrpop;
 
   if (yyn == YYFINAL)
     YYACCEPT;
 
   if (yyn == YYFINAL)
     YYACCEPT;
@@ -5794,9 +7398,7 @@ yyerrhandle:
   YYDPRINTF ((stderr, "Shifting error token, "));
 
   *++yyvsp = yylval;
   YYDPRINTF ((stderr, "Shifting error token, "));
 
   *++yyvsp = yylval;
-#if YYLSP_NEEDED
-  *++yylsp = yylloc;
-#endif
+
 
   yystate = yyn;
   goto yynewstate;
 
   yystate = yyn;
   goto yynewstate;
@@ -5816,13 +7418,15 @@ yyabortlab:
   yyresult = 1;
   goto yyreturn;
 
   yyresult = 1;
   goto yyreturn;
 
-/*---------------------------------------------.
-| yyoverflowab -- parser overflow comes here.  |
-`---------------------------------------------*/
+#ifndef yyoverflow
+/*----------------------------------------------.
+| yyoverflowlab -- parser overflow comes here.  |
+`----------------------------------------------*/
 yyoverflowlab:
   yyerror ("parser stack overflow");
   yyresult = 2;
   /* Fall through.  */
 yyoverflowlab:
   yyerror ("parser stack overflow");
   yyresult = 2;
   /* Fall through.  */
+#endif
 
 yyreturn:
 #ifndef yyoverflow
 
 yyreturn:
 #ifndef yyoverflow
@@ -5833,6 +7437,9 @@ yyreturn:
 }
 
 
 }
 
 
+
+
+
 /*@-redecl@*/ /*@-namechecks@*/
 extern char *yytext;
 /*@=redecl@*/ /*@=namechecks@*/
 /*@-redecl@*/ /*@-namechecks@*/
 extern char *yytext;
 /*@=redecl@*/ /*@=namechecks@*/
@@ -5889,6 +7496,7 @@ void yyerror (/*@unused@*/ char *s)
 
 
 
 
 
 
+
 /*
 ** Resets all flags in bison.head
 */
 /*
 ** Resets all flags in bison.head
 */
index fc0f2214d5f0cb14ff9e0f81d526b41e8268a0ba..1da586cb40969261eec81b7839a47748ae3a176b 100644 (file)
@@ -1431,9 +1431,9 @@ static /*@only@*/ constraintExpr constraintExpr_simplifyunaryExpr (/*@only@*/ co
          BADEXIT;
        }
 
          BADEXIT;
        }
 
-      /* slight Kludge to hanlde var [] = { , , };
-      ** type syntax  I don't think this is sounds but it should be good
-      ** enough.  The C stanrad is very confusing about initialization
+      /* slight Kludge to handle var [] = { , , };
+      ** type syntax  I don't think this is sound but it should be good
+      ** enough.  The C standard is very confusing about initialization
       ** -- DRL 7/25/01
       */
       
       ** -- DRL 7/25/01
       */
       
@@ -1444,10 +1444,14 @@ static /*@only@*/ constraintExpr constraintExpr_simplifyunaryExpr (/*@only@*/ co
 
          len = constraintTerm_getInitBlockLength(cterm);
 
 
          len = constraintTerm_getInitBlockLength(cterm);
 
+         /* -- drl 12/08/2003 : decrementing to fix off by one error */
+
+         len--;
+
          temp = constraintExpr_makeIntLiteral (len );
          
          constraintExpr_free(c);
          temp = constraintExpr_makeIntLiteral (len );
          
          constraintExpr_free(c);
-         DPRINTF(( message("Changed too %q", constraintExpr_print(temp)
+         DPRINTF(( message("Changed to %q", constraintExpr_print(temp)
                            ) ));
          constraintExpr_free(exp);
          return temp;
                            ) ));
          constraintExpr_free(exp);
          return temp;
index 3a94efd5c3ebae7670e188bdbdd388bd7993f55b..9be223eb0d51bd6c9a83e8fe40c3d8b02b0f2c40 100644 (file)
@@ -2212,7 +2212,7 @@ we'll include it in a production release when its stable...
       rt =  ctype_realType (ct);
       
       if (ctype_isStruct (rt))
       rt =  ctype_realType (ct);
       
       if (ctype_isStruct (rt))
-       TPRINTF((message("Found structure %s", exprNode_unparse(expr))
+       DPRINTF((message("Found structure %s", exprNode_unparse(expr))
                 ));
       if (hasInvariants(ct))
        {
                 ));
       if (hasInvariants(ct))
        {
@@ -2221,13 +2221,13 @@ we'll include it in a production release when its stable...
          invars = getInvariants(ct);
 
 
          invars = getInvariants(ct);
 
 
-         TPRINTF((message ("findStructs has invariants %s ", constraintList_unparse (invars))
+         DPRINTF((message ("findStructs has invariants %s ", constraintList_unparse (invars))
                   ));
          
          invars = constraintList_doSRefFixStructConstraint(invars, exprNode_getSref(expr), ct);
 
          
                   ));
          
          invars = constraintList_doSRefFixStructConstraint(invars, exprNode_getSref(expr), ct);
 
          
-         TPRINTF((message ("findStructs finded invariants to be %s ", constraintList_unparse (invars))
+         DPRINTF((message ("findStructs finded invariants to be %s ", constraintList_unparse (invars))
                   ));
        }
     }
                   ));
        }
     }
@@ -2266,16 +2266,16 @@ constraintList checkCall (/*@dependent@*/ exprNode fcn, exprNodeList arglist)
       uentryList_elements (arglist, el)
        {
          sRef s;
       uentryList_elements (arglist, el)
        {
          sRef s;
-         TPRINTF((message("setImplicitfcnConstraints doing: %s", uentry_unparse(el) ) ));
+         DPRINTF((message("setImplicitfcnConstraints doing: %s", uentry_unparse(el) ) ));
          
          s = uentry_getSref(el);
          if (sRef_isReference (s) )
            {
          
          s = uentry_getSref(el);
          if (sRef_isReference (s) )
            {
-             TPRINTF((message ("%s is a pointer", sRef_unparse(s) ) ));
+             DPRINTF((message ("%s is a pointer", sRef_unparse(s) ) ));
            }
          else
            {
            }
          else
            {
-             TPRINTF((message ("%s is NOT a pointer", sRef_unparse(s) ) ));
+             DPRINTF((message ("%s is NOT a pointer", sRef_unparse(s) ) ));
            }
          //drl 4/26/01
          //chagned this from MaxSet(s) == 0 to MaxSet(s) >= 0 
            }
          //drl 4/26/01
          //chagned this from MaxSet(s) == 0 to MaxSet(s) >= 0 
index 10aa3c954aad392b18d272eb19efdfff3070956d..331db193e3835ece2711cd52f0b64b553ce212e5 100644 (file)
@@ -74,7 +74,7 @@ static /*@only@*/ constraintList reflectChangesEnsuresFree1 (/*@only@*/ constrai
   llassert(constraintList_isDefined(list2) );
 
   DPRINTF(( message ("constraintList_mergeEnsures: list1 %s list2 %s",
   llassert(constraintList_isDefined(list2) );
 
   DPRINTF(( message ("constraintList_mergeEnsures: list1 %s list2 %s",
-                    constraintList_print(list1), constraintList_print(list2)
+                    constraintList_unparse(list1), constraintList_unparse(list2)
                     )));
   
   ret = constraintList_fixConflicts (list1, list2);
                     )));
   
   ret = constraintList_fixConflicts (list1, list2);
@@ -89,7 +89,7 @@ static /*@only@*/ constraintList reflectChangesEnsuresFree1 (/*@only@*/ constrai
   constraintList_free(ret);
   
   DPRINTF(( message ("constraintList_mergeEnsures: returning %s ",
   constraintList_free(ret);
   
   DPRINTF(( message ("constraintList_mergeEnsures: returning %s ",
-                    constraintList_print(temp) )
+                    constraintList_unparse(temp) )
                     ));
   
 
                     ));
   
 
@@ -113,7 +113,7 @@ static /*@only@*/ constraintList reflectChangesEnsuresFree1 (/*@only@*/ constrai
   constraintList ret;
   constraintList temp;
 
   constraintList ret;
   constraintList temp;
 
-  DPRINTF((message ("constraintList_mergeRequires: merging  %s and %s ", constraintList_print (list1), constraintList_print(list2) ) ) );
+  DPRINTF((message ("constraintList_mergeRequires: merging  %s and %s ", constraintList_unparse (list1), constraintList_unparse(list2) ) ) );
 
   if (context_getFlag (FLG_REDUNDANTCONSTRAINTS) )
     {
 
   if (context_getFlag (FLG_REDUNDANTCONSTRAINTS) )
     {
@@ -124,16 +124,16 @@ static /*@only@*/ constraintList reflectChangesEnsuresFree1 (/*@only@*/ constrai
     
   /* get constraints in list1 not satified by list2 */
   temp = constraintList_reflectChanges(list1, list2);
     
   /* get constraints in list1 not satified by list2 */
   temp = constraintList_reflectChanges(list1, list2);
-  DPRINTF((message ("constraintList_mergeRequires: temp = %s", constraintList_print(temp) ) ) );
+  DPRINTF((message ("constraintList_mergeRequires: temp = %s", constraintList_unparse(temp) ) ) );
 
 /*get constraints in list2 not satified by temp*/
   ret = constraintList_reflectChanges(list2, temp);
  
 
 /*get constraints in list2 not satified by temp*/
   ret = constraintList_reflectChanges(list2, temp);
  
-  DPRINTF((message ("constraintList_mergeRequires: ret =  %s", constraintList_print(ret) ) ) );
+  DPRINTF((message ("constraintList_mergeRequires: ret =  %s", constraintList_unparse(ret) ) ) );
   
   ret = constraintList_addListFree (ret, temp);
   
   
   ret = constraintList_addListFree (ret, temp);
   
-  DPRINTF((message ("constraintList_mergeRequires: returning  %s", constraintList_print(ret) ) ) );
+  DPRINTF((message ("constraintList_mergeRequires: returning  %s", constraintList_unparse(ret) ) ) );
 
   return ret;
 }
 
   return ret;
 }
@@ -166,8 +166,8 @@ void exprNode_mergeResolve (exprNode parent, exprNode child1, exprNode child2)
 
           parent->ensuresConstraints = constraintList_copy (child2->ensuresConstraints);
           DPRINTF((message ("Copied child constraints: pre: %s and post: %s",
 
           parent->ensuresConstraints = constraintList_copy (child2->ensuresConstraints);
           DPRINTF((message ("Copied child constraints: pre: %s and post: %s",
-                            constraintList_print( child2->requiresConstraints),
-                            constraintList_print (child2->ensuresConstraints)
+                            constraintList_unparse( child2->requiresConstraints),
+                            constraintList_unparse (child2->ensuresConstraints)
                             )
                    ));
           return;
                             )
                    ));
           return;
@@ -182,10 +182,10 @@ void exprNode_mergeResolve (exprNode parent, exprNode child1, exprNode child2)
    llassert(!exprNode_isError (child1)  && ! exprNode_isError(child2) );
    
    DPRINTF((message ("Child constraints are %s %s and %s %s",
    llassert(!exprNode_isError (child1)  && ! exprNode_isError(child2) );
    
    DPRINTF((message ("Child constraints are %s %s and %s %s",
-                    constraintList_print (child1->requiresConstraints),
-                    constraintList_print (child1->ensuresConstraints),
-                    constraintList_print (child2->requiresConstraints),
-                    constraintList_print (child2->ensuresConstraints)
+                    constraintList_unparse (child1->requiresConstraints),
+                    constraintList_unparse (child1->ensuresConstraints),
+                    constraintList_unparse (child2->requiresConstraints),
+                    constraintList_unparse (child2->ensuresConstraints)
                     ) ) );
  
  
                     ) ) );
  
  
@@ -205,7 +205,7 @@ void exprNode_mergeResolve (exprNode parent, exprNode child1, exprNode child2)
   parent->requiresConstraints = temp2;
 
   DPRINTF((message ("Parent requires constraints are %s  ",
   parent->requiresConstraints = temp2;
 
   DPRINTF((message ("Parent requires constraints are %s  ",
-                    constraintList_print (parent->requiresConstraints)
+                    constraintList_unparse (parent->requiresConstraints)
                     ) ) );
 
    constraintList_free(parent->ensuresConstraints);
                     ) ) );
 
    constraintList_free(parent->ensuresConstraints);
@@ -215,8 +215,8 @@ void exprNode_mergeResolve (exprNode parent, exprNode child1, exprNode child2)
 
   
   DPRINTF((message ("Parent constraints are %s and %s ",
 
   
   DPRINTF((message ("Parent constraints are %s and %s ",
-                    constraintList_print (parent->requiresConstraints),
-                    constraintList_print (parent->ensuresConstraints)
+                    constraintList_unparse (parent->requiresConstraints),
+                    constraintList_unparse (parent->ensuresConstraints)
                     ) ) );
  
 }
                     ) ) );
  
 }
@@ -228,7 +228,7 @@ void exprNode_mergeResolve (exprNode parent, exprNode child1, exprNode child2)
   constraintList_elements (list1, el)
     {
       
   constraintList_elements (list1, el)
     {
       
-      DPRINTF ((message ("Examining %s", constraint_print (el) ) ) );
+      DPRINTF ((message ("Examining %s", constraint_unparse (el) ) ) );
       if (!constraintList_resolve (el, list2) )
        {
          constraint temp;
       if (!constraintList_resolve (el, list2) )
        {
          constraint temp;
@@ -237,7 +237,7 @@ void exprNode_mergeResolve (exprNode parent, exprNode child1, exprNode child2)
        }
       else
        {
        }
       else
        {
-         DPRINTF ((message ("Subsuming %s", constraint_print (el) ) ) );
+         DPRINTF ((message ("Subsuming %s", constraint_unparse (el) ) ) );
        }
     } end_constraintList_elements;
 
        }
     } end_constraintList_elements;
 
@@ -271,7 +271,7 @@ static /*@only@*/ constraintList reflectChangesNoOr (/*@observer@*/ /*@temp@*/ c
   llassert  (! context_getFlag (FLG_ORCONSTRAINT) );
 
   ret = constraintList_makeNew();
   llassert  (! context_getFlag (FLG_ORCONSTRAINT) );
 
   ret = constraintList_makeNew();
-  DPRINTF((message ("reflectChanges: lists %s and %s", constraintList_print(pre2), constraintList_print(post1) )));
+  DPRINTF((message ("reflectChanges: lists %s and %s", constraintList_unparse(pre2), constraintList_unparse(post1) )));
   
   constraintList_elements (pre2, el)
     {
   
   constraintList_elements (pre2, el)
     {
@@ -303,7 +303,7 @@ static /*@only@*/ constraintList reflectChangesNoOr (/*@observer@*/ /*@temp@*/ c
        }
     } end_constraintList_elements;
 
        }
     } end_constraintList_elements;
 
-    DPRINTF((message ("reflectChanges: returning %s", constraintList_print(ret) ) ) );
+    DPRINTF((message ("reflectChanges: returning %s", constraintList_unparse(ret) ) ) );
     return ret;
 }
 
     return ret;
 }
 
@@ -329,7 +329,7 @@ static constraint constraint_addOr (/*@returned@*/ constraint orig, /*@observer@
   
   c = orig;
 
   
   c = orig;
 
-  DPRINTF((message("constraint_addor: oring %s onto %s", constraint_printOr(orConstr), constraint_printOr(orig) ) ));
+  DPRINTF((message("constraint_addor: oring %s onto %s", constraint_unparseOr(orConstr), constraint_unparseOr(orig) ) ));
   
   while (c->or != NULL)
     {
   
   while (c->or != NULL)
     {
@@ -338,7 +338,7 @@ static constraint constraint_addOr (/*@returned@*/ constraint orig, /*@observer@
   
   c->or = constraint_copy(orConstr);
 
   
   c->or = constraint_copy(orConstr);
 
-  DPRINTF((message("constraint_addor: returning %s",constraint_printOr(orig) ) ));
+  DPRINTF((message("constraint_addor: returning %s",constraint_unparseOr(orig) ) ));
   
   return orig;
 }
   
   return orig;
 }
@@ -354,7 +354,7 @@ static bool resolveOr ( /*@temp@*/ constraint c, /*@observer@*/ /*@temp@*/ const
 
     llassert(constraint_isDefined(c) );
 
 
     llassert(constraint_isDefined(c) );
 
-  DPRINTF(( message("resolveOr: constraint %s and list %s", constraint_printOr(c), constraintList_print(list) ) ));
+  DPRINTF(( message("resolveOr: constraint %s and list %s", constraint_unparseOr(c), constraintList_unparse(list) ) ));
   
   temp = c;
 
   
   temp = c;
 
@@ -380,7 +380,7 @@ static /*@only@*/ constraint doResolve (/*@only@*/ constraint c, constraintList
   llassert(constraint_isDefined (c ) );
 
   DPRINTF((message("doResolve:: call on constraint c = : %q and constraintList %q",
   llassert(constraint_isDefined (c ) );
 
   DPRINTF((message("doResolve:: call on constraint c = : %q and constraintList %q",
-                  constraint_printOr(c), constraintList_print(post1)
+                  constraint_unparseOr(c), constraintList_unparse(post1)
                   )
           ));
   
                   )
           ));
   
@@ -390,7 +390,7 @@ static /*@only@*/ constraint doResolve (/*@only@*/ constraint c, constraintList
       temp = constraint_substitute (c, post1);
       
       DPRINTF((message("doResolve:: after substitute temp is %q",
       temp = constraint_substitute (c, post1);
       
       DPRINTF((message("doResolve:: after substitute temp is %q",
-                  constraint_printOr(temp)
+                  constraint_unparseOr(temp)
                       )
               ));
   
                       )
               ));
   
@@ -427,13 +427,13 @@ static /*@only@*/ constraint doResolve (/*@only@*/ constraint c, constraintList
 
                          DPRINTF((
                                   message("doResolve: adding %s ",
 
                          DPRINTF((
                                   message("doResolve: adding %s ",
-                                          constraint_printOr(tempSub)
+                                          constraint_unparseOr(tempSub)
                                           )
                                   ));
                          
                          DPRINTF((
                                   message("doResolve: not adding %s ",
                                           )
                                   ));
                          
                          DPRINTF((
                                   message("doResolve: not adding %s ",
-                                          constraint_printOr(temp2)
+                                          constraint_unparseOr(temp2)
                                           )
                                   ));
                          
                                           )
                                   ));
                          
@@ -453,14 +453,14 @@ static /*@only@*/ constraint doResolve (/*@only@*/ constraint c, constraintList
 
                          DPRINTF((
                                   message("doResolve: adding %s ",
 
                          DPRINTF((
                                   message("doResolve: adding %s ",
-                                          constraint_printOr(tempSub)
+                                          constraint_unparseOr(tempSub)
                                           )
                                   ));
 
                          
                          DPRINTF((
                                   message("doResolve: not adding %s ",
                                           )
                                   ));
 
                          
                          DPRINTF((
                                   message("doResolve: not adding %s ",
-                                          constraint_printOr(temp3)
+                                          constraint_unparseOr(temp3)
                                           )
                                   ));
 
                                           )
                                   ));
 
@@ -505,7 +505,7 @@ static /*@only@*/ constraint doResolveOr (/*@observer@*/ /*@temp@*/ constraint c
   constraint next;
   constraint curr;
   
   constraint next;
   constraint curr;
   
-  DPRINTF(( message("doResolveOr: constraint %s and list %s", constraint_printOr(c), constraintList_print(post1) ) ));
+  DPRINTF(( message("doResolveOr: constraint %s and list %s", constraint_unparseOr(c), constraintList_unparse(post1) ) ));
 
   *resolved = FALSE;
   
 
   *resolved = FALSE;
   
@@ -558,6 +558,9 @@ static /*@only@*/ constraint doResolveOr (/*@observer@*/ /*@temp@*/ constraint c
       ret = constraint_addOr (ret, curr);
       constraint_free(curr);
     }
       ret = constraint_addOr (ret, curr);
       constraint_free(curr);
     }
+
+  DPRINTF(( message("doResolveOr: returning ret = %s", constraint_unparseOr(ret) ) ));
+  
   return ret;
 }
 
   return ret;
 }
 
@@ -568,7 +571,7 @@ static /*@only@*/ constraint doResolveOr (/*@observer@*/ /*@temp@*/ constraint c
   constraintList ret;
   constraint temp;
   ret = constraintList_makeNew();
   constraintList ret;
   constraint temp;
   ret = constraintList_makeNew();
-  DPRINTF((message ("constraintList_reflectChangesOr: lists %s and %s", constraintList_print(pre2), constraintList_print(post1) )));
+  DPRINTF((message ("constraintList_reflectChangesOr: lists %s and %s", constraintList_unparse(pre2), constraintList_unparse(post1) )));
   
   constraintList_elements (pre2, el)
     {
   
   constraintList_elements (pre2, el)
     {
@@ -587,7 +590,7 @@ static /*@only@*/ constraint doResolveOr (/*@observer@*/ /*@temp@*/ constraint c
       
     } end_constraintList_elements;
 
       
     } end_constraintList_elements;
 
-  DPRINTF((message ("constraintList_reflectChangesOr: returning %s", constraintList_print(ret) ) ) );
+  DPRINTF((message ("constraintList_reflectChangesOr: returning %s", constraintList_unparse(ret) ) ) );
     return ret;
 }
 
     return ret;
 }
 
@@ -610,7 +613,7 @@ static /*@only@*/ constraintList reflectChangesEnsures (/*@observer@*/ constrain
        }
       else
        {
        }
       else
        {
-         DPRINTF ((message ("Resolved away %s ", constraint_print(el) ) ) );
+         DPRINTF ((message ("Resolved away %s ", constraint_unparse(el) ) ) );
        }
     } end_constraintList_elements;
 
        }
     } end_constraintList_elements;
 
@@ -665,7 +668,7 @@ static bool constraint_conflict (constraint c1, constraint c2)
 
              if (constraintTerm_isExprNode(term) )
                {
 
              if (constraintTerm_isExprNode(term) )
                {
-                 DPRINTF ((message ("%s conflicts with %s ", constraint_print (c1), constraint_print(c2) ) ) );
+                 DPRINTF ((message ("%s conflicts with %s ", constraint_unparse (c1), constraint_unparse(c2) ) ) );
                  return TRUE;
                }
            }
                  return TRUE;
                }
            }
@@ -673,11 +676,11 @@ static bool constraint_conflict (constraint c1, constraint c2)
 
   if (constraint_tooDeep(c1) || constraint_tooDeep(c2) )
        {
 
   if (constraint_tooDeep(c1) || constraint_tooDeep(c2) )
        {
-         DPRINTF ((message ("%s conflicts with %s (constraint is too deep", constraint_print (c1), constraint_print(c2) ) ) );
+         DPRINTF ((message ("%s conflicts with %s (constraint is too deep", constraint_unparse (c1), constraint_unparse(c2) ) ) );
          return TRUE;
        }
   
          return TRUE;
        }
   
-  DPRINTF ((message ("%s doesn't conflict with %s ", constraint_print (c1), constraint_print(c2) ) ) );
+  DPRINTF ((message ("%s doesn't conflict with %s ", constraint_unparse (c1), constraint_unparse(c2) ) ) );
 
   return FALSE; 
 
 
   return FALSE; 
 
@@ -879,7 +882,7 @@ static bool sizeOfMaxSet( /*@observer@*/ /*@temp@*/ constraint c)
 {
   constraintExpr l, r, buf1, buf2, con;
 
 {
   constraintExpr l, r, buf1, buf2, con;
 
-  DPRINTF(( message("sizeOfMaxSet: checking %s ", constraint_print(c) )
+  DPRINTF(( message("sizeOfMaxSet: checking %s ", constraint_unparse(c) )
            ));
 
   llassert (constraint_isDefined(c) );
            ));
 
   llassert (constraint_isDefined(c) );
@@ -970,7 +973,7 @@ bool constraint_isAlwaysTrue (/*@observer@*/ /*@temp@*/ constraint c)
   l = c->lexpr;
   r = c->expr;
 
   l = c->lexpr;
   r = c->expr;
 
-  DPRINTF(( message("constraint_IsAlwaysTrue:examining %s", constraint_print(c) ) ));
+  DPRINTF(( message("constraint_IsAlwaysTrue:examining %s", constraint_unparse(c) ) ));
 
   if (sizeOfMaxSet(c) )
     return TRUE;
 
   if (sizeOfMaxSet(c) )
     return TRUE;
@@ -1054,7 +1057,7 @@ bool constraint_isAlwaysTrue (/*@observer@*/ /*@temp@*/ constraint c)
       {
        constraintExpr_free(l);
        constraintExpr_free(r);
       {
        constraintExpr_free(l);
        constraintExpr_free(r);
-       DPRINTF(( message("Constraint %s is not always true", constraint_print(c) ) ));
+       DPRINTF(( message("Constraint %s is not always true", constraint_unparse(c) ) ));
        return FALSE;
       }
   
        return FALSE;
       }
   
@@ -1206,8 +1209,8 @@ static constraint constraint_adjust (/*@returned@*/ constraint substitute, /*@ob
 {
   fileloc loc1, loc2, loc3;
 
 {
   fileloc loc1, loc2, loc3;
 
-  DPRINTF ((message("Start adjust on %s and %s", constraint_print(substitute),
-                    constraint_print(old))
+  DPRINTF ((message("Start adjust on %s and %s", constraint_unparse(substitute),
+                    constraint_unparse(old))
                   ));
 
   llassert(constraint_isDefined(substitute));
                   ));
 
   llassert(constraint_isDefined(substitute));
@@ -1222,7 +1225,7 @@ static constraint constraint_adjust (/*@returned@*/ constraint substitute, /*@ob
       if (fileloc_closer (loc1, loc3, loc2))
       {
        constraintExpr temp;
       if (fileloc_closer (loc1, loc3, loc2))
       {
        constraintExpr temp;
-       DPRINTF ((message("Doing adjust on %s", constraint_print(substitute) )
+       DPRINTF ((message("Doing adjust on %s", constraint_unparse(substitute) )
                   ));
        temp = substitute->lexpr;
        substitute->lexpr = substitute->expr;
                   ));
        temp = substitute->lexpr;
        substitute->lexpr = substitute->expr;
@@ -1265,7 +1268,7 @@ constraint  inequalitySubstitute  (/*@returned@*/ constraint c, constraintList p
               {
                 DPRINTF((message ("inequalitySubstitute Replacing %q in %q with  %q",
                                   constraintExpr_print (c->expr),
               {
                 DPRINTF((message ("inequalitySubstitute Replacing %q in %q with  %q",
                                   constraintExpr_print (c->expr),
-                                  constraint_print (c),
+                                  constraint_unparse (c),
                                   constraintExpr_print (el->expr) )
                          ));
                 temp2   = constraintExpr_copy (el->lexpr);
                                   constraintExpr_print (el->expr) )
                          ));
                 temp2   = constraintExpr_copy (el->lexpr);
@@ -1295,7 +1298,7 @@ constraint  inequalitySubstitute  (/*@returned@*/ constraint c, constraintList p
 
 static constraint  inequalitySubstituteStrong  (/*@returned@*/ constraint c, constraintList p)
 {
 
 static constraint  inequalitySubstituteStrong  (/*@returned@*/ constraint c, constraintList p)
 {
-  DPRINTF (( message ("inequalitySubstituteStrong examining substituting for %q", constraint_print(c) ) ));      
+  DPRINTF (( message ("inequalitySubstituteStrong examining substituting for %q", constraint_unparse(c) ) ));      
 
   llassert(constraint_isDefined(c) );
 
 
   llassert(constraint_isDefined(c) );
 
@@ -1308,11 +1311,11 @@ static constraint  inequalitySubstituteStrong  (/*@returned@*/ constraint c, con
     return c;
   
   DPRINTF (( message ("inequalitySubstituteStrong examining substituting for %q with %q",
     return c;
   
   DPRINTF (( message ("inequalitySubstituteStrong examining substituting for %q with %q",
-                     constraint_print(c), constraintList_print(p) ) ));      
+                     constraint_unparse(c), constraintList_unparse(p) ) ));      
   constraintList_elements (p, el)
     {
       
   constraintList_elements (p, el)
     {
       
-      DPRINTF (( message ("inequalitySubstituteStrong examining substituting %s on %s", constraint_print(el), constraint_print(c) ) ));      
+      DPRINTF (( message ("inequalitySubstituteStrong examining substituting %s on %s", constraint_unparse(el), constraint_unparse(c) ) ));      
 
       llassert(constraint_isDefined(el) );
       if ((el->ar == LT ) ||  (el->ar == LTE )  )
 
       llassert(constraint_isDefined(el) );
       if ((el->ar == LT ) ||  (el->ar == LTE )  )
@@ -1323,7 +1326,7 @@ static constraint  inequalitySubstituteStrong  (/*@returned@*/ constraint c, con
               {
                 DPRINTF((message ("inequalitySubstitute Replacing %s in %s with  %s",
                                   constraintExpr_print (c->expr),
               {
                 DPRINTF((message ("inequalitySubstitute Replacing %s in %s with  %s",
                                   constraintExpr_print (c->expr),
-                                  constraint_print (c),
+                                  constraint_unparse (c),
                                   constraintExpr_print (el->expr) )
                          ));
                 temp2   = constraintExpr_copy (el->expr);
                                   constraintExpr_print (el->expr) )
                          ));
                 temp2   = constraintExpr_copy (el->expr);
@@ -1368,7 +1371,7 @@ static constraint  inequalitySubstituteUnsound  (/*@returned@*/ constraint c, co
 
       llassert(constraint_isDefined(el) );
 
 
       llassert(constraint_isDefined(el) );
 
-      DPRINTF (( message ("inequalitySubstituteUnsound examining substituting %s on %s", constraint_print(el), constraint_print(c) ) ));      
+      DPRINTF (( message ("inequalitySubstituteUnsound examining substituting %s on %s", constraint_unparse(el), constraint_unparse(c) ) ));      
        if (( el->ar == LTE) || (el->ar == LT) )
           {
             constraintExpr  temp2;
        if (( el->ar == LTE) || (el->ar == LT) )
           {
             constraintExpr  temp2;
@@ -1411,10 +1414,10 @@ static constraint  inequalitySubstituteUnsound  (/*@returned@*/ constraint c, co
                
                
                DPRINTF (("constraint_substitute :: Substituting in %s using %s",
                
                
                DPRINTF (("constraint_substitute :: Substituting in %s using %s",
-                         constraint_print (ret), constraint_print (temp)));
+                         constraint_unparse (ret), constraint_unparse (temp)));
          
                ret = constraint_searchandreplace (ret, temp->lexpr, temp->expr);
          
                ret = constraint_searchandreplace (ret, temp->lexpr, temp->expr);
-               DPRINTF (("constraint_substitute :: The new constraint is %s", constraint_print (ret)));;
+               DPRINTF (("constraint_substitute :: The new constraint is %s", constraint_unparse (ret)));;
                constraint_free(temp);
              }
        }
                constraint_free(temp);
              }
        }
@@ -1422,7 +1425,7 @@ static constraint  inequalitySubstituteUnsound  (/*@returned@*/ constraint c, co
   end_constraintList_elements;
 
   ret = constraint_simplify (ret);
   end_constraintList_elements;
 
   ret = constraint_simplify (ret);
-  DPRINTF(( message (" constraint_substitute :: The final new constraint is %s", constraint_print (ret) ) ));
+  DPRINTF(( message (" constraint_substitute :: The final new constraint is %s", constraint_unparse (ret) ) ));
   return ret;
 }
 
   return ret;
 }
 
@@ -1465,9 +1468,9 @@ static constraint constraint_solve (/*@returned@*/ constraint c)
 
   llassert(constraint_isDefined(c) );
 
 
   llassert(constraint_isDefined(c) );
 
-  DPRINTF((message ("Solving %s\n", constraint_print(c) ) ) );
+  DPRINTF((message ("Solving %s\n", constraint_unparse(c) ) ) );
   c->expr = constraintExpr_solveBinaryExpr (c->lexpr, c->expr);
   c->expr = constraintExpr_solveBinaryExpr (c->lexpr, c->expr);
-  DPRINTF((message ("Solved and got %s\n", constraint_print(c) ) ) );
+  DPRINTF((message ("Solved and got %s\n", constraint_unparse(c) ) ) );
 
   return c;
 }
 
   return c;
 }
@@ -1513,11 +1516,11 @@ constraint constraint_simplify ( /*@returned@*/ constraint c)
   
   llassert(constraint_isDefined(c) );
        
   
   llassert(constraint_isDefined(c) );
        
-  DPRINTF(( message("constraint_simplify on %q ", constraint_print(c) ) ));
+  DPRINTF(( message("constraint_simplify on %q ", constraint_unparse(c) ) ));
 
   if (constraint_tooDeep(c))
     {
 
   if (constraint_tooDeep(c))
     {
-        DPRINTF(( message("constraint_simplify: constraint to complex aborting %q ", constraint_print(c) ) ));
+        DPRINTF(( message("constraint_simplify: constraint to complex aborting %q ", constraint_unparse(c) ) ));
       return c;
 
     }
       return c;
 
     }
@@ -1540,7 +1543,7 @@ constraint constraint_simplify ( /*@returned@*/ constraint c)
       c = constraint_simplify(c);
     }
 
       c = constraint_simplify(c);
     }
 
-  DPRINTF(( message("constraint_simplify returning  %q ", constraint_print(c) ) ));
+  DPRINTF(( message("constraint_simplify returning  %q ", constraint_unparse(c) ) ));
 
   return c;
 }
 
   return c;
 }
index cb1a43222212d7424a9b2262d444bce4f6f78531..2752d6b6670e7a199edfea405e541a5699ba52e9 100644 (file)
@@ -203,7 +203,7 @@ functionClauseList_setImplicitConstraints (/*@returned@*/ functionClauseList s)
                  constraintList implCons = getImplicitFcnConstraints ();
                  
                  DPRINTF ((message ("functionClauseList_ImplicitConstraints adding the implict constraints: %s to %s",
                  constraintList implCons = getImplicitFcnConstraints ();
                  
                  DPRINTF ((message ("functionClauseList_ImplicitConstraints adding the implict constraints: %s to %s",
-                                    constraintList_print(implCons), constraintList_print (con->constraint.buffer))));
+                                    constraintList_unparse(implCons), constraintList_unparse (con->constraint.buffer))));
                  
                  functionConstraint_addBufferConstraints (con, constraintList_copy (implCons) );
 
                  
                  functionConstraint_addBufferConstraints (con, constraintList_copy (implCons) );
 
index 3d837ac93fee8811607d8136c7bd40801bb38f8e..6a5166446a0510206d24a7d32259498d33aad8f4 100644 (file)
 
 /* < end of bison.head > */
 
 
 /* < end of bison.head > */
 
-/* A Bison parser, made from llgrammar.y
-   by GNU bison 1.35.  */
+/* A Bison parser, made by GNU Bison 1.875a.  */
 
 
-#define YYBISON 1  /* Identify Bison output.  */
+/* Skeleton parser for Yacc-like parsing with Bison,
+   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
 
 
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+/* As a special exception, when this file is copied by Bison into a
+   Bison output file, you may use that output file without restriction.
+   This special exception was added by the Free Software Foundation
+   in version 1.24 of Bison.  */
+
+/* Written by Richard Stallman by simplifying the original so called
+   ``semantic'' parser.  */
+
+/* All symbols defined below should begin with yy or YY, to avoid
+   infringing on user name space.  This should be done even for local
+   variables, as they might otherwise be expanded by user macros.
+   There are some unavoidable exceptions within include files to
+   define necessary library symbols; they are noted "INFRINGES ON
+   USER NAME SPACE" below.  */
+
+/* Identify Bison output.  */
+#define YYBISON 1
+
+/* Skeleton name.  */
+#define YYSKELETON_NAME "yacc.c"
+
+/* Pure parsers.  */
+#define YYPURE 0
+
+/* Using locations.  */
+#define YYLSP_NEEDED 0
+
+/* If NAME_PREFIX is specified substitute the variables and functions
+   names.  */
 #define yyparse ylparse
 #define yyparse ylparse
-#define yylex yllex
+#define yylex   yllex
 #define yyerror ylerror
 #define yyerror ylerror
-#define yylval yllval
-#define yychar ylchar
+#define yylval  yllval
+#define yychar  ylchar
 #define yydebug yldebug
 #define yynerrs ylnerrs
 #define yydebug yldebug
 #define yynerrs ylnerrs
-# define       simpleOp        257
-# define       PREFIX_OP       258
-# define       POSTFIX_OP      259
-# define       LLT_MULOP       260
-# define       LLT_SEMI        261
-# define       LLT_VERTICALBAR 262
-# define       ITERATION_OP    263
-# define       LLT_LPAR        264
-# define       LLT_LBRACKET    265
-# define       selectSym       266
-# define       LLT_IF_THEN_ELSE        267
-# define       logicalOp       268
-# define       eqSepSym        269
-# define       equationSym     270
-# define       commentSym      271
-# define       LLT_WHITESPACE  272
-# define       LLT_EOL 273
-# define       LLT_TYPEDEF_NAME        274
-# define       quantifierSym   275
-# define       openSym 276
-# define       closeSym        277
-# define       sepSym  278
-# define       simpleId        279
-# define       mapSym  280
-# define       markerSym       281
-# define       preSym  282
-# define       postSym 283
-# define       anySym  284
-# define       LLT_COLON       285
-# define       LLT_COMMA       286
-# define       LLT_EQUALS      287
-# define       LLT_LBRACE      288
-# define       LLT_RBRACE      289
-# define       LLT_RBRACKET    290
-# define       LLT_RPAR        291
-# define       LLT_QUOTE       292
-# define       eqOp    293
-# define       LLT_CCHAR       294
-# define       LLT_CFLOAT      295
-# define       LLT_CINTEGER    296
-# define       LLT_LCSTRING    297
-# define       LLT_ALL 298
-# define       LLT_ANYTHING    299
-# define       LLT_BE  300
-# define       LLT_BODY        301
-# define       LLT_CLAIMS      302
-# define       LLT_CHECKS      303
-# define       LLT_CONSTANT    304
-# define       LLT_ELSE        305
-# define       LLT_ENSURES     306
-# define       LLT_FOR 307
-# define       LLT_FRESH       308
-# define       LLT_IF  309
-# define       LLT_IMMUTABLE   310
-# define       LLT_IMPORTS     311
-# define       LLT_CONSTRAINT  312
-# define       LLT_ISSUB       313
-# define       LLT_LET 314
-# define       LLT_MODIFIES    315
-# define       LLT_MUTABLE     316
-# define       LLT_NOTHING     317
-# define       LLT_INTERNAL    318
-# define       LLT_FILESYS     319
-# define       LLT_OBJ 320
-# define       LLT_OUT 321
-# define       LLT_SEF 322
-# define       LLT_ONLY        323
-# define       LLT_PARTIAL     324
-# define       LLT_OWNED       325
-# define       LLT_DEPENDENT   326
-# define       LLT_KEEP        327
-# define       LLT_KEPT        328
-# define       LLT_TEMP        329
-# define       LLT_SHARED      330
-# define       LLT_UNIQUE      331
-# define       LLT_UNUSED      332
-# define       LLT_EXITS       333
-# define       LLT_MAYEXIT     334
-# define       LLT_NEVEREXIT   335
-# define       LLT_TRUEEXIT    336
-# define       LLT_FALSEEXIT   337
-# define       LLT_UNDEF       338
-# define       LLT_KILLED      339
-# define       LLT_CHECKMOD    340
-# define       LLT_CHECKED     341
-# define       LLT_UNCHECKED   342
-# define       LLT_CHECKEDSTRICT       343
-# define       LLT_TRUENULL    344
-# define       LLT_FALSENULL   345
-# define       LLT_LNULL       346
-# define       LLT_LNOTNULL    347
-# define       LLT_RETURNED    348
-# define       LLT_OBSERVER    349
-# define       LLT_EXPOSED     350
-# define       LLT_REFCOUNTED  351
-# define       LLT_REFS        352
-# define       LLT_RELNULL     353
-# define       LLT_RELDEF      354
-# define       LLT_KILLREF     355
-# define       LLT_NULLTERMINATED      356
-# define       LLT_TEMPREF     357
-# define       LLT_NEWREF      358
-# define       LLT_PRIVATE     359
-# define       LLT_REQUIRES    360
-# define       LLT_RESULT      361
-# define       LLT_SIZEOF      362
-# define       LLT_SPEC        363
-# define       LLT_TAGGEDUNION 364
-# define       LLT_THEN        365
-# define       LLT_TYPE        366
-# define       LLT_TYPEDEF     367
-# define       LLT_UNCHANGED   368
-# define       LLT_USES        369
-# define       LLT_CHAR        370
-# define       LLT_CONST       371
-# define       LLT_DOUBLE      372
-# define       LLT_ENUM        373
-# define       LLT_FLOAT       374
-# define       LLT_INT 375
-# define       LLT_ITER        376
-# define       LLT_YIELD       377
-# define       LLT_LONG        378
-# define       LLT_SHORT       379
-# define       LLT_SIGNED      380
-# define       LLT_UNKNOWN     381
-# define       LLT_STRUCT      382
-# define       LLT_TELIPSIS    383
-# define       LLT_UNION       384
-# define       LLT_UNSIGNED    385
-# define       LLT_VOID        386
-# define       LLT_VOLATILE    387
-# define       LLT_PRINTFLIKE  388
-# define       LLT_SCANFLIKE   389
-# define       LLT_MESSAGELIKE 390
+
+
+/* Tokens.  */
+#ifndef YYTOKENTYPE
+# define YYTOKENTYPE
+   /* Put the tokens into the symbol table, so that GDB and other debuggers
+      know about them.  */
+   enum yytokentype {
+     simpleOp = 258,
+     PREFIX_OP = 259,
+     POSTFIX_OP = 260,
+     LLT_MULOP = 261,
+     LLT_SEMI = 262,
+     LLT_VERTICALBAR = 263,
+     ITERATION_OP = 264,
+     selectSym = 265,
+     LLT_LBRACKET = 266,
+     LLT_LPAR = 267,
+     LLT_IF_THEN_ELSE = 268,
+     logicalOp = 269,
+     eqSepSym = 270,
+     equationSym = 271,
+     commentSym = 272,
+     LLT_WHITESPACE = 273,
+     LLT_EOL = 274,
+     LLT_TYPEDEF_NAME = 275,
+     quantifierSym = 276,
+     openSym = 277,
+     closeSym = 278,
+     sepSym = 279,
+     simpleId = 280,
+     mapSym = 281,
+     markerSym = 282,
+     preSym = 283,
+     postSym = 284,
+     anySym = 285,
+     LLT_COLON = 286,
+     LLT_COMMA = 287,
+     LLT_EQUALS = 288,
+     LLT_LBRACE = 289,
+     LLT_RBRACE = 290,
+     LLT_RBRACKET = 291,
+     LLT_RPAR = 292,
+     LLT_QUOTE = 293,
+     eqOp = 294,
+     LLT_CCHAR = 295,
+     LLT_CFLOAT = 296,
+     LLT_CINTEGER = 297,
+     LLT_LCSTRING = 298,
+     LLT_ALL = 299,
+     LLT_ANYTHING = 300,
+     LLT_BE = 301,
+     LLT_BODY = 302,
+     LLT_CLAIMS = 303,
+     LLT_CHECKS = 304,
+     LLT_CONSTANT = 305,
+     LLT_ELSE = 306,
+     LLT_ENSURES = 307,
+     LLT_FOR = 308,
+     LLT_FRESH = 309,
+     LLT_IF = 310,
+     LLT_IMMUTABLE = 311,
+     LLT_IMPORTS = 312,
+     LLT_CONSTRAINT = 313,
+     LLT_ISSUB = 314,
+     LLT_LET = 315,
+     LLT_MODIFIES = 316,
+     LLT_MUTABLE = 317,
+     LLT_NOTHING = 318,
+     LLT_INTERNAL = 319,
+     LLT_FILESYS = 320,
+     LLT_OBJ = 321,
+     LLT_OUT = 322,
+     LLT_SEF = 323,
+     LLT_ONLY = 324,
+     LLT_PARTIAL = 325,
+     LLT_OWNED = 326,
+     LLT_DEPENDENT = 327,
+     LLT_KEEP = 328,
+     LLT_KEPT = 329,
+     LLT_TEMP = 330,
+     LLT_SHARED = 331,
+     LLT_UNIQUE = 332,
+     LLT_UNUSED = 333,
+     LLT_EXITS = 334,
+     LLT_MAYEXIT = 335,
+     LLT_NEVEREXIT = 336,
+     LLT_TRUEEXIT = 337,
+     LLT_FALSEEXIT = 338,
+     LLT_UNDEF = 339,
+     LLT_KILLED = 340,
+     LLT_CHECKMOD = 341,
+     LLT_CHECKED = 342,
+     LLT_UNCHECKED = 343,
+     LLT_CHECKEDSTRICT = 344,
+     LLT_TRUENULL = 345,
+     LLT_FALSENULL = 346,
+     LLT_LNULL = 347,
+     LLT_LNOTNULL = 348,
+     LLT_RETURNED = 349,
+     LLT_OBSERVER = 350,
+     LLT_EXPOSED = 351,
+     LLT_REFCOUNTED = 352,
+     LLT_REFS = 353,
+     LLT_RELNULL = 354,
+     LLT_RELDEF = 355,
+     LLT_KILLREF = 356,
+     LLT_NULLTERMINATED = 357,
+     LLT_TEMPREF = 358,
+     LLT_NEWREF = 359,
+     LLT_PRIVATE = 360,
+     LLT_REQUIRES = 361,
+     LLT_RESULT = 362,
+     LLT_SIZEOF = 363,
+     LLT_SPEC = 364,
+     LLT_TAGGEDUNION = 365,
+     LLT_THEN = 366,
+     LLT_TYPE = 367,
+     LLT_TYPEDEF = 368,
+     LLT_UNCHANGED = 369,
+     LLT_USES = 370,
+     LLT_CHAR = 371,
+     LLT_CONST = 372,
+     LLT_DOUBLE = 373,
+     LLT_ENUM = 374,
+     LLT_FLOAT = 375,
+     LLT_INT = 376,
+     LLT_ITER = 377,
+     LLT_YIELD = 378,
+     LLT_LONG = 379,
+     LLT_SHORT = 380,
+     LLT_SIGNED = 381,
+     LLT_UNKNOWN = 382,
+     LLT_STRUCT = 383,
+     LLT_TELIPSIS = 384,
+     LLT_UNION = 385,
+     LLT_UNSIGNED = 386,
+     LLT_VOID = 387,
+     LLT_VOLATILE = 388,
+     LLT_PRINTFLIKE = 389,
+     LLT_SCANFLIKE = 390,
+     LLT_MESSAGELIKE = 391
+   };
+#endif
+#define simpleOp 258
+#define PREFIX_OP 259
+#define POSTFIX_OP 260
+#define LLT_MULOP 261
+#define LLT_SEMI 262
+#define LLT_VERTICALBAR 263
+#define ITERATION_OP 264
+#define selectSym 265
+#define LLT_LBRACKET 266
+#define LLT_LPAR 267
+#define LLT_IF_THEN_ELSE 268
+#define logicalOp 269
+#define eqSepSym 270
+#define equationSym 271
+#define commentSym 272
+#define LLT_WHITESPACE 273
+#define LLT_EOL 274
+#define LLT_TYPEDEF_NAME 275
+#define quantifierSym 276
+#define openSym 277
+#define closeSym 278
+#define sepSym 279
+#define simpleId 280
+#define mapSym 281
+#define markerSym 282
+#define preSym 283
+#define postSym 284
+#define anySym 285
+#define LLT_COLON 286
+#define LLT_COMMA 287
+#define LLT_EQUALS 288
+#define LLT_LBRACE 289
+#define LLT_RBRACE 290
+#define LLT_RBRACKET 291
+#define LLT_RPAR 292
+#define LLT_QUOTE 293
+#define eqOp 294
+#define LLT_CCHAR 295
+#define LLT_CFLOAT 296
+#define LLT_CINTEGER 297
+#define LLT_LCSTRING 298
+#define LLT_ALL 299
+#define LLT_ANYTHING 300
+#define LLT_BE 301
+#define LLT_BODY 302
+#define LLT_CLAIMS 303
+#define LLT_CHECKS 304
+#define LLT_CONSTANT 305
+#define LLT_ELSE 306
+#define LLT_ENSURES 307
+#define LLT_FOR 308
+#define LLT_FRESH 309
+#define LLT_IF 310
+#define LLT_IMMUTABLE 311
+#define LLT_IMPORTS 312
+#define LLT_CONSTRAINT 313
+#define LLT_ISSUB 314
+#define LLT_LET 315
+#define LLT_MODIFIES 316
+#define LLT_MUTABLE 317
+#define LLT_NOTHING 318
+#define LLT_INTERNAL 319
+#define LLT_FILESYS 320
+#define LLT_OBJ 321
+#define LLT_OUT 322
+#define LLT_SEF 323
+#define LLT_ONLY 324
+#define LLT_PARTIAL 325
+#define LLT_OWNED 326
+#define LLT_DEPENDENT 327
+#define LLT_KEEP 328
+#define LLT_KEPT 329
+#define LLT_TEMP 330
+#define LLT_SHARED 331
+#define LLT_UNIQUE 332
+#define LLT_UNUSED 333
+#define LLT_EXITS 334
+#define LLT_MAYEXIT 335
+#define LLT_NEVEREXIT 336
+#define LLT_TRUEEXIT 337
+#define LLT_FALSEEXIT 338
+#define LLT_UNDEF 339
+#define LLT_KILLED 340
+#define LLT_CHECKMOD 341
+#define LLT_CHECKED 342
+#define LLT_UNCHECKED 343
+#define LLT_CHECKEDSTRICT 344
+#define LLT_TRUENULL 345
+#define LLT_FALSENULL 346
+#define LLT_LNULL 347
+#define LLT_LNOTNULL 348
+#define LLT_RETURNED 349
+#define LLT_OBSERVER 350
+#define LLT_EXPOSED 351
+#define LLT_REFCOUNTED 352
+#define LLT_REFS 353
+#define LLT_RELNULL 354
+#define LLT_RELDEF 355
+#define LLT_KILLREF 356
+#define LLT_NULLTERMINATED 357
+#define LLT_TEMPREF 358
+#define LLT_NEWREF 359
+#define LLT_PRIVATE 360
+#define LLT_REQUIRES 361
+#define LLT_RESULT 362
+#define LLT_SIZEOF 363
+#define LLT_SPEC 364
+#define LLT_TAGGEDUNION 365
+#define LLT_THEN 366
+#define LLT_TYPE 367
+#define LLT_TYPEDEF 368
+#define LLT_UNCHANGED 369
+#define LLT_USES 370
+#define LLT_CHAR 371
+#define LLT_CONST 372
+#define LLT_DOUBLE 373
+#define LLT_ENUM 374
+#define LLT_FLOAT 375
+#define LLT_INT 376
+#define LLT_ITER 377
+#define LLT_YIELD 378
+#define LLT_LONG 379
+#define LLT_SHORT 380
+#define LLT_SIGNED 381
+#define LLT_UNKNOWN 382
+#define LLT_STRUCT 383
+#define LLT_TELIPSIS 384
+#define LLT_UNION 385
+#define LLT_UNSIGNED 386
+#define LLT_VOID 387
+#define LLT_VOLATILE 388
+#define LLT_PRINTFLIKE 389
+#define LLT_SCANFLIKE 390
+#define LLT_MESSAGELIKE 391
+
+
+
+
+/* Copy the first part of user declarations.  */
 
 
 
 
 
 
@@ -242,9 +435,23 @@ bool g_inTypeDef = FALSE;
 # endif
 
 
 # endif
 
 
-#ifndef YYSTYPE
-typedef union 
-{
+
+/* Enabling traces.  */
+#ifndef YYDEBUG
+# define YYDEBUG 1
+#endif
+
+/* Enabling verbose error messages.  */
+#ifdef YYERROR_VERBOSE
+# undef YYERROR_VERBOSE
+# define YYERROR_VERBOSE 1
+#else
+# define YYERROR_VERBOSE 0
+#endif
+
+#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
+
+typedef union YYSTYPE {
   ltoken ltok;  /* a leaf is also an ltoken */
   qual typequal;
   unsigned int count;
   ltoken ltok;  /* a leaf is also an ltoken */
   qual typequal;
   unsigned int count;
@@ -309,25 +516,139 @@ typedef union
   /*@only@*/ interfaceNodeList interfacelist; 
   /*@only@*/ CTypesNode ctypes;
   /*@-redef@*/
   /*@only@*/ interfaceNodeList interfacelist; 
   /*@only@*/ CTypesNode ctypes;
   /*@-redef@*/
-} yystype;
-# define YYSTYPE yystype
+} YYSTYPE;
+/* Line 191 of yacc.c.  */
+
+# define yystype YYSTYPE /* obsolescent; will be withdrawn */
+# define YYSTYPE_IS_DECLARED 1
 # define YYSTYPE_IS_TRIVIAL 1
 #endif
 # define YYSTYPE_IS_TRIVIAL 1
 #endif
-#ifndef YYDEBUG
-# define YYDEBUG 1
-#endif
 
 
 
 
 
 
-#define        YYFINAL         684
-#define        YYFLAG          -32768
-#define        YYNTBASE        137
+/* Copy the second part of user declarations.  */
+
+
+/* Line 214 of yacc.c.  */
+
+
+#if ! defined (yyoverflow) || YYERROR_VERBOSE
+
+/* The parser invokes alloca or malloc; define the necessary symbols.  */
+
+# if YYSTACK_USE_ALLOCA
+#  define YYSTACK_ALLOC alloca
+# else
+#  ifndef YYSTACK_USE_ALLOCA
+#   if defined (alloca) || defined (_ALLOCA_H)
+#    define YYSTACK_ALLOC alloca
+#   else
+#    ifdef __GNUC__
+#     define YYSTACK_ALLOC __builtin_alloca
+#    endif
+#   endif
+#  endif
+# endif
+
+# ifdef YYSTACK_ALLOC
+   /* Pacify GCC's `empty if-body' warning. */
+#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
+# else
+#  if defined (__STDC__) || defined (__cplusplus)
+#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
+#   define YYSIZE_T size_t
+#  endif
+#  define YYSTACK_ALLOC malloc
+#  define YYSTACK_FREE free
+# endif
+#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
+
+
+#if (! defined (yyoverflow) \
+     && (! defined (__cplusplus) \
+        || (YYSTYPE_IS_TRIVIAL)))
+
+/* A type that is properly aligned for any stack member.  */
+union yyalloc
+{
+  short yyss;
+  YYSTYPE yyvs;
+  };
+
+/* The size of the maximum gap between one aligned stack and the next.  */
+# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
+
+/* The size of an array large to enough to hold all stacks, each with
+   N elements.  */
+# define YYSTACK_BYTES(N) \
+     ((N) * (sizeof (short) + sizeof (YYSTYPE))                                \
+      + YYSTACK_GAP_MAXIMUM)
+
+/* Copy COUNT objects from FROM to TO.  The source and destination do
+   not overlap.  */
+# ifndef YYCOPY
+#  if 1 < __GNUC__
+#   define YYCOPY(To, From, Count) \
+      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
+#  else
+#   define YYCOPY(To, From, Count)             \
+      do                                       \
+       {                                       \
+         register YYSIZE_T yyi;                \
+         for (yyi = 0; yyi < (Count); yyi++)   \
+           (To)[yyi] = (From)[yyi];            \
+       }                                       \
+      while (0)
+#  endif
+# endif
+
+/* Relocate STACK from its old location to the new one.  The
+   local variables YYSIZE and YYSTACKSIZE give the old and new number of
+   elements in the stack, and YYPTR gives the new location of the
+   stack.  Advance YYPTR to a properly aligned location for the next
+   stack.  */
+# define YYSTACK_RELOCATE(Stack)                                       \
+    do                                                                 \
+      {                                                                        \
+       YYSIZE_T yynewbytes;                                            \
+       YYCOPY (&yyptr->Stack, Stack, yysize);                          \
+       Stack = &yyptr->Stack;                                          \
+       yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
+       yyptr += yynewbytes / sizeof (*yyptr);                          \
+      }                                                                        \
+    while (0)
+
+#endif
 
 
-/* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */
-#define YYTRANSLATE(x) ((unsigned)(x) <= 390 ? yytranslate[x] : 291)
+#if defined (__STDC__) || defined (__cplusplus)
+   typedef signed char yysigned_char;
+#else
+   typedef short yysigned_char;
+#endif
 
 
-/* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */
-static const short yytranslate[] =
+/* YYFINAL -- State number of the termination state. */
+#define YYFINAL  3
+/* YYLAST -- Last index in YYTABLE.  */
+#define YYLAST   3314
+
+/* YYNTOKENS -- Number of terminals. */
+#define YYNTOKENS  137
+/* YYNNTS -- Number of nonterminals. */
+#define YYNNTS  155
+/* YYNRULES -- Number of rules. */
+#define YYNRULES  414
+/* YYNRULES -- Number of states. */
+#define YYNSTATES  684
+
+/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
+#define YYUNDEFTOK  2
+#define YYMAXUTOK   391
+
+#define YYTRANSLATE(YYX)                                               \
+  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
+
+/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
+static const unsigned char yytranslate[] =
 {
        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 {
        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
@@ -354,258 +675,258 @@ static const short yytranslate[] =
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     1,     3,     4,     5,
-       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
-      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
-      26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
-      36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
-      46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
-      56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
-      66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
-      76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
-      86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
-      96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
-     106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
-     116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
-     126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
-     136
+       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
+       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
+      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
+      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
+      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
+      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
+      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
+      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
+      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
+      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
+      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
+     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
+     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
+     125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
+     135,   136
 };
 
 #if YYDEBUG
 };
 
 #if YYDEBUG
-static const short yyprhs[] =
+/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
+   YYRHS.  */
+static const unsigned short yyprhs[] =
 {
 {
-       0,     0,     1,     5,     6,     9,    11,    13,    14,    17,
-      20,    21,    24,    26,    28,    30,    34,    38,    40,    42,
-      44,    46,    48,    50,    57,    58,    60,    62,    66,    69,
-      71,    72,    76,    78,    80,    82,    84,    89,    93,    98,
-     103,   105,   107,   109,   111,   113,   114,   128,   129,   144,
-     145,   159,   164,   165,   166,   173,   174,   175,   183,   184,
-     185,   193,   194,   195,   202,   203,   204,   211,   214,   217,
-     219,   223,   225,   229,   231,   233,   237,   239,   241,   245,
-     247,   252,   256,   263,   265,   269,   271,   273,   277,   279,
-     283,   285,   289,   293,   297,   302,   304,   306,   308,   310,
-     312,   316,   318,   322,   323,   326,   330,   333,   336,   337,
-     340,   345,   346,   350,   352,   356,   362,   366,   368,   369,
-     373,   374,   378,   379,   383,   387,   391,   393,   397,   399,
-     401,   404,   406,   408,   409,   413,   414,   418,   419,   421,
-     423,   425,   429,   431,   435,   436,   441,   447,   449,   453,
-     456,   460,   464,   469,   473,   479,   486,   488,   492,   494,
-     496,   499,   502,   506,   510,   514,   519,   521,   525,   530,
-     534,   535,   538,   539,   541,   542,   549,   551,   555,   556,
-     560,   561,   565,   567,   569,   571,   573,   575,   577,   579,
-     581,   583,   585,   587,   590,   592,   594,   596,   598,   600,
-     602,   604,   606,   608,   610,   612,   614,   616,   618,   620,
-     622,   624,   626,   628,   630,   632,   634,   636,   638,   640,
-     642,   644,   646,   648,   650,   652,   654,   656,   658,   660,
-     662,   664,   666,   668,   670,   672,   675,   681,   683,   686,
-     688,   691,   692,   699,   700,   707,   710,   713,   714,   716,
-     718,   721,   725,   727,   731,   732,   734,   741,   744,   746,
-     750,   752,   754,   756,   760,   763,   766,   770,   775,   777,
-     781,   784,   787,   791,   796,   798,   801,   804,   808,   813,
-     816,   819,   822,   825,   829,   831,   832,   834,   838,   841,
-     843,   845,   848,   852,   856,   861,   864,   868,   875,   877,
-     880,   883,   887,   891,   896,   901,   907,   911,   916,   921,
-     927,   930,   933,   937,   941,   943,   945,   947,   949,   951,
-     953,   955,   956,   958,   960,   964,   966,   968,   973,   974,
-     976,   978,   982,   984,   986,   993,   995,   999,  1001,  1006,
-    1010,  1014,  1016,  1019,  1022,  1024,  1026,  1028,  1031,  1033,
-    1036,  1039,  1043,  1045,  1047,  1050,  1053,  1057,  1059,  1062,
-    1066,  1068,  1074,  1078,  1083,  1086,  1090,  1093,  1095,  1099,
-    1103,  1105,  1110,  1112,  1115,  1119,  1123,  1127,  1132,  1136,
-    1138,  1142,  1144,  1146,  1148,  1150,  1152,  1154,  1159,  1164,
-    1169,  1174,  1181,  1186,  1188,  1190,  1192,  1194,  1196,  1199,
-    1200,  1204,  1206,  1210,  1214,  1219,  1221,  1223,  1225,  1227,
-    1229,  1231,  1233,  1235
+       0,     0,     3,     4,     8,     9,    12,    14,    16,    17,
+      20,    23,    24,    27,    29,    31,    33,    37,    41,    43,
+      45,    47,    49,    51,    53,    60,    61,    63,    65,    69,
+      72,    74,    75,    79,    81,    83,    85,    87,    92,    96,
+     101,   106,   108,   110,   112,   114,   116,   117,   131,   132,
+     147,   148,   162,   167,   168,   169,   176,   177,   178,   186,
+     187,   188,   196,   197,   198,   205,   206,   207,   214,   217,
+     220,   222,   226,   228,   232,   234,   236,   240,   242,   244,
+     248,   250,   255,   259,   266,   268,   272,   274,   276,   280,
+     282,   286,   288,   292,   296,   300,   305,   307,   309,   311,
+     313,   315,   319,   321,   325,   326,   329,   333,   336,   339,
+     340,   343,   348,   349,   353,   355,   359,   365,   369,   371,
+     372,   376,   377,   381,   382,   386,   390,   394,   396,   400,
+     402,   404,   407,   409,   411,   412,   416,   417,   421,   422,
+     424,   426,   428,   432,   434,   438,   439,   444,   450,   452,
+     456,   459,   463,   467,   472,   476,   482,   489,   491,   495,
+     497,   499,   502,   505,   509,   513,   517,   522,   524,   528,
+     533,   537,   538,   541,   542,   544,   545,   552,   554,   558,
+     559,   563,   564,   568,   570,   572,   574,   576,   578,   580,
+     582,   584,   586,   588,   590,   593,   595,   597,   599,   601,
+     603,   605,   607,   609,   611,   613,   615,   617,   619,   621,
+     623,   625,   627,   629,   631,   633,   635,   637,   639,   641,
+     643,   645,   647,   649,   651,   653,   655,   657,   659,   661,
+     663,   665,   667,   669,   671,   673,   675,   678,   684,   686,
+     689,   691,   694,   695,   702,   703,   710,   713,   716,   717,
+     719,   721,   724,   728,   730,   734,   735,   737,   744,   747,
+     749,   753,   755,   757,   759,   763,   766,   769,   773,   778,
+     780,   784,   787,   790,   794,   799,   801,   804,   807,   811,
+     816,   819,   822,   825,   828,   832,   834,   835,   837,   841,
+     844,   846,   848,   851,   855,   859,   864,   867,   871,   878,
+     880,   883,   886,   890,   894,   899,   904,   910,   914,   919,
+     924,   930,   933,   936,   940,   944,   946,   948,   950,   952,
+     954,   956,   958,   959,   961,   963,   967,   969,   971,   976,
+     977,   979,   981,   985,   987,   989,   996,   998,  1002,  1004,
+    1009,  1013,  1017,  1019,  1022,  1025,  1027,  1029,  1031,  1034,
+    1036,  1039,  1042,  1046,  1048,  1050,  1053,  1056,  1060,  1062,
+    1065,  1069,  1071,  1077,  1081,  1086,  1089,  1093,  1096,  1098,
+    1102,  1106,  1108,  1113,  1115,  1118,  1122,  1126,  1130,  1135,
+    1139,  1141,  1145,  1147,  1149,  1151,  1153,  1155,  1157,  1162,
+    1167,  1172,  1177,  1184,  1189,  1191,  1193,  1195,  1197,  1199,
+    1202,  1203,  1207,  1209,  1213,  1217,  1222,  1224,  1226,  1228,
+    1230,  1232,  1234,  1236,  1238
 };
 };
+
+/* YYRHS -- A `-1'-separated list of the rules' RHS. */
 static const short yyrhs[] =
 {
 static const short yyrhs[] =
 {
-      -1,   139,   138,   141,     0,     0,   139,   140,     0,   144,
-       0,   145,     0,     0,   146,   142,     0,   151,   142,     0,
-       0,   142,   143,     0,   146,     0,   151,     0,   145,     0,
-      57,   175,     7,     0,   115,   179,     7,     0,   154,     0,
-     155,     0,   156,     0,   158,     0,   161,     0,   147,     0,
-     122,   285,    10,   148,    37,     7,     0,     0,   149,     0,
-     150,     0,   149,    32,   150,     0,   123,   244,     0,   244,
-       0,     0,   109,   152,   153,     0,   154,     0,   155,     0,
-     156,     0,   158,     0,    50,   227,   189,     7,     0,   227,
-     189,     7,     0,   117,   227,   189,     7,     0,   133,   227,
-     189,     7,     0,   163,     0,   172,     0,   134,     0,   135,
-       0,   136,     0,     0,   227,   240,   191,   159,    34,   193,
-     195,   199,   200,   201,   204,   205,    35,     0,     0,   157,
-     227,   240,   191,   160,    34,   193,   195,   199,   200,   201,
-     204,   205,    35,     0,     0,    48,   287,    10,   206,    37,
-     191,   162,    34,   195,   200,   209,   204,    35,     0,    48,
-     284,   287,     7,     0,     0,     0,    62,   164,   112,    20,
-     165,   214,     0,     0,     0,    62,   166,    97,   112,    20,
-     167,   214,     0,     0,     0,    97,    62,   168,   112,    20,
-     169,   214,     0,     0,     0,    56,   170,   112,    20,   171,
-     214,     0,     0,     0,   113,   227,   173,   219,   174,     7,
-       0,   230,     7,     0,   238,     7,     0,   176,     0,   175,
-      32,   176,     0,   178,     0,     3,   178,     3,     0,    43,
-       0,   178,     0,   177,    32,   178,     0,   283,     0,   180,
-       0,   179,    32,   180,     0,   289,     0,   289,    10,   182,
-      37,     0,    10,   181,    37,     0,    10,   181,    37,    10,
-     182,    37,     0,   289,     0,   181,    32,   289,     0,   184,
-       0,   183,     0,   183,    32,   184,     0,   245,     0,   183,
-      32,   245,     0,   185,     0,   184,    32,   185,     0,   245,
-      53,   223,     0,   245,    53,   186,     0,   245,    53,   186,
-     256,     0,   290,     0,   249,     0,   188,     0,   260,     0,
-     190,     0,   189,    32,   190,     0,   240,     0,   240,    33,
-     187,     0,     0,   191,   192,     0,   227,   189,     7,     0,
-      64,     7,     0,    65,     7,     0,     0,   193,   194,     0,
-     105,   227,   189,     7,     0,     0,    60,   196,     7,     0,
-     197,     0,   196,    32,   197,     0,   285,    31,   198,    46,
-     260,     0,   285,    46,   260,     0,   227,     0,     0,    49,
-     259,     7,     0,     0,   106,   259,     7,     0,     0,    61,
-      63,     7,     0,    61,    45,     7,     0,    61,   202,     7,
-       0,   203,     0,   202,    32,   203,     0,   260,     0,   228,
-       0,    66,   228,     0,    64,     0,    65,     0,     0,    52,
-     259,     7,     0,     0,    48,   259,     7,     0,     0,   207,
-       0,   208,     0,   129,     0,   208,    32,   129,     0,   244,
-       0,   208,    32,   244,     0,     0,    47,    34,   210,    35,
-       0,    47,    34,   210,     7,    35,     0,   211,     0,    10,
-     210,    37,     0,   210,     6,     0,   210,     8,   210,     0,
-     210,     7,   210,     0,   284,    10,   212,    37,     0,   284,
-      10,    37,     0,   285,    33,   284,    10,    37,     0,   285,
-      33,   284,    10,   212,    37,     0,   213,     0,   212,    32,
-     213,     0,   277,     0,   285,     0,     3,   213,     0,   213,
-       3,     0,   213,     3,   213,     0,    10,   213,    37,     0,
-     284,    10,    37,     0,   284,    10,   212,    37,     0,     7,
-       0,    34,   215,    35,     0,    34,   177,    35,     7,     0,
-      34,    35,     7,     0,     0,   215,   158,     0,     0,   217,
-       0,     0,    58,   218,   279,    10,   259,    37,     0,   220,
-       0,   219,    32,   220,     0,     0,   240,   221,   222,     0,
-       0,    34,   216,    35,     0,   132,     0,   116,     0,   118,
-       0,   120,     0,   121,     0,   124,     0,   125,     0,   126,
-       0,   131,     0,   127,     0,   223,     0,   224,   223,     0,
-      20,     0,   224,     0,    67,     0,    78,     0,    68,     0,
-      69,     0,    71,     0,    72,     0,    73,     0,    74,     0,
-      95,     0,    79,     0,    80,     0,    82,     0,    83,     0,
-      81,     0,    75,     0,    76,     0,    77,     0,    87,     0,
-      88,     0,    89,     0,    90,     0,    91,     0,    99,     0,
-     100,     0,    97,     0,    98,     0,   104,     0,   101,     0,
-      92,     0,    93,     0,    94,     0,    96,     0,    70,     0,
-     102,     0,    84,     0,    85,     0,   225,     0,   230,     0,
-     238,     0,   226,   227,     0,     8,   228,    31,   228,     8,
-       0,   227,     0,   227,   229,     0,     6,     0,   229,     6,
-       0,     0,   128,   233,   231,    34,   234,    35,     0,     0,
-     130,   233,   232,    34,   234,    35,     0,   128,   286,     0,
-     130,   286,     0,     0,   286,     0,   235,     0,   234,   235,
-       0,   227,   236,     7,     0,   240,     0,   236,    32,   240,
-       0,     0,    32,     0,   119,   233,    34,   239,   237,    35,
-       0,   119,   286,     0,    25,     0,   239,    32,    25,     0,
-     242,     0,   241,     0,   285,     0,    10,   241,    37,     0,
-       6,   241,     0,   241,   248,     0,   241,    10,    37,     0,
-     241,    10,   207,    37,     0,    20,     0,    10,   242,    37,
-       0,     6,   242,     0,   242,   248,     0,   242,    10,    37,
-       0,   242,    10,   207,    37,     0,    20,     0,     6,   243,
-       0,   243,   248,     0,   243,    10,    37,     0,   243,    10,
-     207,    37,     0,   227,   243,     0,   227,   241,     0,   227,
-     246,     0,   227,   246,     0,    66,   227,   246,     0,   249,
-       0,     0,   247,     0,    10,   247,    37,     0,     6,   247,
-       0,     6,     0,   248,     0,   247,   248,     0,   247,    10,
-      37,     0,    10,   207,    37,     0,   247,    10,   207,    37,
-       0,    11,    36,     0,    11,   188,    36,     0,    55,    27,
-     111,    27,    51,    27,     0,   252,     0,    27,   252,     0,
-     252,    27,     0,    27,   252,    27,     0,   250,   253,   251,
-       0,    27,   250,   253,   251,     0,   250,   253,   251,    27,
-       0,    27,   250,   253,   251,    27,     0,    11,   253,    36,
-       0,    11,   253,    36,    27,     0,    27,    11,   253,    36,
-       0,    27,    11,   253,    36,    27,     0,    12,   283,     0,
-      26,   283,     0,    27,    12,   283,     0,    27,    26,   283,
-       0,    22,     0,    34,     0,    23,     0,    35,     0,   264,
-       0,    14,     0,    39,     0,     0,   254,     0,    27,     0,
-     254,   255,    27,     0,    32,     0,    24,     0,    31,   257,
-      26,   288,     0,     0,   258,     0,   288,     0,   258,    32,
-     288,     0,   260,     0,   261,     0,    55,   261,   111,   261,
-      51,   261,     0,   262,     0,   261,    14,   261,     0,   263,
-       0,   278,    10,   259,    37,     0,   263,    39,   263,     0,
-     263,    33,   263,     0,   265,     0,   268,   266,     0,   268,
-     267,     0,     3,     0,     6,     0,   268,     0,   264,   265,
-       0,   264,     0,   266,   264,     0,   264,   268,     0,   267,
-     264,   268,     0,   273,     0,   269,     0,   269,   273,     0,
-     273,   269,     0,   273,   269,   273,     0,   270,     0,   270,
-     273,     0,   271,    31,   288,     0,   271,     0,    11,   272,
-      36,    31,   288,     0,    11,   272,    36,     0,    11,    36,
-      31,   288,     0,    11,    36,     0,   250,   272,   251,     0,
-     250,   251,     0,   260,     0,   272,   255,   260,     0,    10,
-     261,    37,     0,   285,     0,   290,    10,   274,    37,     0,
-     276,     0,   273,   275,     0,   273,    12,   283,     0,   273,
-      26,   283,     0,   273,    11,    36,     0,   273,    11,   274,
-      36,     0,   273,    31,   288,     0,   261,     0,   274,    32,
-     261,     0,    28,     0,    29,     0,    30,     0,    38,     0,
-     277,     0,   107,     0,    54,    10,   274,    37,     0,   114,
-      10,    44,    37,     0,   114,    10,   202,    37,     0,   108,
-      10,   260,    37,     0,    59,    10,   260,    32,   260,    37,
-       0,   108,    10,   227,    37,     0,    42,     0,    43,     0,
-      40,     0,    41,     0,   279,     0,   278,   279,     0,     0,
-      21,   280,   281,     0,   282,     0,   281,    32,   282,     0,
-     285,    31,   198,     0,   285,    31,    66,   198,     0,    25,
-       0,    20,     0,    25,     0,    25,     0,   283,     0,   283,
-       0,   283,     0,   283,     0,   283,     0
+     138,     0,    -1,    -1,   140,   139,   142,    -1,    -1,   140,
+     141,    -1,   145,    -1,   146,    -1,    -1,   147,   143,    -1,
+     152,   143,    -1,    -1,   143,   144,    -1,   147,    -1,   152,
+      -1,   146,    -1,    57,   176,     7,    -1,   115,   180,     7,
+      -1,   155,    -1,   156,    -1,   157,    -1,   159,    -1,   162,
+      -1,   148,    -1,   122,   286,    12,   149,    37,     7,    -1,
+      -1,   150,    -1,   151,    -1,   150,    32,   151,    -1,   123,
+     245,    -1,   245,    -1,    -1,   109,   153,   154,    -1,   155,
+      -1,   156,    -1,   157,    -1,   159,    -1,    50,   228,   190,
+       7,    -1,   228,   190,     7,    -1,   117,   228,   190,     7,
+      -1,   133,   228,   190,     7,    -1,   164,    -1,   173,    -1,
+     134,    -1,   135,    -1,   136,    -1,    -1,   228,   241,   192,
+     160,    34,   194,   196,   200,   201,   202,   205,   206,    35,
+      -1,    -1,   158,   228,   241,   192,   161,    34,   194,   196,
+     200,   201,   202,   205,   206,    35,    -1,    -1,    48,   288,
+      12,   207,    37,   192,   163,    34,   196,   201,   210,   205,
+      35,    -1,    48,   285,   288,     7,    -1,    -1,    -1,    62,
+     165,   112,    20,   166,   215,    -1,    -1,    -1,    62,   167,
+      97,   112,    20,   168,   215,    -1,    -1,    -1,    97,    62,
+     169,   112,    20,   170,   215,    -1,    -1,    -1,    56,   171,
+     112,    20,   172,   215,    -1,    -1,    -1,   113,   228,   174,
+     220,   175,     7,    -1,   231,     7,    -1,   239,     7,    -1,
+     177,    -1,   176,    32,   177,    -1,   179,    -1,     3,   179,
+       3,    -1,    43,    -1,   179,    -1,   178,    32,   179,    -1,
+     284,    -1,   181,    -1,   180,    32,   181,    -1,   290,    -1,
+     290,    12,   183,    37,    -1,    12,   182,    37,    -1,    12,
+     182,    37,    12,   183,    37,    -1,   290,    -1,   182,    32,
+     290,    -1,   185,    -1,   184,    -1,   184,    32,   185,    -1,
+     246,    -1,   184,    32,   246,    -1,   186,    -1,   185,    32,
+     186,    -1,   246,    53,   224,    -1,   246,    53,   187,    -1,
+     246,    53,   187,   257,    -1,   291,    -1,   250,    -1,   189,
+      -1,   261,    -1,   191,    -1,   190,    32,   191,    -1,   241,
+      -1,   241,    33,   188,    -1,    -1,   192,   193,    -1,   228,
+     190,     7,    -1,    64,     7,    -1,    65,     7,    -1,    -1,
+     194,   195,    -1,   105,   228,   190,     7,    -1,    -1,    60,
+     197,     7,    -1,   198,    -1,   197,    32,   198,    -1,   286,
+      31,   199,    46,   261,    -1,   286,    46,   261,    -1,   228,
+      -1,    -1,    49,   260,     7,    -1,    -1,   106,   260,     7,
+      -1,    -1,    61,    63,     7,    -1,    61,    45,     7,    -1,
+      61,   203,     7,    -1,   204,    -1,   203,    32,   204,    -1,
+     261,    -1,   229,    -1,    66,   229,    -1,    64,    -1,    65,
+      -1,    -1,    52,   260,     7,    -1,    -1,    48,   260,     7,
+      -1,    -1,   208,    -1,   209,    -1,   129,    -1,   209,    32,
+     129,    -1,   245,    -1,   209,    32,   245,    -1,    -1,    47,
+      34,   211,    35,    -1,    47,    34,   211,     7,    35,    -1,
+     212,    -1,    12,   211,    37,    -1,   211,     6,    -1,   211,
+       8,   211,    -1,   211,     7,   211,    -1,   285,    12,   213,
+      37,    -1,   285,    12,    37,    -1,   286,    33,   285,    12,
+      37,    -1,   286,    33,   285,    12,   213,    37,    -1,   214,
+      -1,   213,    32,   214,    -1,   278,    -1,   286,    -1,     3,
+     214,    -1,   214,     3,    -1,   214,     3,   214,    -1,    12,
+     214,    37,    -1,   285,    12,    37,    -1,   285,    12,   213,
+      37,    -1,     7,    -1,    34,   216,    35,    -1,    34,   178,
+      35,     7,    -1,    34,    35,     7,    -1,    -1,   216,   159,
+      -1,    -1,   218,    -1,    -1,    58,   219,   280,    12,   260,
+      37,    -1,   221,    -1,   220,    32,   221,    -1,    -1,   241,
+     222,   223,    -1,    -1,    34,   217,    35,    -1,   132,    -1,
+     116,    -1,   118,    -1,   120,    -1,   121,    -1,   124,    -1,
+     125,    -1,   126,    -1,   131,    -1,   127,    -1,   224,    -1,
+     225,   224,    -1,    20,    -1,   225,    -1,    67,    -1,    78,
+      -1,    68,    -1,    69,    -1,    71,    -1,    72,    -1,    73,
+      -1,    74,    -1,    95,    -1,    79,    -1,    80,    -1,    82,
+      -1,    83,    -1,    81,    -1,    75,    -1,    76,    -1,    77,
+      -1,    87,    -1,    88,    -1,    89,    -1,    90,    -1,    91,
+      -1,    99,    -1,   100,    -1,    97,    -1,    98,    -1,   104,
+      -1,   101,    -1,    92,    -1,    93,    -1,    94,    -1,    96,
+      -1,    70,    -1,   102,    -1,    84,    -1,    85,    -1,   226,
+      -1,   231,    -1,   239,    -1,   227,   228,    -1,     8,   229,
+      31,   229,     8,    -1,   228,    -1,   228,   230,    -1,     6,
+      -1,   230,     6,    -1,    -1,   128,   234,   232,    34,   235,
+      35,    -1,    -1,   130,   234,   233,    34,   235,    35,    -1,
+     128,   287,    -1,   130,   287,    -1,    -1,   287,    -1,   236,
+      -1,   235,   236,    -1,   228,   237,     7,    -1,   241,    -1,
+     237,    32,   241,    -1,    -1,    32,    -1,   119,   234,    34,
+     240,   238,    35,    -1,   119,   287,    -1,    25,    -1,   240,
+      32,    25,    -1,   243,    -1,   242,    -1,   286,    -1,    12,
+     242,    37,    -1,     6,   242,    -1,   242,   249,    -1,   242,
+      12,    37,    -1,   242,    12,   208,    37,    -1,    20,    -1,
+      12,   243,    37,    -1,     6,   243,    -1,   243,   249,    -1,
+     243,    12,    37,    -1,   243,    12,   208,    37,    -1,    20,
+      -1,     6,   244,    -1,   244,   249,    -1,   244,    12,    37,
+      -1,   244,    12,   208,    37,    -1,   228,   244,    -1,   228,
+     242,    -1,   228,   247,    -1,   228,   247,    -1,    66,   228,
+     247,    -1,   250,    -1,    -1,   248,    -1,    12,   248,    37,
+      -1,     6,   248,    -1,     6,    -1,   249,    -1,   248,   249,
+      -1,   248,    12,    37,    -1,    12,   208,    37,    -1,   248,
+      12,   208,    37,    -1,    11,    36,    -1,    11,   189,    36,
+      -1,    55,    27,   111,    27,    51,    27,    -1,   253,    -1,
+      27,   253,    -1,   253,    27,    -1,    27,   253,    27,    -1,
+     251,   254,   252,    -1,    27,   251,   254,   252,    -1,   251,
+     254,   252,    27,    -1,    27,   251,   254,   252,    27,    -1,
+      11,   254,    36,    -1,    11,   254,    36,    27,    -1,    27,
+      11,   254,    36,    -1,    27,    11,   254,    36,    27,    -1,
+      10,   284,    -1,    26,   284,    -1,    27,    10,   284,    -1,
+      27,    26,   284,    -1,    22,    -1,    34,    -1,    23,    -1,
+      35,    -1,   265,    -1,    14,    -1,    39,    -1,    -1,   255,
+      -1,    27,    -1,   255,   256,    27,    -1,    32,    -1,    24,
+      -1,    31,   258,    26,   289,    -1,    -1,   259,    -1,   289,
+      -1,   259,    32,   289,    -1,   261,    -1,   262,    -1,    55,
+     262,   111,   262,    51,   262,    -1,   263,    -1,   262,    14,
+     262,    -1,   264,    -1,   279,    12,   260,    37,    -1,   264,
+      39,   264,    -1,   264,    33,   264,    -1,   266,    -1,   269,
+     267,    -1,   269,   268,    -1,     3,    -1,     6,    -1,   269,
+      -1,   265,   266,    -1,   265,    -1,   267,   265,    -1,   265,
+     269,    -1,   268,   265,   269,    -1,   274,    -1,   270,    -1,
+     270,   274,    -1,   274,   270,    -1,   274,   270,   274,    -1,
+     271,    -1,   271,   274,    -1,   272,    31,   289,    -1,   272,
+      -1,    11,   273,    36,    31,   289,    -1,    11,   273,    36,
+      -1,    11,    36,    31,   289,    -1,    11,    36,    -1,   251,
+     273,   252,    -1,   251,   252,    -1,   261,    -1,   273,   256,
+     261,    -1,    12,   262,    37,    -1,   286,    -1,   291,    12,
+     275,    37,    -1,   277,    -1,   274,   276,    -1,   274,    10,
+     284,    -1,   274,    26,   284,    -1,   274,    11,    36,    -1,
+     274,    11,   275,    36,    -1,   274,    31,   289,    -1,   262,
+      -1,   275,    32,   262,    -1,    28,    -1,    29,    -1,    30,
+      -1,    38,    -1,   278,    -1,   107,    -1,    54,    12,   275,
+      37,    -1,   114,    12,    44,    37,    -1,   114,    12,   203,
+      37,    -1,   108,    12,   261,    37,    -1,    59,    12,   261,
+      32,   261,    37,    -1,   108,    12,   228,    37,    -1,    42,
+      -1,    43,    -1,    40,    -1,    41,    -1,   280,    -1,   279,
+     280,    -1,    -1,    21,   281,   282,    -1,   283,    -1,   282,
+      32,   283,    -1,   286,    31,   199,    -1,   286,    31,    66,
+     199,    -1,    25,    -1,    20,    -1,    25,    -1,    25,    -1,
+     284,    -1,   284,    -1,   284,    -1,   284,    -1,   284,    -1
 };
 
 };
 
-#endif
-
-#if YYDEBUG
-/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
-static const short yyrline[] =
+/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
+static const unsigned short yyrline[] =
 {
 {
-       0,   382,   382,   387,   388,   392,   393,   397,   398,   399,
-     403,   404,   408,   409,   410,   414,   421,   426,   428,   430,
-     432,   434,   436,   441,   446,   447,   451,   453,   458,   459,
-     463,   463,   468,   470,   472,   474,   479,   484,   486,   488,
-     493,   494,   498,   499,   500,   504,   504,   512,   512,   525,
-     525,   530,   535,   535,   535,   537,   537,   537,   540,   540,
-     540,   543,   543,   543,   548,   548,   548,   551,   553,   570,
-     572,   577,   578,   580,   584,   585,   589,   594,   596,   601,
-     603,   605,   607,   612,   613,   617,   619,   621,   625,   627,
-     631,   633,   637,   638,   639,   644,   645,   648,   651,   655,
-     657,   662,   663,   667,   669,   674,   675,   676,   680,   681,
-     685,   690,   691,   695,   696,   700,   701,   704,   708,   709,
-     713,   714,   718,   719,   720,   721,   725,   726,   730,   731,
-     732,   733,   734,   738,   739,   743,   744,   748,   749,   753,
-     754,   755,   759,   760,   764,   765,   766,   770,   771,   774,
-     779,   785,   794,   796,   798,   800,   805,   806,   810,   811,
-     812,   813,   814,   815,   816,   818,   823,   824,   825,   826,
-     830,   831,   835,   836,   840,   840,   850,   851,   856,   856,
-     861,   862,   866,   867,   868,   869,   870,   871,   872,   873,
-     874,   875,   884,   885,   891,   893,   900,   901,   902,   903,
-     904,   905,   906,   907,   908,   909,   910,   911,   912,   913,
-     914,   915,   916,   917,   918,   919,   920,   921,   922,   923,
-     924,   925,   926,   927,   928,   929,   930,   931,   932,   933,
-     934,   935,   939,   941,   943,   945,   947,   957,   958,   964,
-     965,   969,   969,   973,   973,   977,   979,   984,   985,   989,
-     990,   996,  1000,  1002,  1007,  1008,  1012,  1014,  1019,  1020,
-    1031,  1032,  1036,  1037,  1038,  1039,  1040,  1041,  1045,  1046,
-    1047,  1048,  1049,  1050,  1060,  1061,  1062,  1063,  1064,  1071,
-    1072,  1073,  1084,  1085,  1086,  1092,  1093,  1097,  1098,  1099,
-    1100,  1101,  1102,  1103,  1104,  1108,  1109,  1113,  1115,  1117,
-    1119,  1121,  1124,  1126,  1128,  1130,  1132,  1134,  1142,  1144,
-    1146,  1149,  1152,  1155,  1161,  1162,  1166,  1167,  1171,  1172,
-    1173,  1177,  1178,  1182,  1183,  1187,  1188,  1192,  1196,  1197,
-    1201,  1202,  1206,  1210,  1217,  1219,  1220,  1224,  1225,  1230,
-    1232,  1237,  1238,  1239,  1243,  1244,  1248,  1249,  1253,  1254,
-    1258,  1259,  1263,  1264,  1265,  1266,  1267,  1268,  1269,  1273,
-    1274,  1278,  1281,  1283,  1287,  1292,  1293,  1297,  1298,  1302,
-    1304,  1306,  1308,  1309,  1311,  1313,  1315,  1318,  1320,  1325,
-    1326,  1330,  1331,  1332,  1333,  1337,  1338,  1339,  1340,  1341,
-    1342,  1347,  1353,  1364,  1365,  1366,  1367,  1371,  1373,  1378,
-    1378,  1386,  1387,  1391,  1392,  1396,  1397,  1401,  1402,  1403,
-    1404,  1405,  1406,  1407
+       0,   382,   382,   382,   387,   388,   392,   393,   397,   398,
+     399,   403,   404,   408,   409,   410,   414,   421,   426,   428,
+     430,   432,   434,   436,   441,   446,   447,   451,   453,   458,
+     459,   463,   463,   468,   470,   472,   474,   479,   484,   486,
+     488,   493,   494,   498,   499,   500,   504,   504,   512,   512,
+     526,   525,   530,   535,   535,   535,   537,   538,   537,   540,
+     541,   540,   543,   543,   543,   548,   549,   548,   551,   553,
+     570,   572,   577,   578,   580,   584,   585,   589,   594,   596,
+     601,   603,   605,   607,   612,   613,   617,   619,   621,   625,
+     627,   631,   633,   637,   638,   639,   644,   645,   648,   651,
+     655,   657,   662,   663,   668,   669,   674,   675,   676,   680,
+     681,   685,   690,   691,   695,   696,   700,   701,   704,   708,
+     709,   713,   714,   718,   719,   720,   721,   725,   726,   730,
+     731,   732,   733,   734,   738,   739,   743,   744,   748,   749,
+     753,   754,   755,   759,   760,   764,   765,   766,   770,   771,
+     774,   779,   785,   794,   796,   798,   800,   805,   806,   810,
+     811,   812,   813,   814,   815,   816,   818,   823,   824,   825,
+     826,   830,   831,   835,   836,   840,   840,   850,   851,   856,
+     856,   861,   862,   866,   867,   868,   869,   870,   871,   872,
+     873,   874,   875,   884,   885,   891,   893,   900,   901,   902,
+     903,   904,   905,   906,   907,   908,   909,   910,   911,   912,
+     913,   914,   915,   916,   917,   918,   919,   920,   921,   922,
+     923,   924,   925,   926,   927,   928,   929,   930,   931,   932,
+     933,   934,   935,   939,   941,   943,   945,   947,   957,   958,
+     964,   965,   970,   969,   974,   973,   977,   979,   984,   985,
+     989,   990,   996,  1000,  1002,  1007,  1008,  1012,  1014,  1019,
+    1020,  1031,  1032,  1036,  1037,  1038,  1039,  1040,  1041,  1045,
+    1046,  1047,  1048,  1049,  1050,  1060,  1061,  1062,  1063,  1064,
+    1071,  1072,  1073,  1084,  1085,  1086,  1092,  1093,  1097,  1098,
+    1099,  1100,  1101,  1102,  1103,  1104,  1108,  1109,  1113,  1115,
+    1117,  1119,  1121,  1124,  1126,  1128,  1130,  1132,  1134,  1142,
+    1144,  1146,  1149,  1152,  1155,  1161,  1162,  1166,  1167,  1171,
+    1172,  1173,  1177,  1178,  1182,  1183,  1187,  1188,  1192,  1196,
+    1197,  1201,  1202,  1206,  1210,  1217,  1219,  1220,  1224,  1225,
+    1230,  1232,  1237,  1238,  1239,  1243,  1244,  1248,  1249,  1253,
+    1254,  1258,  1259,  1263,  1264,  1265,  1266,  1267,  1268,  1269,
+    1273,  1274,  1278,  1281,  1283,  1287,  1292,  1293,  1297,  1298,
+    1302,  1304,  1306,  1308,  1309,  1311,  1313,  1315,  1318,  1320,
+    1325,  1326,  1330,  1331,  1332,  1333,  1337,  1338,  1339,  1340,
+    1341,  1342,  1347,  1353,  1364,  1365,  1366,  1367,  1371,  1373,
+    1378,  1378,  1386,  1387,  1391,  1392,  1396,  1397,  1401,  1402,
+    1403,  1404,  1405,  1406,  1407
 };
 #endif
 
 };
 #endif
 
-
-#if (YYDEBUG) || defined YYERROR_VERBOSE
-
-/* YYTNAME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */
+#if YYDEBUG || YYERROR_VERBOSE
+/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
+   First, the terminals, then, starting at YYNTOKENS, nonterminals. */
 static const char *const yytname[] =
 {
 static const char *const yytname[] =
 {
-  "$", "error", "$undefined.", "simpleOp", "PREFIX_OP", "POSTFIX_OP", 
-  "LLT_MULOP", "LLT_SEMI", "LLT_VERTICALBAR", "ITERATION_OP", "LLT_LPAR", 
-  "LLT_LBRACKET", "selectSym", "LLT_IF_THEN_ELSE", "logicalOp", 
-  "eqSepSym", "equationSym", "commentSym", "LLT_WHITESPACE", "LLT_EOL", 
+  "$end", "error", "$undefined", "simpleOp", "PREFIX_OP", "POSTFIX_OP", 
+  "LLT_MULOP", "LLT_SEMI", "LLT_VERTICALBAR", "ITERATION_OP", "selectSym", 
+  "LLT_LBRACKET", "LLT_LPAR", "LLT_IF_THEN_ELSE", "logicalOp", "eqSepSym", 
+  "equationSym", "commentSym", "LLT_WHITESPACE", "LLT_EOL", 
   "LLT_TYPEDEF_NAME", "quantifierSym", "openSym", "closeSym", "sepSym", 
   "simpleId", "mapSym", "markerSym", "preSym", "postSym", "anySym", 
   "LLT_COLON", "LLT_COMMA", "LLT_EQUALS", "LLT_LBRACE", "LLT_RBRACE", 
   "LLT_TYPEDEF_NAME", "quantifierSym", "openSym", "closeSym", "sepSym", 
   "simpleId", "mapSym", "markerSym", "preSym", "postSym", "anySym", 
   "LLT_COLON", "LLT_COMMA", "LLT_EQUALS", "LLT_LBRACE", "LLT_RBRACE", 
@@ -630,23 +951,23 @@ static const char *const yytname[] =
   "LLT_ENUM", "LLT_FLOAT", "LLT_INT", "LLT_ITER", "LLT_YIELD", "LLT_LONG", 
   "LLT_SHORT", "LLT_SIGNED", "LLT_UNKNOWN", "LLT_STRUCT", "LLT_TELIPSIS", 
   "LLT_UNION", "LLT_UNSIGNED", "LLT_VOID", "LLT_VOLATILE", 
   "LLT_ENUM", "LLT_FLOAT", "LLT_INT", "LLT_ITER", "LLT_YIELD", "LLT_LONG", 
   "LLT_SHORT", "LLT_SIGNED", "LLT_UNKNOWN", "LLT_STRUCT", "LLT_TELIPSIS", 
   "LLT_UNION", "LLT_UNSIGNED", "LLT_VOID", "LLT_VOLATILE", 
-  "LLT_PRINTFLIKE", "LLT_SCANFLIKE", "LLT_MESSAGELIKE", "interface", "@1", 
-  "externals", "external", "optDeclarations", "declarations", 
-  "declaration", "imports", "uses", "export", "iter", "iterParamList", 
-  "realIterParamList", "iterParam", "private", "@2", "private2", 
-  "constDeclaration", "varDeclaration", "type", "special", "fcn", "@3", 
-  "@4", "claim", "@5", "abstract", "@6", "@7", "@8", "@9", "@10", "@11", 
-  "@12", "@13", "exposed", "@14", "@15", "importNameList", "importName", 
-  "interfaceNameList", "interfaceName", "traitRefNodeList", "traitRef", 
-  "traitIdList", "renaming", "nameList", "replaceNodeList", "replace", 
-  "name", "initializer", "constLclExpr", "initDecls", "initDecl", 
-  "globals", "globalDecl", "privateInits", "privateInit", "optLetDecl", 
-  "beDeclList", "beDecl", "sortSpec", "optChecks", "optRequire", 
-  "optModify", "storeRefList", "storeRef", "optEnsure", "optClaim", 
-  "optParamList", "realParamList", "paramList", "optBody", "callExpr", 
-  "stmt", "valueList", "value", "abstBody", "fcns", "optTypeInv", 
-  "typeInv", "@16", "declaratorInvs", "declaratorInv", "@17", 
-  "optExposedBody", "CType", "CTypes", "typeSpecifier", 
+  "LLT_PRINTFLIKE", "LLT_SCANFLIKE", "LLT_MESSAGELIKE", "$accept", 
+  "interface", "@1", "externals", "external", "optDeclarations", 
+  "declarations", "declaration", "imports", "uses", "export", "iter", 
+  "iterParamList", "realIterParamList", "iterParam", "private", "@2", 
+  "private2", "constDeclaration", "varDeclaration", "type", "special", 
+  "fcn", "@3", "@4", "claim", "@5", "abstract", "@6", "@7", "@8", "@9", 
+  "@10", "@11", "@12", "@13", "exposed", "@14", "@15", "importNameList", 
+  "importName", "interfaceNameList", "interfaceName", "traitRefNodeList", 
+  "traitRef", "traitIdList", "renaming", "nameList", "replaceNodeList", 
+  "replace", "name", "initializer", "constLclExpr", "initDecls", 
+  "initDecl", "globals", "globalDecl", "privateInits", "privateInit", 
+  "optLetDecl", "beDeclList", "beDecl", "sortSpec", "optChecks", 
+  "optRequire", "optModify", "storeRefList", "storeRef", "optEnsure", 
+  "optClaim", "optParamList", "realParamList", "paramList", "optBody", 
+  "callExpr", "stmt", "valueList", "value", "abstBody", "fcns", 
+  "optTypeInv", "typeInv", "@16", "declaratorInvs", "declaratorInv", 
+  "@17", "optExposedBody", "CType", "CTypes", "typeSpecifier", 
   "specialQualifier", "lclTypeSpec", "lclType", "pointers", 
   "structOrUnionSpec", "@18", "@19", "optTagId", "structDecls", 
   "structDecl", "declaratorList", "optCOMMA", "enumSpec", 
   "specialQualifier", "lclTypeSpec", "lclType", "pointers", 
   "structOrUnionSpec", "@18", "@19", "optTagId", "structDecls", 
   "structDecl", "declaratorList", "optCOMMA", "enumSpec", 
@@ -663,716 +984,741 @@ static const char *const yytname[] =
 };
 #endif
 
 };
 #endif
 
-/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
-static const short yyr1[] =
+# ifdef YYPRINT
+/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
+   token YYLEX-NUM.  */
+static const unsigned short yytoknum[] =
+{
+       0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
+     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
+     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
+     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
+     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
+     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
+     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
+     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
+     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
+     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
+     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
+     365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
+     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
+     385,   386,   387,   388,   389,   390,   391
+};
+# endif
+
+/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
+static const unsigned short yyr1[] =
 {
 {
-       0,   138,   137,   139,   139,   140,   140,   141,   141,   141,
-     142,   142,   143,   143,   143,   144,   145,   146,   146,   146,
-     146,   146,   146,   147,   148,   148,   149,   149,   150,   150,
-     152,   151,   153,   153,   153,   153,   154,   155,   155,   155,
-     156,   156,   157,   157,   157,   159,   158,   160,   158,   162,
-     161,   161,   164,   165,   163,   166,   167,   163,   168,   169,
-     163,   170,   171,   163,   173,   174,   172,   172,   172,   175,
-     175,   176,   176,   176,   177,   177,   178,   179,   179,   180,
-     180,   180,   180,   181,   181,   182,   182,   182,   183,   183,
-     184,   184,   185,   185,   185,   186,   186,   187,   188,   189,
-     189,   190,   190,   191,   191,   192,   192,   192,   193,   193,
-     194,   195,   195,   196,   196,   197,   197,   198,   199,   199,
-     200,   200,   201,   201,   201,   201,   202,   202,   203,   203,
-     203,   203,   203,   204,   204,   205,   205,   206,   206,   207,
-     207,   207,   208,   208,   209,   209,   209,   210,   210,   210,
-     210,   210,   211,   211,   211,   211,   212,   212,   213,   213,
-     213,   213,   213,   213,   213,   213,   214,   214,   214,   214,
-     215,   215,   216,   216,   218,   217,   219,   219,   221,   220,
-     222,   222,   223,   223,   223,   223,   223,   223,   223,   223,
-     223,   223,   224,   224,   225,   225,   226,   226,   226,   226,
-     226,   226,   226,   226,   226,   226,   226,   226,   226,   226,
-     226,   226,   226,   226,   226,   226,   226,   226,   226,   226,
-     226,   226,   226,   226,   226,   226,   226,   226,   226,   226,
-     226,   226,   227,   227,   227,   227,   227,   228,   228,   229,
-     229,   231,   230,   232,   230,   230,   230,   233,   233,   234,
-     234,   235,   236,   236,   237,   237,   238,   238,   239,   239,
-     240,   240,   241,   241,   241,   241,   241,   241,   242,   242,
-     242,   242,   242,   242,   243,   243,   243,   243,   243,   244,
-     244,   244,   245,   245,   245,   246,   246,   247,   247,   247,
-     247,   247,   247,   247,   247,   248,   248,   249,   249,   249,
-     249,   249,   249,   249,   249,   249,   249,   249,   249,   249,
-     249,   249,   249,   249,   250,   250,   251,   251,   252,   252,
-     252,   253,   253,   254,   254,   255,   255,   256,   257,   257,
-     258,   258,   259,   260,   261,   261,   261,   262,   262,   262,
-     262,   263,   263,   263,   264,   264,   265,   265,   266,   266,
-     267,   267,   268,   268,   268,   268,   268,   268,   268,   269,
-     269,   270,   270,   270,   270,   271,   271,   272,   272,   273,
-     273,   273,   273,   273,   273,   273,   273,   273,   273,   274,
-     274,   275,   275,   275,   275,   276,   276,   276,   276,   276,
-     276,   276,   276,   277,   277,   277,   277,   278,   278,   280,
-     279,   281,   281,   282,   282,   283,   283,   284,   285,   286,
-     287,   288,   289,   290
+       0,   137,   139,   138,   140,   140,   141,   141,   142,   142,
+     142,   143,   143,   144,   144,   144,   145,   146,   147,   147,
+     147,   147,   147,   147,   148,   149,   149,   150,   150,   151,
+     151,   153,   152,   154,   154,   154,   154,   155,   156,   156,
+     156,   157,   157,   158,   158,   158,   160,   159,   161,   159,
+     163,   162,   162,   165,   166,   164,   167,   168,   164,   169,
+     170,   164,   171,   172,   164,   174,   175,   173,   173,   173,
+     176,   176,   177,   177,   177,   178,   178,   179,   180,   180,
+     181,   181,   181,   181,   182,   182,   183,   183,   183,   184,
+     184,   185,   185,   186,   186,   186,   187,   187,   188,   189,
+     190,   190,   191,   191,   192,   192,   193,   193,   193,   194,
+     194,   195,   196,   196,   197,   197,   198,   198,   199,   200,
+     200,   201,   201,   202,   202,   202,   202,   203,   203,   204,
+     204,   204,   204,   204,   205,   205,   206,   206,   207,   207,
+     208,   208,   208,   209,   209,   210,   210,   210,   211,   211,
+     211,   211,   211,   212,   212,   212,   212,   213,   213,   214,
+     214,   214,   214,   214,   214,   214,   214,   215,   215,   215,
+     215,   216,   216,   217,   217,   219,   218,   220,   220,   222,
+     221,   223,   223,   224,   224,   224,   224,   224,   224,   224,
+     224,   224,   224,   225,   225,   226,   226,   227,   227,   227,
+     227,   227,   227,   227,   227,   227,   227,   227,   227,   227,
+     227,   227,   227,   227,   227,   227,   227,   227,   227,   227,
+     227,   227,   227,   227,   227,   227,   227,   227,   227,   227,
+     227,   227,   227,   228,   228,   228,   228,   228,   229,   229,
+     230,   230,   232,   231,   233,   231,   231,   231,   234,   234,
+     235,   235,   236,   237,   237,   238,   238,   239,   239,   240,
+     240,   241,   241,   242,   242,   242,   242,   242,   242,   243,
+     243,   243,   243,   243,   243,   244,   244,   244,   244,   244,
+     245,   245,   245,   246,   246,   246,   247,   247,   248,   248,
+     248,   248,   248,   248,   248,   248,   249,   249,   250,   250,
+     250,   250,   250,   250,   250,   250,   250,   250,   250,   250,
+     250,   250,   250,   250,   250,   251,   251,   252,   252,   253,
+     253,   253,   254,   254,   255,   255,   256,   256,   257,   258,
+     258,   259,   259,   260,   261,   262,   262,   262,   263,   263,
+     263,   263,   264,   264,   264,   265,   265,   266,   266,   267,
+     267,   268,   268,   269,   269,   269,   269,   269,   269,   269,
+     270,   270,   271,   271,   271,   271,   272,   272,   273,   273,
+     274,   274,   274,   274,   274,   274,   274,   274,   274,   274,
+     275,   275,   276,   276,   276,   276,   277,   277,   277,   277,
+     277,   277,   277,   277,   278,   278,   278,   278,   279,   279,
+     281,   280,   282,   282,   283,   283,   284,   284,   285,   286,
+     287,   288,   289,   290,   291
 };
 
 };
 
-/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
-static const short yyr2[] =
+/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
+static const unsigned char yyr2[] =
 {
 {
-       0,     0,     3,     0,     2,     1,     1,     0,     2,     2,
-       0,     2,     1,     1,     1,     3,     3,     1,     1,     1,
-       1,     1,     1,     6,     0,     1,     1,     3,     2,     1,
-       0,     3,     1,     1,     1,     1,     4,     3,     4,     4,
-       1,     1,     1,     1,     1,     0,    13,     0,    14,     0,
-      13,     4,     0,     0,     6,     0,     0,     7,     0,     0,
-       7,     0,     0,     6,     0,     0,     6,     2,     2,     1,
-       3,     1,     3,     1,     1,     3,     1,     1,     3,     1,
-       4,     3,     6,     1,     3,     1,     1,     3,     1,     3,
-       1,     3,     3,     3,     4,     1,     1,     1,     1,     1,
-       3,     1,     3,     0,     2,     3,     2,     2,     0,     2,
-       4,     0,     3,     1,     3,     5,     3,     1,     0,     3,
-       0,     3,     0,     3,     3,     3,     1,     3,     1,     1,
-       2,     1,     1,     0,     3,     0,     3,     0,     1,     1,
-       1,     3,     1,     3,     0,     4,     5,     1,     3,     2,
-       3,     3,     4,     3,     5,     6,     1,     3,     1,     1,
-       2,     2,     3,     3,     3,     4,     1,     3,     4,     3,
-       0,     2,     0,     1,     0,     6,     1,     3,     0,     3,
-       0,     3,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     2,     1,     1,     1,     1,     1,     1,
+       0,     2,     0,     3,     0,     2,     1,     1,     0,     2,
+       2,     0,     2,     1,     1,     1,     3,     3,     1,     1,
+       1,     1,     1,     1,     6,     0,     1,     1,     3,     2,
+       1,     0,     3,     1,     1,     1,     1,     4,     3,     4,
+       4,     1,     1,     1,     1,     1,     0,    13,     0,    14,
+       0,    13,     4,     0,     0,     6,     0,     0,     7,     0,
+       0,     7,     0,     0,     6,     0,     0,     6,     2,     2,
+       1,     3,     1,     3,     1,     1,     3,     1,     1,     3,
+       1,     4,     3,     6,     1,     3,     1,     1,     3,     1,
+       3,     1,     3,     3,     3,     4,     1,     1,     1,     1,
+       1,     3,     1,     3,     0,     2,     3,     2,     2,     0,
+       2,     4,     0,     3,     1,     3,     5,     3,     1,     0,
+       3,     0,     3,     0,     3,     3,     3,     1,     3,     1,
+       1,     2,     1,     1,     0,     3,     0,     3,     0,     1,
+       1,     1,     3,     1,     3,     0,     4,     5,     1,     3,
+       2,     3,     3,     4,     3,     5,     6,     1,     3,     1,
+       1,     2,     2,     3,     3,     3,     4,     1,     3,     4,
+       3,     0,     2,     0,     1,     0,     6,     1,     3,     0,
+       3,     0,     3,     1,     1,     1,     1,     1,     1,     1,
+       1,     1,     1,     1,     2,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     2,     5,     1,     2,     1,
-       2,     0,     6,     0,     6,     2,     2,     0,     1,     1,
-       2,     3,     1,     3,     0,     1,     6,     2,     1,     3,
-       1,     1,     1,     3,     2,     2,     3,     4,     1,     3,
-       2,     2,     3,     4,     1,     2,     2,     3,     4,     2,
-       2,     2,     2,     3,     1,     0,     1,     3,     2,     1,
-       1,     2,     3,     3,     4,     2,     3,     6,     1,     2,
-       2,     3,     3,     4,     4,     5,     3,     4,     4,     5,
-       2,     2,     3,     3,     1,     1,     1,     1,     1,     1,
-       1,     0,     1,     1,     3,     1,     1,     4,     0,     1,
-       1,     3,     1,     1,     6,     1,     3,     1,     4,     3,
-       3,     1,     2,     2,     1,     1,     1,     2,     1,     2,
-       2,     3,     1,     1,     2,     2,     3,     1,     2,     3,
-       1,     5,     3,     4,     2,     3,     2,     1,     3,     3,
-       1,     4,     1,     2,     3,     3,     3,     4,     3,     1,
-       3,     1,     1,     1,     1,     1,     1,     4,     4,     4,
-       4,     6,     4,     1,     1,     1,     1,     1,     2,     0,
-       3,     1,     3,     3,     4,     1,     1,     1,     1,     1,
-       1,     1,     1,     1
+       1,     1,     1,     1,     1,     1,     2,     5,     1,     2,
+       1,     2,     0,     6,     0,     6,     2,     2,     0,     1,
+       1,     2,     3,     1,     3,     0,     1,     6,     2,     1,
+       3,     1,     1,     1,     3,     2,     2,     3,     4,     1,
+       3,     2,     2,     3,     4,     1,     2,     2,     3,     4,
+       2,     2,     2,     2,     3,     1,     0,     1,     3,     2,
+       1,     1,     2,     3,     3,     4,     2,     3,     6,     1,
+       2,     2,     3,     3,     4,     4,     5,     3,     4,     4,
+       5,     2,     2,     3,     3,     1,     1,     1,     1,     1,
+       1,     1,     0,     1,     1,     3,     1,     1,     4,     0,
+       1,     1,     3,     1,     1,     6,     1,     3,     1,     4,
+       3,     3,     1,     2,     2,     1,     1,     1,     2,     1,
+       2,     2,     3,     1,     1,     2,     2,     3,     1,     2,
+       3,     1,     5,     3,     4,     2,     3,     2,     1,     3,
+       3,     1,     4,     1,     2,     3,     3,     3,     4,     3,
+       1,     3,     1,     1,     1,     1,     1,     1,     4,     4,
+       4,     4,     6,     4,     1,     1,     1,     1,     1,     2,
+       0,     3,     1,     3,     3,     4,     1,     1,     1,     1,
+       1,     1,     1,     1,     1
 };
 
 };
 
-/* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE
-   doesn't specify something else to do.  Zero means the default is an
-   error. */
-static const short yydefact[] =
+/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
+   STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
+   means the default is an error.  */
+static const unsigned short yydefact[] =
 {
 {
-       3,     1,     0,     0,     7,     4,     5,     6,     0,   406,
-     405,    73,     0,    69,    71,    76,     0,     0,    77,   412,
-      79,     0,   194,     0,     0,    61,    52,   196,   198,   199,
-     228,   200,   201,   202,   203,   210,   211,   212,   197,   205,
-     206,   209,   207,   208,   230,   231,   213,   214,   215,   216,
-     217,   224,   225,   226,   204,   227,   220,   221,   218,   219,
-     223,   229,   222,    30,     0,   183,     0,   184,   247,   185,
-     186,     0,   187,   188,   189,   191,   247,   247,   190,   182,
-       0,    42,    43,    44,     2,    10,    22,    10,    17,    18,
-      19,     0,    20,    21,    40,    41,   192,   195,   232,     0,
-       0,   233,   234,     0,    15,     0,     0,    83,    16,     0,
-       0,   220,   237,     0,   233,   234,   407,   410,     0,     0,
-       0,     0,     0,     0,    58,     0,    64,     0,     0,   409,
-     257,   408,     0,   241,   245,   243,   246,     0,     8,     9,
-       0,   193,   235,     0,     0,   268,     0,    99,   103,   261,
-     260,   262,    67,    68,    72,    70,     0,    81,    78,   344,
-     345,   321,     0,   319,   314,     0,     0,   315,   320,     0,
-       0,     0,    86,    85,    90,   285,    88,   284,   321,   298,
-     318,   239,   238,     0,     0,   137,     0,   101,     0,     0,
-       0,     0,    31,    32,    33,    34,    35,     0,     0,     0,
-      24,     0,     0,     0,    11,    14,    12,    13,   103,   264,
-     270,     0,     0,    37,     0,     0,    45,     0,     0,   265,
-       0,   271,    84,     0,   323,     0,   322,   310,   311,   321,
-       0,     0,   321,   299,     0,   285,    80,     0,     0,   289,
-       0,   282,   286,   290,     0,     0,   300,   240,     0,    51,
-     140,     0,   138,   139,   285,   142,    36,    62,    53,     0,
-       0,    65,   176,   178,    38,   258,   254,     0,     0,    25,
-      26,    29,     0,     0,    39,    47,   263,   269,   100,     0,
-       0,   399,   408,   395,   396,   393,   394,     0,     0,     0,
-     386,     0,     0,   102,    97,     0,    98,   333,   335,   337,
-       0,   341,   346,   353,   357,   360,   352,   372,   385,     0,
-     397,   413,   370,     0,     0,     0,     0,   104,     0,   266,
-       0,   295,     0,   272,     0,     0,   306,   326,   325,     0,
-       0,   312,   313,     0,   301,     0,   283,    87,    89,    91,
-       0,   288,     0,     0,     0,   291,    93,    92,    96,    95,
-     316,   317,   302,   236,   103,     0,   289,     0,   274,   280,
-     279,   281,     0,     0,    56,    59,     0,     0,   180,   255,
-       0,    28,     0,     0,     0,     0,   249,     0,     0,     0,
-     364,   367,     0,     0,     0,     0,     0,     0,     0,   366,
-       0,     0,     0,     0,   347,   346,   348,   342,   343,   354,
-     358,     0,     0,     0,     0,   381,   382,   383,     0,   384,
-     355,   373,     0,   398,     0,   106,   107,   108,     0,   267,
-     296,   273,    82,   307,   324,   308,   303,     0,   293,   287,
-     292,     0,   328,    94,   304,    49,   141,   143,   275,   289,
-       0,   276,   166,   170,    63,    54,     0,     0,   177,    66,
-     172,   179,   259,   256,    23,    27,     0,   252,   242,   250,
-     244,   108,   369,     0,   362,     0,   400,   401,     0,   379,
-       0,     0,     0,   194,     0,     0,     0,   131,   132,     0,
-       0,   126,   129,   128,   365,   336,   340,   339,   350,   349,
-       0,   411,   359,   376,     0,   374,   375,   378,   356,     0,
-     332,     0,   111,   105,   309,   305,     0,   294,     0,   329,
-     330,     0,   277,     0,     0,     0,    74,     0,    57,    60,
-     174,     0,   173,   251,     0,   111,   363,     0,   368,     0,
-       0,     0,   387,     0,     0,   392,   390,   388,   130,     0,
-     389,   351,   377,   338,   371,     0,     0,   109,   118,   297,
-       0,     0,   111,   278,   169,     0,     0,   167,   171,     0,
-       0,   181,   253,   118,   361,   402,     0,   403,   117,   380,
-       0,     0,   127,     0,   113,     0,     0,     0,   120,   327,
-     331,   120,    75,   168,   103,     0,   120,   404,   334,   391,
-     112,     0,     0,     0,     0,     0,     0,   122,   144,     0,
-     122,   114,     0,   116,   110,   119,     0,     0,   133,     0,
-     133,     0,   133,     0,   121,     0,     0,     0,     0,   135,
-       0,     0,   175,   135,   115,   124,   123,   125,     0,     0,
-       0,     0,   408,     0,   147,     0,     0,    50,     0,   134,
-       0,    46,     0,   149,     0,     0,   145,     0,     0,    48,
-     136,     0,   148,   146,   151,   150,     0,     0,   153,     0,
-     156,   158,     0,   159,   407,     0,   160,     0,     0,   152,
-     161,     0,     0,   163,   157,   162,   164,     0,   154,     0,
-     165,   155,     0,     0,     0
+       4,     0,     2,     1,     0,     0,     8,     5,     6,     7,
+       0,   407,   406,    74,     0,    70,    72,    77,     0,     0,
+      78,   413,    80,     0,   195,     0,     0,    62,    53,   197,
+     199,   200,   229,   201,   202,   203,   204,   211,   212,   213,
+     198,   206,   207,   210,   208,   209,   231,   232,   214,   215,
+     216,   217,   218,   225,   226,   227,   205,   228,   221,   222,
+     219,   220,   224,   230,   223,    31,     0,   184,     0,   185,
+     248,   186,   187,     0,   188,   189,   190,   192,   248,   248,
+     191,   183,     0,    43,    44,    45,     3,    11,    23,    11,
+      18,    19,    20,     0,    21,    22,    41,    42,   193,   196,
+     233,     0,     0,   234,   235,     0,    16,     0,     0,    84,
+      17,     0,     0,   221,   238,     0,   234,   235,   408,   411,
+       0,     0,     0,     0,     0,     0,    59,     0,    65,     0,
+       0,   410,   258,   409,     0,   242,   246,   244,   247,     0,
+       9,    10,     0,   194,   236,     0,     0,   269,     0,   100,
+     104,   262,   261,   263,    68,    69,    73,    71,     0,    82,
+      79,   345,   346,     0,   322,   320,   315,     0,     0,   316,
+     321,     0,     0,     0,    87,    86,    91,   286,    89,   285,
+     322,   299,   319,   240,   239,     0,     0,   138,     0,   102,
+       0,     0,     0,     0,    32,    33,    34,    35,    36,     0,
+       0,     0,    25,     0,     0,     0,    12,    15,    13,    14,
+     104,   265,   271,     0,     0,    38,     0,     0,    46,     0,
+       0,   266,     0,   272,    85,     0,   311,   324,     0,   323,
+     312,     0,   322,     0,   322,   300,     0,   286,    81,     0,
+       0,   290,     0,   283,   287,   291,     0,     0,   301,   241,
+       0,    52,   141,     0,   139,   140,   286,   143,    37,    63,
+      54,     0,     0,    66,   177,   179,    39,   259,   255,     0,
+       0,    26,    27,    30,     0,     0,    40,    48,   264,   270,
+     101,     0,     0,   400,   409,   396,   397,   394,   395,     0,
+       0,     0,   387,     0,     0,   103,    98,     0,    99,   334,
+     336,   338,     0,   342,   347,   354,   358,   361,   353,   373,
+     386,     0,   398,   414,   371,     0,     0,     0,     0,   105,
+       0,   296,     0,   267,     0,   273,     0,     0,   307,   327,
+     326,     0,   313,     0,   314,     0,   302,     0,   284,    88,
+      90,    92,     0,   289,     0,     0,     0,   292,    94,    93,
+      97,    96,   317,   318,   303,   237,   104,     0,   290,     0,
+     275,   281,   280,   282,     0,     0,    57,    60,     0,     0,
+     181,   256,     0,    29,     0,     0,     0,     0,   250,     0,
+       0,   365,   368,     0,     0,     0,     0,     0,     0,     0,
+       0,   367,     0,     0,     0,     0,   348,   347,   349,   343,
+     344,   355,   359,     0,     0,     0,     0,   382,   383,   384,
+       0,   385,   356,   374,     0,   399,     0,   107,   108,   109,
+       0,   297,   268,   274,    83,   308,   325,   309,   304,     0,
+     294,   288,   293,     0,   329,    95,   305,    50,   142,   144,
+     276,   290,     0,   277,   167,   171,    64,    55,     0,     0,
+     178,    67,   173,   180,   260,   257,    24,    28,     0,   253,
+     243,   251,   245,   109,     0,   363,     0,   370,   401,   402,
+       0,   380,     0,     0,     0,   195,     0,     0,     0,   132,
+     133,     0,     0,   127,   130,   129,   366,   337,   341,   340,
+     351,   350,     0,   412,   360,   375,   377,     0,   376,   379,
+     357,     0,   333,     0,   112,   106,   310,   306,     0,   295,
+       0,   330,   331,     0,   278,     0,     0,     0,    75,     0,
+      58,    61,   175,     0,   174,   252,     0,   112,   364,     0,
+     369,     0,     0,     0,   388,     0,     0,   393,   391,   389,
+     131,     0,   390,   352,   378,   339,   372,     0,     0,   110,
+     119,   298,     0,     0,   112,   279,   170,     0,     0,   168,
+     172,     0,     0,   182,   254,   119,   362,   403,     0,   404,
+     118,   381,     0,     0,   128,     0,   114,     0,     0,     0,
+     121,   328,   332,   121,    76,   169,   104,     0,   121,   405,
+     335,   392,   113,     0,     0,     0,     0,     0,     0,   123,
+     145,     0,   123,   115,     0,   117,   111,   120,     0,     0,
+     134,     0,   134,     0,   134,     0,   122,     0,     0,     0,
+       0,   136,     0,     0,   176,   136,   116,   125,   124,   126,
+       0,     0,     0,     0,   409,     0,   148,     0,     0,    51,
+       0,   135,     0,    47,     0,   150,     0,     0,   146,     0,
+       0,    49,   137,     0,   149,   147,   152,   151,     0,     0,
+     154,     0,   157,   159,     0,   160,   408,     0,   161,     0,
+       0,   153,   162,     0,     0,   164,   158,   163,   165,     0,
+     155,     0,   166,   156
 };
 
 };
 
+/* YYDEFGOTO[NTERM-NUM]. */
 static const short yydefgoto[] =
 {
 static const short yydefgoto[] =
 {
-     682,     4,     1,     5,    84,   138,   204,     6,   205,   206,
-      86,   268,   269,   270,   207,   125,   192,    88,    89,    90,
-      91,    92,   316,   378,    93,   511,    94,   122,   363,   123,
-     446,   191,   447,   121,   362,    95,   197,   367,    12,    13,
-     515,    14,    17,    18,   106,   171,   172,   173,   174,   346,
-     293,   294,   146,   147,   216,   317,   502,   547,   548,   573,
-     574,   567,   578,   597,   608,   480,   481,   619,   630,   251,
-     342,   253,   610,   654,   634,   659,   660,   444,   517,   521,
-     522,   560,   261,   262,   368,   451,    96,    97,    98,    99,
-     254,   482,   182,   114,   201,   202,   128,   375,   376,   456,
-     370,   115,   266,   187,   149,   150,   360,   255,   176,   241,
-     242,   243,   177,   295,   352,   179,   225,   226,   465,   433,
-     508,   509,   499,   500,   297,   298,   299,   300,   301,   397,
-     398,   302,   303,   304,   305,   382,   306,   470,   411,   307,
-     308,   309,   310,   383,   466,   467,   311,   662,   312,   130,
-     119,   492,    20,   313
+      -1,     1,     6,     2,     7,    86,   140,   206,     8,   207,
+     208,    88,   270,   271,   272,   209,   127,   194,    90,    91,
+      92,    93,    94,   318,   380,    95,   513,    96,   124,   365,
+     125,   448,   193,   449,   123,   364,    97,   199,   369,    14,
+      15,   517,    16,    19,    20,   108,   173,   174,   175,   176,
+     348,   295,   296,   148,   149,   218,   319,   504,   549,   550,
+     575,   576,   569,   580,   599,   610,   482,   483,   621,   632,
+     253,   344,   255,   612,   656,   636,   661,   662,   446,   519,
+     523,   524,   562,   263,   264,   370,   453,    98,    99,   100,
+     101,   256,   484,   184,   116,   203,   204,   130,   377,   378,
+     458,   372,   117,   268,   189,   151,   152,   362,   257,   178,
+     243,   244,   245,   179,   297,   354,   181,   228,   229,   466,
+     435,   510,   511,   501,   502,   299,   300,   301,   302,   303,
+     399,   400,   304,   305,   306,   307,   383,   308,   472,   413,
+     309,   310,   311,   312,   385,   468,   469,   313,   664,   314,
+     132,   121,   494,    22,   315
 };
 
 };
 
+/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
+   STATE-NUM.  */
+#define YYPACT_NINF -607
 static const short yypact[] =
 {
 static const short yypact[] =
 {
-  -32768,   -25,   136,   368,  1350,-32768,-32768,-32768,   181,-32768,
-  -32768,-32768,    94,-32768,-32768,-32768,   181,   110,-32768,-32768,
-      33,  2903,-32768,   182,  2903,-32768,    17,-32768,-32768,-32768,
-  -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-  -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-  -32768,-32768,-32768,-32768,-32768,-32768,   -11,-32768,-32768,-32768,
-  -32768,-32768,-32768,-32768,  2903,-32768,  2903,-32768,   181,-32768,
-  -32768,   108,-32768,-32768,-32768,-32768,   181,   181,-32768,-32768,
-    2903,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-  -32768,  2903,-32768,-32768,-32768,-32768,-32768,   399,-32768,  2903,
-     408,   155,   192,   205,-32768,   136,   204,-32768,-32768,   368,
-    1152,-32768,   233,   223,-32768,-32768,   266,-32768,   181,   305,
-     408,   211,   235,   264,-32768,  1445,-32768,   408,   339,-32768,
-     347,-32768,   377,-32768,   347,-32768,   347,   408,  1247,  1247,
-     408,-32768,-32768,   408,   408,-32768,   196,-32768,   259,   322,
-     409,-32768,-32768,-32768,-32768,-32768,   181,   387,-32768,-32768,
-  -32768,   386,   181,-32768,-32768,   181,   534,-32768,-32768,   403,
-    2903,   410,   445,   453,-32768,   360,   439,-32768,   386,   474,
-  -32768,-32768,   496,  2903,   497,  2319,   239,   470,   486,   492,
-     401,   404,-32768,-32768,-32768,-32768,-32768,   408,   282,   493,
-    2414,   488,   494,   288,-32768,-32768,-32768,-32768,-32768,   322,
-     409,   121,   141,-32768,   408,  3200,  1836,  1933,  3059,-32768,
-    2030,-32768,-32768,  1152,-32768,   499,   122,-32768,-32768,   386,
-     181,   181,   386,   502,   421,   360,-32768,  1152,  1152,   360,
-    1741,-32768,   454,-32768,   328,    80,-32768,-32768,   525,-32768,
-  -32768,   504,-32768,   507,   380,-32768,-32768,-32768,-32768,   522,
-     524,   515,-32768,-32768,-32768,-32768,   518,  2903,   514,   520,
-  -32768,-32768,  2903,  2903,-32768,  1836,-32768,-32768,-32768,  3200,
-    3109,-32768,   266,-32768,-32768,-32768,-32768,   544,  3200,   545,
-  -32768,   549,   551,-32768,-32768,  3033,-32768,   550,-32768,   114,
-    3226,-32768,   374,   382,   382,   535,   193,-32768,-32768,   273,
-  -32768,-32768,-32768,   555,   560,   562,   536,-32768,   408,-32768,
-     537,-32768,   539,-32768,   540,   541,   552,-32768,-32768,   553,
-     547,-32768,-32768,    80,-32768,   554,-32768,   453,   439,-32768,
-     439,   454,   548,   177,  2127,-32768,   556,-32768,-32768,-32768,
-  -32768,-32768,   557,-32768,-32768,  2509,   380,  1644,-32768,   322,
-     469,-32768,    47,    47,-32768,-32768,   408,   564,   538,   561,
-     559,-32768,   569,  2414,   408,  2611,-32768,  2713,   558,    36,
-     565,-32768,   293,   108,  3200,    10,  3200,  1022,   762,-32768,
-     220,  3200,  3226,  3226,-32768,-32768,   268,   374,   374,   275,
-     275,   181,  3150,   181,   181,-32768,-32768,-32768,   181,-32768,
-     382,-32768,  3200,-32768,  3200,-32768,-32768,-32768,   314,-32768,
-  -32768,-32768,-32768,-32768,-32768,   563,   568,   566,-32768,-32768,
-  -32768,   573,   181,-32768,-32768,  1836,-32768,-32768,   469,   354,
-    2224,-32768,-32768,   165,-32768,-32768,    47,    47,-32768,-32768,
-     530,-32768,-32768,-32768,-32768,-32768,   317,-32768,-32768,-32768,
-  -32768,-32768,-32768,   181,   567,  3200,   570,-32768,   572,   550,
-     362,  3200,   579,   581,   575,   577,   578,-32768,-32768,  2903,
-     384,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-     268,-32768,-32768,-32768,   157,-32768,-32768,-32768,   275,   583,
-  -32768,   397,    -8,-32768,-32768,-32768,   574,-32768,   590,   591,
-  -32768,   571,-32768,   587,   592,   363,-32768,  1547,-32768,-32768,
-  -32768,   594,-32768,-32768,   408,    -8,-32768,   181,-32768,   108,
-    2808,  3200,-32768,    28,  3200,-32768,-32768,-32768,-32768,   892,
-  -32768,-32768,-32768,-32768,-32768,   108,  2903,-32768,   582,-32768,
-     181,   181,   576,-32768,-32768,   181,   593,-32768,-32768,   408,
-     605,-32768,-32768,   582,-32768,-32768,  2903,-32768,-32768,   550,
-    3200,   600,-32768,   331,-32768,   103,   408,  3200,   521,-32768,
-  -32768,   521,-32768,-32768,-32768,   629,   521,-32768,   550,-32768,
-  -32768,   108,  2903,  3200,   336,   634,  3200,   584,   597,  3200,
-     584,-32768,   601,-32768,-32768,-32768,   639,   632,   596,   615,
-     596,   613,   596,  3200,-32768,   644,   648,   337,  3200,   608,
-      49,   623,-32768,   608,-32768,-32768,-32768,-32768,   652,  3200,
-     625,    49,   651,    50,-32768,   653,   631,-32768,   627,-32768,
-     658,-32768,    63,-32768,   272,    49,-32768,   208,   642,-32768,
-  -32768,    49,-32768,-32768,   660,-32768,   222,   222,-32768,   419,
-     666,-32768,   661,-32768,-32768,   668,-32768,    41,   222,-32768,
-     316,   432,   468,-32768,   666,-32768,-32768,   426,-32768,   430,
-  -32768,-32768,   670,   676,-32768
+    -607,    50,   -29,  -607,   198,    89,  1350,  -607,  -607,  -607,
+     208,  -607,  -607,  -607,    65,  -607,  -607,  -607,   208,   110,
+    -607,  -607,    45,  2903,  -607,   276,  2903,  -607,    18,  -607,
+    -607,  -607,  -607,  -607,  -607,  -607,  -607,  -607,  -607,  -607,
+    -607,  -607,  -607,  -607,  -607,  -607,  -607,  -607,  -607,  -607,
+    -607,  -607,  -607,  -607,  -607,  -607,  -607,  -607,    85,  -607,
+    -607,  -607,  -607,  -607,  -607,  -607,  2903,  -607,  2903,  -607,
+     208,  -607,  -607,   133,  -607,  -607,  -607,  -607,   208,   208,
+    -607,  -607,  2903,  -607,  -607,  -607,  -607,  -607,  -607,  -607,
+    -607,  -607,  -607,  2903,  -607,  -607,  -607,  -607,  -607,   399,
+    -607,  2903,   336,   155,   192,   185,  -607,   198,   268,  -607,
+    -607,    89,  1152,  -607,   213,   199,  -607,  -607,   297,  -607,
+     208,   305,   336,   240,   242,   273,  -607,  1445,  -607,   336,
+     333,  -607,   359,  -607,   369,  -607,   359,  -607,   359,   336,
+    1247,  1247,   336,  -607,  -607,   336,   336,  -607,   139,  -607,
+     145,   416,   422,  -607,  -607,  -607,  -607,  -607,   208,   388,
+    -607,  -607,  -607,   208,   360,  -607,  -607,   208,   471,  -607,
+    -607,   376,  2903,   398,   393,   406,  -607,   347,   387,  -607,
+     360,   445,  -607,  -607,   456,  2903,   476,  2319,   143,   457,
+     474,   484,   397,   404,  -607,  -607,  -607,  -607,  -607,   336,
+     150,   481,  2414,   477,   488,   166,  -607,  -607,  -607,  -607,
+    -607,   416,   422,   239,   279,  -607,   336,  3150,  1836,   272,
+    1933,  -607,  2030,  -607,  -607,  1152,  -607,  -607,   482,   224,
+    -607,   208,   360,   208,   360,   501,   418,   347,  -607,  1152,
+    1152,   347,  1741,  -607,   433,  -607,   453,   118,  -607,  -607,
+     524,  -607,  -607,   496,  -607,   503,   435,  -607,  -607,  -607,
+    -607,   517,   519,   508,  -607,  -607,  -607,  -607,   509,  2903,
+     505,   512,  -607,  -607,  2903,  2903,  -607,  1836,  -607,  -607,
+    -607,  3059,  3150,  -607,   297,  -607,  -607,  -607,  -607,   533,
+    3150,   534,  -607,   535,   536,  -607,  -607,  3033,  -607,   537,
+    -607,   304,  3200,  -607,   329,  1155,  1155,   521,   654,  -607,
+    -607,   188,  -607,  -607,  -607,   538,   547,   548,   522,  -607,
+     336,  -607,   523,  -607,   527,  -607,   528,   529,   540,  -607,
+    -607,   541,  -607,   525,  -607,   118,  -607,   543,  -607,   406,
+     387,  -607,   387,   433,   539,   292,  2127,  -607,   544,  -607,
+    -607,  -607,  -607,  -607,   545,  -607,  -607,  2509,   435,  1644,
+    -607,   416,   446,  -607,    35,    35,  -607,  -607,   336,   553,
+     549,   556,   551,  -607,   580,  2414,   336,  2611,  -607,  2713,
+     554,   559,  -607,   381,    44,   133,  3150,    -1,  3150,  1022,
+     762,  -607,   375,  3150,  3200,  3200,  -607,  -607,   335,   329,
+     329,   236,   236,   208,   208,  3109,   208,  -607,  -607,  -607,
+     208,  -607,  1155,  -607,  3150,  -607,  3150,  -607,  -607,  -607,
+     189,  -607,  -607,  -607,  -607,  -607,  -607,   564,   565,   550,
+    -607,  -607,  -607,   557,   208,  -607,  -607,  1836,  -607,  -607,
+     446,   459,  2224,  -607,  -607,   182,  -607,  -607,    35,    35,
+    -607,  -607,   542,  -607,  -607,  -607,  -607,  -607,   197,  -607,
+    -607,  -607,  -607,  -607,   208,   567,  3150,  -607,   563,  -607,
+     568,   537,   293,  3150,   570,   584,   566,   573,   574,  -607,
+    -607,  2903,   312,  -607,  -607,  -607,  -607,  -607,  -607,  -607,
+    -607,  -607,   335,  -607,  -607,  -607,  -607,   394,  -607,  -607,
+     236,   575,  -607,   331,   -15,  -607,  -607,  -607,   578,  -607,
+     588,   583,  -607,   582,  -607,   586,   610,   247,  -607,  1547,
+    -607,  -607,  -607,   585,  -607,  -607,   336,   -15,  -607,   208,
+    -607,   133,  2808,  3150,  -607,    25,  3150,  -607,  -607,  -607,
+    -607,   892,  -607,  -607,  -607,  -607,  -607,   133,  2903,  -607,
+     577,  -607,   208,   208,   569,  -607,  -607,   208,   617,  -607,
+    -607,   336,   606,  -607,  -607,   577,  -607,  -607,  2903,  -607,
+    -607,   537,  3150,   594,  -607,   270,  -607,    77,   336,  3150,
+     530,  -607,  -607,   530,  -607,  -607,  -607,   625,   530,  -607,
+     537,  -607,  -607,   133,  2903,  3150,   278,   634,  3150,   581,
+     592,  3150,   581,  -607,   599,  -607,  -607,  -607,   639,   632,
+     595,   614,   595,   612,   595,  3150,  -607,   643,   644,   288,
+    3150,   607,   181,   621,  -607,   607,  -607,  -607,  -607,  -607,
+     651,  3150,   624,   181,   648,   126,  -607,   649,   629,  -607,
+     628,  -607,   660,  -607,    48,  -607,   299,   181,  -607,   212,
+     645,  -607,  -607,   181,  -607,  -607,   661,  -607,   202,   202,
+    -607,   351,   665,  -607,   659,  -607,  -607,   666,  -607,    43,
+     202,  -607,   246,   379,   411,  -607,   665,  -607,  -607,   358,
+    -607,   365,  -607,  -607
 };
 
 };
 
+/* YYPGOTO[NTERM-NUM].  */
 static const short yypgoto[] =
 {
 static const short yypgoto[] =
 {
-  -32768,-32768,-32768,-32768,-32768,   595,-32768,-32768,   678,   677,
-  -32768,-32768,-32768,   307,   679,-32768,-32768,   610,   612,   616,
-  -32768,  -121,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-  -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   580,
-  -32768,    -6,-32768,   585,-32768,   461,-32768,   451,   452,-32768,
-  -32768,   471,  -108,   478,  -188,-32768,   232,-32768,  -458,-32768,
-     127,  -473,   175,  -169,   142,   137,   206,  -206,   120,-32768,
-    -180,-32768,-32768,  -507,-32768,  -190,  -230,  -318,-32768,-32768,
-  -32768,-32768,-32768,   381,-32768,-32768,   -89,-32768,-32768,-32768,
-      -3,   -18,-32768,    32,-32768,-32768,   407,   476,    68,-32768,
-  -32768,    56,-32768,   -93,  -127,   344,   398,  -187,   257,  -182,
-    -213,  -101,   511,    30,  -267,   603,  -137,-32768,   586,-32768,
-  -32768,-32768,  -531,  -204,  -254,-32768,   105,   -46,   466,-32768,
-  -32768,  -278,   455,-32768,-32768,   472,  -265,  -205,-32768,-32768,
-    -372,-32768,  -303,-32768,-32768,   242,     7,   -23,   -38,   423,
-     656,  -377,    19,   531
+    -607,  -607,  -607,  -607,  -607,  -607,   590,  -607,  -607,   679,
+     683,  -607,  -607,  -607,   315,   687,  -607,  -607,   591,   608,
+     611,  -607,  -123,  -607,  -607,  -607,  -607,  -607,  -607,  -607,
+    -607,  -607,  -607,  -607,  -607,  -607,  -607,  -607,  -607,  -607,
+     587,  -607,    -8,  -607,   626,  -607,   516,  -607,   504,   502,
+    -607,  -607,   526,  -110,   531,  -190,  -607,   281,  -607,  -483,
+    -607,   156,  -520,   190,  -159,   152,   157,   220,  -353,   142,
+    -607,  -182,  -607,  -607,  -554,  -607,  -185,  -606,  -322,  -607,
+    -607,  -607,  -607,  -607,   401,  -607,  -607,   -91,  -607,  -607,
+    -607,    -5,   -20,  -607,    29,  -607,  -607,   417,   497,    -6,
+    -607,  -607,    54,  -607,   -95,  -119,   353,   413,  -178,   261,
+    -137,  -210,   -22,   532,   -14,  -248,   609,  -121,  -607,   546,
+    -607,  -607,  -607,  -528,  -203,  -265,  -607,   108,  -101,   478,
+    -607,  -607,  -280,   468,  -607,  -607,   489,  -269,  -285,  -607,
+    -607,  -308,  -607,  -305,  -607,  -607,   248,     5,   -25,   -40,
+     434,   668,  -369,    16,   552
 };
 
 };
 
-
-#define        YYLAST          3340
-
-
+/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
+   positive, shift that token.  If negative, reduce the rule which
+   number is the opposite.  If zero, do what YYDEFACT says.
+   If YYTABLE_NINF, syntax error.  */
+#define YYTABLE_NINF -409
 static const short yytable[] =
 {
 static const short yytable[] =
 {
-     118,   100,   103,   113,   196,   252,   413,   148,   141,    15,
-      19,   296,   186,   271,   296,    15,   209,   211,   112,   198,
-     275,   120,   395,    19,   391,   379,   341,   343,   389,   203,
-     117,   497,     2,   132,   385,   107,   101,   320,   399,   400,
-     324,   245,   391,   110,   670,   445,   595,   208,   219,   221,
-     391,   124,   545,   336,   442,   510,   643,   644,   645,   631,
-     102,   126,   151,   127,   180,   606,   426,   563,   611,   643,
-     651,   645,   361,   462,   632,   129,   381,   137,   673,   570,
-     371,   443,   151,   129,   129,   646,   526,   628,   140,   151,
-       3,   381,   330,   587,   581,   333,   142,   546,   640,   151,
-     652,   104,   151,   350,   263,   151,   151,   175,   219,   221,
-     219,   221,    15,   633,   -55,   351,    19,   108,   488,   602,
-     180,   471,   100,   484,   642,   117,   105,   359,   518,   519,
-     469,   217,   218,   131,   592,   100,   100,   485,   655,     8,
-     178,   345,   109,   341,   343,   498,   327,   392,   469,   593,
-     564,   220,   218,   393,   328,   347,     9,   101,   276,   151,
-     469,    10,   152,    19,   431,   248,   435,   235,   437,   227,
-     101,   101,   228,   579,   580,   222,   151,   180,   277,    11,
-     112,   102,   472,   475,   483,     9,   271,   344,   218,   531,
-      10,   180,   180,   542,   102,   102,   232,   494,   180,   153,
-     514,     9,     9,   213,   402,   403,    10,   116,   154,   501,
-     418,   656,   541,   318,   429,   164,   151,   533,   657,   404,
-     175,   405,   406,   407,   408,   656,   341,   167,   214,   209,
-     211,   409,   657,   632,   175,   175,   156,   331,   332,   181,
-     345,   157,   345,   350,   327,   658,   256,   632,   283,   284,
-     285,   286,   328,   178,   183,   351,   396,   585,   219,   441,
-     513,   528,   283,   284,   285,   286,  -101,   178,   178,   374,
-     374,   214,   318,   263,   178,   661,  -405,   569,   279,   280,
-     151,   457,   631,   412,   661,   661,   402,   403,     9,   264,
-     164,  -101,   215,   282,   281,   274,   661,   632,   661,   661,
-     661,   404,   167,   405,   406,   407,   408,   653,   283,   284,
-     285,   286,   209,   409,   214,   185,   588,   327,   151,   151,
-     214,   503,   287,   188,   523,   328,   657,   289,   151,   464,
-     571,   159,   217,   218,   160,   483,   151,   441,   590,   161,
-     162,   632,   163,   604,   627,   468,   214,   189,     9,   524,
-     164,   489,   490,    10,   165,   166,   283,   284,   285,   286,
-     439,   190,   167,   591,   357,   218,   239,   168,   214,   539,
-     240,   218,   374,   199,   374,   290,   291,   159,    16,   131,
-     160,  -248,   292,   169,   474,   112,   356,   200,     9,   603,
-     357,   218,   279,    10,   531,   555,   558,   223,   556,   532,
-     358,   151,     9,   483,   621,   131,   623,   282,   491,   624,
-     495,   496,   598,   224,   143,   491,   539,   600,   144,   220,
-     218,   540,   283,   284,   285,   286,   666,   667,   145,   531,
-     234,   562,   318,   131,   544,   656,   287,   516,   674,   491,
-     675,   289,   657,   459,    65,   459,    67,   236,    69,    70,
-      15,   668,    72,    73,    74,    75,   669,   632,   668,    78,
-      79,   538,   668,   680,   344,   218,   584,   681,   594,   676,
-     491,   656,   283,   284,   285,   286,   112,   237,   657,   440,
-     218,   677,   679,   133,   135,   238,   151,   210,   212,   290,
-     291,   468,   244,   632,   338,   340,   292,   486,   487,   134,
-     136,   246,   247,   215,   249,   678,   257,   575,   283,   284,
-     285,   286,   258,   259,   559,    65,   260,    67,   265,    69,
-      70,   151,   272,    72,    73,    74,    75,   568,   273,   334,
-      78,    79,   335,   353,   491,   326,   112,   159,   151,   355,
-     160,   354,   364,   576,   365,   229,   230,   366,   163,   582,
-     369,   372,   373,   575,   384,   386,   164,   491,   491,   387,
-     231,   388,    15,   568,   391,   414,   401,   415,   167,   416,
-     417,   449,   450,   168,   419,   420,   454,   421,   422,   423,
-     424,   427,   636,   425,   434,   428,   452,   432,   520,   568,
-     504,  -406,   461,   636,   453,   505,   463,   635,   527,   554,
-     583,   549,   529,   530,   112,   552,   636,   636,   635,   663,
-     507,   534,   535,   636,   536,   537,   550,   506,   663,   663,
-     543,   635,   635,   551,   553,   665,   281,   596,   635,   561,
-     663,   577,   663,   663,   663,   159,   545,   589,   160,   599,
-      21,   605,   279,   280,   609,   607,   614,   613,   618,   620,
-     622,   625,   473,   281,   164,   626,   629,   282,   637,   639,
-     641,  -407,   649,   647,   648,   650,   167,   664,   645,   670,
-     683,   671,   283,   284,   285,   286,   684,   615,   672,     7,
-     455,    85,   139,    87,   325,   155,   287,   288,   337,   322,
-     339,   289,   278,   525,   158,   616,   477,   478,   479,    27,
-      28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
-      38,    39,    40,    41,    42,    43,    44,    45,   601,    46,
-      47,    48,    49,    50,    51,    52,    53,    54,    55,   111,
-      57,    58,    59,    60,    61,   193,    62,   194,   586,   290,
-     291,   195,   612,   638,   617,   572,   292,   448,    65,   377,
-      67,    68,    69,    70,   438,   348,    72,    73,    74,    75,
-      76,   410,    77,    78,    79,   159,   394,   390,   160,   233,
-      21,   565,   279,   280,   184,   349,     0,     0,     0,     0,
-       0,     0,   473,   281,   164,     0,     0,   282,     0,     0,
-       0,     0,     0,     0,     0,     0,   167,     0,     0,     0,
-       0,     0,   283,   284,   285,   286,   476,     0,     0,     0,
-       0,     0,   329,     0,     0,     0,   287,   288,     0,     0,
-       0,   289,     0,     0,     0,     0,   477,   478,   479,    27,
-      28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
-      38,    39,    40,    41,    42,    43,    44,    45,     0,    46,
-      47,    48,    49,    50,    51,    52,    53,    54,    55,   111,
-      57,    58,    59,    60,    61,     0,    62,     0,     0,   290,
-     291,     0,     0,     0,     0,     0,   292,     0,    65,     0,
-      67,    68,    69,    70,     0,     0,    72,    73,    74,    75,
-      76,     0,    77,    78,    79,   159,     0,     0,   160,     0,
-      21,     0,   279,   280,     0,     0,     0,     0,     0,     0,
-       0,     0,   473,   281,   164,     0,     0,   282,     0,     0,
-       0,     0,     0,     0,     0,     0,   167,     0,     0,     0,
-       0,     0,   283,   284,   285,   286,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   287,   288,     0,     0,
-       0,   289,     0,     0,     0,     0,   477,   478,   479,    27,
-      28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
-      38,    39,    40,    41,    42,    43,    44,    45,     0,    46,
-      47,    48,    49,    50,    51,    52,    53,    54,    55,   111,
-      57,    58,    59,    60,    61,     0,    62,     0,     0,   290,
-     291,     0,     0,     0,     0,     0,   292,     0,    65,     0,
-      67,    68,    69,    70,     0,     0,    72,    73,    74,    75,
-      76,     0,    77,    78,    79,   159,     0,     0,   160,     0,
-      21,     0,   279,   280,     0,     0,     0,     0,     0,     0,
-       0,     0,   473,   281,   164,     0,     0,   282,     0,     0,
-       0,     0,     0,     0,     0,     0,   167,     0,     0,     0,
-       0,     0,   283,   284,   285,   286,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   287,   288,     0,     0,
-       0,   289,     0,     0,     0,     0,     0,     0,     0,    27,
-      28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
-      38,    39,    40,    41,    42,    43,    44,    45,     0,    46,
-      47,    48,    49,    50,    51,    52,    53,    54,    55,   111,
-      57,    58,    59,    60,    61,     0,    62,     0,     0,   290,
-     291,     0,     0,     0,     0,     0,   292,     0,    65,     0,
-      67,    68,    69,    70,     0,     0,    72,    73,    74,    75,
-      76,     0,    77,    78,    79,   159,     0,     0,   160,     0,
-      21,     0,     0,   161,   162,     0,   163,     0,     0,     0,
-       0,     0,    22,     0,   164,     0,     0,     0,   165,   166,
-       0,     0,     0,     0,     0,     0,   167,     0,     0,     0,
-       0,   168,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   169,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   170,    27,
-      28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
-      38,    39,    40,    41,    42,    43,    44,    45,     0,    46,
-      47,    48,    49,    50,    51,    52,    53,    54,    55,   111,
-      57,    58,    59,    60,    61,    21,    62,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,    22,    65,     0,
-      67,    68,    69,    70,     0,     0,    72,    73,    74,    75,
-      76,     0,    77,    78,    79,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,    23,     0,    24,     0,     0,
-       0,     0,     0,    25,     0,     0,     0,     0,     0,    26,
-       0,     0,     0,     0,    27,    28,    29,    30,    31,    32,
-      33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
-      43,    44,    45,     0,    46,    47,    48,    49,    50,    51,
-      52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
-       0,    62,     0,     0,     0,     0,    63,     0,    21,     0,
-      64,     0,     3,    65,    66,    67,    68,    69,    70,    71,
-      22,    72,    73,    74,    75,    76,     0,    77,    78,    79,
-      80,    81,    82,    83,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,    23,     0,
-      24,     0,     0,     0,     0,     0,    25,     0,     0,     0,
-       0,     0,    26,     0,     0,     0,     0,    27,    28,    29,
+     120,   102,   105,   115,   198,   254,   415,   150,   143,    17,
+      21,   182,   188,   393,   298,    17,   298,   384,   114,   200,
+     277,   122,   397,    21,   273,   387,   211,   213,     4,   205,
+     119,   343,   345,   134,   109,   103,   401,   402,   324,   393,
+     326,   499,   444,   447,   565,   547,   672,   210,   589,   391,
+       3,   597,   668,   669,   645,   653,   647,   112,   393,   247,
+     104,   128,   153,   129,   676,   512,   677,   182,   635,   445,
+     608,   583,   106,   613,   604,   131,   572,   139,   382,   644,
+     675,   467,   153,   131,   131,   654,     5,   428,   142,   153,
+     548,   373,   630,   657,   382,   528,   144,   107,   180,   153,
+     338,    18,   153,   642,   265,   153,   153,   177,   594,    11,
+     473,   333,    17,   335,    12,   -56,    21,   110,   490,   363,
+     497,   471,   102,   595,   182,   119,   520,   521,   487,   221,
+     223,   503,   645,   646,   647,   102,   102,   361,   182,   182,
+     471,   352,   111,   500,   486,   182,   215,   126,   343,   345,
+     258,   471,  -102,   353,   234,   349,   103,   266,   133,   153,
+     566,   648,   154,    21,   433,   250,   437,   237,   226,   103,
+     103,   216,   230,   276,   224,   216,   153,  -102,   217,   439,
+     114,   104,   216,   581,   582,   474,   477,   485,   156,   221,
+     223,   221,   223,   633,   104,   104,   505,   273,   216,   155,
+     414,    10,    11,   398,   525,   658,   634,    12,   535,   283,
+     420,   180,   543,   320,   659,   658,   153,   516,    11,   183,
+     177,   216,   347,    12,   659,   180,   180,   634,    11,   526,
+     185,   343,   180,    12,   177,   177,   332,   634,   334,   211,
+     213,    13,   285,   286,   287,   288,   404,   405,   329,   660,
+     219,   220,   285,   286,   287,   288,   330,   587,   659,   623,
+     515,   625,   406,   530,   407,   408,   409,   410,   571,   376,
+     376,   634,   320,   265,   411,   161,   278,   592,   162,   557,
+     153,   459,   558,   281,   282,   606,   285,   286,   287,   288,
+     219,   222,    11,   283,   166,   629,    11,   284,   491,   492,
+     158,   118,   593,   219,   346,   159,   169,   590,   321,  -406,
+     216,   633,   285,   286,   287,   288,   279,   187,   153,   153,
+     541,   347,   211,   347,   634,   533,   289,   290,   153,   431,
+     534,   291,   161,   573,   655,   162,   153,   394,   485,   221,
+     443,   663,   145,   395,   541,   470,   281,   282,   146,   542,
+     663,   663,   190,   241,   191,    11,   147,   166,   219,   242,
+     284,   133,   663,   533,   663,   663,   663,   201,   546,   169,
+     192,   461,   376,   461,   376,   285,   286,   287,   288,   292,
+     293,   202,   658,   670,   476,   114,   294,   227,   671,   289,
+     670,   659,   605,  -249,   291,   682,   560,   670,   352,   329,
+     225,   153,   683,   236,   634,   329,   485,   330,   493,   495,
+     353,   498,   626,   330,   658,   493,   678,   465,   443,   285,
+     286,   287,   288,   659,   600,   239,   533,   219,   220,   602,
+     544,   564,   320,   219,   222,   238,   634,   518,   240,   493,
+     246,   358,   292,   293,   219,   346,   219,   359,   680,   294,
+      17,   285,   286,   287,   288,   360,   161,   219,   442,   162,
+     133,   540,   249,   163,   164,   441,   586,   165,   596,   493,
+     219,   359,   248,    11,   161,   166,   114,   162,    12,   167,
+     168,   231,   232,   251,   133,   165,   153,   169,   679,   681,
+     217,   470,   170,   166,   259,   135,   137,   233,   212,   214,
+     340,   342,   488,   489,   260,   169,   267,   577,   171,   261,
+     170,   274,   136,   138,   561,    67,   262,    69,   328,    71,
+      72,   153,   275,    74,    75,    76,    77,   570,   336,   337,
+      80,    81,   355,   356,   493,   357,   114,   366,   153,   367,
+     368,   371,   374,   578,   375,   386,   388,   389,   390,   584,
+     416,   393,   403,   577,   417,   418,   419,   493,   493,   421,
+     451,   427,    17,   570,   422,   423,   424,   425,   426,    67,
+     429,    69,   436,    71,    72,   434,   430,    74,    75,    76,
+      77,   454,   638,   452,    80,    81,   455,   456,   463,   570,
+     464,   506,   507,   638,   509,   531,  -407,   637,   529,   532,
+     522,   508,   536,   537,   114,   551,   638,   638,   637,   665,
+     538,   539,   545,   638,   552,   553,   554,   556,   665,   665,
+     563,   637,   637,   555,   585,   667,   579,   283,   637,   547,
+     665,   591,   665,   665,   665,   161,   598,   601,   162,   611,
+      23,   607,   609,   281,   282,   615,   616,   620,   622,   624,
+     627,   628,   475,   283,   166,   631,   639,   284,   641,   643,
+    -408,   649,   650,   651,   404,   405,   169,   652,   672,   647,
+     666,   673,   285,   286,   287,   288,   166,   617,   674,   141,
+     406,     9,   407,   408,   409,   410,   289,   290,   169,    87,
+     457,   291,   411,    89,   157,   618,   479,   480,   481,    29,
+      30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
+      40,    41,    42,    43,    44,    45,    46,    47,   195,    48,
+      49,    50,    51,    52,    53,    54,    55,    56,    57,   113,
+      59,    60,    61,    62,    63,   196,    64,   160,   197,   292,
+     293,   327,   341,   339,   527,   322,   294,   280,    67,   603,
+      69,    70,    71,    72,   614,   588,    74,    75,    76,    77,
+      78,   574,    79,    80,    81,   161,   619,   640,   162,   450,
+      23,   440,   379,   281,   282,   331,   412,   235,   350,   567,
+     396,     0,   475,   283,   166,     0,   392,   284,   186,     0,
+       0,     0,     0,     0,     0,     0,   169,     0,   351,     0,
+       0,     0,   285,   286,   287,   288,   478,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   289,   290,     0,     0,
+       0,   291,     0,     0,     0,     0,   479,   480,   481,    29,
+      30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
+      40,    41,    42,    43,    44,    45,    46,    47,     0,    48,
+      49,    50,    51,    52,    53,    54,    55,    56,    57,   113,
+      59,    60,    61,    62,    63,     0,    64,     0,     0,   292,
+     293,     0,     0,     0,     0,     0,   294,     0,    67,     0,
+      69,    70,    71,    72,     0,     0,    74,    75,    76,    77,
+      78,     0,    79,    80,    81,   161,     0,     0,   162,     0,
+      23,     0,     0,   281,   282,     0,     0,     0,     0,     0,
+       0,     0,   475,   283,   166,     0,     0,   284,     0,     0,
+       0,     0,     0,     0,     0,     0,   169,     0,     0,     0,
+       0,     0,   285,   286,   287,   288,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   289,   290,     0,     0,
+       0,   291,     0,     0,     0,     0,   479,   480,   481,    29,
       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
-      40,    41,    42,    43,    44,    45,     0,    46,    47,    48,
-      49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
-      59,    60,    61,    21,    62,     0,     0,     0,     0,    63,
-       0,     0,     0,    64,     0,    22,    65,    66,    67,    68,
-      69,    70,    71,     0,    72,    73,    74,    75,    76,     0,
-      77,    78,    79,    80,    81,    82,    83,     0,     0,     0,
-       0,     0,     0,     0,     0,    24,     0,     0,     0,     0,
-       0,    25,     0,     0,     0,     0,     0,    26,     0,     0,
-       0,     0,    27,    28,    29,    30,    31,    32,    33,    34,
+      40,    41,    42,    43,    44,    45,    46,    47,     0,    48,
+      49,    50,    51,    52,    53,    54,    55,    56,    57,   113,
+      59,    60,    61,    62,    63,     0,    64,     0,     0,   292,
+     293,     0,     0,     0,     0,     0,   294,     0,    67,     0,
+      69,    70,    71,    72,     0,     0,    74,    75,    76,    77,
+      78,     0,    79,    80,    81,   161,     0,     0,   162,     0,
+      23,     0,     0,   281,   282,     0,     0,     0,     0,     0,
+       0,     0,   475,   283,   166,     0,     0,   284,     0,     0,
+       0,     0,     0,     0,     0,     0,   169,     0,     0,     0,
+       0,     0,   285,   286,   287,   288,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   289,   290,     0,     0,
+       0,   291,     0,     0,     0,     0,     0,     0,     0,    29,
+      30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
+      40,    41,    42,    43,    44,    45,    46,    47,     0,    48,
+      49,    50,    51,    52,    53,    54,    55,    56,    57,   113,
+      59,    60,    61,    62,    63,     0,    64,     0,     0,   292,
+     293,     0,     0,     0,     0,     0,   294,     0,    67,     0,
+      69,    70,    71,    72,     0,     0,    74,    75,    76,    77,
+      78,     0,    79,    80,    81,   161,     0,     0,   162,     0,
+      23,     0,   163,   164,     0,     0,   165,   282,     0,     0,
+       0,     0,    24,     0,   166,    11,     0,     0,   167,   168,
+     284,     0,     0,     0,     0,     0,   169,     0,     0,     0,
+       0,   170,     0,     0,     0,   285,   286,   287,   288,     0,
+       0,     0,     0,     0,     0,     0,     0,   171,     0,   289,
+       0,     0,     0,     0,   291,     0,     0,     0,   172,    29,
+      30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
+      40,    41,    42,    43,    44,    45,    46,    47,     0,    48,
+      49,    50,    51,    52,    53,    54,    55,    56,    57,   113,
+      59,    60,    61,    62,    63,    23,    64,     0,     0,     0,
+       0,     0,   292,   293,     0,     0,     0,    24,    67,   294,
+      69,    70,    71,    72,     0,     0,    74,    75,    76,    77,
+      78,     0,    79,    80,    81,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,    25,     0,    26,     0,     0,
+       0,     0,     0,    27,     0,     0,     0,     0,     0,    28,
+       0,     0,     0,     0,    29,    30,    31,    32,    33,    34,
       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
-      45,     0,    46,    47,    48,    49,    50,    51,    52,    53,
-      54,    55,    56,    57,    58,    59,    60,    61,     0,    62,
-       0,     0,     0,     0,     0,    21,     0,     0,    64,     0,
-       0,    65,    66,    67,    68,    69,    70,    22,     0,    72,
-      73,    74,    75,    76,     0,    77,    78,    79,    80,    81,
-      82,    83,   557,     0,     0,     0,     0,     0,     0,     0,
+      45,    46,    47,     0,    48,    49,    50,    51,    52,    53,
+      54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
+       0,    64,     0,     0,     0,     0,    65,     0,    23,     0,
+      66,     0,     5,    67,    68,    69,    70,    71,    72,    73,
+      24,    74,    75,    76,    77,    78,     0,    79,    80,    81,
+      82,    83,    84,    85,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,    25,     0,
+      26,     0,     0,     0,     0,     0,    27,     0,     0,     0,
+       0,     0,    28,     0,     0,     0,     0,    29,    30,    31,
+      32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
+      42,    43,    44,    45,    46,    47,     0,    48,    49,    50,
+      51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
+      61,    62,    63,    23,    64,     0,     0,     0,     0,    65,
+       0,     0,     0,    66,     0,    24,    67,    68,    69,    70,
+      71,    72,    73,     0,    74,    75,    76,    77,    78,     0,
+      79,    80,    81,    82,    83,    84,    85,     0,     0,     0,
+       0,     0,     0,     0,     0,    26,     0,     0,     0,     0,
+       0,    27,     0,     0,     0,     0,     0,    28,     0,     0,
+       0,     0,    29,    30,    31,    32,    33,    34,    35,    36,
+      37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
+      47,     0,    48,    49,    50,    51,    52,    53,    54,    55,
+      56,    57,    58,    59,    60,    61,    62,    63,     0,    64,
+       0,     0,     0,     0,     0,    23,     0,     0,    66,     0,
+       0,    67,    68,    69,    70,    71,    72,    24,     0,    74,
+      75,    76,    77,    78,     0,    79,    80,    81,    82,    83,
+      84,    85,   559,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,    27,    28,    29,    30,    31,    32,
-      33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
-      43,    44,    45,     0,    46,    47,    48,    49,    50,    51,
-      52,    53,    54,    55,   111,    57,    58,    59,    60,    61,
-     439,    62,    21,     0,   357,   218,     0,     0,     0,     0,
-       0,     0,     0,    65,    22,    67,    68,    69,    70,   131,
-       0,    72,    73,    74,    75,    76,     0,    77,    78,    79,
-       0,    81,    82,    83,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,    29,    30,    31,    32,    33,    34,
+      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
+      45,    46,    47,     0,    48,    49,    50,    51,    52,    53,
+      54,    55,    56,    57,   113,    59,    60,    61,    62,    63,
+     441,    64,    23,     0,     0,   219,   359,     0,     0,     0,
+       0,     0,     0,    67,    24,    69,    70,    71,    72,   133,
+       0,    74,    75,    76,    77,    78,     0,    79,    80,    81,
+       0,    83,    84,    85,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,    27,    28,    29,    30,    31,    32,    33,    34,    35,
-      36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
-       0,    46,    47,    48,    49,    50,    51,    52,    53,    54,
-      55,   111,    57,    58,    59,    60,    61,   239,    62,    21,
-       0,   240,   218,     0,     0,     0,     0,     0,     0,     0,
-      65,    22,    67,    68,    69,    70,     0,     0,    72,    73,
-      74,    75,    76,   250,    77,    78,    79,     0,     0,     0,
+       0,    29,    30,    31,    32,    33,    34,    35,    36,    37,
+      38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
+       0,    48,    49,    50,    51,    52,    53,    54,    55,    56,
+      57,   113,    59,    60,    61,    62,    63,   241,    64,    23,
+       0,     0,   219,   242,     0,     0,     0,     0,     0,     0,
+      67,    24,    69,    70,    71,    72,     0,     0,    74,    75,
+      76,    77,    78,   252,    79,    80,    81,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,    27,    28,
-      29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
-      39,    40,    41,    42,    43,    44,    45,     0,    46,    47,
-      48,    49,    50,    51,    52,    53,    54,    55,   111,    57,
-      58,    59,    60,    61,    21,    62,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,    22,    65,     0,    67,
-      68,    69,    70,     0,     0,    72,    73,    74,    75,    76,
-     250,    77,    78,    79,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,    29,    30,
+      31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
+      41,    42,    43,    44,    45,    46,    47,     0,    48,    49,
+      50,    51,    52,    53,    54,    55,    56,    57,   113,    59,
+      60,    61,    62,    63,    23,    64,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,    24,    67,     0,    69,
+      70,    71,    72,     0,     0,    74,    75,    76,    77,    78,
+     252,    79,    80,    81,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     314,   315,     0,    27,    28,    29,    30,    31,    32,    33,
-      34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
-      44,    45,     0,    46,    47,    48,    49,    50,    51,    52,
-      53,    54,    55,   111,    57,    58,    59,    60,    61,     0,
-      62,    21,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,    65,    22,    67,    68,    69,    70,     0,     0,
-      72,    73,    74,    75,    76,     0,    77,    78,    79,     0,
-     319,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     316,   317,     0,    29,    30,    31,    32,    33,    34,    35,
+      36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
+      46,    47,     0,    48,    49,    50,    51,    52,    53,    54,
+      55,    56,    57,   113,    59,    60,    61,    62,    63,     0,
+      64,    23,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,    67,    24,    69,    70,    71,    72,     0,     0,
+      74,    75,    76,    77,    78,     0,    79,    80,    81,     0,
+     323,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
-      37,    38,    39,    40,    41,    42,    43,    44,    45,     0,
-      46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
-     111,    57,    58,    59,    60,    61,     0,    62,    21,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,    65,
-      22,    67,    68,    69,    70,     0,     0,    72,    73,    74,
-      75,    76,   250,    77,    78,    79,     0,   323,     0,     0,
+      29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
+      39,    40,    41,    42,    43,    44,    45,    46,    47,     0,
+      48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
+     113,    59,    60,    61,    62,    63,     0,    64,    23,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,    67,
+      24,    69,    70,    71,    72,     0,     0,    74,    75,    76,
+      77,    78,   252,    79,    80,    81,     0,   325,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,    27,    28,    29,
-      30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
-      40,    41,    42,    43,    44,    45,     0,    46,    47,    48,
-      49,    50,    51,    52,    53,    54,    55,   111,    57,    58,
-      59,    60,    61,     0,    62,    21,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,    65,    22,    67,    68,
-      69,    70,     0,     0,    72,    73,    74,    75,    76,   250,
-      77,    78,    79,     0,   430,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,    29,    30,    31,
+      32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
+      42,    43,    44,    45,    46,    47,     0,    48,    49,    50,
+      51,    52,    53,    54,    55,    56,    57,   113,    59,    60,
+      61,    62,    63,     0,    64,    23,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,    67,    24,    69,    70,
+      71,    72,     0,     0,    74,    75,    76,    77,    78,   252,
+      79,    80,    81,     0,   432,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,    27,    28,    29,    30,    31,    32,
-      33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
-      43,    44,    45,     0,    46,    47,    48,    49,    50,    51,
-      52,    53,    54,    55,   111,    57,    58,    59,    60,    61,
-       0,    62,    21,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,    65,    22,    67,    68,    69,    70,     0,
-       0,    72,    73,    74,    75,    76,   250,    77,    78,    79,
-       0,   512,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,    29,    30,    31,    32,    33,    34,
+      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
+      45,    46,    47,     0,    48,    49,    50,    51,    52,    53,
+      54,    55,    56,    57,   113,    59,    60,    61,    62,    63,
+       0,    64,    23,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,    67,    24,    69,    70,    71,    72,     0,
+       0,    74,    75,    76,    77,    78,   252,    79,    80,    81,
+       0,   514,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,    27,    28,    29,    30,    31,    32,    33,    34,    35,
-      36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
-       0,    46,    47,    48,    49,    50,    51,    52,    53,    54,
-      55,   111,    57,    58,    59,    60,    61,    21,    62,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,    22,
-      65,     0,    67,    68,    69,    70,     0,     0,    72,    73,
-      74,    75,    76,   250,    77,    78,    79,     0,     0,     0,
+       0,    29,    30,    31,    32,    33,    34,    35,    36,    37,
+      38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
+       0,    48,    49,    50,    51,    52,    53,    54,    55,    56,
+      57,   113,    59,    60,    61,    62,    63,    23,    64,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,    24,
+      67,     0,    69,    70,    71,    72,     0,     0,    74,    75,
+      76,    77,    78,   252,    79,    80,    81,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,    27,    28,    29,    30,
-      31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
-      41,    42,    43,    44,    45,     0,    46,    47,    48,    49,
-      50,    51,    52,    53,    54,    55,   111,    57,    58,    59,
-      60,    61,    21,    62,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,    22,    65,     0,    67,    68,    69,
-      70,     0,     0,    72,    73,    74,    75,    76,   250,    77,
-      78,    79,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,    29,    30,    31,    32,
+      33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
+      43,    44,    45,    46,    47,     0,    48,    49,    50,    51,
+      52,    53,    54,    55,    56,    57,   113,    59,    60,    61,
+      62,    63,    23,    64,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,    24,    67,     0,    69,    70,    71,
+      72,     0,     0,    74,    75,    76,    77,    78,   252,    79,
+      80,    81,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,    27,    28,    29,    30,    31,    32,    33,    34,    35,
-      36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
-       0,    46,    47,    48,    49,    50,    51,    52,    53,    54,
-      55,   111,    57,    58,    59,    60,    61,    21,    62,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,    22,
-      65,     0,    67,    68,    69,    70,     0,   267,    72,    73,
-      74,    75,    76,     0,    77,    78,    79,     0,     0,     0,
+       0,    29,    30,    31,    32,    33,    34,    35,    36,    37,
+      38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
+       0,    48,    49,    50,    51,    52,    53,    54,    55,    56,
+      57,   113,    59,    60,    61,    62,    63,    23,    64,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,    24,
+      67,     0,    69,    70,    71,    72,     0,   269,    74,    75,
+      76,    77,    78,     0,    79,    80,    81,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,    27,    28,    29,    30,
-      31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
-      41,    42,    43,    44,    45,     0,    46,    47,    48,    49,
-      50,    51,    52,    53,    54,    55,   111,    57,    58,    59,
-      60,    61,     0,    62,     0,     0,     0,     0,     0,    21,
-       0,     0,     0,     0,     0,    65,     0,    67,    68,    69,
-      70,    22,     0,    72,    73,    74,    75,    76,   436,    77,
-      78,    79,     0,     0,     0,     0,   458,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,    29,    30,    31,    32,
+      33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
+      43,    44,    45,    46,    47,     0,    48,    49,    50,    51,
+      52,    53,    54,    55,    56,    57,   113,    59,    60,    61,
+      62,    63,     0,    64,     0,     0,     0,     0,     0,    23,
+       0,     0,     0,     0,     0,    67,     0,    69,    70,    71,
+      72,    24,     0,    74,    75,    76,    77,    78,   438,    79,
+      80,    81,     0,     0,     0,     0,   460,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,    27,    28,
-      29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
-      39,    40,    41,    42,    43,    44,    45,     0,    46,    47,
-      48,    49,    50,    51,    52,    53,    54,    55,   111,    57,
-      58,    59,    60,    61,     0,    62,     0,     0,     0,     0,
-       0,    21,     0,     0,     0,     0,     0,    65,     0,    67,
-      68,    69,    70,    22,     0,    72,    73,    74,    75,    76,
-       0,    77,    78,    79,     0,     0,     0,     0,   460,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,    29,    30,
+      31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
+      41,    42,    43,    44,    45,    46,    47,     0,    48,    49,
+      50,    51,    52,    53,    54,    55,    56,    57,   113,    59,
+      60,    61,    62,    63,     0,    64,     0,     0,     0,     0,
+       0,    23,     0,     0,     0,     0,     0,    67,     0,    69,
+      70,    71,    72,    24,     0,    74,    75,    76,    77,    78,
+       0,    79,    80,    81,     0,     0,     0,     0,   462,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
-      37,    38,    39,    40,    41,    42,    43,    44,    45,     0,
-      46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
-     111,    57,    58,    59,    60,    61,    21,    62,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,    22,    65,
-       0,    67,    68,    69,    70,     0,     0,    72,    73,    74,
-      75,    76,     0,    77,    78,    79,     0,     0,     0,     0,
+      29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
+      39,    40,    41,    42,    43,    44,    45,    46,    47,     0,
+      48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
+     113,    59,    60,    61,    62,    63,    23,    64,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,    24,    67,
+       0,    69,    70,    71,    72,     0,     0,    74,    75,    76,
+      77,    78,     0,    79,    80,    81,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   566,    27,    28,    29,    30,    31,
-      32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
-      42,    43,    44,    45,     0,    46,    47,    48,    49,    50,
-      51,    52,    53,    54,    55,   111,    57,    58,    59,    60,
-      61,    21,    62,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,    22,    65,     0,    67,    68,    69,    70,
-       0,     0,    72,    73,    74,    75,    76,     0,    77,    78,
-      79,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   568,    29,    30,    31,    32,    33,
+      34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
+      44,    45,    46,    47,     0,    48,    49,    50,    51,    52,
+      53,    54,    55,    56,    57,   113,    59,    60,    61,    62,
+      63,    23,    64,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,    24,    67,     0,    69,    70,    71,    72,
+       0,     0,    74,    75,    76,    77,    78,     0,    79,    80,
+      81,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
-      37,    38,    39,    40,    41,    42,    43,    44,    45,     0,
-      46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
-     111,    57,    58,    59,    60,    61,     0,    62,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,    65,
-       0,    67,    68,    69,    70,     0,     0,    72,    73,    74,
-      75,    76,     0,    77,    78,    79,   159,     0,     0,   160,
-       0,     0,     0,   279,   280,     0,     0,     0,     0,     0,
-       0,     0,     0,     9,   281,   164,   350,     0,   282,     0,
-       0,     0,   159,     0,     0,   160,     0,   167,   351,   279,
-     280,     0,     0,   283,   284,   285,   286,     0,     0,     9,
-     281,   164,     0,     0,   282,     0,     0,   287,   288,     0,
-       0,     0,   289,   167,     0,   321,     0,     0,     0,   283,
-     284,   285,   286,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   159,   287,   288,   160,     0,     0,   289,   279,
-     280,     0,     0,     0,     0,     0,     0,     0,     0,     9,
-     281,   164,     0,     0,   282,     0,     0,     0,     0,     0,
-     290,   291,     0,   167,     0,   380,     0,   292,     0,   283,
-     284,   285,   286,   159,     0,     0,   160,     0,     0,     0,
-     279,   280,     0,   287,   288,     0,   290,   291,   289,     0,
-       9,   281,   164,   292,     0,   282,     0,     0,     0,     0,
-       0,     0,     0,     0,   167,     0,   493,     0,     0,     0,
-     283,   284,   285,   286,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   159,   287,   288,   160,     0,     0,   289,
-     279,   280,     0,     0,     0,     0,   290,   291,     0,     0,
-       9,   281,   164,   292,     0,   282,     0,     0,     0,   159,
-       0,     0,   160,     0,   167,     0,   279,   280,     0,     0,
-     283,   284,   285,   286,     0,     0,     9,     0,   164,     0,
-       0,   282,     0,     0,   287,   288,     0,   290,   291,   289,
-     167,     0,     0,     0,   292,     0,   283,   284,   285,   286,
+      29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
+      39,    40,    41,    42,    43,    44,    45,    46,    47,     0,
+      48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
+     113,    59,    60,    61,    62,    63,     0,    64,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,    67,
+       0,    69,    70,    71,    72,     0,     0,    74,    75,    76,
+      77,    78,     0,    79,    80,    81,   161,     0,     0,   162,
+       0,     0,     0,     0,   281,   282,     0,     0,     0,     0,
+       0,     0,     0,    11,   283,   166,   352,     0,   284,     0,
+       0,     0,   161,     0,     0,   162,     0,   169,   353,     0,
+     281,   282,     0,   285,   286,   287,   288,     0,     0,    11,
+     283,   166,     0,     0,   284,     0,     0,   289,   290,     0,
+       0,     0,   291,   169,     0,   381,     0,     0,     0,   285,
+     286,   287,   288,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,   161,   289,   290,   162,     0,     0,   291,     0,
+     281,   282,     0,     0,     0,     0,     0,     0,     0,    11,
+     283,   166,     0,     0,   284,     0,     0,     0,     0,     0,
+     292,   293,     0,   169,     0,   496,     0,   294,     0,   285,
+     286,   287,   288,   161,     0,     0,   162,     0,     0,     0,
+       0,   281,   282,   289,   290,     0,   292,   293,   291,     0,
+      11,   283,   166,   294,     0,   284,     0,     0,     0,     0,
+       0,     0,     0,     0,   169,     0,     0,     0,     0,     0,
+     285,   286,   287,   288,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   161,   289,   290,   162,     0,     0,   291,
+       0,   281,   282,     0,     0,     0,   292,   293,     0,     0,
+      11,     0,   166,   294,     0,   284,     0,     0,     0,     0,
+       0,     0,     0,     0,   169,     0,     0,     0,     0,     0,
+     285,   286,   287,   288,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   289,     0,     0,   292,   293,   291,
+       0,     0,     0,     0,   294,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     287,     0,     0,     0,     0,   289,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   290,   291,     0,
-       0,     0,     0,     0,   292,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   290,   291,     0,     0,     0,     0,     0,
-     292
+       0,     0,     0,     0,     0,     0,     0,   292,   293,     0,
+       0,     0,     0,     0,   294
 };
 
 static const short yycheck[] =
 {
 };
 
 static const short yycheck[] =
 {
-      23,     4,     8,    21,   125,   185,   309,   100,    97,     2,
-       3,   215,   120,   200,   218,     8,   143,   144,    21,   127,
-     208,    24,   300,    16,    14,   279,   239,   240,   295,   137,
-      23,   408,    57,    71,   288,    16,     4,   217,   303,   304,
-     220,   178,    14,    10,     3,   363,   577,   140,   149,   150,
-      14,    62,    60,   235,     7,   432,     6,     7,     8,    10,
-       4,    64,   100,    66,   110,   596,   333,   525,   599,     6,
-       7,     8,   254,    37,    25,    68,   280,    80,    37,    51,
-     267,    34,   120,    76,    77,    35,   463,   618,    91,   127,
-     115,   295,   229,   566,   552,   232,    99,   105,   629,   137,
-      37,     7,   140,    23,   197,   143,   144,   110,   209,   210,
-     211,   212,   105,   620,    97,    35,   109,     7,   396,   592,
-     166,   111,   125,   390,   631,   118,    32,   254,   446,   447,
-     384,    10,    11,    25,    31,   138,   139,   391,   645,     3,
-     110,   242,    32,   356,   357,   410,    24,    33,   402,    46,
-     527,    10,    11,    39,    32,   244,    20,   125,    37,   197,
-     414,    25,     7,   156,   344,   183,   354,   170,   355,   162,
-     138,   139,   165,   550,   551,   156,   214,   223,    37,    43,
-     183,   125,   386,   387,   388,    20,   373,    10,    11,    32,
-      25,   237,   238,    36,   138,   139,   166,   402,   244,     7,
-      35,    20,    20,     7,    11,    12,    25,    25,     3,   414,
-     318,     3,   490,   216,    37,    22,   254,   471,    10,    26,
-     223,    28,    29,    30,    31,     3,   439,    34,    32,   356,
-     357,    38,    10,    25,   237,   238,    32,   230,   231,     6,
-     341,    37,   343,    23,    24,    37,     7,    25,    40,    41,
-      42,    43,    32,   223,    31,    35,   302,   560,   359,   360,
-     440,   465,    40,    41,    42,    43,     7,   237,   238,   272,
-     273,    32,   275,   366,   244,   647,    10,   531,    10,    11,
-     318,   374,    10,    10,   656,   657,    11,    12,    20,     7,
-      22,    32,    33,    25,    21,     7,   668,    25,   670,   671,
-     672,    26,    34,    28,    29,    30,    31,    35,    40,    41,
-      42,    43,   439,    38,    32,    10,   570,    24,   356,   357,
-      32,     7,    54,   112,     7,    32,    10,    59,   366,    36,
-     534,     3,    10,    11,     6,   539,   374,   438,     7,    11,
-      12,    25,    14,     7,     7,   383,    32,   112,    20,    32,
-      22,   397,   398,    25,    26,    27,    40,    41,    42,    43,
-       6,    97,    34,    32,    10,    11,     6,    39,    32,    32,
-      10,    11,   375,    34,   377,   107,   108,     3,    10,    25,
-       6,    34,   114,    55,   387,   388,     6,    10,    20,   593,
-      10,    11,    10,    25,    32,    32,   517,    10,    35,    37,
-      20,   439,    20,   607,   610,    25,   612,    25,   401,   613,
-     403,   404,   581,    27,     6,   408,    32,   586,    10,    10,
-      11,    37,    40,    41,    42,    43,   656,   657,    20,    32,
-      27,   524,   435,    25,    37,     3,    54,   443,   668,   432,
-     670,    59,    10,   375,   116,   377,   118,    37,   120,   121,
-     443,    32,   124,   125,   126,   127,    37,    25,    32,   131,
-     132,   479,    32,    37,    10,    11,   559,    37,   576,    37,
-     463,     3,    40,    41,    42,    43,   479,    32,    10,    10,
-      11,   671,   672,    76,    77,    32,   524,   143,   144,   107,
-     108,   529,    53,    25,   237,   238,   114,   392,   393,    76,
-      77,    27,     6,    33,     7,    37,    20,   545,    40,    41,
-      42,    43,    20,   112,   517,   116,   112,   118,    25,   120,
-     121,   559,    34,   124,   125,   126,   127,   530,    34,    27,
-     131,   132,   111,     8,   527,    36,   539,     3,   576,    32,
-       6,    37,    20,   546,    20,    11,    12,    32,    14,   555,
-      32,    37,    32,   591,    10,    10,    22,   550,   551,    10,
-      26,    10,   555,   566,    14,    10,    31,     7,    34,     7,
-      34,     7,    34,    39,    37,    36,     7,    37,    37,    27,
-      27,    27,   620,    36,    27,    37,    25,    31,    58,   592,
-      27,    10,    34,   631,    35,    27,    31,   620,    31,     7,
-       7,    27,    32,    31,   607,    34,   644,   645,   631,   647,
-      37,    32,    37,   651,    37,    37,    26,    51,   656,   657,
-      37,   644,   645,    32,    37,   648,    21,   106,   651,    35,
-     668,    49,   670,   671,   672,     3,    60,    37,     6,    10,
-       8,     7,    10,    11,    47,    61,     7,    46,    52,    34,
-      37,     7,    20,    21,    22,     7,    48,    25,    35,     7,
-      35,    10,    35,    10,    33,     7,    34,    25,     8,     3,
-       0,    10,    40,    41,    42,    43,     0,    45,    10,     1,
-     373,     4,    87,     4,   223,   105,    54,    55,   237,   218,
-     238,    59,   214,   461,   109,    63,    64,    65,    66,    67,
+      25,     6,    10,    23,   127,   187,   311,   102,    99,     4,
+       5,   112,   122,    14,   217,    10,   219,   282,    23,   129,
+     210,    26,   302,    18,   202,   290,   145,   146,    57,   139,
+      25,   241,   242,    73,    18,     6,   305,   306,   220,    14,
+     222,   410,     7,   365,   527,    60,     3,   142,   568,   297,
+       0,   579,   658,   659,     6,     7,     8,    12,    14,   180,
+       6,    66,   102,    68,   670,   434,   672,   168,   622,    34,
+     598,   554,     7,   601,   594,    70,    51,    82,   281,   633,
+      37,    37,   122,    78,    79,    37,   115,   335,    93,   129,
+     105,   269,   620,   647,   297,   464,   101,    32,   112,   139,
+     237,    12,   142,   631,   199,   145,   146,   112,    31,    20,
+     111,   232,   107,   234,    25,    97,   111,     7,   398,   256,
+     405,   386,   127,    46,   225,   120,   448,   449,   393,   151,
+     152,   416,     6,     7,     8,   140,   141,   256,   239,   240,
+     405,    23,    32,   412,   392,   246,     7,    62,   358,   359,
+       7,   416,     7,    35,   168,   246,   127,     7,    25,   199,
+     529,    35,     7,   158,   346,   185,   356,   172,   163,   140,
+     141,    32,   167,     7,   158,    32,   216,    32,    33,   357,
+     185,   127,    32,   552,   553,   388,   389,   390,     3,   211,
+     212,   213,   214,    12,   140,   141,     7,   375,    32,     7,
+      12,     3,    20,   304,     7,     3,    25,    25,   473,    21,
+     320,   225,   492,   218,    12,     3,   256,    35,    20,     6,
+     225,    32,   244,    25,    12,   239,   240,    25,    20,    32,
+      31,   441,   246,    25,   239,   240,   231,    25,   233,   358,
+     359,    43,    40,    41,    42,    43,    10,    11,    24,    37,
+      11,    12,    40,    41,    42,    43,    32,   562,    12,   612,
+     442,   614,    26,   466,    28,    29,    30,    31,   533,   274,
+     275,    25,   277,   368,    38,     3,    37,     7,     6,    32,
+     320,   376,    35,    11,    12,     7,    40,    41,    42,    43,
+      11,    12,    20,    21,    22,     7,    20,    25,   399,   400,
+      32,    25,    32,    11,    12,    37,    34,   572,    36,    12,
+      32,    12,    40,    41,    42,    43,    37,    12,   358,   359,
+      32,   343,   441,   345,    25,    32,    54,    55,   368,    37,
+      37,    59,     3,   536,    35,     6,   376,    33,   541,   361,
+     362,   649,     6,    39,    32,   385,    11,    12,    12,    37,
+     658,   659,   112,     6,   112,    20,    20,    22,    11,    12,
+      25,    25,   670,    32,   672,   673,   674,    34,    37,    34,
+      97,   377,   377,   379,   379,    40,    41,    42,    43,   107,
+     108,    12,     3,    32,   389,   390,   114,    27,    37,    54,
+      32,    12,   595,    34,    59,    37,   519,    32,    23,    24,
+      12,   441,    37,    27,    25,    24,   609,    32,   403,   404,
+      35,   406,   615,    32,     3,   410,    37,    36,   440,    40,
+      41,    42,    43,    12,   583,    32,    32,    11,    12,   588,
+      36,   526,   437,    11,    12,    37,    25,   445,    32,   434,
+      53,     6,   107,   108,    11,    12,    11,    12,    37,   114,
+     445,    40,    41,    42,    43,    20,     3,    11,    12,     6,
+      25,   481,     6,    10,    11,     6,   561,    14,   578,   464,
+      11,    12,    27,    20,     3,    22,   481,     6,    25,    26,
+      27,    10,    11,     7,    25,    14,   526,    34,   673,   674,
+      33,   531,    39,    22,    20,    78,    79,    26,   145,   146,
+     239,   240,   394,   395,    20,    34,    25,   547,    55,   112,
+      39,    34,    78,    79,   519,   116,   112,   118,    36,   120,
+     121,   561,    34,   124,   125,   126,   127,   532,    27,   111,
+     131,   132,     8,    37,   529,    32,   541,    20,   578,    20,
+      32,    32,    37,   548,    32,    12,    12,    12,    12,   557,
+      12,    14,    31,   593,     7,     7,    34,   552,   553,    36,
+       7,    36,   557,   568,    37,    37,    37,    27,    27,   116,
+      27,   118,    27,   120,   121,    31,    37,   124,   125,   126,
+     127,    25,   622,    34,   131,   132,    35,     7,    34,   594,
+      31,    27,    27,   633,    37,    32,    12,   622,    31,    31,
+      58,    51,    32,    37,   609,    27,   646,   647,   633,   649,
+      37,    37,    37,   653,    26,    32,    34,     7,   658,   659,
+      35,   646,   647,    37,     7,   650,    49,    21,   653,    60,
+     670,    37,   672,   673,   674,     3,   106,    12,     6,    47,
+       8,     7,    61,    11,    12,    46,     7,    52,    34,    37,
+       7,     7,    20,    21,    22,    48,    35,    25,     7,    35,
+      12,    12,    33,    35,    10,    11,    34,     7,     3,     8,
+      25,    12,    40,    41,    42,    43,    22,    45,    12,    89,
+      26,     2,    28,    29,    30,    31,    54,    55,    34,     6,
+     375,    59,    38,     6,   107,    63,    64,    65,    66,    67,
       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
-      78,    79,    80,    81,    82,    83,    84,    85,   591,    87,
+      78,    79,    80,    81,    82,    83,    84,    85,   127,    87,
       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
-      98,    99,   100,   101,   102,   125,   104,   125,   563,   107,
-     108,   125,   600,   623,   607,   539,   114,   366,   116,   273,
-     118,   119,   120,   121,   356,   244,   124,   125,   126,   127,
-     128,   306,   130,   131,   132,     3,   300,   295,     6,   166,
-       8,   529,    10,    11,   118,   244,    -1,    -1,    -1,    -1,
-      -1,    -1,    20,    21,    22,    -1,    -1,    25,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    34,    -1,    -1,    -1,
+      98,    99,   100,   101,   102,   127,   104,   111,   127,   107,
+     108,   225,   240,   239,   463,   219,   114,   216,   116,   593,
+     118,   119,   120,   121,   602,   565,   124,   125,   126,   127,
+     128,   541,   130,   131,   132,     3,   609,   625,     6,   368,
+       8,   358,   275,    11,    12,   229,   308,   168,   246,   531,
+     302,    -1,    20,    21,    22,    -1,   297,    25,   120,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    34,    -1,   246,    -1,
       -1,    -1,    40,    41,    42,    43,    44,    -1,    -1,    -1,
       -1,    -1,    40,    41,    42,    43,    44,    -1,    -1,    -1,
-      -1,    -1,   226,    -1,    -1,    -1,    54,    55,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    54,    55,    -1,    -1,
       -1,    59,    -1,    -1,    -1,    -1,    64,    65,    66,    67,
       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
       78,    79,    80,    81,    82,    83,    84,    85,    -1,    87,
       -1,    59,    -1,    -1,    -1,    -1,    64,    65,    66,    67,
       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
       78,    79,    80,    81,    82,    83,    84,    85,    -1,    87,
@@ -1381,7 +1727,7 @@ static const short yycheck[] =
      108,    -1,    -1,    -1,    -1,    -1,   114,    -1,   116,    -1,
      118,   119,   120,   121,    -1,    -1,   124,   125,   126,   127,
      128,    -1,   130,   131,   132,     3,    -1,    -1,     6,    -1,
      108,    -1,    -1,    -1,    -1,    -1,   114,    -1,   116,    -1,
      118,   119,   120,   121,    -1,    -1,   124,   125,   126,   127,
      128,    -1,   130,   131,   132,     3,    -1,    -1,     6,    -1,
-       8,    -1,    10,    11,    -1,    -1,    -1,    -1,    -1,    -1,
+       8,    -1,    -1,    11,    12,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    20,    21,    22,    -1,    -1,    25,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    34,    -1,    -1,    -1,
       -1,    -1,    40,    41,    42,    43,    -1,    -1,    -1,    -1,
       -1,    -1,    20,    21,    22,    -1,    -1,    25,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    34,    -1,    -1,    -1,
       -1,    -1,    40,    41,    42,    43,    -1,    -1,    -1,    -1,
@@ -1394,7 +1740,7 @@ static const short yycheck[] =
      108,    -1,    -1,    -1,    -1,    -1,   114,    -1,   116,    -1,
      118,   119,   120,   121,    -1,    -1,   124,   125,   126,   127,
      128,    -1,   130,   131,   132,     3,    -1,    -1,     6,    -1,
      108,    -1,    -1,    -1,    -1,    -1,   114,    -1,   116,    -1,
      118,   119,   120,   121,    -1,    -1,   124,   125,   126,   127,
      128,    -1,   130,   131,   132,     3,    -1,    -1,     6,    -1,
-       8,    -1,    10,    11,    -1,    -1,    -1,    -1,    -1,    -1,
+       8,    -1,    -1,    11,    12,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    20,    21,    22,    -1,    -1,    25,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    34,    -1,    -1,    -1,
       -1,    -1,    40,    41,    42,    43,    -1,    -1,    -1,    -1,
       -1,    -1,    20,    21,    22,    -1,    -1,    25,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    34,    -1,    -1,    -1,
       -1,    -1,    40,    41,    42,    43,    -1,    -1,    -1,    -1,
@@ -1407,17 +1753,17 @@ static const short yycheck[] =
      108,    -1,    -1,    -1,    -1,    -1,   114,    -1,   116,    -1,
      118,   119,   120,   121,    -1,    -1,   124,   125,   126,   127,
      128,    -1,   130,   131,   132,     3,    -1,    -1,     6,    -1,
      108,    -1,    -1,    -1,    -1,    -1,   114,    -1,   116,    -1,
      118,   119,   120,   121,    -1,    -1,   124,   125,   126,   127,
      128,    -1,   130,   131,   132,     3,    -1,    -1,     6,    -1,
-       8,    -1,    -1,    11,    12,    -1,    14,    -1,    -1,    -1,
-      -1,    -1,    20,    -1,    22,    -1,    -1,    -1,    26,    27,
-      -1,    -1,    -1,    -1,    -1,    -1,    34,    -1,    -1,    -1,
-      -1,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    55,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    67,
+       8,    -1,    10,    11,    -1,    -1,    14,    12,    -1,    -1,
+      -1,    -1,    20,    -1,    22,    20,    -1,    -1,    26,    27,
+      25,    -1,    -1,    -1,    -1,    -1,    34,    -1,    -1,    -1,
+      -1,    39,    -1,    -1,    -1,    40,    41,    42,    43,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    55,    -1,    54,
+      -1,    -1,    -1,    -1,    59,    -1,    -1,    -1,    66,    67,
       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
       78,    79,    80,    81,    82,    83,    84,    85,    -1,    87,
       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
       98,    99,   100,   101,   102,     8,   104,    -1,    -1,    -1,
       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
       78,    79,    80,    81,    82,    83,    84,    85,    -1,    87,
       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
       98,    99,   100,   101,   102,     8,   104,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    20,   116,    -1,
+      -1,    -1,   107,   108,    -1,    -1,    -1,    20,   116,   114,
      118,   119,   120,   121,    -1,    -1,   124,   125,   126,   127,
      128,    -1,   130,   131,   132,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    48,    -1,    50,    -1,    -1,
      118,   119,   120,   121,    -1,    -1,   124,   125,   126,   127,
      128,    -1,   130,   131,   132,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    48,    -1,    50,    -1,    -1,
@@ -1456,7 +1802,7 @@ static const short yycheck[] =
       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
       83,    84,    85,    -1,    87,    88,    89,    90,    91,    92,
       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
       83,    84,    85,    -1,    87,    88,    89,    90,    91,    92,
       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
-       6,   104,     8,    -1,    10,    11,    -1,    -1,    -1,    -1,
+       6,   104,     8,    -1,    -1,    11,    12,    -1,    -1,    -1,
       -1,    -1,    -1,   116,    20,   118,   119,   120,   121,    25,
       -1,   124,   125,   126,   127,   128,    -1,   130,   131,   132,
       -1,   134,   135,   136,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,   116,    20,   118,   119,   120,   121,    25,
       -1,   124,   125,   126,   127,   128,    -1,   130,   131,   132,
       -1,   134,   135,   136,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -1466,7 +1812,7 @@ static const short yycheck[] =
       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
       -1,    87,    88,    89,    90,    91,    92,    93,    94,    95,
       96,    97,    98,    99,   100,   101,   102,     6,   104,     8,
       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
       -1,    87,    88,    89,    90,    91,    92,    93,    94,    95,
       96,    97,    98,    99,   100,   101,   102,     6,   104,     8,
-      -1,    10,    11,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    11,    12,    -1,    -1,    -1,    -1,    -1,    -1,
      116,    20,   118,   119,   120,   121,    -1,    -1,   124,   125,
      126,   127,   128,   129,   130,   131,   132,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      116,    20,   118,   119,   120,   121,    -1,    -1,   124,   125,
      126,   127,   128,   129,   130,   131,   132,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -1595,216 +1941,158 @@ static const short yycheck[] =
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   116,
       -1,   118,   119,   120,   121,    -1,    -1,   124,   125,   126,
      127,   128,    -1,   130,   131,   132,     3,    -1,    -1,     6,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   116,
       -1,   118,   119,   120,   121,    -1,    -1,   124,   125,   126,
      127,   128,    -1,   130,   131,   132,     3,    -1,    -1,     6,
-      -1,    -1,    -1,    10,    11,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    11,    12,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    20,    21,    22,    23,    -1,    25,    -1,
       -1,    -1,    -1,    20,    21,    22,    23,    -1,    25,    -1,
-      -1,    -1,     3,    -1,    -1,     6,    -1,    34,    35,    10,
-      11,    -1,    -1,    40,    41,    42,    43,    -1,    -1,    20,
+      -1,    -1,     3,    -1,    -1,     6,    -1,    34,    35,    -1,
+      11,    12,    -1,    40,    41,    42,    43,    -1,    -1,    20,
       21,    22,    -1,    -1,    25,    -1,    -1,    54,    55,    -1,
       -1,    -1,    59,    34,    -1,    36,    -1,    -1,    -1,    40,
       41,    42,    43,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       21,    22,    -1,    -1,    25,    -1,    -1,    54,    55,    -1,
       -1,    -1,    59,    34,    -1,    36,    -1,    -1,    -1,    40,
       41,    42,    43,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,     3,    54,    55,     6,    -1,    -1,    59,    10,
-      11,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    20,
+      -1,    -1,     3,    54,    55,     6,    -1,    -1,    59,    -1,
+      11,    12,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    20,
       21,    22,    -1,    -1,    25,    -1,    -1,    -1,    -1,    -1,
      107,   108,    -1,    34,    -1,    36,    -1,   114,    -1,    40,
       41,    42,    43,     3,    -1,    -1,     6,    -1,    -1,    -1,
       21,    22,    -1,    -1,    25,    -1,    -1,    -1,    -1,    -1,
      107,   108,    -1,    34,    -1,    36,    -1,   114,    -1,    40,
       41,    42,    43,     3,    -1,    -1,     6,    -1,    -1,    -1,
-      10,    11,    -1,    54,    55,    -1,   107,   108,    59,    -1,
+      -1,    11,    12,    54,    55,    -1,   107,   108,    59,    -1,
       20,    21,    22,   114,    -1,    25,    -1,    -1,    -1,    -1,
       20,    21,    22,   114,    -1,    25,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    34,    -1,    36,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    34,    -1,    -1,    -1,    -1,    -1,
       40,    41,    42,    43,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,     3,    54,    55,     6,    -1,    -1,    59,
       40,    41,    42,    43,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,     3,    54,    55,     6,    -1,    -1,    59,
-      10,    11,    -1,    -1,    -1,    -1,   107,   108,    -1,    -1,
-      20,    21,    22,   114,    -1,    25,    -1,    -1,    -1,     3,
-      -1,    -1,     6,    -1,    34,    -1,    10,    11,    -1,    -1,
-      40,    41,    42,    43,    -1,    -1,    20,    -1,    22,    -1,
-      -1,    25,    -1,    -1,    54,    55,    -1,   107,   108,    59,
-      34,    -1,    -1,    -1,   114,    -1,    40,    41,    42,    43,
+      -1,    11,    12,    -1,    -1,    -1,   107,   108,    -1,    -1,
+      20,    -1,    22,   114,    -1,    25,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    34,    -1,    -1,    -1,    -1,    -1,
+      40,    41,    42,    43,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    54,    -1,    -1,   107,   108,    59,
+      -1,    -1,    -1,    -1,   114,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      54,    -1,    -1,    -1,    -1,    59,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,   108,    -1,
-      -1,    -1,    -1,    -1,   114,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   107,   108,    -1,    -1,    -1,    -1,    -1,
-     114
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,   108,    -1,
+      -1,    -1,    -1,    -1,   114
 };
 };
-/* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
 
 
-/* Skeleton output parser for bison,
-
-   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software
-   Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
-   any later version.
+/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
+   symbol of state STATE-NUM.  */
+static const unsigned short yystos[] =
+{
+       0,   138,   140,     0,    57,   115,   139,   141,   145,   146,
+       3,    20,    25,    43,   176,   177,   179,   284,    12,   180,
+     181,   284,   290,     8,    20,    48,    50,    56,    62,    67,
+      68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
+      78,    79,    80,    81,    82,    83,    84,    85,    87,    88,
+      89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
+      99,   100,   101,   102,   104,   109,   113,   116,   117,   118,
+     119,   120,   121,   122,   124,   125,   126,   127,   128,   130,
+     131,   132,   133,   134,   135,   136,   142,   147,   148,   152,
+     155,   156,   157,   158,   159,   162,   164,   173,   224,   225,
+     226,   227,   228,   231,   239,   179,     7,    32,   182,   290,
+       7,    32,    12,    97,   228,   229,   231,   239,    25,   284,
+     285,   288,   228,   171,   165,   167,    62,   153,   228,   228,
+     234,   284,   287,    25,   286,   234,   287,   234,   287,   228,
+     143,   143,   228,   224,   228,     6,    12,    20,   190,   191,
+     241,   242,   243,   286,     7,     7,     3,   177,    32,    37,
+     181,     3,     6,    10,    11,    14,    22,    26,    27,    34,
+      39,    55,    66,   183,   184,   185,   186,   228,   246,   250,
+     251,   253,   265,     6,   230,    31,   288,    12,   190,   241,
+     112,   112,    97,   169,   154,   155,   156,   157,   159,   174,
+     190,    34,    12,   232,   233,   190,   144,   146,   147,   152,
+     241,   242,   243,   242,   243,     7,    32,    33,   192,    11,
+      12,   249,    12,   249,   290,    12,   284,    27,   254,   255,
+     284,    10,    11,    26,   251,   253,    27,   228,    37,    32,
+      32,     6,    12,   247,   248,   249,    53,   254,    27,     6,
+     229,     7,   129,   207,   208,   209,   228,   245,     7,    20,
+      20,   112,   112,   220,   221,   241,     7,    25,   240,   123,
+     149,   150,   151,   245,    34,    34,     7,   192,    37,    37,
+     191,    11,    12,    21,    25,    40,    41,    42,    43,    54,
+      55,    59,   107,   108,   114,   188,   189,   251,   261,   262,
+     263,   264,   265,   266,   269,   270,   271,   272,   274,   277,
+     278,   279,   280,   284,   286,   291,    64,    65,   160,   193,
+     228,    36,   189,    37,   208,    37,   208,   183,    36,    24,
+      32,   256,   284,   254,   284,   254,    27,   111,   247,   185,
+     246,   186,   246,   248,   208,   248,    12,   249,   187,   224,
+     250,   291,    23,    35,   252,     8,    37,    32,     6,    12,
+      20,   242,   244,   247,   172,   166,    20,    20,    32,   175,
+     222,    32,   238,   245,    37,    32,   228,   235,   236,   235,
+     161,    36,   261,   273,   262,   281,    12,   262,    12,    12,
+      12,   252,   273,    14,    33,    39,   266,   269,   265,   267,
+     268,   274,   274,    31,    10,    11,    26,    28,    29,    30,
+      31,    38,   270,   276,    12,   280,    12,     7,     7,    34,
+     190,    36,    37,    37,    37,    27,    27,    36,   252,    27,
+      37,    37,    37,   208,    31,   257,    27,   192,   129,   245,
+     244,     6,    12,   249,     7,    34,   215,   215,   168,   170,
+     221,     7,    34,   223,    25,    35,     7,   151,   237,   241,
+      35,   236,    35,    34,    31,    36,   256,    37,   282,   283,
+     286,   262,   275,   111,   261,    20,   228,   261,    44,    64,
+      65,    66,   203,   204,   229,   261,   252,   262,   264,   264,
+     269,   265,   265,   284,   289,   284,    36,   275,   284,   289,
+     274,   260,   261,   275,   194,     7,    27,    27,    51,    37,
+     258,   259,   289,   163,    37,   208,    35,   178,   179,   216,
+     215,   215,    58,   217,   218,     7,    32,   194,   289,    31,
+     261,    32,    31,    32,    37,   262,    32,    37,    37,    37,
+     229,    32,    37,   269,    36,    37,    37,    60,   105,   195,
+     196,    27,    26,    32,    34,    37,     7,    32,    35,    35,
+     159,   228,   219,    35,   241,   196,   289,   283,    66,   199,
+     228,   262,    51,   261,   204,   197,   198,   286,   228,    49,
+     200,   289,   289,   196,   179,     7,   241,   280,   200,   199,
+     262,    37,     7,    32,    31,    46,   190,   260,   106,   201,
+     201,    12,   201,   198,   199,   261,     7,     7,   260,    61,
+     202,    47,   210,   260,   202,    46,     7,    45,    63,   203,
+      52,   205,    34,   205,    37,   205,   261,     7,     7,     7,
+     260,    48,   206,    12,    25,   211,   212,   285,   286,    35,
+     206,     7,   260,    35,   211,     6,     7,     8,    35,    12,
+      33,    35,     7,     7,    37,    35,   211,   211,     3,    12,
+      37,   213,   214,   278,   285,   286,    25,   285,   214,   214,
+      32,    37,     3,    12,    12,    37,   214,   214,    37,   213,
+      37,   213,    37,    37
+};
 
 
-   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.
+#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
+# define YYSIZE_T __SIZE_TYPE__
+#endif
+#if ! defined (YYSIZE_T) && defined (size_t)
+# define YYSIZE_T size_t
+#endif
+#if ! defined (YYSIZE_T)
+# if defined (__STDC__) || defined (__cplusplus)
+#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
+#  define YYSIZE_T size_t
+# endif
+#endif
+#if ! defined (YYSIZE_T)
+# define YYSIZE_T unsigned int
+#endif
 
 
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
+#define yyerrok                (yyerrstatus = 0)
+#define yyclearin      (yychar = YYEMPTY)
+#define YYEMPTY                (-2)
+#define YYEOF          0
 
 
-/* As a special exception, when this file is copied by Bison into a
-   Bison output file, you may use that output file without restriction.
-   This special exception was added by the Free Software Foundation
-   in version 1.24 of Bison.  */
+#define YYACCEPT       goto yyacceptlab
+#define YYABORT                goto yyabortlab
+#define YYERROR                goto yyerrlab1
 
 
-/* This is the parser code that is written into each bison parser when
-   the %semantic_parser declaration is not specified in the grammar.
-   It was written by Richard Stallman by simplifying the hairy parser
-   used when %semantic_parser is specified.  */
 
 
-/* All symbols defined below should begin with yy or YY, to avoid
-   infringing on user name space.  This should be done even for local
-   variables, as they might otherwise be expanded by user macros.
-   There are some unavoidable exceptions within include files to
-   define necessary library symbols; they are noted "INFRINGES ON
-   USER NAME SPACE" below.  */
+/* 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.  */
 
 
-#if ! defined (yyoverflow) || defined (YYERROR_VERBOSE)
+#define YYFAIL         goto yyerrlab
 
 
-/* The parser invokes alloca or malloc; define the necessary symbols.  */
+#define YYRECOVERING()  (!!yyerrstatus)
 
 
-# if YYSTACK_USE_ALLOCA
-#  define YYSTACK_ALLOC alloca
-# else
-#  ifndef YYSTACK_USE_ALLOCA
-#   if defined (alloca) || defined (_ALLOCA_H)
-#    define YYSTACK_ALLOC alloca
-#   else
-#    ifdef __GNUC__
-#     define YYSTACK_ALLOC __builtin_alloca
-#    endif
-#   endif
-#  endif
-# endif
-
-# ifdef YYSTACK_ALLOC
-   /* Pacify GCC's `empty if-body' warning. */
-#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
-# else
-#  if defined (__STDC__) || defined (__cplusplus)
-#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-#   define YYSIZE_T size_t
-#  endif
-#  define YYSTACK_ALLOC malloc
-#  define YYSTACK_FREE free
-# endif
-#endif /* ! defined (yyoverflow) || defined (YYERROR_VERBOSE) */
-
-
-#if (! defined (yyoverflow) \
-     && (! defined (__cplusplus) \
-        || (YYLTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
-
-/* A type that is properly aligned for any stack member.  */
-union yyalloc
-{
-  short yyss;
-  YYSTYPE yyvs;
-# if YYLSP_NEEDED
-  YYLTYPE yyls;
-# endif
-};
-
-/* The size of the maximum gap between one aligned stack and the next.  */
-# define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1)
-
-/* The size of an array large to enough to hold all stacks, each with
-   N elements.  */
-# if YYLSP_NEEDED
-#  define YYSTACK_BYTES(N) \
-     ((N) * (sizeof (short) + sizeof (YYSTYPE) + sizeof (YYLTYPE))     \
-      + 2 * YYSTACK_GAP_MAX)
-# else
-#  define YYSTACK_BYTES(N) \
-     ((N) * (sizeof (short) + sizeof (YYSTYPE))                                \
-      + YYSTACK_GAP_MAX)
-# endif
-
-/* Copy COUNT objects from FROM to TO.  The source and destination do
-   not overlap.  */
-# ifndef YYCOPY
-#  if 1 < __GNUC__
-#   define YYCOPY(To, From, Count) \
-      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
-#  else
-#   define YYCOPY(To, From, Count)             \
-      do                                       \
-       {                                       \
-         register YYSIZE_T yyi;                \
-         for (yyi = 0; yyi < (Count); yyi++)   \
-           (To)[yyi] = (From)[yyi];            \
-       }                                       \
-      while (0)
-#  endif
-# endif
-
-/* Relocate STACK from its old location to the new one.  The
-   local variables YYSIZE and YYSTACKSIZE give the old and new number of
-   elements in the stack, and YYPTR gives the new location of the
-   stack.  Advance YYPTR to a properly aligned location for the next
-   stack.  */
-# define YYSTACK_RELOCATE(Stack)                                       \
-    do                                                                 \
-      {                                                                        \
-       YYSIZE_T yynewbytes;                                            \
-       YYCOPY (&yyptr->Stack, Stack, yysize);                          \
-       Stack = &yyptr->Stack;                                          \
-       yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAX;   \
-       yyptr += yynewbytes / sizeof (*yyptr);                          \
-      }                                                                        \
-    while (0)
-
-#endif
-
-
-#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
-# define YYSIZE_T __SIZE_TYPE__
-#endif
-#if ! defined (YYSIZE_T) && defined (size_t)
-# define YYSIZE_T size_t
-#endif
-#if ! defined (YYSIZE_T)
-# if defined (__STDC__) || defined (__cplusplus)
-#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
-#  define YYSIZE_T size_t
-# endif
-#endif
-#if ! defined (YYSIZE_T)
-# define YYSIZE_T unsigned int
-#endif
-
-#define yyerrok                (yyerrstatus = 0)
-#define yyclearin      (yychar = YYEMPTY)
-#define YYEMPTY                -2
-#define YYEOF          0
-#define YYACCEPT       goto yyacceptlab
-#define YYABORT        goto yyabortlab
-#define YYERROR                goto yyerrlab1
-/* Like YYERROR except do call yyerror.  This remains here temporarily
-   to ease the transition to the new meaning of YYERROR, for GCC.
-   Once GCC version 2 has supplanted version 1, this can go.  */
-#define YYFAIL         goto yyerrlab
-#define YYRECOVERING()  (!!yyerrstatus)
 #define YYBACKUP(Token, Value)                                 \
 do                                                             \
   if (yychar == YYEMPTY && yylen == 1)                         \
     {                                                          \
       yychar = (Token);                                                \
       yylval = (Value);                                                \
 #define YYBACKUP(Token, Value)                                 \
 do                                                             \
   if (yychar == YYEMPTY && yylen == 1)                         \
     {                                                          \
       yychar = (Token);                                                \
       yylval = (Value);                                                \
-      yychar1 = YYTRANSLATE (yychar);                          \
+      yytoken = YYTRANSLATE (yychar);                          \
       YYPOPSTACK;                                              \
       goto yybackup;                                           \
     }                                                          \
   else                                                         \
     {                                                          \
       YYPOPSTACK;                                              \
       goto yybackup;                                           \
     }                                                          \
   else                                                         \
     {                                                          \
-      yyerror ("syntax error: cannot back up");                        \
+      yyerror ("syntax error: cannot back up");\
       YYERROR;                                                 \
     }                                                          \
 while (0)
       YYERROR;                                                 \
     }                                                          \
 while (0)
@@ -1812,41 +2100,24 @@ while (0)
 #define YYTERROR       1
 #define YYERRCODE      256
 
 #define YYTERROR       1
 #define YYERRCODE      256
 
-
 /* YYLLOC_DEFAULT -- Compute the default location (before the actions
 /* YYLLOC_DEFAULT -- Compute the default location (before the actions
-   are run).
-
-   When YYLLOC_DEFAULT is run, CURRENT is set the location of the
-   first token.  By default, to implement support for ranges, extend
-   its range to the last symbol.  */
+   are run).  */
 
 #ifndef YYLLOC_DEFAULT
 
 #ifndef YYLLOC_DEFAULT
-# define YYLLOC_DEFAULT(Current, Rhs, N)               \
-   Current.last_line   = Rhs[N].last_line;     \
-   Current.last_column = Rhs[N].last_column;
+# define YYLLOC_DEFAULT(Current, Rhs, N)         \
+  Current.first_line   = Rhs[1].first_line;      \
+  Current.first_column = Rhs[1].first_column;    \
+  Current.last_line    = Rhs[N].last_line;       \
+  Current.last_column  = Rhs[N].last_column;
 #endif
 
 #endif
 
-
 /* YYLEX -- calling `yylex' with the right arguments.  */
 
 /* YYLEX -- calling `yylex' with the right arguments.  */
 
-#if YYPURE
-# if YYLSP_NEEDED
-#  ifdef YYLEX_PARAM
-#   define YYLEX               yylex (&yylval, &yylloc, YYLEX_PARAM)
-#  else
-#   define YYLEX               yylex (&yylval, &yylloc)
-#  endif
-# else /* !YYLSP_NEEDED */
-#  ifdef YYLEX_PARAM
-#   define YYLEX               yylex (&yylval, YYLEX_PARAM)
-#  else
-#   define YYLEX               yylex (&yylval)
-#  endif
-# endif /* !YYLSP_NEEDED */
-#else /* !YYPURE */
-# define YYLEX                 yylex ()
-#endif /* !YYPURE */
-
+#ifdef YYLEX_PARAM
+# define YYLEX yylex (YYLEX_PARAM)
+#else
+# define YYLEX yylex ()
+#endif
 
 /* Enable debugging if requested.  */
 #if YYDEBUG
 
 /* Enable debugging if requested.  */
 #if YYDEBUG
@@ -1861,13 +2132,93 @@ do {                                            \
   if (yydebug)                                 \
     YYFPRINTF Args;                            \
 } while (0)
   if (yydebug)                                 \
     YYFPRINTF Args;                            \
 } while (0)
+
+# define YYDSYMPRINT(Args)                     \
+do {                                           \
+  if (yydebug)                                 \
+    yysymprint Args;                           \
+} while (0)
+
+# define YYDSYMPRINTF(Title, Token, Value, Location)           \
+do {                                                           \
+  if (yydebug)                                                 \
+    {                                                          \
+      YYFPRINTF (stderr, "%s ", Title);                                \
+      yysymprint (stderr,                                      \
+                  Token, Value);       \
+      YYFPRINTF (stderr, "\n");                                        \
+    }                                                          \
+} while (0)
+
+/*------------------------------------------------------------------.
+| yy_stack_print -- Print the state stack from its BOTTOM up to its |
+| TOP (cinluded).                                                   |
+`------------------------------------------------------------------*/
+
+#if defined (__STDC__) || defined (__cplusplus)
+static void
+yy_stack_print (short *bottom, short *top)
+#else
+static void
+yy_stack_print (bottom, top)
+    short *bottom;
+    short *top;
+#endif
+{
+  YYFPRINTF (stderr, "Stack now");
+  for (/* Nothing. */; bottom <= top; ++bottom)
+    YYFPRINTF (stderr, " %d", *bottom);
+  YYFPRINTF (stderr, "\n");
+}
+
+# define YY_STACK_PRINT(Bottom, Top)                           \
+do {                                                           \
+  if (yydebug)                                                 \
+    yy_stack_print ((Bottom), (Top));                          \
+} while (0)
+
+
+/*------------------------------------------------.
+| Report that the YYRULE is going to be reduced.  |
+`------------------------------------------------*/
+
+#if defined (__STDC__) || defined (__cplusplus)
+static void
+yy_reduce_print (int yyrule)
+#else
+static void
+yy_reduce_print (yyrule)
+    int yyrule;
+#endif
+{
+  int yyi;
+  unsigned int yylineno = yyrline[yyrule];
+  YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
+             yyrule - 1, yylineno);
+  /* Print the symbols being reduced, and their result.  */
+  for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
+    YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
+  YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
+}
+
+# define YY_REDUCE_PRINT(Rule)         \
+do {                                   \
+  if (yydebug)                         \
+    yy_reduce_print (Rule);            \
+} while (0)
+
 /* Nonzero means print parse trace.  It is left uninitialized so that
    multiple parsers can coexist.  */
 int yydebug;
 #else /* !YYDEBUG */
 # define YYDPRINTF(Args)
 /* Nonzero means print parse trace.  It is left uninitialized so that
    multiple parsers can coexist.  */
 int yydebug;
 #else /* !YYDEBUG */
 # define YYDPRINTF(Args)
+# define YYDSYMPRINT(Args)
+# define YYDSYMPRINTF(Title, Token, Value, Location)
+# define YY_STACK_PRINT(Bottom, Top)
+# define YY_REDUCE_PRINT(Rule)
 #endif /* !YYDEBUG */
 
 #endif /* !YYDEBUG */
 
+
 /* YYINITDEPTH -- initial size of the parser's stacks.  */
 #ifndef        YYINITDEPTH
 # define YYINITDEPTH 200
 /* YYINITDEPTH -- initial size of the parser's stacks.  */
 #ifndef        YYINITDEPTH
 # define YYINITDEPTH 200
@@ -1887,8 +2238,10 @@ int yydebug;
 #ifndef YYMAXDEPTH
 # define YYMAXDEPTH 10000
 #endif
 #ifndef YYMAXDEPTH
 # define YYMAXDEPTH 10000
 #endif
+
 \f
 \f
-#ifdef YYERROR_VERBOSE
+
+#if YYERROR_VERBOSE
 
 # ifndef yystrlen
 #  if defined (__GLIBC__) && defined (_STRING_H)
 
 # ifndef yystrlen
 #  if defined (__GLIBC__) && defined (_STRING_H)
@@ -1938,85 +2291,134 @@ yystpcpy (yydest, yysrc)
 }
 #  endif
 # endif
 }
 #  endif
 # endif
-#endif
+
+#endif /* !YYERROR_VERBOSE */
+
 \f
 
 \f
 
+#if YYDEBUG
+/*--------------------------------.
+| Print this symbol on YYOUTPUT.  |
+`--------------------------------*/
+
+#if defined (__STDC__) || defined (__cplusplus)
+static void
+yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
+#else
+static void
+yysymprint (yyoutput, yytype, yyvaluep)
+    FILE *yyoutput;
+    int yytype;
+    YYSTYPE *yyvaluep;
+#endif
+{
+  /* Pacify ``unused variable'' warnings.  */
+  (void) yyvaluep;
+
+  if (yytype < YYNTOKENS)
+    {
+      YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
+# ifdef YYPRINT
+      YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
+# endif
+    }
+  else
+    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
+
+  switch (yytype)
+    {
+      default:
+        break;
+    }
+  YYFPRINTF (yyoutput, ")");
+}
+
+#endif /* ! YYDEBUG */
+/*-----------------------------------------------.
+| Release the memory associated to this symbol.  |
+`-----------------------------------------------*/
+
+#if defined (__STDC__) || defined (__cplusplus)
+static void
+yydestruct (int yytype, YYSTYPE *yyvaluep)
+#else
+static void
+yydestruct (yytype, yyvaluep)
+    int yytype;
+    YYSTYPE *yyvaluep;
+#endif
+{
+  /* Pacify ``unused variable'' warnings.  */
+  (void) yyvaluep;
+
+  switch (yytype)
+    {
+
+      default:
+        break;
+    }
+}
+\f
 
 
-/* The user can define YYPARSE_PARAM as the name of an argument to be passed
-   into yyparse.  The argument should have type void *.
-   It should actually point to an object.
-   Grammar actions can access the variable by casting it
-   to the proper pointer type.  */
+/* Prevent warnings from -Wmissing-prototypes.  */
 
 #ifdef YYPARSE_PARAM
 # if defined (__STDC__) || defined (__cplusplus)
 
 #ifdef YYPARSE_PARAM
 # if defined (__STDC__) || defined (__cplusplus)
-#  define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
-#  define YYPARSE_PARAM_DECL
+int yyparse (void *YYPARSE_PARAM);
 # else
 # else
-#  define YYPARSE_PARAM_ARG YYPARSE_PARAM
-#  define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
+int yyparse ();
 # endif
 # endif
-#else /* !YYPARSE_PARAM */
-# define YYPARSE_PARAM_ARG
-# define YYPARSE_PARAM_DECL
-#endif /* !YYPARSE_PARAM */
-
-/* Prevent warning if -Wstrict-prototypes.  */
-#ifdef __GNUC__
-# ifdef YYPARSE_PARAM
-int yyparse (void *);
-# else
+#else /* ! YYPARSE_PARAM */
+#if defined (__STDC__) || defined (__cplusplus)
 int yyparse (void);
 int yyparse (void);
-# endif
+#else
+int yyparse ();
 #endif
 #endif
+#endif /* ! YYPARSE_PARAM */
 
 
-/* YY_DECL_VARIABLES -- depending whether we use a pure parser,
-   variables are global, or local to YYPARSE.  */
-
-#define YY_DECL_NON_LSP_VARIABLES                      \
-/* The lookahead symbol.  */                           \
-int yychar;                                            \
-                                                       \
-/* The semantic value of the lookahead symbol. */      \
-YYSTYPE yylval;                                                \
-                                                       \
-/* Number of parse errors so far.  */                  \
-int yynerrs;
 
 
-#if YYLSP_NEEDED
-# define YY_DECL_VARIABLES                     \
-YY_DECL_NON_LSP_VARIABLES                      \
-                                               \
-/* Location data for the lookahead symbol.  */ \
-YYLTYPE yylloc;
-#else
-# define YY_DECL_VARIABLES                     \
-YY_DECL_NON_LSP_VARIABLES
-#endif
+
+/* The lookahead symbol.  */
+int yychar;
+
+/* The semantic value of the lookahead symbol.  */
+YYSTYPE yylval;
+
+/* Number of syntax errors so far.  */
+int yynerrs;
 
 
 
 
-/* If nonreentrant, generate the variables here. */
 
 
-#if !YYPURE
-YY_DECL_VARIABLES
-#endif  /* !YYPURE */
+/*----------.
+| yyparse.  |
+`----------*/
 
 
+#ifdef YYPARSE_PARAM
+# if defined (__STDC__) || defined (__cplusplus)
+int yyparse (void *YYPARSE_PARAM)
+# else
+int yyparse (YYPARSE_PARAM)
+  void *YYPARSE_PARAM;
+# endif
+#else /* ! YYPARSE_PARAM */
+#if defined (__STDC__) || defined (__cplusplus)
 int
 int
-yyparse (YYPARSE_PARAM_ARG)
-     YYPARSE_PARAM_DECL
-{
-  /* If reentrant, generate the variables here. */
-#if YYPURE
-  YY_DECL_VARIABLES
-#endif  /* !YYPURE */
+yyparse (void)
+#else
+int
+yyparse ()
 
 
+#endif
+#endif
+{
+  
   register int yystate;
   register int yyn;
   int yyresult;
   /* Number of tokens to shift before error messages enabled.  */
   int yyerrstatus;
   /* Lookahead token as an internal (translated) token number.  */
   register int yystate;
   register int yyn;
   int yyresult;
   /* Number of tokens to shift before error messages enabled.  */
   int yyerrstatus;
   /* Lookahead token as an internal (translated) token number.  */
-  int yychar1 = 0;
+  int yytoken = 0;
 
   /* Three stacks and their tools:
      `yyss': related to states,
 
   /* Three stacks and their tools:
      `yyss': related to states,
@@ -2026,7 +2428,7 @@ yyparse (YYPARSE_PARAM_ARG)
      Refer to the stacks thru separate pointers, to allow yyoverflow
      to reallocate them elsewhere.  */
 
      Refer to the stacks thru separate pointers, to allow yyoverflow
      to reallocate them elsewhere.  */
 
-  /* The state stack. */
+  /* The state stack.  */
   short        yyssa[YYINITDEPTH];
   short *yyss = yyssa;
   register short *yyssp;
   short        yyssa[YYINITDEPTH];
   short *yyss = yyssa;
   register short *yyssp;
@@ -2036,31 +2438,19 @@ yyparse (YYPARSE_PARAM_ARG)
   YYSTYPE *yyvs = yyvsa;
   register YYSTYPE *yyvsp;
 
   YYSTYPE *yyvs = yyvsa;
   register YYSTYPE *yyvsp;
 
-#if YYLSP_NEEDED
-  /* The location stack.  */
-  YYLTYPE yylsa[YYINITDEPTH];
-  YYLTYPE *yyls = yylsa;
-  YYLTYPE *yylsp;
-#endif
 
 
-#if YYLSP_NEEDED
-# define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--)
-#else
-# define YYPOPSTACK   (yyvsp--, yyssp--)
-#endif
 
 
-  YYSIZE_T yystacksize = YYINITDEPTH;
+#define YYPOPSTACK   (yyvsp--, yyssp--)
 
 
+  YYSIZE_T yystacksize = YYINITDEPTH;
 
   /* The variables used to return semantic value and location from the
      action routines.  */
   YYSTYPE yyval;
 
   /* The variables used to return semantic value and location from the
      action routines.  */
   YYSTYPE yyval;
-#if YYLSP_NEEDED
-  YYLTYPE yyloc;
-#endif
+
 
   /* When reducing, the number of symbols on the RHS of the reduced
 
   /* When reducing, the number of symbols on the RHS of the reduced
-     rule. */
+     rule.  */
   int yylen;
 
   YYDPRINTF ((stderr, "Starting parse\n"));
   int yylen;
 
   YYDPRINTF ((stderr, "Starting parse\n"));
@@ -2077,9 +2467,7 @@ yyparse (YYPARSE_PARAM_ARG)
 
   yyssp = yyss;
   yyvsp = yyvs;
 
   yyssp = yyss;
   yyvsp = yyvs;
-#if YYLSP_NEEDED
-  yylsp = yyls;
-#endif
+
   goto yysetstate;
 
 /*------------------------------------------------------------.
   goto yysetstate;
 
 /*------------------------------------------------------------.
@@ -2094,7 +2482,7 @@ yyparse (YYPARSE_PARAM_ARG)
  yysetstate:
   *yyssp = yystate;
 
  yysetstate:
   *yyssp = yystate;
 
-  if (yyssp >= yyss + yystacksize - 1)
+  if (yyss + yystacksize - 1 <= yyssp)
     {
       /* Get the current used size of the three stacks, in elements.  */
       YYSIZE_T yysize = yyssp - yyss + 1;
     {
       /* Get the current used size of the three stacks, in elements.  */
       YYSIZE_T yysize = yyssp - yyss + 1;
@@ -2107,24 +2495,17 @@ yyparse (YYPARSE_PARAM_ARG)
        YYSTYPE *yyvs1 = yyvs;
        short *yyss1 = yyss;
 
        YYSTYPE *yyvs1 = yyvs;
        short *yyss1 = yyss;
 
+
        /* Each stack pointer address is followed by the size of the
        /* Each stack pointer address is followed by the size of the
-          data in use in that stack, in bytes.  */
-# if YYLSP_NEEDED
-       YYLTYPE *yyls1 = yyls;
-       /* This used to be a conditional around just the two extra args,
-          but that might be undefined if yyoverflow is a macro.  */
-       yyoverflow ("parser stack overflow",
-                   &yyss1, yysize * sizeof (*yyssp),
-                   &yyvs1, yysize * sizeof (*yyvsp),
-                   &yyls1, yysize * sizeof (*yylsp),
-                   &yystacksize);
-       yyls = yyls1;
-# else
+          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 ("parser stack overflow",
                    &yyss1, yysize * sizeof (*yyssp),
                    &yyvs1, yysize * sizeof (*yyvsp),
        yyoverflow ("parser stack overflow",
                    &yyss1, yysize * sizeof (*yyssp),
                    &yyvs1, yysize * sizeof (*yyvsp),
+
                    &yystacksize);
                    &yystacksize);
-# endif
+
        yyss = yyss1;
        yyvs = yyvs1;
       }
        yyss = yyss1;
        yyvs = yyvs1;
       }
@@ -2133,10 +2514,10 @@ yyparse (YYPARSE_PARAM_ARG)
       goto yyoverflowlab;
 # else
       /* Extend the stack our own way.  */
       goto yyoverflowlab;
 # else
       /* Extend the stack our own way.  */
-      if (yystacksize >= YYMAXDEPTH)
+      if (YYMAXDEPTH <= yystacksize)
        goto yyoverflowlab;
       yystacksize *= 2;
        goto yyoverflowlab;
       yystacksize *= 2;
-      if (yystacksize > YYMAXDEPTH)
+      if (YYMAXDEPTH < yystacksize)
        yystacksize = YYMAXDEPTH;
 
       {
        yystacksize = YYMAXDEPTH;
 
       {
@@ -2147,10 +2528,8 @@ yyparse (YYPARSE_PARAM_ARG)
          goto yyoverflowlab;
        YYSTACK_RELOCATE (yyss);
        YYSTACK_RELOCATE (yyvs);
          goto yyoverflowlab;
        YYSTACK_RELOCATE (yyss);
        YYSTACK_RELOCATE (yyvs);
-# if YYLSP_NEEDED
-       YYSTACK_RELOCATE (yyls);
-# endif
-# undef YYSTACK_RELOCATE
+
+#  undef YYSTACK_RELOCATE
        if (yyss1 != yyssa)
          YYSTACK_FREE (yyss1);
       }
        if (yyss1 != yyssa)
          YYSTACK_FREE (yyss1);
       }
@@ -2159,14 +2538,12 @@ yyparse (YYPARSE_PARAM_ARG)
 
       yyssp = yyss + yysize - 1;
       yyvsp = yyvs + yysize - 1;
 
       yyssp = yyss + yysize - 1;
       yyvsp = yyvs + yysize - 1;
-#if YYLSP_NEEDED
-      yylsp = yyls + yysize - 1;
-#endif
+
 
       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
                  (unsigned long int) yystacksize));
 
 
       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
                  (unsigned long int) yystacksize));
 
-      if (yyssp >= yyss + yystacksize - 1)
+      if (yyss + yystacksize - 1 <= yyssp)
        YYABORT;
     }
 
        YYABORT;
     }
 
@@ -2174,7 +2551,6 @@ yyparse (YYPARSE_PARAM_ARG)
 
   goto yybackup;
 
 
   goto yybackup;
 
-
 /*-----------.
 | yybackup.  |
 `-----------*/
 /*-----------.
 | yybackup.  |
 `-----------*/
@@ -2187,88 +2563,55 @@ yybackup:
   /* First try to decide what to do without reference to lookahead token.  */
 
   yyn = yypact[yystate];
   /* First try to decide what to do without reference to lookahead token.  */
 
   yyn = yypact[yystate];
-  if (yyn == YYFLAG)
+  if (yyn == YYPACT_NINF)
     goto yydefault;
 
   /* Not known => get a lookahead token if don't already have one.  */
 
     goto yydefault;
 
   /* Not known => get a lookahead token if don't already have one.  */
 
-  /* yychar is either YYEMPTY or YYEOF
-     or a valid token in external form.  */
-
+  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
   if (yychar == YYEMPTY)
     {
       YYDPRINTF ((stderr, "Reading a token: "));
       yychar = YYLEX;
     }
 
   if (yychar == YYEMPTY)
     {
       YYDPRINTF ((stderr, "Reading a token: "));
       yychar = YYLEX;
     }
 
-  /* Convert token to internal form (in yychar1) for indexing tables with */
-
-  if (yychar <= 0)             /* This means end of input. */
+  if (yychar <= YYEOF)
     {
     {
-      yychar1 = 0;
-      yychar = YYEOF;          /* Don't call YYLEX any more */
-
+      yychar = yytoken = YYEOF;
       YYDPRINTF ((stderr, "Now at end of input.\n"));
     }
   else
     {
       YYDPRINTF ((stderr, "Now at end of input.\n"));
     }
   else
     {
-      yychar1 = YYTRANSLATE (yychar);
-
-#if YYDEBUG
-     /* We have to keep this `#if YYDEBUG', since we use variables
-       which are defined only if `YYDEBUG' is set.  */
-      if (yydebug)
-       {
-         YYFPRINTF (stderr, "Next token is %d (%s",
-                    yychar, yytname[yychar1]);
-         /* Give the individual parser a way to print the precise
-            meaning of a token, for further debugging info.  */
-# ifdef YYPRINT
-         YYPRINT (stderr, yychar, yylval);
-# endif
-         YYFPRINTF (stderr, ")\n");
-       }
-#endif
+      yytoken = YYTRANSLATE (yychar);
+      YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);
     }
 
     }
 
-  yyn += yychar1;
-  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
+  /* If the proper action on seeing token YYTOKEN is to reduce or to
+     detect an error, take that action.  */
+  yyn += yytoken;
+  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
     goto yydefault;
     goto yydefault;
-
   yyn = yytable[yyn];
   yyn = yytable[yyn];
-
-  /* yyn is what to do for this token type in this state.
-     Negative => reduce, -yyn is rule number.
-     Positive => shift, yyn is new state.
-       New state is final state => don't bother to shift,
-       just return success.
-     0, or most negative number => error.  */
-
-  if (yyn < 0)
+  if (yyn <= 0)
     {
     {
-      if (yyn == YYFLAG)
+      if (yyn == 0 || yyn == YYTABLE_NINF)
        goto yyerrlab;
       yyn = -yyn;
       goto yyreduce;
     }
        goto yyerrlab;
       yyn = -yyn;
       goto yyreduce;
     }
-  else if (yyn == 0)
-    goto yyerrlab;
 
   if (yyn == YYFINAL)
     YYACCEPT;
 
   /* Shift the lookahead token.  */
 
   if (yyn == YYFINAL)
     YYACCEPT;
 
   /* Shift the lookahead token.  */
-  YYDPRINTF ((stderr, "Shifting token %d (%s), ",
-             yychar, yytname[yychar1]));
+  YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));
 
   /* Discard the token being shifted unless it is eof.  */
   if (yychar != YYEOF)
     yychar = YYEMPTY;
 
   *++yyvsp = yylval;
 
   /* Discard the token being shifted unless it is eof.  */
   if (yychar != YYEOF)
     yychar = YYEMPTY;
 
   *++yyvsp = yylval;
-#if YYLSP_NEEDED
-  *++yylsp = yylloc;
-#endif
+
 
   /* Count tokens shifted since error; after three, turn off error
      status.  */
 
   /* Count tokens shifted since error; after three, turn off error
      status.  */
@@ -2299,1210 +2642,1907 @@ yyreduce:
   /* If YYLEN is nonzero, implement the default value of the action:
      `$$ = $1'.
 
   /* If YYLEN is nonzero, implement the default value of the action:
      `$$ = $1'.
 
-     Otherwise, the following line sets YYVAL to the semantic value of
-     the lookahead token.  This behavior is undocumented and Bison
+     Otherwise, the following line sets YYVAL to garbage.
+     This behavior is undocumented and Bison
      users should not rely upon it.  Assigning to YYVAL
      unconditionally makes the parser a bit smaller, and it avoids a
      GCC warning that YYVAL may be used uninitialized.  */
   yyval = yyvsp[1-yylen];
 
      users should not rely upon it.  Assigning to YYVAL
      unconditionally makes the parser a bit smaller, and it avoids a
      GCC warning that YYVAL may be used uninitialized.  */
   yyval = yyvsp[1-yylen];
 
-#if YYLSP_NEEDED
-  /* Similarly for the default location.  Let the user run additional
-     commands if for instance locations are ranges.  */
-  yyloc = yylsp[1-yylen];
-  YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
-#endif
 
 
-#if YYDEBUG
-  /* We have to keep this `#if YYDEBUG', since we use variables which
-     are defined only if `YYDEBUG' is set.  */
-  if (yydebug)
+  YY_REDUCE_PRINT (yyn);
+  switch (yyn)
     {
     {
-      int yyi;
+        case 2:
 
 
-      YYFPRINTF (stderr, "Reducing via rule %d (line %d), ",
-                yyn, yyrline[yyn]);
+    { lhExternals (yyvsp[0].interfacelist); ;}
+    break;
 
 
-      /* Print the symbols being reduced, and their result.  */
-      for (yyi = yyprhs[yyn]; yyrhs[yyi] > 0; yyi++)
-       YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]);
-      YYFPRINTF (stderr, " -> %s\n", yytname[yyr1[yyn]]);
-    }
-#endif
+  case 3:
+
+    { interfaceNodeList_free (yyvsp[-2].interfacelist); interfaceNodeList_free (yyvsp[0].interfacelist); ;}
+    break;
+
+  case 4:
+
+    { yyval.interfacelist = interfaceNodeList_new (); ;}
+    break;
+
+  case 5:
+
+    { yyval.interfacelist = interfaceNodeList_addh (yyvsp[-1].interfacelist, yyvsp[0].iface);;}
+    break;
+
+  case 8:
+
+    { yyval.interfacelist = interfaceNodeList_new (); ;}
+    break;
+
+  case 9:
+
+    { yyval.interfacelist = consInterfaceNode (yyvsp[-1].iface, yyvsp[0].interfacelist);;}
+    break;
+
+  case 10:
 
 
-  switch (yyn) {
-
-case 1:
-{ lhExternals (yyvsp[0].interfacelist); ;
-    break;}
-case 2:
-{ interfaceNodeList_free (yyvsp[-2].interfacelist); interfaceNodeList_free (yyvsp[0].interfacelist); ;
-    break;}
-case 3:
-{ yyval.interfacelist = interfaceNodeList_new (); ;
-    break;}
-case 4:
-{ yyval.interfacelist = interfaceNodeList_addh (yyvsp[-1].interfacelist, yyvsp[0].iface);;
-    break;}
-case 7:
-{ yyval.interfacelist = interfaceNodeList_new (); ;
-    break;}
-case 8:
-{ yyval.interfacelist = consInterfaceNode (yyvsp[-1].iface, yyvsp[0].interfacelist);;
-    break;}
-case 9:
-{ yyval.interfacelist = consInterfaceNode (yyvsp[-1].iface, yyvsp[0].interfacelist);;
-    break;}
-case 10:
-{ yyval.interfacelist = interfaceNodeList_new (); ;
-    break;}
-case 11:
-{ yyval.interfacelist = interfaceNodeList_addh (yyvsp[-1].interfacelist, yyvsp[0].iface);;
-    break;}
-case 15:
-{ yyval.iface = makeInterfaceNodeImports (yyvsp[-1].importlist);
+    { yyval.interfacelist = consInterfaceNode (yyvsp[-1].iface, yyvsp[0].interfacelist);;}
+    break;
+
+  case 11:
+
+    { yyval.interfacelist = interfaceNodeList_new (); ;}
+    break;
+
+  case 12:
+
+    { yyval.interfacelist = interfaceNodeList_addh (yyvsp[-1].interfacelist, yyvsp[0].iface);;}
+    break;
+
+  case 16:
+
+    { yyval.iface = makeInterfaceNodeImports (yyvsp[-1].importlist);
      /* assume subspecs are already processed, symbol table info in external file */
      /* assume subspecs are already processed, symbol table info in external file */
-   ;
-    break;}
-case 16:
-{ yyval.iface = makeInterfaceNodeUses (yyvsp[-1].traitreflist); readlsignatures (yyval.iface);;
-    break;}
-case 17:
-{ declareConstant (yyvsp[0].constdeclaration); yyval.iface = interfaceNode_makeConst (yyvsp[0].constdeclaration); ;
-    break;}
-case 18:
-{ declareVar (yyvsp[0].vardeclaration); yyval.iface = interfaceNode_makeVar (yyvsp[0].vardeclaration); ;
-    break;}
-case 19:
-{ declareType (yyvsp[0].type); yyval.iface = interfaceNode_makeType (yyvsp[0].type); ;
-    break;}
-case 20:
-{ declareFcn (yyvsp[0].fcn, typeId_invalid); yyval.iface = interfaceNode_makeFcn (yyvsp[0].fcn); ;
-    break;}
-case 21:
-{ yyval.iface = interfaceNode_makeClaim (yyvsp[0].claim); ;
-    break;}
-case 22:
-{ declareIter (yyvsp[0].iter); yyval.iface = interfaceNode_makeIter (yyvsp[0].iter); ;
-    break;}
-case 23:
-{ yyval.iter = makeIterNode (yyvsp[-4].ltok, yyvsp[-2].paramlist); ;
-    break;}
-case 24:
-{ yyval.paramlist = paramNodeList_new (); ;
-    break;}
-case 25:
-{ yyval.paramlist = yyvsp[0].paramlist; ;
-    break;}
-case 26:
-{ yyval.paramlist = paramNodeList_add (paramNodeList_new (),  yyvsp[0].param); ;
-    break;}
-case 27:
-{ yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist,yyvsp[0].param); ;
-    break;}
-case 28:
-{ yyval.param = markYieldParamNode (yyvsp[0].param); ;
-    break;}
-case 29:
-{ yyval.param = yyvsp[0].param; ;
-    break;}
-case 30:
-{ symtable_export (g_symtab, FALSE); ;
-    break;}
-case 31:
-{ yyval.iface = yyvsp[0].iface; symtable_export (g_symtab, TRUE); ;
-    break;}
-case 32:
-{ declarePrivConstant (yyvsp[0].constdeclaration); yyval.iface =  interfaceNode_makePrivConst (yyvsp[0].constdeclaration); ;
-    break;}
-case 33:
-{ declarePrivVar (yyvsp[0].vardeclaration); yyval.iface = interfaceNode_makePrivVar (yyvsp[0].vardeclaration); ;
-    break;}
-case 34:
-{ declarePrivType (yyvsp[0].type); yyval.iface = interfaceNode_makePrivType (yyvsp[0].type); ;
-    break;}
-case 35:
-{ declarePrivFcn (yyvsp[0].fcn, typeId_invalid); yyval.iface = interfaceNode_makePrivFcn (yyvsp[0].fcn); ;
-    break;}
-case 36:
-{ yyval.constdeclaration = makeConstDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls); ;
-    break;}
-case 37:
-{ yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_NONE; ;
-    break;}
-case 38:
-{ yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_CONST; ;
-    break;}
-case 39:
-{ yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_VOLATILE; ;
-    break;}
-case 40:
-{ yyval.type = makeAbstractTypeNode (yyvsp[0].abstract); ;
-    break;}
-case 41:
-{ yyval.type = makeExposedTypeNode (yyvsp[0].exposed); ;
-    break;}
-case 42:
-{ yyval.typequal = qual_createPrintfLike (); ;
-    break;}
-case 43:
-{ yyval.typequal = qual_createScanfLike (); ;
-    break;}
-case 44:
-{ yyval.typequal = qual_createMessageLike (); ;
-    break;}
-case 45:
-{ enteringFcnScope (yyvsp[-2].lcltypespec, yyvsp[-1].declare, yyvsp[0].globals); ;
-    break;}
-case 46:
-{ yyval.fcn = makeFcnNode (qual_createUnknown (),  yyvsp[-12].lcltypespec, yyvsp[-11].declare, yyvsp[-10].globals, yyvsp[-7].vardeclarationlist, yyvsp[-6].letdecls, 
-                      yyvsp[-5].lclpredicate, yyvsp[-4].lclpredicate, yyvsp[-3].modify, yyvsp[-2].lclpredicate, yyvsp[-1].lclpredicate); 
-     /* type, declarator, glovbls, privateinits,
-       lets, checks, requires, modifies, ensures, claims */
-     symtable_exitScope (g_symtab);
-   ;
-    break;}
-case 47:
-{ enteringFcnScope (yyvsp[-2].lcltypespec, yyvsp[-1].declare, yyvsp[0].globals); ;
-    break;}
-case 48:
-{ yyval.fcn = makeFcnNode (yyvsp[-13].typequal, yyvsp[-12].lcltypespec, yyvsp[-11].declare, yyvsp[-10].globals, yyvsp[-7].vardeclarationlist, 
-                      yyvsp[-6].letdecls, yyvsp[-5].lclpredicate, yyvsp[-4].lclpredicate, yyvsp[-3].modify, yyvsp[-2].lclpredicate, yyvsp[-1].lclpredicate); 
-     /* type, declarator, glovbls, privateinits,
-       lets, checks, requires, modifies, ensures, claims */
-     symtable_exitScope (g_symtab);
-   ;
-    break;}
-case 49:
-{ enteringClaimScope (yyvsp[-2].paramlist, yyvsp[0].globals); ;
-    break;}
-case 50:
-{      yyval.claim = makeClaimNode (yyvsp[-11].ltok, yyvsp[-9].paramlist, yyvsp[-7].globals, yyvsp[-4].letdecls, yyvsp[-3].lclpredicate, yyvsp[-2].program, yyvsp[-1].lclpredicate); 
-     symtable_exitScope (g_symtab); ;
-    break;}
-case 51:
-{ yyval.claim = (claimNode) 0; ;
-    break;}
-case 52:
-{g_inTypeDef = TRUE; ;
-    break;}
-case 53:
-{g_inTypeDef = FALSE; ;
-    break;}
-case 54:
-{ yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, TRUE, FALSE, yyvsp[0].abstbody); ;
-    break;}
-case 55:
-{g_inTypeDef = TRUE; ;
-    break;}
-case 56:
-{g_inTypeDef = FALSE; ;
-    break;}
-case 57:
-{ yyval.abstract = makeAbstractNode (yyvsp[-6].ltok, yyvsp[-2].ltok, TRUE, TRUE, yyvsp[0].abstbody); ;
-    break;}
-case 58:
-{g_inTypeDef = TRUE; ;
-    break;}
-case 59:
-{g_inTypeDef = FALSE; ;
-    break;}
-case 60:
-{ yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, TRUE, TRUE, yyvsp[0].abstbody); ;
-    break;}
-case 61:
-{g_inTypeDef = TRUE; ;
-    break;}
-case 62:
-{g_inTypeDef = FALSE; ;
-    break;}
-case 63:
-{ yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, FALSE, FALSE, yyvsp[0].abstbody); ;
-    break;}
-case 64:
-{ g_inTypeDef = TRUE; setExposedType (yyvsp[0].lcltypespec); ;
-    break;}
-case 65:
-{ g_inTypeDef = FALSE; ;
-    break;}
-case 66:
-{ yyval.exposed = makeExposedNode (yyvsp[-5].ltok, yyvsp[-4].lcltypespec, yyvsp[-2].declaratorinvs); /* to support mutually recursive types */ ;
-    break;}
-case 67:
-{ yyval.exposed = makeExposedNode (yyvsp[0].ltok, makeLclTypeSpecNodeSU (yyvsp[-1].structorunion), declaratorInvNodeList_new ()); ;
-    break;}
-case 68:
-{ yyval.exposed = makeExposedNode (yyvsp[0].ltok, makeLclTypeSpecNodeEnum (yyvsp[-1].enumspec), declaratorInvNodeList_new ()); ;
-    break;}
-case 69:
-{ yyval.importlist = importNodeList_add (importNodeList_new (),  yyvsp[0].import); ;
-    break;}
-case 70:
-{ yyval.importlist = importNodeList_add (yyvsp[-2].importlist, yyvsp[0].import); ;
-    break;}
-case 71:
-{ yyval.import = importNode_makePlain (yyvsp[0].ltok); ;
-    break;}
-case 72:
-{ checkBrackets (yyvsp[-2].ltok, yyvsp[0].ltok); yyval.import = importNode_makeBracketed (yyvsp[-1].ltok); ;
-    break;}
-case 73:
-{ yyval.import = importNode_makeQuoted (yyvsp[0].ltok); ;
-    break;}
-case 74:
-{ yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
-    break;}
-case 75:
-{ yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
-    break;}
-case 77:
-{ yyval.traitreflist = traitRefNodeList_add (traitRefNodeList_new (),  yyvsp[0].traitref); ;
-    break;}
-case 78:
-{ yyval.traitreflist = traitRefNodeList_add (yyvsp[-2].traitreflist, yyvsp[0].traitref); ;
-    break;}
-case 79:
-{ yyval.traitref = makeTraitRefNode (ltokenList_singleton (yyvsp[0].ltok), (renamingNode)0); ;
-    break;}
-case 80:
-{ yyval.traitref = makeTraitRefNode (ltokenList_singleton (yyvsp[-3].ltok), yyvsp[-1].renaming); ;
-    break;}
-case 81:
-{ yyval.traitref = makeTraitRefNode (yyvsp[-1].ltokenList, (renamingNode)0); ;
-    break;}
-case 82:
-{ yyval.traitref = makeTraitRefNode (yyvsp[-4].ltokenList, yyvsp[-1].renaming); ;
-    break;}
-case 83:
-{ yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
-    break;}
-case 84:
-{ yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
-    break;}
-case 85:
-{ yyval.renaming = makeRenamingNode (typeNameNodeList_new (),  yyvsp[0].replacelist); ;
-    break;}
-case 86:
-{ yyval.renaming = makeRenamingNode (yyvsp[0].namelist, replaceNodeList_new ()); ;
-    break;}
-case 87:
-{ yyval.renaming = makeRenamingNode (yyvsp[-2].namelist, yyvsp[0].replacelist); ;
-    break;}
-case 88:
-{ yyval.namelist = typeNameNodeList_add (typeNameNodeList_new (),  yyvsp[0].typname); ;
-    break;}
-case 89:
-{ yyval.namelist = typeNameNodeList_add (yyvsp[-2].namelist, yyvsp[0].typname); ;
-    break;}
-case 90:
-{ yyval.replacelist = replaceNodeList_add (replaceNodeList_new (),  yyvsp[0].replace); ;
-    break;}
-case 91:
-{ yyval.replacelist = replaceNodeList_add (yyvsp[-2].replacelist, yyvsp[0].replace); ;
-    break;}
-case 92:
-{ yyval.replace = makeReplaceNode (yyvsp[-1].ltok, yyvsp[-2].typname, TRUE, yyvsp[0].ltok, NULL, NULL); ;
-    break;}
-case 93:
-{ yyval.replace = makeReplaceNameNode (yyvsp[-1].ltok, yyvsp[-2].typname, yyvsp[0].name); ;
-    break;}
-case 94:
-{ yyval.replace = makeReplaceNode (yyvsp[-2].ltok, yyvsp[-3].typname, FALSE, ltoken_undefined,
-                                                        yyvsp[-1].name, yyvsp[0].signature); ;
-    break;}
-case 95:
-{ yyval.name = makeNameNodeId (yyvsp[0].ltok); ;
-    break;}
-case 96:
-{ yyval.name = makeNameNodeForm (yyvsp[0].opform); ;
-    break;}
-case 99:
-{ yyval.initdecls = initDeclNodeList_add (initDeclNodeList_new (),  yyvsp[0].initdecl); ;
-    break;}
-case 100:
-{ yyval.initdecls = initDeclNodeList_add (yyvsp[-2].initdecls, yyvsp[0].initdecl); ;
-    break;}
-case 101:
-{ yyval.initdecl = makeInitDeclNode (yyvsp[0].declare, (termNode)0); ;
-    break;}
-case 102:
-{ yyval.initdecl = makeInitDeclNode (yyvsp[-2].declare, yyvsp[0].term); ;
-    break;}
-case 103:
-{ yyval.globals = varDeclarationNodeList_new (); ;
-    break;}
-case 104:
-{ varDeclarationNodeList_addh (yyvsp[-1].globals, yyvsp[0].vardeclaration); yyval.globals = yyvsp[-1].globals; ;
-    break;}
-case 105:
-{ yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, TRUE, FALSE); ;
-    break;}
-case 106:
-{ yyval.vardeclaration = makeInternalStateNode (); ;
-    break;}
-case 107:
-{ yyval.vardeclaration = makeFileSystemNode (); ;
-    break;}
-case 108:
-{ yyval.vardeclarationlist = varDeclarationNodeList_new (); ;
-    break;}
-case 109:
-{ varDeclarationNodeList_addh (yyvsp[-1].vardeclarationlist, yyvsp[0].vardeclaration); yyval.vardeclarationlist = yyvsp[-1].vardeclarationlist; ;
-    break;}
-case 110:
-{ yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, TRUE); ;
-    break;}
-case 111:
-{ yyval.letdecls = letDeclNodeList_new (); ;
-    break;}
-case 112:
-{ yyval.letdecls = yyvsp[-1].letdecls; ;
-    break;}
-case 113:
-{ yyval.letdecls = letDeclNodeList_add (letDeclNodeList_new (),  yyvsp[0].letdecl); ;
-    break;}
-case 114:
-{ yyval.letdecls = letDeclNodeList_add (yyvsp[-2].letdecls, yyvsp[0].letdecl); ;
-    break;}
-case 115:
-{ yyval.letdecl = makeLetDeclNode (yyvsp[-4].ltok, yyvsp[-2].lcltypespec, yyvsp[0].term); ;
-    break;}
-case 116:
-{ yyval.letdecl = makeLetDeclNode (yyvsp[-2].ltok, (lclTypeSpecNode)0, yyvsp[0].term); ;
-    break;}
-case 118:
-{ yyval.lclpredicate = (lclPredicateNode)0; ;
-    break;}
-case 119:
-{ checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeChecksNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); ;
-    break;}
-case 120:
-{ yyval.lclpredicate = (lclPredicateNode)0; ;
-    break;}
-case 121:
-{ checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeRequiresNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);;
-    break;}
-case 122:
-{ yyval.modify = (modifyNode)0; ;
-    break;}
-case 123:
-{ yyval.modify = makeModifyNodeSpecial (yyvsp[-2].ltok, TRUE); ;
-    break;}
-case 124:
-{ yyval.modify = makeModifyNodeSpecial (yyvsp[-2].ltok, FALSE); ;
-    break;}
-case 125:
-{ yyval.modify = makeModifyNodeRef (yyvsp[-2].ltok, yyvsp[-1].storereflist); ;
-    break;}
-case 126:
-{ yyval.storereflist = storeRefNodeList_add (storeRefNodeList_new (),  yyvsp[0].storeref); ;
-    break;}
-case 127:
-{ yyval.storereflist = storeRefNodeList_add (yyvsp[-2].storereflist, yyvsp[0].storeref); ;
-    break;}
-case 128:
-{ yyval.storeref = makeStoreRefNodeTerm (yyvsp[0].term); ;
-    break;}
-case 129:
-{ yyval.storeref = makeStoreRefNodeType (yyvsp[0].lcltypespec, FALSE); ;
-    break;}
-case 130:
-{ yyval.storeref = makeStoreRefNodeType (yyvsp[0].lcltypespec, TRUE); ;
-    break;}
-case 131:
-{ yyval.storeref = makeStoreRefNodeInternal (); ;
-    break;}
-case 132:
-{ yyval.storeref = makeStoreRefNodeSystem (); ;
-    break;}
-case 133:
-{ yyval.lclpredicate = (lclPredicateNode)0; ;
-    break;}
-case 134:
-{ checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeEnsuresNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);;
-    break;}
-case 135:
-{ yyval.lclpredicate = (lclPredicateNode)0; ;
-    break;}
-case 136:
-{ checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeIntraClaimNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);;
-    break;}
-case 137:
-{ yyval.paramlist = paramNodeList_new (); ;
-    break;}
-case 138:
-{ yyval.paramlist = yyvsp[0].paramlist; ;
-    break;}
-case 140:
-{ yyval.paramlist = paramNodeList_add (paramNodeList_new (),  paramNode_elipsis ()); ;
-    break;}
-case 141:
-{ yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist, paramNode_elipsis ()); ;
-    break;}
-case 142:
-{ yyval.paramlist = paramNodeList_single (yyvsp[0].param); ;
-    break;}
-case 143:
-{ yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist, yyvsp[0].param); ;
-    break;}
-case 144:
-{ yyval.program = (programNode)0; ;
-    break;}
-case 145:
-{ yyval.program = yyvsp[-1].program; ;
-    break;}
-case 146:
-{ yyval.program = yyvsp[-2].program; ;
-    break;}
-case 147:
-{ yyval.program = makeProgramNode (yyvsp[0].stmt); ;
-    break;}
-case 148:
-{ yyval.program = yyvsp[-1].program; yyval.program->wrapped = yyval.program->wrapped + 1; ;
-    break;}
-case 149:
-{ programNodeList x = programNodeList_new ();
-     programNodeList_addh (x, yyvsp[-1].program);
-     yyval.program = makeProgramNodeAction (x, ACT_ITER); 
-   ;
-    break;}
-case 150:
-{ programNodeList x = programNodeList_new ();
+   ;}
+    break;
+
+  case 17:
+
+    { yyval.iface = makeInterfaceNodeUses (yyvsp[-1].traitreflist); readlsignatures (yyval.iface);;}
+    break;
+
+  case 18:
+
+    { declareConstant (yyvsp[0].constdeclaration); yyval.iface = interfaceNode_makeConst (yyvsp[0].constdeclaration); ;}
+    break;
+
+  case 19:
+
+    { declareVar (yyvsp[0].vardeclaration); yyval.iface = interfaceNode_makeVar (yyvsp[0].vardeclaration); ;}
+    break;
+
+  case 20:
+
+    { declareType (yyvsp[0].type); yyval.iface = interfaceNode_makeType (yyvsp[0].type); ;}
+    break;
+
+  case 21:
+
+    { declareFcn (yyvsp[0].fcn, typeId_invalid); yyval.iface = interfaceNode_makeFcn (yyvsp[0].fcn); ;}
+    break;
+
+  case 22:
+
+    { yyval.iface = interfaceNode_makeClaim (yyvsp[0].claim); ;}
+    break;
+
+  case 23:
+
+    { declareIter (yyvsp[0].iter); yyval.iface = interfaceNode_makeIter (yyvsp[0].iter); ;}
+    break;
+
+  case 24:
+
+    { yyval.iter = makeIterNode (yyvsp[-4].ltok, yyvsp[-2].paramlist); ;}
+    break;
+
+  case 25:
+
+    { yyval.paramlist = paramNodeList_new (); ;}
+    break;
+
+  case 26:
+
+    { yyval.paramlist = yyvsp[0].paramlist; ;}
+    break;
+
+  case 27:
+
+    { yyval.paramlist = paramNodeList_add (paramNodeList_new (),  yyvsp[0].param); ;}
+    break;
+
+  case 28:
+
+    { yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist,yyvsp[0].param); ;}
+    break;
+
+  case 29:
+
+    { yyval.param = markYieldParamNode (yyvsp[0].param); ;}
+    break;
+
+  case 30:
+
+    { yyval.param = yyvsp[0].param; ;}
+    break;
+
+  case 31:
+
+    { symtable_export (g_symtab, FALSE); ;}
+    break;
+
+  case 32:
+
+    { yyval.iface = yyvsp[0].iface; symtable_export (g_symtab, TRUE); ;}
+    break;
+
+  case 33:
+
+    { declarePrivConstant (yyvsp[0].constdeclaration); yyval.iface =  interfaceNode_makePrivConst (yyvsp[0].constdeclaration); ;}
+    break;
+
+  case 34:
+
+    { declarePrivVar (yyvsp[0].vardeclaration); yyval.iface = interfaceNode_makePrivVar (yyvsp[0].vardeclaration); ;}
+    break;
+
+  case 35:
+
+    { declarePrivType (yyvsp[0].type); yyval.iface = interfaceNode_makePrivType (yyvsp[0].type); ;}
+    break;
+
+  case 36:
+
+    { declarePrivFcn (yyvsp[0].fcn, typeId_invalid); yyval.iface = interfaceNode_makePrivFcn (yyvsp[0].fcn); ;}
+    break;
+
+  case 37:
+
+    { yyval.constdeclaration = makeConstDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls); ;}
+    break;
+
+  case 38:
+
+    { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_NONE; ;}
+    break;
+
+  case 39:
+
+    { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_CONST; ;}
+    break;
+
+  case 40:
+
+    { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_VOLATILE; ;}
+    break;
+
+  case 41:
+
+    { yyval.type = makeAbstractTypeNode (yyvsp[0].abstract); ;}
+    break;
+
+  case 42:
+
+    { yyval.type = makeExposedTypeNode (yyvsp[0].exposed); ;}
+    break;
+
+  case 43:
+
+    { yyval.typequal = qual_createPrintfLike (); ;}
+    break;
+
+  case 44:
+
+    { yyval.typequal = qual_createScanfLike (); ;}
+    break;
+
+  case 45:
+
+    { yyval.typequal = qual_createMessageLike (); ;}
+    break;
+
+  case 46:
+
+    { enteringFcnScope (yyvsp[-2].lcltypespec, yyvsp[-1].declare, yyvsp[0].globals); ;}
+    break;
+
+  case 47:
+
+    { yyval.fcn = makeFcnNode (qual_createUnknown (),  yyvsp[-12].lcltypespec, yyvsp[-11].declare, yyvsp[-10].globals, yyvsp[-7].vardeclarationlist, yyvsp[-6].letdecls, 
+                      yyvsp[-5].lclpredicate, yyvsp[-4].lclpredicate, yyvsp[-3].modify, yyvsp[-2].lclpredicate, yyvsp[-1].lclpredicate); 
+     /* type, declarator, glovbls, privateinits,
+       lets, checks, requires, modifies, ensures, claims */
+     symtable_exitScope (g_symtab);
+   ;}
+    break;
+
+  case 48:
+
+    { enteringFcnScope (yyvsp[-2].lcltypespec, yyvsp[-1].declare, yyvsp[0].globals); ;}
+    break;
+
+  case 49:
+
+    { yyval.fcn = makeFcnNode (yyvsp[-13].typequal, yyvsp[-12].lcltypespec, yyvsp[-11].declare, yyvsp[-10].globals, yyvsp[-7].vardeclarationlist, 
+                      yyvsp[-6].letdecls, yyvsp[-5].lclpredicate, yyvsp[-4].lclpredicate, yyvsp[-3].modify, yyvsp[-2].lclpredicate, yyvsp[-1].lclpredicate); 
+     /* type, declarator, glovbls, privateinits,
+       lets, checks, requires, modifies, ensures, claims */
+     symtable_exitScope (g_symtab);
+   ;}
+    break;
+
+  case 50:
+
+    { enteringClaimScope (yyvsp[-2].paramlist, yyvsp[0].globals); ;}
+    break;
+
+  case 51:
+
+    {      yyval.claim = makeClaimNode (yyvsp[-11].ltok, yyvsp[-9].paramlist, yyvsp[-7].globals, yyvsp[-4].letdecls, yyvsp[-3].lclpredicate, yyvsp[-2].program, yyvsp[-1].lclpredicate); 
+     symtable_exitScope (g_symtab); ;}
+    break;
+
+  case 52:
+
+    { yyval.claim = (claimNode) 0; ;}
+    break;
+
+  case 53:
+
+    {g_inTypeDef = TRUE; ;}
+    break;
+
+  case 54:
+
+    {g_inTypeDef = FALSE; ;}
+    break;
+
+  case 55:
+
+    { yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, TRUE, FALSE, yyvsp[0].abstbody); ;}
+    break;
+
+  case 56:
+
+    {g_inTypeDef = TRUE; ;}
+    break;
+
+  case 57:
+
+    {g_inTypeDef = FALSE; ;}
+    break;
+
+  case 58:
+
+    { yyval.abstract = makeAbstractNode (yyvsp[-6].ltok, yyvsp[-2].ltok, TRUE, TRUE, yyvsp[0].abstbody); ;}
+    break;
+
+  case 59:
+
+    {g_inTypeDef = TRUE; ;}
+    break;
+
+  case 60:
+
+    {g_inTypeDef = FALSE; ;}
+    break;
+
+  case 61:
+
+    { yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, TRUE, TRUE, yyvsp[0].abstbody); ;}
+    break;
+
+  case 62:
+
+    {g_inTypeDef = TRUE; ;}
+    break;
+
+  case 63:
+
+    {g_inTypeDef = FALSE; ;}
+    break;
+
+  case 64:
+
+    { yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, FALSE, FALSE, yyvsp[0].abstbody); ;}
+    break;
+
+  case 65:
+
+    { g_inTypeDef = TRUE; setExposedType (yyvsp[0].lcltypespec); ;}
+    break;
+
+  case 66:
+
+    { g_inTypeDef = FALSE; ;}
+    break;
+
+  case 67:
+
+    { yyval.exposed = makeExposedNode (yyvsp[-5].ltok, yyvsp[-4].lcltypespec, yyvsp[-2].declaratorinvs); /* to support mutually recursive types */ ;}
+    break;
+
+  case 68:
+
+    { yyval.exposed = makeExposedNode (yyvsp[0].ltok, makeLclTypeSpecNodeSU (yyvsp[-1].structorunion), declaratorInvNodeList_new ()); ;}
+    break;
+
+  case 69:
+
+    { yyval.exposed = makeExposedNode (yyvsp[0].ltok, makeLclTypeSpecNodeEnum (yyvsp[-1].enumspec), declaratorInvNodeList_new ()); ;}
+    break;
+
+  case 70:
+
+    { yyval.importlist = importNodeList_add (importNodeList_new (),  yyvsp[0].import); ;}
+    break;
+
+  case 71:
+
+    { yyval.importlist = importNodeList_add (yyvsp[-2].importlist, yyvsp[0].import); ;}
+    break;
+
+  case 72:
+
+    { yyval.import = importNode_makePlain (yyvsp[0].ltok); ;}
+    break;
+
+  case 73:
+
+    { checkBrackets (yyvsp[-2].ltok, yyvsp[0].ltok); yyval.import = importNode_makeBracketed (yyvsp[-1].ltok); ;}
+    break;
+
+  case 74:
+
+    { yyval.import = importNode_makeQuoted (yyvsp[0].ltok); ;}
+    break;
+
+  case 75:
+
+    { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;}
+    break;
+
+  case 76:
+
+    { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;}
+    break;
+
+  case 78:
+
+    { yyval.traitreflist = traitRefNodeList_add (traitRefNodeList_new (),  yyvsp[0].traitref); ;}
+    break;
+
+  case 79:
+
+    { yyval.traitreflist = traitRefNodeList_add (yyvsp[-2].traitreflist, yyvsp[0].traitref); ;}
+    break;
+
+  case 80:
+
+    { yyval.traitref = makeTraitRefNode (ltokenList_singleton (yyvsp[0].ltok), (renamingNode)0); ;}
+    break;
+
+  case 81:
+
+    { yyval.traitref = makeTraitRefNode (ltokenList_singleton (yyvsp[-3].ltok), yyvsp[-1].renaming); ;}
+    break;
+
+  case 82:
+
+    { yyval.traitref = makeTraitRefNode (yyvsp[-1].ltokenList, (renamingNode)0); ;}
+    break;
+
+  case 83:
+
+    { yyval.traitref = makeTraitRefNode (yyvsp[-4].ltokenList, yyvsp[-1].renaming); ;}
+    break;
+
+  case 84:
+
+    { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;}
+    break;
+
+  case 85:
+
+    { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;}
+    break;
+
+  case 86:
+
+    { yyval.renaming = makeRenamingNode (typeNameNodeList_new (),  yyvsp[0].replacelist); ;}
+    break;
+
+  case 87:
+
+    { yyval.renaming = makeRenamingNode (yyvsp[0].namelist, replaceNodeList_new ()); ;}
+    break;
+
+  case 88:
+
+    { yyval.renaming = makeRenamingNode (yyvsp[-2].namelist, yyvsp[0].replacelist); ;}
+    break;
+
+  case 89:
+
+    { yyval.namelist = typeNameNodeList_add (typeNameNodeList_new (),  yyvsp[0].typname); ;}
+    break;
+
+  case 90:
+
+    { yyval.namelist = typeNameNodeList_add (yyvsp[-2].namelist, yyvsp[0].typname); ;}
+    break;
+
+  case 91:
+
+    { yyval.replacelist = replaceNodeList_add (replaceNodeList_new (),  yyvsp[0].replace); ;}
+    break;
+
+  case 92:
+
+    { yyval.replacelist = replaceNodeList_add (yyvsp[-2].replacelist, yyvsp[0].replace); ;}
+    break;
+
+  case 93:
+
+    { yyval.replace = makeReplaceNode (yyvsp[-1].ltok, yyvsp[-2].typname, TRUE, yyvsp[0].ltok, NULL, NULL); ;}
+    break;
+
+  case 94:
+
+    { yyval.replace = makeReplaceNameNode (yyvsp[-1].ltok, yyvsp[-2].typname, yyvsp[0].name); ;}
+    break;
+
+  case 95:
+
+    { yyval.replace = makeReplaceNode (yyvsp[-2].ltok, yyvsp[-3].typname, FALSE, ltoken_undefined,
+                                                        yyvsp[-1].name, yyvsp[0].signature); ;}
+    break;
+
+  case 96:
+
+    { yyval.name = makeNameNodeId (yyvsp[0].ltok); ;}
+    break;
+
+  case 97:
+
+    { yyval.name = makeNameNodeForm (yyvsp[0].opform); ;}
+    break;
+
+  case 100:
+
+    { yyval.initdecls = initDeclNodeList_add (initDeclNodeList_new (),  yyvsp[0].initdecl); ;}
+    break;
+
+  case 101:
+
+    { yyval.initdecls = initDeclNodeList_add (yyvsp[-2].initdecls, yyvsp[0].initdecl); ;}
+    break;
+
+  case 102:
+
+    { yyval.initdecl = makeInitDeclNode (yyvsp[0].declare, (termNode)0); ;}
+    break;
+
+  case 103:
+
+    { yyval.initdecl = makeInitDeclNode (yyvsp[-2].declare, yyvsp[0].term); ;}
+    break;
+
+  case 104:
+
+    { yyval.globals = varDeclarationNodeList_new (); ;}
+    break;
+
+  case 105:
+
+    { varDeclarationNodeList_addh (yyvsp[-1].globals, yyvsp[0].vardeclaration); yyval.globals = yyvsp[-1].globals; ;}
+    break;
+
+  case 106:
+
+    { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, TRUE, FALSE); ;}
+    break;
+
+  case 107:
+
+    { yyval.vardeclaration = makeInternalStateNode (); ;}
+    break;
+
+  case 108:
+
+    { yyval.vardeclaration = makeFileSystemNode (); ;}
+    break;
+
+  case 109:
+
+    { yyval.vardeclarationlist = varDeclarationNodeList_new (); ;}
+    break;
+
+  case 110:
+
+    { varDeclarationNodeList_addh (yyvsp[-1].vardeclarationlist, yyvsp[0].vardeclaration); yyval.vardeclarationlist = yyvsp[-1].vardeclarationlist; ;}
+    break;
+
+  case 111:
+
+    { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, TRUE); ;}
+    break;
+
+  case 112:
+
+    { yyval.letdecls = letDeclNodeList_new (); ;}
+    break;
+
+  case 113:
+
+    { yyval.letdecls = yyvsp[-1].letdecls; ;}
+    break;
+
+  case 114:
+
+    { yyval.letdecls = letDeclNodeList_add (letDeclNodeList_new (),  yyvsp[0].letdecl); ;}
+    break;
+
+  case 115:
+
+    { yyval.letdecls = letDeclNodeList_add (yyvsp[-2].letdecls, yyvsp[0].letdecl); ;}
+    break;
+
+  case 116:
+
+    { yyval.letdecl = makeLetDeclNode (yyvsp[-4].ltok, yyvsp[-2].lcltypespec, yyvsp[0].term); ;}
+    break;
+
+  case 117:
+
+    { yyval.letdecl = makeLetDeclNode (yyvsp[-2].ltok, (lclTypeSpecNode)0, yyvsp[0].term); ;}
+    break;
+
+  case 119:
+
+    { yyval.lclpredicate = (lclPredicateNode)0; ;}
+    break;
+
+  case 120:
+
+    { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeChecksNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); ;}
+    break;
+
+  case 121:
+
+    { yyval.lclpredicate = (lclPredicateNode)0; ;}
+    break;
+
+  case 122:
+
+    { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeRequiresNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);;}
+    break;
+
+  case 123:
+
+    { yyval.modify = (modifyNode)0; ;}
+    break;
+
+  case 124:
+
+    { yyval.modify = makeModifyNodeSpecial (yyvsp[-2].ltok, TRUE); ;}
+    break;
+
+  case 125:
+
+    { yyval.modify = makeModifyNodeSpecial (yyvsp[-2].ltok, FALSE); ;}
+    break;
+
+  case 126:
+
+    { yyval.modify = makeModifyNodeRef (yyvsp[-2].ltok, yyvsp[-1].storereflist); ;}
+    break;
+
+  case 127:
+
+    { yyval.storereflist = storeRefNodeList_add (storeRefNodeList_new (),  yyvsp[0].storeref); ;}
+    break;
+
+  case 128:
+
+    { yyval.storereflist = storeRefNodeList_add (yyvsp[-2].storereflist, yyvsp[0].storeref); ;}
+    break;
+
+  case 129:
+
+    { yyval.storeref = makeStoreRefNodeTerm (yyvsp[0].term); ;}
+    break;
+
+  case 130:
+
+    { yyval.storeref = makeStoreRefNodeType (yyvsp[0].lcltypespec, FALSE); ;}
+    break;
+
+  case 131:
+
+    { yyval.storeref = makeStoreRefNodeType (yyvsp[0].lcltypespec, TRUE); ;}
+    break;
+
+  case 132:
+
+    { yyval.storeref = makeStoreRefNodeInternal (); ;}
+    break;
+
+  case 133:
+
+    { yyval.storeref = makeStoreRefNodeSystem (); ;}
+    break;
+
+  case 134:
+
+    { yyval.lclpredicate = (lclPredicateNode)0; ;}
+    break;
+
+  case 135:
+
+    { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeEnsuresNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);;}
+    break;
+
+  case 136:
+
+    { yyval.lclpredicate = (lclPredicateNode)0; ;}
+    break;
+
+  case 137:
+
+    { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeIntraClaimNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);;}
+    break;
+
+  case 138:
+
+    { yyval.paramlist = paramNodeList_new (); ;}
+    break;
+
+  case 139:
+
+    { yyval.paramlist = yyvsp[0].paramlist; ;}
+    break;
+
+  case 141:
+
+    { yyval.paramlist = paramNodeList_add (paramNodeList_new (),  paramNode_elipsis ()); ;}
+    break;
+
+  case 142:
+
+    { yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist, paramNode_elipsis ()); ;}
+    break;
+
+  case 143:
+
+    { yyval.paramlist = paramNodeList_single (yyvsp[0].param); ;}
+    break;
+
+  case 144:
+
+    { yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist, yyvsp[0].param); ;}
+    break;
+
+  case 145:
+
+    { yyval.program = (programNode)0; ;}
+    break;
+
+  case 146:
+
+    { yyval.program = yyvsp[-1].program; ;}
+    break;
+
+  case 147:
+
+    { yyval.program = yyvsp[-2].program; ;}
+    break;
+
+  case 148:
+
+    { yyval.program = makeProgramNode (yyvsp[0].stmt); ;}
+    break;
+
+  case 149:
+
+    { yyval.program = yyvsp[-1].program; yyval.program->wrapped = yyval.program->wrapped + 1; ;}
+    break;
+
+  case 150:
+
+    { programNodeList x = programNodeList_new ();
+     programNodeList_addh (x, yyvsp[-1].program);
+     yyval.program = makeProgramNodeAction (x, ACT_ITER); 
+   ;}
+    break;
+
+  case 151:
+
+    { programNodeList x = programNodeList_new ();
      programNodeList_addh (x, yyvsp[-2].program);
      programNodeList_addh (x, yyvsp[0].program);
      yyval.program = makeProgramNodeAction (x, ACT_ALTERNATE); 
      programNodeList_addh (x, yyvsp[-2].program);
      programNodeList_addh (x, yyvsp[0].program);
      yyval.program = makeProgramNodeAction (x, ACT_ALTERNATE); 
-   ;
-    break;}
-case 151:
-{ programNodeList x = programNodeList_new ();
+   ;}
+    break;
+
+  case 152:
+
+    { programNodeList x = programNodeList_new ();
      programNodeList_addh (x, yyvsp[-2].program);
      programNodeList_addh (x, yyvsp[0].program);
      yyval.program = makeProgramNodeAction (x, ACT_SEQUENCE); 
      programNodeList_addh (x, yyvsp[-2].program);
      programNodeList_addh (x, yyvsp[0].program);
      yyval.program = makeProgramNodeAction (x, ACT_SEQUENCE); 
-   ;
-    break;}
-case 152:
-{ yyval.stmt = makeStmtNode (ltoken_undefined, yyvsp[-3].ltok, yyvsp[-1].termlist); ;
-    break;}
-case 153:
-{ yyval.stmt = makeStmtNode (ltoken_undefined, yyvsp[-2].ltok, termNodeList_new ()); ;
-    break;}
-case 154:
-{ yyval.stmt = makeStmtNode (yyvsp[-4].ltok, yyvsp[-2].ltok, termNodeList_new ()); ;
-    break;}
-case 155:
-{ yyval.stmt = makeStmtNode (yyvsp[-5].ltok, yyvsp[-3].ltok, yyvsp[-1].termlist); ;
-    break;}
-case 156:
-{ yyval.termlist = termNodeList_push (termNodeList_new (),  yyvsp[0].term); ;
-    break;}
-case 157:
-{ yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ;
-    break;}
-case 159:
-{ yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ;
-    break;}
-case 160:
-{ yyval.term = makePrefixTermNode (yyvsp[-1].ltok, yyvsp[0].term); ;
-    break;}
-case 161:
-{ yyval.term = makePostfixTermNode2 (yyvsp[-1].term, yyvsp[0].ltok); ;
-    break;}
-case 162:
-{ yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term); ;
-    break;}
-case 163:
-{ yyval.term = yyvsp[-1].term; yyval.term->wrapped = yyval.term->wrapped + 1; ;
-    break;}
-case 164:
-{ yyval.term = makeOpCallTermNode (yyvsp[-2].ltok, yyvsp[-1].ltok, termNodeList_new (),  yyvsp[0].ltok); ;
-    break;}
-case 165:
-{ yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
-    break;}
-case 166:
-{ yyval.abstbody = (abstBodyNode)0; ;
-    break;}
-case 167:
-{ yyval.abstbody = makeAbstBodyNode (yyvsp[-2].ltok, yyvsp[-1].fcns); ;
-    break;}
-case 168:
-{ yyval.abstbody = makeAbstBodyNode2 (yyvsp[-3].ltok, yyvsp[-2].ltokenList); ;
-    break;}
-case 169:
-{ yyval.abstbody = (abstBodyNode)0; ;
-    break;}
-case 170:
-{ yyval.fcns = fcnNodeList_new (); ;
-    break;}
-case 171:
-{ yyval.fcns = fcnNodeList_add (yyvsp[-1].fcns, yyvsp[0].fcn); ;
-    break;}
-case 172:
-{ yyval.lclpredicate = (lclPredicateNode)0; ;
-    break;}
-case 174:
-{ g_inTypeDef = FALSE; ;
-    break;}
-case 175:
-{ yyvsp[-1].lclpredicate->tok = yyvsp[-5].ltok; yyvsp[-1].lclpredicate->kind = LPD_CONSTRAINT;
+   ;}
+    break;
+
+  case 153:
+
+    { yyval.stmt = makeStmtNode (ltoken_undefined, yyvsp[-3].ltok, yyvsp[-1].termlist); ;}
+    break;
+
+  case 154:
+
+    { yyval.stmt = makeStmtNode (ltoken_undefined, yyvsp[-2].ltok, termNodeList_new ()); ;}
+    break;
+
+  case 155:
+
+    { yyval.stmt = makeStmtNode (yyvsp[-4].ltok, yyvsp[-2].ltok, termNodeList_new ()); ;}
+    break;
+
+  case 156:
+
+    { yyval.stmt = makeStmtNode (yyvsp[-5].ltok, yyvsp[-3].ltok, yyvsp[-1].termlist); ;}
+    break;
+
+  case 157:
+
+    { yyval.termlist = termNodeList_push (termNodeList_new (),  yyvsp[0].term); ;}
+    break;
+
+  case 158:
+
+    { yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ;}
+    break;
+
+  case 160:
+
+    { yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ;}
+    break;
+
+  case 161:
+
+    { yyval.term = makePrefixTermNode (yyvsp[-1].ltok, yyvsp[0].term); ;}
+    break;
+
+  case 162:
+
+    { yyval.term = makePostfixTermNode2 (yyvsp[-1].term, yyvsp[0].ltok); ;}
+    break;
+
+  case 163:
+
+    { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term); ;}
+    break;
+
+  case 164:
+
+    { yyval.term = yyvsp[-1].term; yyval.term->wrapped = yyval.term->wrapped + 1; ;}
+    break;
+
+  case 165:
+
+    { yyval.term = makeOpCallTermNode (yyvsp[-2].ltok, yyvsp[-1].ltok, termNodeList_new (),  yyvsp[0].ltok); ;}
+    break;
+
+  case 166:
+
+    { yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;}
+    break;
+
+  case 167:
+
+    { yyval.abstbody = (abstBodyNode)0; ;}
+    break;
+
+  case 168:
+
+    { yyval.abstbody = makeAbstBodyNode (yyvsp[-2].ltok, yyvsp[-1].fcns); ;}
+    break;
+
+  case 169:
+
+    { yyval.abstbody = makeAbstBodyNode2 (yyvsp[-3].ltok, yyvsp[-2].ltokenList); ;}
+    break;
+
+  case 170:
+
+    { yyval.abstbody = (abstBodyNode)0; ;}
+    break;
+
+  case 171:
+
+    { yyval.fcns = fcnNodeList_new (); ;}
+    break;
+
+  case 172:
+
+    { yyval.fcns = fcnNodeList_add (yyvsp[-1].fcns, yyvsp[0].fcn); ;}
+    break;
+
+  case 173:
+
+    { yyval.lclpredicate = (lclPredicateNode)0; ;}
+    break;
+
+  case 175:
+
+    { g_inTypeDef = FALSE; ;}
+    break;
+
+  case 176:
+
+    { yyvsp[-1].lclpredicate->tok = yyvsp[-5].ltok; yyvsp[-1].lclpredicate->kind = LPD_CONSTRAINT;
      checkLclPredicate (yyvsp[-5].ltok, yyvsp[-1].lclpredicate);
      yyval.lclpredicate = yyvsp[-1].lclpredicate;
      symtable_exitScope (g_symtab); 
      g_inTypeDef = TRUE;
      checkLclPredicate (yyvsp[-5].ltok, yyvsp[-1].lclpredicate);
      yyval.lclpredicate = yyvsp[-1].lclpredicate;
      symtable_exitScope (g_symtab); 
      g_inTypeDef = TRUE;
-   ;
-    break;}
-case 176:
-{ yyval.declaratorinvs = declaratorInvNodeList_add (declaratorInvNodeList_new (),  yyvsp[0].declaratorinv); ;
-    break;}
-case 177:
-{ yyval.declaratorinvs = declaratorInvNodeList_add (yyvsp[-2].declaratorinvs, yyvsp[0].declaratorinv); ;
-    break;}
-case 178:
-{ declareForwardType (yyvsp[0].declare); ;
-    break;}
-case 179:
-{ yyval.declaratorinv = makeDeclaratorInvNode (yyvsp[-2].declare, yyvsp[0].abstbody); ;
-    break;}
-case 180:
-{ yyval.abstbody = (abstBodyNode)0; ;
-    break;}
-case 181:
-{ yyval.abstbody = makeExposedBodyNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); ;
-    break;}
-case 182:
-{ yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_VOID, 0)); ;
-    break;}
-case 183:
-{ yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_CHAR, 0)); ;
-    break;}
-case 184:
-{ yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_DOUBLE, 0)); ;
-    break;}
-case 185:
-{ yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_FLOAT, 0)); ;
-    break;}
-case 186:
-{ yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_INT, 0)); ;
-    break;}
-case 187:
-{ yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_LONG, 0)); ;
-    break;}
-case 188:
-{ yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_SHORT, 0)); ;
-    break;}
-case 189:
-{ yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_SIGNED, 0)); ;
-    break;}
-case 190:
-{ yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_UNSIGNED, 0)); ;
-    break;}
-case 191:
-{ yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_UNKNOWN, 0)); ;
-    break;}
-case 192:
-{ yyval.ctypes = makeCTypesNode ((CTypesNode)0, yyvsp[0].ltok); ;
-    break;}
-case 193:
-{ yyval.ctypes = makeCTypesNode (yyvsp[-1].ctypes, yyvsp[0].ltok); ;
-    break;}
-case 194:
-{ yyval.ctypes = makeTypeSpecifier (yyvsp[0].ltok); ;
-    break;}
-case 195:
-{ yyval.ctypes = yyvsp[0].ctypes; yyval.ctypes->sort = sort_lookupName (lclctype_toSort (yyvsp[0].ctypes->intfield)); ;
-    break;}
-case 196:
-{ yyval.typequal = qual_createOut (); ;
-    break;}
-case 197:
-{ yyval.typequal = qual_createUnused (); ;
-    break;}
-case 198:
-{ yyval.typequal = qual_createSef (); ;
-    break;}
-case 199:
-{ yyval.typequal = qual_createOnly (); ;
-    break;}
-case 200:
-{ yyval.typequal = qual_createOwned (); ;
-    break;}
-case 201:
-{ yyval.typequal = qual_createDependent (); ;
-    break;}
-case 202:
-{ yyval.typequal = qual_createKeep (); ;
-    break;}
-case 203:
-{ yyval.typequal = qual_createKept (); ;
-    break;}
-case 204:
-{ yyval.typequal = qual_createObserver (); ;
-    break;}
-case 205:
-{ yyval.typequal = qual_createExits (); ;
-    break;}
-case 206:
-{ yyval.typequal = qual_createMayExit (); ;
-    break;}
-case 207:
-{ yyval.typequal = qual_createTrueExit (); ;
-    break;}
-case 208:
-{ yyval.typequal = qual_createFalseExit (); ;
-    break;}
-case 209:
-{ yyval.typequal = qual_createNeverExit (); ;
-    break;}
-case 210:
-{ yyval.typequal = qual_createOnly (); ;
-    break;}
-case 211:
-{ yyval.typequal = qual_createShared (); ;
-    break;}
-case 212:
-{ yyval.typequal = qual_createUnique (); ;
-    break;}
-case 213:
-{ yyval.typequal = qual_createChecked (); ;
-    break;}
-case 214:
-{ yyval.typequal = qual_createUnchecked (); ;
-    break;}
-case 215:
-{ yyval.typequal = qual_createCheckedStrict (); ;
-    break;}
-case 216:
-{ yyval.typequal = qual_createTrueNull (); ;
-    break;}
-case 217:
-{ yyval.typequal = qual_createFalseNull (); ;
-    break;}
-case 218:
-{ yyval.typequal = qual_createRelNull (); ;
-    break;}
-case 219:
-{ yyval.typequal = qual_createRelDef (); ;
-    break;}
-case 220:
-{ yyval.typequal = qual_createRefCounted (); ;
-    break;}
-case 221:
-{ yyval.typequal = qual_createRefs (); ;
-    break;}
-case 222:
-{ yyval.typequal = qual_createNewRef (); ;
-    break;}
-case 223:
-{ yyval.typequal = qual_createKillRef (); ;
-    break;}
-case 224:
-{ yyval.typequal = qual_createNull (); ;
-    break;}
-case 225:
-{ yyval.typequal = qual_createNotNull (); ;
-    break;}
-case 226:
-{ yyval.typequal = qual_createReturned (); ;
-    break;}
-case 227:
-{ yyval.typequal = qual_createExposed (); ;
-    break;}
-case 228:
-{ yyval.typequal = qual_createPartial (); ;
-    break;}
-case 229:
-{ yyval.typequal = qual_createNullTerminated () ; ;
-    break;}
-case 230:
-{ yyval.typequal = qual_createUndef (); ;
-    break;}
-case 231:
-{ yyval.typequal = qual_createKilled (); ;
-    break;}
-case 232:
-{ yyval.lcltypespec = makeLclTypeSpecNodeType (yyvsp[0].ctypes); ;
-    break;}
-case 233:
-{ yyval.lcltypespec = makeLclTypeSpecNodeSU (yyvsp[0].structorunion); ;
-    break;}
-case 234:
-{ yyval.lcltypespec = makeLclTypeSpecNodeEnum (yyvsp[0].enumspec); ;
-    break;}
-case 235:
-{ yyval.lcltypespec = lclTypeSpecNode_addQual (yyvsp[0].lcltypespec, yyvsp[-1].typequal); ;
-    break;}
-case 236:
-{ yyval.lcltypespec = makeLclTypeSpecNodeConj (yyvsp[-3].lcltypespec, yyvsp[-1].lcltypespec); ;
-    break;}
-case 238:
-{ llassert (lclTypeSpecNode_isDefined (yyvsp[-1].lcltypespec));
-     yyvsp[-1].lcltypespec->pointers = yyvsp[0].pointers; yyval.lcltypespec = yyvsp[-1].lcltypespec; ;
-    break;}
-case 239:
-{ yyval.pointers = pointers_createLt (yyvsp[0].ltok); ;
-    break;}
-case 240:
-{ yyval.pointers = pointers_extend (yyvsp[-1].pointers, pointers_createLt (yyvsp[0].ltok)); ;
-    break;}
-case 241:
-{ (void) checkAndEnterTag (TAG_FWDSTRUCT, ltoken_copy (yyvsp[0].ltok)); ;
-    break;}
-case 242:
-{ yyval.structorunion = makestrOrUnionNode (yyvsp[-5].ltok, SU_STRUCT, yyvsp[-4].ltok, yyvsp[-1].structdecls); ;
-    break;}
-case 243:
-{ (void) checkAndEnterTag (TAG_FWDUNION, ltoken_copy (yyvsp[0].ltok)); ;
-    break;}
-case 244:
-{ yyval.structorunion = makestrOrUnionNode (yyvsp[-5].ltok, SU_UNION, yyvsp[-4].ltok, yyvsp[-1].structdecls); ;
-    break;}
-case 245:
-{ yyval.structorunion = makeForwardstrOrUnionNode (yyvsp[-1].ltok, SU_STRUCT, yyvsp[0].ltok); ;
-    break;}
-case 246:
-{ yyval.structorunion = makeForwardstrOrUnionNode (yyvsp[-1].ltok, SU_UNION, yyvsp[0].ltok); ;
-    break;}
-case 247:
-{ yyval.ltok = ltoken_undefined; ;
-    break;}
-case 249:
-{ yyval.structdecls = stDeclNodeList_add (stDeclNodeList_new (),  yyvsp[0].structdecl); ;
-    break;}
-case 250:
-{ yyval.structdecls = stDeclNodeList_add (yyvsp[-1].structdecls, yyvsp[0].structdecl); ;
-    break;}
-case 251:
-{ yyval.structdecl = makestDeclNode (yyvsp[-2].lcltypespec, yyvsp[-1].declarelist); ;
-    break;}
-case 252:
-{ yyval.declarelist = declaratorNodeList_add (declaratorNodeList_new (),  yyvsp[0].declare); ;
-    break;}
-case 253:
-{ yyval.declarelist = declaratorNodeList_add (yyvsp[-2].declarelist, yyvsp[0].declare); ;
-    break;}
-case 254:
-{ ; ;
-    break;}
-case 255:
-{ ; ;
-    break;}
-case 256:
-{ yyval.enumspec = makeEnumSpecNode (yyvsp[-5].ltok, yyvsp[-4].ltok, yyvsp[-2].ltokenList); ;
-    break;}
-case 257:
-{ yyval.enumspec = makeEnumSpecNode2 (yyvsp[-1].ltok, yyvsp[0].ltok); ;
-    break;}
-case 258:
-{ yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
-    break;}
-case 259:
-{ yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
-    break;}
-case 260:
-{ yyval.declare = makeDeclaratorNode (yyvsp[0].typeexpr); ;
-    break;}
-case 261:
-{ yyval.declare = makeDeclaratorNode (yyvsp[0].typeexpr); ;
-    break;}
-case 262:
-{ yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ;
-    break;}
-case 263:
-{ yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ;
-    break;}
-case 264:
-{ yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
-    break;}
-case 265:
-{ yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
-    break;}
-case 266:
-{ yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
-    break;}
-case 267:
-{ yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
-    break;}
-case 268:
-{ yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ;
-    break;}
-case 269:
-{ yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ;
-    break;}
-case 270:
-{ yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
-    break;}
-case 271:
-{ yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
-    break;}
-case 272:
-{ yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
-    break;}
-case 273:
-{ yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
-    break;}
-case 274:
-{ yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ;
-    break;}
-case 275:
-{ yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
-    break;}
-case 276:
-{ yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
-    break;}
-case 277:
-{ yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
-    break;}
-case 278:
-{ yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
-    break;}
-case 279:
-{ yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].typeexpr); ;
-    break;}
-case 280:
-{ yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].typeexpr); ;
-    break;}
-case 281:
-{ yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ;
-    break;}
-case 282:
-{ yyval.typname = makeTypeNameNode (FALSE, yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ;
-    break;}
-case 283:
-{ yyval.typname = makeTypeNameNode (TRUE, yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ;
-    break;}
-case 284:
-{ yyval.typname = makeTypeNameNodeOp (yyvsp[0].opform); ;
-    break;}
-case 285:
-{ yyval.abstDecl = (abstDeclaratorNode)0; ;
-    break;}
-case 286:
-{ yyval.abstDecl = (abstDeclaratorNode)yyvsp[0].typeexpr; ;
-    break;}
-case 287:
-{ yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ;
-    break;}
-case 288:
-{ yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
-    break;}
-case 289:
-{ yyval.typeexpr = makePointerNode (yyvsp[0].ltok, (typeExpr)0); ;
-    break;}
-case 290:
-{ yyval.typeexpr = makeArrayNode ((typeExpr)0, yyvsp[0].array); ;
-    break;}
-case 291:
-{ yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
-    break;}
-case 292:
-{ yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
-    break;}
-case 293:
-{ yyval.typeexpr = makeFunctionNode ((typeExpr)0, yyvsp[-1].paramlist); ;
-    break;}
-case 294:
-{ yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
-    break;}
-case 295:
-{ yyval.array = makeArrayQualNode (yyvsp[-1].ltok, (termNode)0); ;
-    break;}
-case 296:
-{ yyval.array = makeArrayQualNode (yyvsp[-2].ltok, yyvsp[-1].term); ;
-    break;}
-case 297:
-{ yyval.opform = makeOpFormNode (yyvsp[-5].ltok, OPF_IF, opFormUnion_createMiddle (0), ltoken_undefined); ;
-    break;}
-case 298:
-{ yyval.opform = makeOpFormNode (yyvsp[0].ltok, OPF_ANYOP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
-    break;}
-case 299:
-{ yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_MANYOP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
-    break;}
-case 300:
-{ yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_ANYOPM, opFormUnion_createAnyOp (yyvsp[-1].ltok), ltoken_undefined); ;
-    break;}
-case 301:
-{ yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MANYOPM, 
-                         opFormUnion_createAnyOp (yyvsp[-1].ltok), ltoken_undefined); ;
-    break;}
-case 302:
-{ yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
-    break;}
-case 303:
-{ yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
-    break;}
-case 304:
-{ yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
-    break;}
-case 305:
-{ yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
-    break;}
-case 306:
-{ yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_BMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
-    break;}
-case 307:
-{ yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_BMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
-    break;}
-case 308:
-{ yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_BMMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
-    break;}
-case 309:
-{ yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_BMMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
-    break;}
-case 310:
-{ yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_SELECT, 
-                         opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
-    break;}
-case 311:
-{ yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_MAP, 
-                         opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
-    break;}
-case 312:
-{ yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MSELECT, 
-                         opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
-    break;}
-case 313:
-{ yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MMAP, 
-                         opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
-    break;}
-case 321:
-{ yyval.count = 0; ;
-    break;}
-case 323:
-{ yyval.count = 1; ;
-    break;}
-case 324:
-{ yyval.count = yyvsp[-2].count + 1; ;
-    break;}
-case 327:
-{ yyval.signature = makesigNode (yyvsp[-3].ltok, yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
-    break;}
-case 328:
-{ yyval.ltokenList = ltokenList_new (); ;
-    break;}
-case 330:
-{ yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
-    break;}
-case 331:
-{ yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
-    break;}
-case 332:
-{ yyval.lclpredicate = makeLclPredicateNode (ltoken_undefined, yyvsp[0].term, LPD_PLAIN);;
-    break;}
-case 333:
-{ yyval.term = checkSort (yyvsp[0].term); ;
-    break;}
-case 334:
-{ yyval.term = makeIfTermNode (yyvsp[-5].ltok,yyvsp[-4].term,yyvsp[-3].ltok,yyvsp[-2].term,yyvsp[-1].ltok,yyvsp[0].term); ;
-    break;}
-case 336:
-{ yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term); ;
-    break;}
-case 338:
-{ checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.term = makeQuantifiedTermNode (yyvsp[-3].quantifiers, yyvsp[-2].ltok, yyvsp[-1].lclpredicate->predicate, yyvsp[0].ltok);
+   ;}
+    break;
+
+  case 177:
+
+    { yyval.declaratorinvs = declaratorInvNodeList_add (declaratorInvNodeList_new (),  yyvsp[0].declaratorinv); ;}
+    break;
+
+  case 178:
+
+    { yyval.declaratorinvs = declaratorInvNodeList_add (yyvsp[-2].declaratorinvs, yyvsp[0].declaratorinv); ;}
+    break;
+
+  case 179:
+
+    { declareForwardType (yyvsp[0].declare); ;}
+    break;
+
+  case 180:
+
+    { yyval.declaratorinv = makeDeclaratorInvNode (yyvsp[-2].declare, yyvsp[0].abstbody); ;}
+    break;
+
+  case 181:
+
+    { yyval.abstbody = (abstBodyNode)0; ;}
+    break;
+
+  case 182:
+
+    { yyval.abstbody = makeExposedBodyNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); ;}
+    break;
+
+  case 183:
+
+    { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_VOID, 0)); ;}
+    break;
+
+  case 184:
+
+    { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_CHAR, 0)); ;}
+    break;
+
+  case 185:
+
+    { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_DOUBLE, 0)); ;}
+    break;
+
+  case 186:
+
+    { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_FLOAT, 0)); ;}
+    break;
+
+  case 187:
+
+    { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_INT, 0)); ;}
+    break;
+
+  case 188:
+
+    { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_LONG, 0)); ;}
+    break;
+
+  case 189:
+
+    { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_SHORT, 0)); ;}
+    break;
+
+  case 190:
+
+    { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_SIGNED, 0)); ;}
+    break;
+
+  case 191:
+
+    { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_UNSIGNED, 0)); ;}
+    break;
+
+  case 192:
+
+    { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_UNKNOWN, 0)); ;}
+    break;
+
+  case 193:
+
+    { yyval.ctypes = makeCTypesNode ((CTypesNode)0, yyvsp[0].ltok); ;}
+    break;
+
+  case 194:
+
+    { yyval.ctypes = makeCTypesNode (yyvsp[-1].ctypes, yyvsp[0].ltok); ;}
+    break;
+
+  case 195:
+
+    { yyval.ctypes = makeTypeSpecifier (yyvsp[0].ltok); ;}
+    break;
+
+  case 196:
+
+    { yyval.ctypes = yyvsp[0].ctypes; yyval.ctypes->sort = sort_lookupName (lclctype_toSort (yyvsp[0].ctypes->intfield)); ;}
+    break;
+
+  case 197:
+
+    { yyval.typequal = qual_createOut (); ;}
+    break;
+
+  case 198:
+
+    { yyval.typequal = qual_createUnused (); ;}
+    break;
+
+  case 199:
+
+    { yyval.typequal = qual_createSef (); ;}
+    break;
+
+  case 200:
+
+    { yyval.typequal = qual_createOnly (); ;}
+    break;
+
+  case 201:
+
+    { yyval.typequal = qual_createOwned (); ;}
+    break;
+
+  case 202:
+
+    { yyval.typequal = qual_createDependent (); ;}
+    break;
+
+  case 203:
+
+    { yyval.typequal = qual_createKeep (); ;}
+    break;
+
+  case 204:
+
+    { yyval.typequal = qual_createKept (); ;}
+    break;
+
+  case 205:
+
+    { yyval.typequal = qual_createObserver (); ;}
+    break;
+
+  case 206:
+
+    { yyval.typequal = qual_createExits (); ;}
+    break;
+
+  case 207:
+
+    { yyval.typequal = qual_createMayExit (); ;}
+    break;
+
+  case 208:
+
+    { yyval.typequal = qual_createTrueExit (); ;}
+    break;
+
+  case 209:
+
+    { yyval.typequal = qual_createFalseExit (); ;}
+    break;
+
+  case 210:
+
+    { yyval.typequal = qual_createNeverExit (); ;}
+    break;
+
+  case 211:
+
+    { yyval.typequal = qual_createOnly (); ;}
+    break;
+
+  case 212:
+
+    { yyval.typequal = qual_createShared (); ;}
+    break;
+
+  case 213:
+
+    { yyval.typequal = qual_createUnique (); ;}
+    break;
+
+  case 214:
+
+    { yyval.typequal = qual_createChecked (); ;}
+    break;
+
+  case 215:
+
+    { yyval.typequal = qual_createUnchecked (); ;}
+    break;
+
+  case 216:
+
+    { yyval.typequal = qual_createCheckedStrict (); ;}
+    break;
+
+  case 217:
+
+    { yyval.typequal = qual_createTrueNull (); ;}
+    break;
+
+  case 218:
+
+    { yyval.typequal = qual_createFalseNull (); ;}
+    break;
+
+  case 219:
+
+    { yyval.typequal = qual_createRelNull (); ;}
+    break;
+
+  case 220:
+
+    { yyval.typequal = qual_createRelDef (); ;}
+    break;
+
+  case 221:
+
+    { yyval.typequal = qual_createRefCounted (); ;}
+    break;
+
+  case 222:
+
+    { yyval.typequal = qual_createRefs (); ;}
+    break;
+
+  case 223:
+
+    { yyval.typequal = qual_createNewRef (); ;}
+    break;
+
+  case 224:
+
+    { yyval.typequal = qual_createKillRef (); ;}
+    break;
+
+  case 225:
+
+    { yyval.typequal = qual_createNull (); ;}
+    break;
+
+  case 226:
+
+    { yyval.typequal = qual_createNotNull (); ;}
+    break;
+
+  case 227:
+
+    { yyval.typequal = qual_createReturned (); ;}
+    break;
+
+  case 228:
+
+    { yyval.typequal = qual_createExposed (); ;}
+    break;
+
+  case 229:
+
+    { yyval.typequal = qual_createPartial (); ;}
+    break;
+
+  case 230:
+
+    { yyval.typequal = qual_createNullTerminated () ; ;}
+    break;
+
+  case 231:
+
+    { yyval.typequal = qual_createUndef (); ;}
+    break;
+
+  case 232:
+
+    { yyval.typequal = qual_createKilled (); ;}
+    break;
+
+  case 233:
+
+    { yyval.lcltypespec = makeLclTypeSpecNodeType (yyvsp[0].ctypes); ;}
+    break;
+
+  case 234:
+
+    { yyval.lcltypespec = makeLclTypeSpecNodeSU (yyvsp[0].structorunion); ;}
+    break;
+
+  case 235:
+
+    { yyval.lcltypespec = makeLclTypeSpecNodeEnum (yyvsp[0].enumspec); ;}
+    break;
+
+  case 236:
+
+    { yyval.lcltypespec = lclTypeSpecNode_addQual (yyvsp[0].lcltypespec, yyvsp[-1].typequal); ;}
+    break;
+
+  case 237:
+
+    { yyval.lcltypespec = makeLclTypeSpecNodeConj (yyvsp[-3].lcltypespec, yyvsp[-1].lcltypespec); ;}
+    break;
+
+  case 239:
+
+    { llassert (lclTypeSpecNode_isDefined (yyvsp[-1].lcltypespec));
+     yyvsp[-1].lcltypespec->pointers = yyvsp[0].pointers; yyval.lcltypespec = yyvsp[-1].lcltypespec; ;}
+    break;
+
+  case 240:
+
+    { yyval.pointers = pointers_createLt (yyvsp[0].ltok); ;}
+    break;
+
+  case 241:
+
+    { yyval.pointers = pointers_extend (yyvsp[-1].pointers, pointers_createLt (yyvsp[0].ltok)); ;}
+    break;
+
+  case 242:
+
+    { (void) checkAndEnterTag (TAG_FWDSTRUCT, ltoken_copy (yyvsp[0].ltok)); ;}
+    break;
+
+  case 243:
+
+    { yyval.structorunion = makestrOrUnionNode (yyvsp[-5].ltok, SU_STRUCT, yyvsp[-4].ltok, yyvsp[-1].structdecls); ;}
+    break;
+
+  case 244:
+
+    { (void) checkAndEnterTag (TAG_FWDUNION, ltoken_copy (yyvsp[0].ltok)); ;}
+    break;
+
+  case 245:
+
+    { yyval.structorunion = makestrOrUnionNode (yyvsp[-5].ltok, SU_UNION, yyvsp[-4].ltok, yyvsp[-1].structdecls); ;}
+    break;
+
+  case 246:
+
+    { yyval.structorunion = makeForwardstrOrUnionNode (yyvsp[-1].ltok, SU_STRUCT, yyvsp[0].ltok); ;}
+    break;
+
+  case 247:
+
+    { yyval.structorunion = makeForwardstrOrUnionNode (yyvsp[-1].ltok, SU_UNION, yyvsp[0].ltok); ;}
+    break;
+
+  case 248:
+
+    { yyval.ltok = ltoken_undefined; ;}
+    break;
+
+  case 250:
+
+    { yyval.structdecls = stDeclNodeList_add (stDeclNodeList_new (),  yyvsp[0].structdecl); ;}
+    break;
+
+  case 251:
+
+    { yyval.structdecls = stDeclNodeList_add (yyvsp[-1].structdecls, yyvsp[0].structdecl); ;}
+    break;
+
+  case 252:
+
+    { yyval.structdecl = makestDeclNode (yyvsp[-2].lcltypespec, yyvsp[-1].declarelist); ;}
+    break;
+
+  case 253:
+
+    { yyval.declarelist = declaratorNodeList_add (declaratorNodeList_new (),  yyvsp[0].declare); ;}
+    break;
+
+  case 254:
+
+    { yyval.declarelist = declaratorNodeList_add (yyvsp[-2].declarelist, yyvsp[0].declare); ;}
+    break;
+
+  case 255:
+
+    { ; ;}
+    break;
+
+  case 256:
+
+    { ; ;}
+    break;
+
+  case 257:
+
+    { yyval.enumspec = makeEnumSpecNode (yyvsp[-5].ltok, yyvsp[-4].ltok, yyvsp[-2].ltokenList); ;}
+    break;
+
+  case 258:
+
+    { yyval.enumspec = makeEnumSpecNode2 (yyvsp[-1].ltok, yyvsp[0].ltok); ;}
+    break;
+
+  case 259:
+
+    { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;}
+    break;
+
+  case 260:
+
+    { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;}
+    break;
+
+  case 261:
+
+    { yyval.declare = makeDeclaratorNode (yyvsp[0].typeexpr); ;}
+    break;
+
+  case 262:
+
+    { yyval.declare = makeDeclaratorNode (yyvsp[0].typeexpr); ;}
+    break;
+
+  case 263:
+
+    { yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ;}
+    break;
+
+  case 264:
+
+    { yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ;}
+    break;
+
+  case 265:
+
+    { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;}
+    break;
+
+  case 266:
+
+    { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;}
+    break;
+
+  case 267:
+
+    { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;}
+    break;
+
+  case 268:
+
+    { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;}
+    break;
+
+  case 269:
+
+    { yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ;}
+    break;
+
+  case 270:
+
+    { yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ;}
+    break;
+
+  case 271:
+
+    { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;}
+    break;
+
+  case 272:
+
+    { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;}
+    break;
+
+  case 273:
+
+    { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;}
+    break;
+
+  case 274:
+
+    { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;}
+    break;
+
+  case 275:
+
+    { yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ;}
+    break;
+
+  case 276:
+
+    { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;}
+    break;
+
+  case 277:
+
+    { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;}
+    break;
+
+  case 278:
+
+    { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;}
+    break;
+
+  case 279:
+
+    { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;}
+    break;
+
+  case 280:
+
+    { yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].typeexpr); ;}
+    break;
+
+  case 281:
+
+    { yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].typeexpr); ;}
+    break;
+
+  case 282:
+
+    { yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ;}
+    break;
+
+  case 283:
+
+    { yyval.typname = makeTypeNameNode (FALSE, yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ;}
+    break;
+
+  case 284:
+
+    { yyval.typname = makeTypeNameNode (TRUE, yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ;}
+    break;
+
+  case 285:
+
+    { yyval.typname = makeTypeNameNodeOp (yyvsp[0].opform); ;}
+    break;
+
+  case 286:
+
+    { yyval.abstDecl = (abstDeclaratorNode)0; ;}
+    break;
+
+  case 287:
+
+    { yyval.abstDecl = (abstDeclaratorNode)yyvsp[0].typeexpr; ;}
+    break;
+
+  case 288:
+
+    { yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ;}
+    break;
+
+  case 289:
+
+    { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;}
+    break;
+
+  case 290:
+
+    { yyval.typeexpr = makePointerNode (yyvsp[0].ltok, (typeExpr)0); ;}
+    break;
+
+  case 291:
+
+    { yyval.typeexpr = makeArrayNode ((typeExpr)0, yyvsp[0].array); ;}
+    break;
+
+  case 292:
+
+    { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;}
+    break;
+
+  case 293:
+
+    { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;}
+    break;
+
+  case 294:
+
+    { yyval.typeexpr = makeFunctionNode ((typeExpr)0, yyvsp[-1].paramlist); ;}
+    break;
+
+  case 295:
+
+    { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;}
+    break;
+
+  case 296:
+
+    { yyval.array = makeArrayQualNode (yyvsp[-1].ltok, (termNode)0); ;}
+    break;
+
+  case 297:
+
+    { yyval.array = makeArrayQualNode (yyvsp[-2].ltok, yyvsp[-1].term); ;}
+    break;
+
+  case 298:
+
+    { yyval.opform = makeOpFormNode (yyvsp[-5].ltok, OPF_IF, opFormUnion_createMiddle (0), ltoken_undefined); ;}
+    break;
+
+  case 299:
+
+    { yyval.opform = makeOpFormNode (yyvsp[0].ltok, OPF_ANYOP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;}
+    break;
+
+  case 300:
+
+    { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_MANYOP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;}
+    break;
+
+  case 301:
+
+    { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_ANYOPM, opFormUnion_createAnyOp (yyvsp[-1].ltok), ltoken_undefined); ;}
+    break;
+
+  case 302:
+
+    { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MANYOPM, 
+                         opFormUnion_createAnyOp (yyvsp[-1].ltok), ltoken_undefined); ;}
+    break;
+
+  case 303:
+
+    { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;}
+    break;
+
+  case 304:
+
+    { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;}
+    break;
+
+  case 305:
+
+    { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;}
+    break;
+
+  case 306:
+
+    { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;}
+    break;
+
+  case 307:
+
+    { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_BMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;}
+    break;
+
+  case 308:
+
+    { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_BMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;}
+    break;
+
+  case 309:
+
+    { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_BMMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;}
+    break;
+
+  case 310:
+
+    { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_BMMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;}
+    break;
+
+  case 311:
+
+    { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_SELECT, 
+                         opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;}
+    break;
+
+  case 312:
+
+    { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_MAP, 
+                         opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;}
+    break;
+
+  case 313:
+
+    { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MSELECT, 
+                         opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;}
+    break;
+
+  case 314:
+
+    { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MMAP, 
+                         opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;}
+    break;
+
+  case 322:
+
+    { yyval.count = 0; ;}
+    break;
+
+  case 324:
+
+    { yyval.count = 1; ;}
+    break;
+
+  case 325:
+
+    { yyval.count = yyvsp[-2].count + 1; ;}
+    break;
+
+  case 328:
+
+    { yyval.signature = makesigNode (yyvsp[-3].ltok, yyvsp[-2].ltokenList, yyvsp[0].ltok); ;}
+    break;
+
+  case 329:
+
+    { yyval.ltokenList = ltokenList_new (); ;}
+    break;
+
+  case 331:
+
+    { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;}
+    break;
+
+  case 332:
+
+    { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;}
+    break;
+
+  case 333:
+
+    { yyval.lclpredicate = makeLclPredicateNode (ltoken_undefined, yyvsp[0].term, LPD_PLAIN);;}
+    break;
+
+  case 334:
+
+    { yyval.term = checkSort (yyvsp[0].term); ;}
+    break;
+
+  case 335:
+
+    { yyval.term = makeIfTermNode (yyvsp[-5].ltok,yyvsp[-4].term,yyvsp[-3].ltok,yyvsp[-2].term,yyvsp[-1].ltok,yyvsp[0].term); ;}
+    break;
+
+  case 337:
+
+    { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term); ;}
+    break;
+
+  case 339:
+
+    { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.term = makeQuantifiedTermNode (yyvsp[-3].quantifiers, yyvsp[-2].ltok, yyvsp[-1].lclpredicate->predicate, yyvsp[0].ltok);
      symtable_exitScope (g_symtab); 
      symtable_exitScope (g_symtab); 
-   ;
-    break;}
-case 339:
-{ yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term);;
-    break;}
-case 340:
-{ yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term);;
-    break;}
-case 342:
-{ yyval.term = makePostfixTermNode (yyvsp[-1].term, yyvsp[0].ltokenList); ;
-    break;}
-case 343:
-{ yyval.term = CollapseInfixTermNode (yyvsp[-1].term, yyvsp[0].termlist); ;
-    break;}
-case 347:
-{ yyval.term = makePrefixTermNode (yyvsp[-1].ltok, yyvsp[0].term); ;
-    break;}
-case 348:
-{ yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
-    break;}
-case 349:
-{ yyval.ltokenList = ltokenList_push (yyvsp[-1].ltokenList, yyvsp[0].ltok); ;
-    break;}
-case 350:
-{ yyval.termlist = pushInfixOpPartNode (termNodeList_new (),  yyvsp[-1].ltok, yyvsp[0].term); ;
-    break;}
-case 351:
-{ yyval.termlist = pushInfixOpPartNode (yyvsp[-2].termlist, yyvsp[-1].ltok, yyvsp[0].term); ;
-    break;}
-case 353:
-{ yyval.term = computePossibleSorts (yyvsp[0].term); ;
-    break;}
-case 354:
-{ yyval.term = updateMatchedNode ((termNode)0, yyvsp[-1].term, yyvsp[0].term); ;
-    break;}
-case 355:
-{ yyval.term = updateMatchedNode (yyvsp[-1].term, yyvsp[0].term, (termNode)0); ;
-    break;}
-case 356:
-{ yyval.term = updateMatchedNode (yyvsp[-2].term, yyvsp[-1].term, yyvsp[0].term); ;
-    break;}
-case 357:
-{ yyval.term = computePossibleSorts (yyvsp[0].term); ;
-    break;}
-case 358:
-{ yyval.term = updateSqBracketedNode ((termNode)0, yyvsp[-1].term, yyvsp[0].term); ;
-    break;}
-case 359:
-{ yyval.term = yyvsp[-2].term; yyval.term->sort = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ;
-    break;}
-case 361:
-{ yyval.term = makeSqBracketedNode (yyvsp[-4].ltok, yyvsp[-3].termlist, yyvsp[-2].ltok); 
-     yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ;
-    break;}
-case 362:
-{ yyval.term = makeSqBracketedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
-    break;}
-case 363:
-{ yyval.term = makeSqBracketedNode (yyvsp[-3].ltok, termNodeList_new (),  yyvsp[-2].ltok); 
+   ;}
+    break;
+
+  case 340:
+
+    { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term);;}
+    break;
+
+  case 341:
+
+    { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term);;}
+    break;
+
+  case 343:
+
+    { yyval.term = makePostfixTermNode (yyvsp[-1].term, yyvsp[0].ltokenList); ;}
+    break;
+
+  case 344:
+
+    { yyval.term = CollapseInfixTermNode (yyvsp[-1].term, yyvsp[0].termlist); ;}
+    break;
+
+  case 348:
+
+    { yyval.term = makePrefixTermNode (yyvsp[-1].ltok, yyvsp[0].term); ;}
+    break;
+
+  case 349:
+
+    { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;}
+    break;
+
+  case 350:
+
+    { yyval.ltokenList = ltokenList_push (yyvsp[-1].ltokenList, yyvsp[0].ltok); ;}
+    break;
+
+  case 351:
+
+    { yyval.termlist = pushInfixOpPartNode (termNodeList_new (),  yyvsp[-1].ltok, yyvsp[0].term); ;}
+    break;
+
+  case 352:
+
+    { yyval.termlist = pushInfixOpPartNode (yyvsp[-2].termlist, yyvsp[-1].ltok, yyvsp[0].term); ;}
+    break;
+
+  case 354:
+
+    { yyval.term = computePossibleSorts (yyvsp[0].term); ;}
+    break;
+
+  case 355:
+
+    { yyval.term = updateMatchedNode ((termNode)0, yyvsp[-1].term, yyvsp[0].term); ;}
+    break;
+
+  case 356:
+
+    { yyval.term = updateMatchedNode (yyvsp[-1].term, yyvsp[0].term, (termNode)0); ;}
+    break;
+
+  case 357:
+
+    { yyval.term = updateMatchedNode (yyvsp[-2].term, yyvsp[-1].term, yyvsp[0].term); ;}
+    break;
+
+  case 358:
+
+    { yyval.term = computePossibleSorts (yyvsp[0].term); ;}
+    break;
+
+  case 359:
+
+    { yyval.term = updateSqBracketedNode ((termNode)0, yyvsp[-1].term, yyvsp[0].term); ;}
+    break;
+
+  case 360:
+
+    { yyval.term = yyvsp[-2].term; yyval.term->sort = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ;}
+    break;
+
+  case 362:
+
+    { yyval.term = makeSqBracketedNode (yyvsp[-4].ltok, yyvsp[-3].termlist, yyvsp[-2].ltok); 
+     yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ;}
+    break;
+
+  case 363:
+
+    { yyval.term = makeSqBracketedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;}
+    break;
+
+  case 364:
+
+    { yyval.term = makeSqBracketedNode (yyvsp[-3].ltok, termNodeList_new (),  yyvsp[-2].ltok); 
      yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); 
      yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); 
-   ;
-    break;}
-case 364:
-{ yyval.term = makeSqBracketedNode (yyvsp[-1].ltok, termNodeList_new (),  yyvsp[0].ltok); ;
-    break;}
-case 365:
-{ yyval.term = makeMatchedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
-    break;}
-case 366:
-{ yyval.term = makeMatchedNode (yyvsp[-1].ltok, termNodeList_new (),  yyvsp[0].ltok); ;
-    break;}
-case 367:
-{ yyval.termlist = termNodeList_push (termNodeList_new (),  yyvsp[0].term); ;
-    break;}
-case 368:
-{ yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ;
-    break;}
-case 369:
-{ yyval.term = yyvsp[-1].term; yyval.term->wrapped = yyval.term->wrapped + 1; ;
-    break;}
-case 370:
-{ yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ;
-    break;}
-case 371:
-{ yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
-    break;}
-case 373:
-{ yyval.term = makePostfixTermNode2 (yyvsp[-1].term, yyvsp[0].ltok); ;
-    break;}
-case 374:
-{ ltoken_markOwned (yyvsp[0].ltok); yyval.term = makeSelectTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].ltok); ;
-    break;}
-case 375:
-{ ltoken_markOwned (yyvsp[0].ltok); yyval.term = makeMapTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].ltok); ;
-    break;}
-case 376:
-{ yyval.term = updateSqBracketedNode (yyvsp[-2].term, makeSqBracketedNode (yyvsp[-1].ltok, termNodeList_new (),  yyvsp[0].ltok), 
-                               (termNode)0); ;
-    break;}
-case 377:
-{ yyval.term = updateSqBracketedNode (yyvsp[-3].term, makeSqBracketedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok), (termNode)0); ;
-    break;}
-case 378:
-{ yyval.term = yyvsp[-2].term; yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ;
-    break;}
-case 379:
-{ yyval.termlist = termNodeList_push (termNodeList_new (),  yyvsp[0].term); ;
-    break;}
-case 380:
-{ yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ;
-    break;}
-case 386:
-{ yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ;
-    break;}
-case 387:
-{ yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
-    break;}
-case 388:
-{ yyval.term = makeUnchangedTermNode1 (yyvsp[-3].ltok, yyvsp[-1].ltok); ;
-    break;}
-case 389:
-{ yyval.term = makeUnchangedTermNode2 (yyvsp[-3].ltok, yyvsp[-1].storereflist); ;
-    break;}
-case 390:
-{ termNodeList x = termNodeList_new (); 
+   ;}
+    break;
+
+  case 365:
+
+    { yyval.term = makeSqBracketedNode (yyvsp[-1].ltok, termNodeList_new (),  yyvsp[0].ltok); ;}
+    break;
+
+  case 366:
+
+    { yyval.term = makeMatchedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;}
+    break;
+
+  case 367:
+
+    { yyval.term = makeMatchedNode (yyvsp[-1].ltok, termNodeList_new (),  yyvsp[0].ltok); ;}
+    break;
+
+  case 368:
+
+    { yyval.termlist = termNodeList_push (termNodeList_new (),  yyvsp[0].term); ;}
+    break;
+
+  case 369:
+
+    { yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ;}
+    break;
+
+  case 370:
+
+    { yyval.term = yyvsp[-1].term; yyval.term->wrapped = yyval.term->wrapped + 1; ;}
+    break;
+
+  case 371:
+
+    { yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ;}
+    break;
+
+  case 372:
+
+    { yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;}
+    break;
+
+  case 374:
+
+    { yyval.term = makePostfixTermNode2 (yyvsp[-1].term, yyvsp[0].ltok); ;}
+    break;
+
+  case 375:
+
+    { ltoken_markOwned (yyvsp[0].ltok); yyval.term = makeSelectTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].ltok); ;}
+    break;
+
+  case 376:
+
+    { ltoken_markOwned (yyvsp[0].ltok); yyval.term = makeMapTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].ltok); ;}
+    break;
+
+  case 377:
+
+    { yyval.term = updateSqBracketedNode (yyvsp[-2].term, makeSqBracketedNode (yyvsp[-1].ltok, termNodeList_new (),  yyvsp[0].ltok), 
+                               (termNode)0); ;}
+    break;
+
+  case 378:
+
+    { yyval.term = updateSqBracketedNode (yyvsp[-3].term, makeSqBracketedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok), (termNode)0); ;}
+    break;
+
+  case 379:
+
+    { yyval.term = yyvsp[-2].term; yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ;}
+    break;
+
+  case 380:
+
+    { yyval.termlist = termNodeList_push (termNodeList_new (),  yyvsp[0].term); ;}
+    break;
+
+  case 381:
+
+    { yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ;}
+    break;
+
+  case 387:
+
+    { yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ;}
+    break;
+
+  case 388:
+
+    { yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;}
+    break;
+
+  case 389:
+
+    { yyval.term = makeUnchangedTermNode1 (yyvsp[-3].ltok, yyvsp[-1].ltok); ;}
+    break;
+
+  case 390:
+
+    { yyval.term = makeUnchangedTermNode2 (yyvsp[-3].ltok, yyvsp[-1].storereflist); ;}
+    break;
+
+  case 391:
+
+    { termNodeList x = termNodeList_new (); 
      termNodeList_addh (x, yyvsp[-1].term);
      yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, x, yyvsp[0].ltok); 
      termNodeList_addh (x, yyvsp[-1].term);
      yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, x, yyvsp[0].ltok); 
-   ;
-    break;}
-case 391:
-{ termNodeList x = termNodeList_new ();
+   ;}
+    break;
+
+  case 392:
+
+    { termNodeList x = termNodeList_new ();
      termNodeList_addh (x, yyvsp[-3].term);
      termNodeList_addh (x, yyvsp[-1].term);
      yyval.term = makeOpCallTermNode (yyvsp[-5].ltok, yyvsp[-4].ltok, x, yyvsp[0].ltok); 
      termNodeList_addh (x, yyvsp[-3].term);
      termNodeList_addh (x, yyvsp[-1].term);
      yyval.term = makeOpCallTermNode (yyvsp[-5].ltok, yyvsp[-4].ltok, x, yyvsp[0].ltok); 
-   ;
-    break;}
-case 392:
-{ yyval.term = makeSizeofTermNode (yyvsp[-3].ltok, yyvsp[-1].lcltypespec); ;
-    break;}
-case 393:
-{ yyval.term = makeLiteralTermNode (yyvsp[0].ltok, g_sortInt); ;
-    break;}
-case 394:
-{ yyval.term = makeLiteralTermNode (yyvsp[0].ltok, g_sortCstring); ;
-    break;}
-case 395:
-{ yyval.term = makeLiteralTermNode (yyvsp[0].ltok, g_sortChar); ;
-    break;}
-case 396:
-{ yyval.term = makeLiteralTermNode (yyvsp[0].ltok, g_sortDouble); ;
-    break;}
-case 397:
-{ yyval.quantifiers = quantifierNodeList_add (quantifierNodeList_new (),  yyvsp[0].quantifier); ;
-    break;}
-case 398:
-{ yyval.quantifiers = quantifierNodeList_add (yyvsp[-1].quantifiers, yyvsp[0].quantifier); ;
-    break;}
-case 399:
-{ scopeInfo si = (scopeInfo) dmalloc (sizeof (*si));
+   ;}
+    break;
+
+  case 393:
+
+    { yyval.term = makeSizeofTermNode (yyvsp[-3].ltok, yyvsp[-1].lcltypespec); ;}
+    break;
+
+  case 394:
+
+    { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, g_sortInt); ;}
+    break;
+
+  case 395:
+
+    { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, g_sortCstring); ;}
+    break;
+
+  case 396:
+
+    { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, g_sortChar); ;}
+    break;
+
+  case 397:
+
+    { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, g_sortDouble); ;}
+    break;
+
+  case 398:
+
+    { yyval.quantifiers = quantifierNodeList_add (quantifierNodeList_new (),  yyvsp[0].quantifier); ;}
+    break;
+
+  case 399:
+
+    { yyval.quantifiers = quantifierNodeList_add (yyvsp[-1].quantifiers, yyvsp[0].quantifier); ;}
+    break;
+
+  case 400:
+
+    { scopeInfo si = (scopeInfo) dmalloc (sizeof (*si));
                   si->kind = SPE_QUANT;
                   si->kind = SPE_QUANT;
-                  symtable_enterScope (g_symtab, si); ;
-    break;}
-case 400:
-{ yyval.quantifier = makeQuantifierNode (yyvsp[0].vars, yyvsp[-2].ltok); ;
-    break;}
-case 401:
-{ yyval.vars = varNodeList_add (varNodeList_new (),  yyvsp[0].var); ;
-    break;}
-case 402:
-{ yyval.vars = varNodeList_add (yyvsp[-2].vars, yyvsp[0].var); ;
-    break;}
-case 403:
-{ yyval.var = makeVarNode (yyvsp[-2].ltok, FALSE, yyvsp[0].lcltypespec); ;
-    break;}
-case 404:
-{ yyval.var = makeVarNode (yyvsp[-3].ltok, TRUE, yyvsp[0].lcltypespec); ;
-    break;}
-}
+                  symtable_enterScope (g_symtab, si); ;}
+    break;
 
 
+  case 401:
+
+    { yyval.quantifier = makeQuantifierNode (yyvsp[0].vars, yyvsp[-2].ltok); ;}
+    break;
+
+  case 402:
+
+    { yyval.vars = varNodeList_add (varNodeList_new (),  yyvsp[0].var); ;}
+    break;
+
+  case 403:
+
+    { yyval.vars = varNodeList_add (yyvsp[-2].vars, yyvsp[0].var); ;}
+    break;
+
+  case 404:
+
+    { yyval.var = makeVarNode (yyvsp[-2].ltok, FALSE, yyvsp[0].lcltypespec); ;}
+    break;
+
+  case 405:
+
+    { yyval.var = makeVarNode (yyvsp[-3].ltok, TRUE, yyvsp[0].lcltypespec); ;}
+    break;
+
+
+    }
+
+/* Line 999 of yacc.c.  */
 
 \f
   yyvsp -= yylen;
   yyssp -= yylen;
 
 \f
   yyvsp -= yylen;
   yyssp -= yylen;
-#if YYLSP_NEEDED
-  yylsp -= yylen;
-#endif
 
 
-#if YYDEBUG
-  if (yydebug)
-    {
-      short *yyssp1 = yyss - 1;
-      YYFPRINTF (stderr, "state stack now");
-      while (yyssp1 != yyssp)
-       YYFPRINTF (stderr, " %d", *++yyssp1);
-      YYFPRINTF (stderr, "\n");
-    }
-#endif
+
+  YY_STACK_PRINT (yyss, yyssp);
 
   *++yyvsp = yyval;
 
   *++yyvsp = yyval;
-#if YYLSP_NEEDED
-  *++yylsp = yyloc;
-#endif
+
 
   /* Now `shift' the result of the reduction.  Determine what state
      that goes to, based on the state we popped back to and the rule
 
   /* Now `shift' the result of the reduction.  Determine what state
      that goes to, based on the state we popped back to and the rule
@@ -3510,11 +4550,11 @@ case 404:
 
   yyn = yyr1[yyn];
 
 
   yyn = yyr1[yyn];
 
-  yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
-  if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
+  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
+  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
     yystate = yytable[yystate];
   else
     yystate = yytable[yystate];
   else
-    yystate = yydefgoto[yyn - YYNTBASE];
+    yystate = yydefgoto[yyn - YYNTOKENS];
 
   goto yynewstate;
 
 
   goto yynewstate;
 
@@ -3527,13 +4567,13 @@ yyerrlab:
   if (!yyerrstatus)
     {
       ++yynerrs;
   if (!yyerrstatus)
     {
       ++yynerrs;
-
-#ifdef YYERROR_VERBOSE
+#if YYERROR_VERBOSE
       yyn = yypact[yystate];
 
       yyn = yypact[yystate];
 
-      if (yyn > YYFLAG && yyn < YYLAST)
+      if (YYPACT_NINF < yyn && yyn < YYLAST)
        {
          YYSIZE_T yysize = 0;
        {
          YYSIZE_T yysize = 0;
+         int yytype = YYTRANSLATE (yychar);
          char *yymsg;
          int yyx, yycount;
 
          char *yymsg;
          int yyx, yycount;
 
@@ -3542,15 +4582,15 @@ yyerrlab:
             YYCHECK.  */
          for (yyx = yyn < 0 ? -yyn : 0;
               yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)
             YYCHECK.  */
          for (yyx = yyn < 0 ? -yyn : 0;
               yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)
-           if (yycheck[yyx + yyn] == yyx)
+           if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
              yysize += yystrlen (yytname[yyx]) + 15, yycount++;
              yysize += yystrlen (yytname[yyx]) + 15, yycount++;
-         yysize += yystrlen ("parse error, unexpected ") + 1;
-         yysize += yystrlen (yytname[YYTRANSLATE (yychar)]);
+         yysize += yystrlen ("syntax error, unexpected ") + 1;
+         yysize += yystrlen (yytname[yytype]);
          yymsg = (char *) YYSTACK_ALLOC (yysize);
          if (yymsg != 0)
            {
          yymsg = (char *) YYSTACK_ALLOC (yysize);
          if (yymsg != 0)
            {
-             char *yyp = yystpcpy (yymsg, "parse error, unexpected ");
-             yyp = yystpcpy (yyp, yytname[YYTRANSLATE (yychar)]);
+             char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
+             yyp = yystpcpy (yyp, yytname[yytype]);
 
              if (yycount < 5)
                {
 
              if (yycount < 5)
                {
@@ -3558,7 +4598,7 @@ yyerrlab:
                  for (yyx = yyn < 0 ? -yyn : 0;
                       yyx < (int) (sizeof (yytname) / sizeof (char *));
                       yyx++)
                  for (yyx = yyn < 0 ? -yyn : 0;
                       yyx < (int) (sizeof (yytname) / sizeof (char *));
                       yyx++)
-                   if (yycheck[yyx + yyn] == yyx)
+                   if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
                      {
                        const char *yyq = ! yycount ? ", expecting " : " or ";
                        yyp = yystpcpy (yyp, yyq);
                      {
                        const char *yyq = ! yycount ? ", expecting " : " or ";
                        yyp = yystpcpy (yyp, yyq);
@@ -3570,102 +4610,77 @@ yyerrlab:
              YYSTACK_FREE (yymsg);
            }
          else
              YYSTACK_FREE (yymsg);
            }
          else
-           yyerror ("parse error; also virtual memory exhausted");
+           yyerror ("syntax error; also virtual memory exhausted");
        }
       else
        }
       else
-#endif /* defined (YYERROR_VERBOSE) */
-       yyerror ("parse error");
+#endif /* YYERROR_VERBOSE */
+       yyerror ("syntax error");
     }
     }
-  goto yyerrlab1;
 
 
 
 
-/*--------------------------------------------------.
-| yyerrlab1 -- error raised explicitly by an action |
-`--------------------------------------------------*/
-yyerrlab1:
+
   if (yyerrstatus == 3)
     {
       /* If just tried and failed to reuse lookahead token after an
         error, discard it.  */
 
   if (yyerrstatus == 3)
     {
       /* If just tried and failed to reuse lookahead token after an
         error, discard it.  */
 
-      /* return failure if at end of input */
+      /* Return failure if at end of input.  */
       if (yychar == YYEOF)
       if (yychar == YYEOF)
-       YYABORT;
-      YYDPRINTF ((stderr, "Discarding token %d (%s).\n",
-                 yychar, yytname[yychar1]));
+        {
+         /* Pop the error token.  */
+          YYPOPSTACK;
+         /* Pop the rest of the stack.  */
+         while (yyss < yyssp)
+           {
+             YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
+             yydestruct (yystos[*yyssp], yyvsp);
+             YYPOPSTACK;
+           }
+         YYABORT;
+        }
+
+      YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
+      yydestruct (yytoken, &yylval);
       yychar = YYEMPTY;
       yychar = YYEMPTY;
+
     }
 
   /* Else will try to reuse lookahead token after shifting the error
      token.  */
     }
 
   /* Else will try to reuse lookahead token after shifting the error
      token.  */
-
-  yyerrstatus = 3;             /* Each real token shifted decrements this */
-
-  goto yyerrhandle;
-
-
-/*-------------------------------------------------------------------.
-| yyerrdefault -- current state does not do anything special for the |
-| error token.                                                       |
-`-------------------------------------------------------------------*/
-yyerrdefault:
-#if 0
-  /* This is wrong; only states that explicitly want error tokens
-     should shift them.  */
-
-  /* If its default is to accept any token, ok.  Otherwise pop it.  */
-  yyn = yydefact[yystate];
-  if (yyn)
-    goto yydefault;
-#endif
+  goto yyerrlab1;
 
 
 
 
-/*---------------------------------------------------------------.
-| yyerrpop -- pop the current state because it cannot handle the |
-| error token                                                    |
-`---------------------------------------------------------------*/
-yyerrpop:
-  if (yyssp == yyss)
-    YYABORT;
-  yyvsp--;
-  yystate = *--yyssp;
-#if YYLSP_NEEDED
-  yylsp--;
-#endif
+/*----------------------------------------------------.
+| yyerrlab1 -- error raised explicitly by an action.  |
+`----------------------------------------------------*/
+yyerrlab1:
+  yyerrstatus = 3;     /* Each real token shifted decrements this.  */
 
 
-#if YYDEBUG
-  if (yydebug)
+  for (;;)
     {
     {
-      short *yyssp1 = yyss - 1;
-      YYFPRINTF (stderr, "Error: state stack now");
-      while (yyssp1 != yyssp)
-       YYFPRINTF (stderr, " %d", *++yyssp1);
-      YYFPRINTF (stderr, "\n");
-    }
-#endif
+      yyn = yypact[yystate];
+      if (yyn != YYPACT_NINF)
+       {
+         yyn += YYTERROR;
+         if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
+           {
+             yyn = yytable[yyn];
+             if (0 < yyn)
+               break;
+           }
+       }
 
 
-/*--------------.
-| yyerrhandle.  |
-`--------------*/
-yyerrhandle:
-  yyn = yypact[yystate];
-  if (yyn == YYFLAG)
-    goto yyerrdefault;
+      /* Pop the current state because it cannot handle the error token.  */
+      if (yyssp == yyss)
+       YYABORT;
 
 
-  yyn += YYTERROR;
-  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
-    goto yyerrdefault;
+      YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
+      yydestruct (yystos[yystate], yyvsp);
+      yyvsp--;
+      yystate = *--yyssp;
 
 
-  yyn = yytable[yyn];
-  if (yyn < 0)
-    {
-      if (yyn == YYFLAG)
-       goto yyerrpop;
-      yyn = -yyn;
-      goto yyreduce;
+      YY_STACK_PRINT (yyss, yyssp);
     }
     }
-  else if (yyn == 0)
-    goto yyerrpop;
 
   if (yyn == YYFINAL)
     YYACCEPT;
 
   if (yyn == YYFINAL)
     YYACCEPT;
@@ -3673,9 +4688,7 @@ yyerrhandle:
   YYDPRINTF ((stderr, "Shifting error token, "));
 
   *++yyvsp = yylval;
   YYDPRINTF ((stderr, "Shifting error token, "));
 
   *++yyvsp = yylval;
-#if YYLSP_NEEDED
-  *++yylsp = yylloc;
-#endif
+
 
   yystate = yyn;
   goto yynewstate;
 
   yystate = yyn;
   goto yynewstate;
@@ -3695,13 +4708,15 @@ yyabortlab:
   yyresult = 1;
   goto yyreturn;
 
   yyresult = 1;
   goto yyreturn;
 
-/*---------------------------------------------.
-| yyoverflowab -- parser overflow comes here.  |
-`---------------------------------------------*/
+#ifndef yyoverflow
+/*----------------------------------------------.
+| yyoverflowlab -- parser overflow comes here.  |
+`----------------------------------------------*/
 yyoverflowlab:
   yyerror ("parser stack overflow");
   yyresult = 2;
   /* Fall through.  */
 yyoverflowlab:
   yyerror ("parser stack overflow");
   yyresult = 2;
   /* Fall through.  */
+#endif
 
 yyreturn:
 #ifndef yyoverflow
 
 yyreturn:
 #ifndef yyoverflow
@@ -3712,6 +4727,9 @@ yyreturn:
 }
 
 
 }
 
 
+
+
+
 # include "bison.reset"
 
 /*
 # include "bison.reset"
 
 /*
@@ -3750,6 +4768,7 @@ static void yyprint (FILE *f, int t, YYSTYPE value)
 
 
 
 
 
 
+
 /*
 ** Resets all flags in bison.head
 */
 /*
 ** Resets all flags in bison.head
 */
index d1570c0c9956516e2c4a52511399ca92ef48a306..adb9510bd535392217c26440bcbd3e9608929b8e 100644 (file)
@@ -200,9 +200,9 @@ static /*@only@*/ constraintExpr getForTimes (/*@notnull@*/ exprNode forPred, /*
   ltCon =  getLessThanConstraints (test->trueEnsuresConstraints);
   incCon = getIncConstraints (inc->ensuresConstraints);
   
   ltCon =  getLessThanConstraints (test->trueEnsuresConstraints);
   incCon = getIncConstraints (inc->ensuresConstraints);
   
-  DPRINTF (( message ("getForTimes: ltCon: %s from %s", constraintList_print (ltCon), constraintList_print (test->trueEnsuresConstraints) ) ));
+  DPRINTF (( message ("getForTimes: ltCon: %s from %s", constraintList_unparse (ltCon), constraintList_unparse (test->trueEnsuresConstraints) ) ));
   
   
-  DPRINTF (( message ("getForTimes: incCon: %s from %s", constraintList_print (incCon), constraintList_print (inc->ensuresConstraints) ) ));
+  DPRINTF (( message ("getForTimes: incCon: %s from %s", constraintList_unparse (incCon), constraintList_unparse (inc->ensuresConstraints) ) ));
    
   constraintList_elements (ltCon, el) 
     {
    
   constraintList_elements (ltCon, el) 
     {
index 67c2e99df9c9ac53b137d8836d97bd52c9953ce7..bb5729efe5c76a88c565ad0c5ab0f7297a6df024 100644 (file)
 
 /* < end of bison.head > */
 
 
 /* < end of bison.head > */
 
-/* A Bison parser, made from mtgrammar.y
-   by GNU bison 1.35.  */
+/* A Bison parser, made by GNU Bison 1.875a.  */
 
 
-#define YYBISON 1  /* Identify Bison output.  */
+/* Skeleton parser for Yacc-like parsing with Bison,
+   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
 
 
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+/* As a special exception, when this file is copied by Bison into a
+   Bison output file, you may use that output file without restriction.
+   This special exception was added by the Free Software Foundation
+   in version 1.24 of Bison.  */
+
+/* Written by Richard Stallman by simplifying the original so called
+   ``semantic'' parser.  */
+
+/* All symbols defined below should begin with yy or YY, to avoid
+   infringing on user name space.  This should be done even for local
+   variables, as they might otherwise be expanded by user macros.
+   There are some unavoidable exceptions within include files to
+   define necessary library symbols; they are noted "INFRINGES ON
+   USER NAME SPACE" below.  */
+
+/* Identify Bison output.  */
+#define YYBISON 1
+
+/* Skeleton name.  */
+#define YYSKELETON_NAME "yacc.c"
+
+/* Pure parsers.  */
+#define YYPURE 1
+
+/* Using locations.  */
+#define YYLSP_NEEDED 0
+
+/* If NAME_PREFIX is specified substitute the variables and functions
+   names.  */
 #define yyparse mtparse
 #define yyparse mtparse
-#define yylex mtlex
+#define yylex   mtlex
 #define yyerror mterror
 #define yyerror mterror
-#define yylval mtlval
-#define yychar mtchar
+#define yylval  mtlval
+#define yychar  mtchar
 #define yydebug mtdebug
 #define yynerrs mtnerrs
 #define yydebug mtdebug
 #define yynerrs mtnerrs
-# define       MT_BADTOK       257
-# define       MT_END  258
-# define       MT_STATE        259
-# define       MT_GLOBAL       260
-# define       MT_CONTEXT      261
-# define       MT_ONEOF        262
-# define       MT_DEFAULTS     263
-# define       MT_DEFAULT      264
-# define       MT_REFERENCE    265
-# define       MT_PARAMETER    266
-# define       MT_RESULT       267
-# define       MT_CLAUSE       268
-# define       MT_LITERAL      269
-# define       MT_NULL 270
-# define       MT_ANNOTATIONS  271
-# define       MT_ARROW        272
-# define       MT_MERGE        273
-# define       MT_TRANSFERS    274
-# define       MT_PRECONDITIONS        275
-# define       MT_POSTCONDITIONS       276
-# define       MT_LOSEREFERENCE        277
-# define       MT_AS   278
-# define       MT_ERROR        279
-# define       MT_PLUS 280
-# define       MT_STAR 281
-# define       MT_BAR  282
-# define       MT_LPAREN       283
-# define       MT_RPAREN       284
-# define       MT_LBRACKET     285
-# define       MT_RBRACKET     286
-# define       MT_LBRACE       287
-# define       MT_RBRACE       288
-# define       MT_COMMA        289
-# define       MT_CHAR 290
-# define       MT_INT  291
-# define       MT_FLOAT        292
-# define       MT_DOUBLE       293
-# define       MT_VOID 294
-# define       MT_ANYTYPE      295
-# define       MT_INTEGRALTYPE 296
-# define       MT_UNSIGNEDINTEGRALTYPE 297
-# define       MT_SIGNEDINTEGRALTYPE   298
-# define       MT_CONST        299
-# define       MT_VOLATILE     300
-# define       MT_RESTRICT     301
-# define       MT_STRINGLIT    302
-# define       MT_IDENT        303
+
+
+/* Tokens.  */
+#ifndef YYTOKENTYPE
+# define YYTOKENTYPE
+   /* Put the tokens into the symbol table, so that GDB and other debuggers
+      know about them.  */
+   enum yytokentype {
+     MT_BADTOK = 258,
+     MT_END = 259,
+     MT_STATE = 260,
+     MT_GLOBAL = 261,
+     MT_CONTEXT = 262,
+     MT_ONEOF = 263,
+     MT_DEFAULTS = 264,
+     MT_DEFAULT = 265,
+     MT_REFERENCE = 266,
+     MT_PARAMETER = 267,
+     MT_RESULT = 268,
+     MT_CLAUSE = 269,
+     MT_LITERAL = 270,
+     MT_NULL = 271,
+     MT_ANNOTATIONS = 272,
+     MT_ARROW = 273,
+     MT_MERGE = 274,
+     MT_TRANSFERS = 275,
+     MT_PRECONDITIONS = 276,
+     MT_POSTCONDITIONS = 277,
+     MT_LOSEREFERENCE = 278,
+     MT_AS = 279,
+     MT_ERROR = 280,
+     MT_PLUS = 281,
+     MT_STAR = 282,
+     MT_BAR = 283,
+     MT_LPAREN = 284,
+     MT_RPAREN = 285,
+     MT_LBRACKET = 286,
+     MT_RBRACKET = 287,
+     MT_LBRACE = 288,
+     MT_RBRACE = 289,
+     MT_COMMA = 290,
+     MT_CHAR = 291,
+     MT_INT = 292,
+     MT_FLOAT = 293,
+     MT_DOUBLE = 294,
+     MT_VOID = 295,
+     MT_ANYTYPE = 296,
+     MT_INTEGRALTYPE = 297,
+     MT_UNSIGNEDINTEGRALTYPE = 298,
+     MT_SIGNEDINTEGRALTYPE = 299,
+     MT_CONST = 300,
+     MT_VOLATILE = 301,
+     MT_RESTRICT = 302,
+     MT_STRINGLIT = 303,
+     MT_IDENT = 304
+   };
+#endif
+#define MT_BADTOK 258
+#define MT_END 259
+#define MT_STATE 260
+#define MT_GLOBAL 261
+#define MT_CONTEXT 262
+#define MT_ONEOF 263
+#define MT_DEFAULTS 264
+#define MT_DEFAULT 265
+#define MT_REFERENCE 266
+#define MT_PARAMETER 267
+#define MT_RESULT 268
+#define MT_CLAUSE 269
+#define MT_LITERAL 270
+#define MT_NULL 271
+#define MT_ANNOTATIONS 272
+#define MT_ARROW 273
+#define MT_MERGE 274
+#define MT_TRANSFERS 275
+#define MT_PRECONDITIONS 276
+#define MT_POSTCONDITIONS 277
+#define MT_LOSEREFERENCE 278
+#define MT_AS 279
+#define MT_ERROR 280
+#define MT_PLUS 281
+#define MT_STAR 282
+#define MT_BAR 283
+#define MT_LPAREN 284
+#define MT_RPAREN 285
+#define MT_LBRACKET 286
+#define MT_RBRACKET 287
+#define MT_LBRACE 288
+#define MT_RBRACE 289
+#define MT_COMMA 290
+#define MT_CHAR 291
+#define MT_INT 292
+#define MT_FLOAT 293
+#define MT_DOUBLE 294
+#define MT_VOID 295
+#define MT_ANYTYPE 296
+#define MT_INTEGRALTYPE 297
+#define MT_UNSIGNEDINTEGRALTYPE 298
+#define MT_SIGNEDINTEGRALTYPE 299
+#define MT_CONST 300
+#define MT_VOLATILE 301
+#define MT_RESTRICT 302
+#define MT_STRINGLIT 303
+#define MT_IDENT 304
+
+
+
+
+/* Copy the first part of user declarations.  */
 
 
 
 
 
 
@@ -143,8 +249,23 @@ static void yyprint (/*FILE *p_file, int p_type, YYSTYPE p_value */);
 # include "bison.head"
 
 
 # include "bison.head"
 
 
-#ifndef YYSTYPE
-typedef union {
+
+/* Enabling traces.  */
+#ifndef YYDEBUG
+# define YYDEBUG 1
+#endif
+
+/* Enabling verbose error messages.  */
+#ifdef YYERROR_VERBOSE
+# undef YYERROR_VERBOSE
+# define YYERROR_VERBOSE 1
+#else
+# define YYERROR_VERBOSE 0
+#endif
+
+#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
+
+typedef union YYSTYPE {
   mttok tok; 
   mtDeclarationNode mtdecl;
   mtDeclarationPiece mtpiece;
   mttok tok; 
   mtDeclarationNode mtdecl;
   mtDeclarationPiece mtpiece;
@@ -171,25 +292,139 @@ typedef union {
   /*@only@*/ qtype qtyp;
   qual qual;
   qualList quals;
   /*@only@*/ qtype qtyp;
   qual qual;
   qualList quals;
-} yystype;
-# define YYSTYPE yystype
+} YYSTYPE;
+/* Line 191 of yacc.c.  */
+
+# define yystype YYSTYPE /* obsolescent; will be withdrawn */
+# define YYSTYPE_IS_DECLARED 1
 # define YYSTYPE_IS_TRIVIAL 1
 #endif
 # define YYSTYPE_IS_TRIVIAL 1
 #endif
-#ifndef YYDEBUG
-# define YYDEBUG 1
-#endif
 
 
 
 
 
 
-#define        YYFINAL         136
-#define        YYFLAG          -32768
-#define        YYNTBASE        50
+/* Copy the second part of user declarations.  */
+
+
+/* Line 214 of yacc.c.  */
+
 
 
-/* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */
-#define YYTRANSLATE(x) ((unsigned)(x) <= 303 ? yytranslate[x] : 93)
+#if ! defined (yyoverflow) || YYERROR_VERBOSE
+
+/* The parser invokes alloca or malloc; define the necessary symbols.  */
+
+# if YYSTACK_USE_ALLOCA
+#  define YYSTACK_ALLOC alloca
+# else
+#  ifndef YYSTACK_USE_ALLOCA
+#   if defined (alloca) || defined (_ALLOCA_H)
+#    define YYSTACK_ALLOC alloca
+#   else
+#    ifdef __GNUC__
+#     define YYSTACK_ALLOC __builtin_alloca
+#    endif
+#   endif
+#  endif
+# endif
 
 
-/* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */
-static const char yytranslate[] =
+# ifdef YYSTACK_ALLOC
+   /* Pacify GCC's `empty if-body' warning. */
+#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
+# else
+#  if defined (__STDC__) || defined (__cplusplus)
+#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
+#   define YYSIZE_T size_t
+#  endif
+#  define YYSTACK_ALLOC malloc
+#  define YYSTACK_FREE free
+# endif
+#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
+
+
+#if (! defined (yyoverflow) \
+     && (! defined (__cplusplus) \
+        || (YYSTYPE_IS_TRIVIAL)))
+
+/* A type that is properly aligned for any stack member.  */
+union yyalloc
+{
+  short yyss;
+  YYSTYPE yyvs;
+  };
+
+/* The size of the maximum gap between one aligned stack and the next.  */
+# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
+
+/* The size of an array large to enough to hold all stacks, each with
+   N elements.  */
+# define YYSTACK_BYTES(N) \
+     ((N) * (sizeof (short) + sizeof (YYSTYPE))                                \
+      + YYSTACK_GAP_MAXIMUM)
+
+/* Copy COUNT objects from FROM to TO.  The source and destination do
+   not overlap.  */
+# ifndef YYCOPY
+#  if 1 < __GNUC__
+#   define YYCOPY(To, From, Count) \
+      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
+#  else
+#   define YYCOPY(To, From, Count)             \
+      do                                       \
+       {                                       \
+         register YYSIZE_T yyi;                \
+         for (yyi = 0; yyi < (Count); yyi++)   \
+           (To)[yyi] = (From)[yyi];            \
+       }                                       \
+      while (0)
+#  endif
+# endif
+
+/* Relocate STACK from its old location to the new one.  The
+   local variables YYSIZE and YYSTACKSIZE give the old and new number of
+   elements in the stack, and YYPTR gives the new location of the
+   stack.  Advance YYPTR to a properly aligned location for the next
+   stack.  */
+# define YYSTACK_RELOCATE(Stack)                                       \
+    do                                                                 \
+      {                                                                        \
+       YYSIZE_T yynewbytes;                                            \
+       YYCOPY (&yyptr->Stack, Stack, yysize);                          \
+       Stack = &yyptr->Stack;                                          \
+       yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
+       yyptr += yynewbytes / sizeof (*yyptr);                          \
+      }                                                                        \
+    while (0)
+
+#endif
+
+#if defined (__STDC__) || defined (__cplusplus)
+   typedef signed char yysigned_char;
+#else
+   typedef short yysigned_char;
+#endif
+
+/* YYFINAL -- State number of the termination state. */
+#define YYFINAL  8
+/* YYLAST -- Last index in YYTABLE.  */
+#define YYLAST   114
+
+/* YYNTOKENS -- Number of terminals. */
+#define YYNTOKENS  50
+/* YYNNTS -- Number of nonterminals. */
+#define YYNNTS  44
+/* YYNRULES -- Number of rules. */
+#define YYNRULES  94
+/* YYNRULES -- Number of states. */
+#define YYNSTATES  136
+
+/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
+#define YYUNDEFTOK  2
+#define YYMAXUTOK   304
+
+#define YYTRANSLATE(YYX)                                               \
+  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
+
+/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
+static const unsigned char yytranslate[] =
 {
        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 {
        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
@@ -216,83 +451,83 @@ static const char yytranslate[] =
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     1,     3,     4,     5,
-       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
-      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
-      26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
-      36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
-      46,    47,    48,    49
+       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
+       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
+      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
+      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
+      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
+      45,    46,    47,    48,    49
 };
 
 #if YYDEBUG
 };
 
 #if YYDEBUG
-static const short yyprhs[] =
+/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
+   YYRHS.  */
+static const unsigned char yyprhs[] =
 {
 {
-       0,     0,     1,     3,     7,    12,    15,    16,    19,    21,
-      23,    25,    27,    29,    31,    33,    35,    37,    39,    42,
-      43,    45,    48,    51,    54,    57,    60,    63,    64,    66,
-      68,    71,    73,    77,    80,    81,    83,    85,    87,    90,
-      92,    95,    98,   102,   104,   106,   108,   110,   113,   117,
-     120,   124,   126,   128,   130,   132,   134,   136,   138,   140,
-     142,   144,   146,   149,   151,   155,   158,   161,   165,   170,
-     173,   175,   178,   183,   186,   188,   191,   197,   199,   201,
-     204,   207,   210,   213,   215,   218,   222,   224,   227,   233,
-     235,   237,   239,   242
+       0,     0,     3,     4,     6,    10,    15,    18,    19,    22,
+      24,    26,    28,    30,    32,    34,    36,    38,    40,    42,
+      45,    46,    48,    51,    54,    57,    60,    63,    66,    67,
+      69,    71,    74,    76,    80,    83,    84,    86,    88,    90,
+      93,    95,    98,   101,   105,   107,   109,   111,   113,   116,
+     120,   123,   127,   129,   131,   133,   135,   137,   139,   141,
+     143,   145,   147,   149,   152,   154,   158,   161,   164,   168,
+     173,   176,   178,   181,   186,   189,   191,   194,   200,   202,
+     204,   207,   210,   213,   216,   218,   221,   225,   227,   230,
+     236,   238,   240,   242,   245
 };
 };
-static const short yyrhs[] =
+
+/* YYRHS -- A `-1'-separated list of the rules' RHS. */
+static const yysigned_char yyrhs[] =
 {
 {
-      -1,    51,     0,     5,    52,     4,     0,     6,     5,    52,
-       4,     0,    49,    53,     0,     0,    54,    53,     0,    55,
-       0,    70,     0,    73,     0,    72,     0,    75,     0,    78,
-       0,    84,     0,    82,     0,    83,     0,    85,     0,     7,
-      57,     0,     0,    57,     0,    12,    58,     0,    11,    58,
-       0,    13,    58,     0,    14,    58,     0,    15,    58,     0,
-      16,    58,     0,     0,    59,     0,    60,     0,    60,    63,
-       0,    61,     0,    60,    28,    59,     0,    68,    62,     0,
-       0,    60,     0,    64,     0,    67,     0,    64,    67,     0,
-      27,     0,    27,    66,     0,    27,    64,     0,    27,    66,
-      64,     0,    45,     0,    46,     0,    47,     0,    65,     0,
-      66,    65,     0,    29,    63,    30,     0,    31,    32,     0,
-      67,    31,    32,     0,    36,     0,    37,     0,    38,     0,
-      39,     0,    40,     0,    41,     0,    42,     0,    43,     0,
-      44,     0,    69,     0,    49,     0,     8,    71,     0,    49,
-       0,    49,    35,    71,     0,    10,    92,     0,     9,    74,
-       0,    57,    18,    92,     0,    57,    18,    92,    74,     0,
-      17,    76,     0,    77,     0,    77,    76,     0,    49,    56,
-      18,    92,     0,    19,    79,     0,    80,     0,    80,    79,
-       0,    81,    26,    81,    18,    90,     0,    92,     0,    27,
-       0,    21,    88,     0,    22,    88,     0,    20,    88,     0,
-      23,    86,     0,    87,     0,    87,    86,     0,    92,    18,
-      91,     0,    89,     0,    89,    88,     0,    92,    24,    92,
-      18,    90,     0,    92,     0,    91,     0,    25,     0,    25,
-      48,     0,    49,     0
+      51,     0,    -1,    -1,    52,    -1,     5,    53,     4,    -1,
+       6,     5,    53,     4,    -1,    49,    54,    -1,    -1,    55,
+      54,    -1,    56,    -1,    71,    -1,    74,    -1,    73,    -1,
+      76,    -1,    79,    -1,    85,    -1,    83,    -1,    84,    -1,
+      86,    -1,     7,    58,    -1,    -1,    58,    -1,    12,    59,
+      -1,    11,    59,    -1,    13,    59,    -1,    14,    59,    -1,
+      15,    59,    -1,    16,    59,    -1,    -1,    60,    -1,    61,
+      -1,    61,    64,    -1,    62,    -1,    61,    28,    60,    -1,
+      69,    63,    -1,    -1,    61,    -1,    65,    -1,    68,    -1,
+      65,    68,    -1,    27,    -1,    27,    67,    -1,    27,    65,
+      -1,    27,    67,    65,    -1,    45,    -1,    46,    -1,    47,
+      -1,    66,    -1,    67,    66,    -1,    29,    64,    30,    -1,
+      31,    32,    -1,    68,    31,    32,    -1,    36,    -1,    37,
+      -1,    38,    -1,    39,    -1,    40,    -1,    41,    -1,    42,
+      -1,    43,    -1,    44,    -1,    70,    -1,    49,    -1,     8,
+      72,    -1,    49,    -1,    49,    35,    72,    -1,    10,    93,
+      -1,     9,    75,    -1,    58,    18,    93,    -1,    58,    18,
+      93,    75,    -1,    17,    77,    -1,    78,    -1,    78,    77,
+      -1,    49,    57,    18,    93,    -1,    19,    80,    -1,    81,
+      -1,    81,    80,    -1,    82,    26,    82,    18,    91,    -1,
+      93,    -1,    27,    -1,    21,    89,    -1,    22,    89,    -1,
+      20,    89,    -1,    23,    87,    -1,    88,    -1,    88,    87,
+      -1,    93,    18,    92,    -1,    90,    -1,    90,    89,    -1,
+      93,    24,    93,    18,    91,    -1,    93,    -1,    92,    -1,
+      25,    -1,    25,    48,    -1,    49,    -1
 };
 
 };
 
-#endif
-
-#if YYDEBUG
-/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
-static const short yyrline[] =
+/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
+static const unsigned short yyrline[] =
 {
 {
-       0,   160,   161,   165,   167,   172,   177,   178,   183,   184,
-     185,   186,   187,   188,   189,   190,   191,   192,   196,   201,
-     202,   206,   207,   208,   209,   210,   211,   219,   220,   224,
-     225,   229,   230,   235,   239,   240,   244,   245,   246,   250,
-     251,   252,   253,   257,   258,   259,   263,   264,   268,   269,
-     270,   278,   279,   280,   281,   282,   283,   284,   285,   286,
-     287,   294,   298,   302,   303,   308,   312,   316,   318,   323,
-     327,   328,   333,   338,   342,   343,   347,   352,   353,   357,
-     361,   365,   369,   373,   374,   378,   382,   383,   387,   392,
-     393,   397,   398,   402
+       0,   160,   160,   161,   165,   167,   172,   177,   178,   183,
+     184,   185,   186,   187,   188,   189,   190,   191,   192,   196,
+     201,   202,   206,   207,   208,   209,   210,   211,   219,   220,
+     224,   225,   229,   230,   235,   239,   240,   244,   245,   246,
+     250,   251,   252,   253,   257,   258,   259,   263,   264,   268,
+     269,   270,   278,   279,   280,   281,   282,   283,   284,   285,
+     286,   287,   294,   298,   302,   303,   308,   312,   316,   318,
+     323,   327,   328,   333,   338,   342,   343,   347,   352,   353,
+     357,   361,   365,   369,   373,   374,   378,   382,   383,   387,
+     392,   393,   397,   398,   402
 };
 #endif
 
 };
 #endif
 
-
-#if (YYDEBUG) || defined YYERROR_VERBOSE
-
-/* YYTNAME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */
+#if YYDEBUG || YYERROR_VERBOSE
+/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
+   First, the terminals, then, starting at YYNTOKENS, nonterminals. */
 static const char *const yytname[] =
 {
 static const char *const yytname[] =
 {
-  "$", "error", "$undefined.", "MT_BADTOK", "MT_END", "MT_STATE", 
+  "$end", "error", "$undefined", "MT_BADTOK", "MT_END", "MT_STATE", 
   "MT_GLOBAL", "MT_CONTEXT", "MT_ONEOF", "MT_DEFAULTS", "MT_DEFAULT", 
   "MT_REFERENCE", "MT_PARAMETER", "MT_RESULT", "MT_CLAUSE", "MT_LITERAL", 
   "MT_NULL", "MT_ANNOTATIONS", "MT_ARROW", "MT_MERGE", "MT_TRANSFERS", 
   "MT_GLOBAL", "MT_CONTEXT", "MT_ONEOF", "MT_DEFAULTS", "MT_DEFAULT", 
   "MT_REFERENCE", "MT_PARAMETER", "MT_RESULT", "MT_CLAUSE", "MT_LITERAL", 
   "MT_NULL", "MT_ANNOTATIONS", "MT_ARROW", "MT_MERGE", "MT_TRANSFERS", 
@@ -302,13 +537,13 @@ static const char *const yytname[] =
   "MT_CHAR", "MT_INT", "MT_FLOAT", "MT_DOUBLE", "MT_VOID", "MT_ANYTYPE", 
   "MT_INTEGRALTYPE", "MT_UNSIGNEDINTEGRALTYPE", "MT_SIGNEDINTEGRALTYPE", 
   "MT_CONST", "MT_VOLATILE", "MT_RESTRICT", "MT_STRINGLIT", "MT_IDENT", 
   "MT_CHAR", "MT_INT", "MT_FLOAT", "MT_DOUBLE", "MT_VOID", "MT_ANYTYPE", 
   "MT_INTEGRALTYPE", "MT_UNSIGNEDINTEGRALTYPE", "MT_SIGNEDINTEGRALTYPE", 
   "MT_CONST", "MT_VOLATILE", "MT_RESTRICT", "MT_STRINGLIT", "MT_IDENT", 
-  "file", "mtsDeclaration", "declarationNode", "declarationPieces", 
-  "declarationPiece", "contextDeclaration", "optContextSelection", 
-  "contextSelection", "optType", "typeExpression", "completeType", 
-  "completeTypeAux", "optCompleteType", "abstractDecl", "pointers", 
-  "innerMods", "innerModsList", "abstractDeclBase", "typeSpecifier", 
-  "typeName", "valuesDeclaration", "valuesList", "defaultNode", 
-  "defaultsDeclaration", "defaultDeclarationList", 
+  "$accept", "file", "mtsDeclaration", "declarationNode", 
+  "declarationPieces", "declarationPiece", "contextDeclaration", 
+  "optContextSelection", "contextSelection", "optType", "typeExpression", 
+  "completeType", "completeTypeAux", "optCompleteType", "abstractDecl", 
+  "pointers", "innerMods", "innerModsList", "abstractDeclBase", 
+  "typeSpecifier", "typeName", "valuesDeclaration", "valuesList", 
+  "defaultNode", "defaultsDeclaration", "defaultDeclarationList", 
   "annotationsDeclaration", "annotationsDeclarationList", 
   "annotationDeclaration", "mergeDeclaration", "mergeClauses", 
   "mergeClause", "mergeItem", "preconditionsDeclaration", 
   "annotationsDeclaration", "annotationsDeclarationList", 
   "annotationDeclaration", "mergeDeclaration", "mergeClauses", 
   "mergeClause", "mergeItem", "preconditionsDeclaration", 
@@ -319,266 +554,167 @@ static const char *const yytname[] =
 };
 #endif
 
 };
 #endif
 
-/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
-static const short yyr1[] =
+# ifdef YYPRINT
+/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
+   token YYLEX-NUM.  */
+static const unsigned short yytoknum[] =
 {
 {
-       0,    50,    50,    51,    51,    52,    53,    53,    54,    54,
-      54,    54,    54,    54,    54,    54,    54,    54,    55,    56,
-      56,    57,    57,    57,    57,    57,    57,    58,    58,    59,
-      59,    60,    60,    61,    62,    62,    63,    63,    63,    64,
-      64,    64,    64,    65,    65,    65,    66,    66,    67,    67,
-      67,    68,    68,    68,    68,    68,    68,    68,    68,    68,
-      68,    69,    70,    71,    71,    72,    73,    74,    74,    75,
-      76,    76,    77,    78,    79,    79,    80,    81,    81,    82,
-      83,    84,    85,    86,    86,    87,    88,    88,    89,    90,
-      90,    91,    91,    92
+       0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
+     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
+     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
+     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
+     295,   296,   297,   298,   299,   300,   301,   302,   303,   304
 };
 };
+# endif
 
 
-/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
-static const short yyr2[] =
+/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
+static const unsigned char yyr1[] =
 {
 {
-       0,     0,     1,     3,     4,     2,     0,     2,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     1,     2,     0,
-       1,     2,     2,     2,     2,     2,     2,     0,     1,     1,
-       2,     1,     3,     2,     0,     1,     1,     1,     2,     1,
-       2,     2,     3,     1,     1,     1,     1,     2,     3,     2,
-       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     2,     1,     3,     2,     2,     3,     4,     2,
-       1,     2,     4,     2,     1,     2,     5,     1,     1,     2,
-       2,     2,     2,     1,     2,     3,     1,     2,     5,     1,
-       1,     1,     2,     1
+       0,    50,    51,    51,    52,    52,    53,    54,    54,    55,
+      55,    55,    55,    55,    55,    55,    55,    55,    55,    56,
+      57,    57,    58,    58,    58,    58,    58,    58,    59,    59,
+      60,    60,    61,    61,    62,    63,    63,    64,    64,    64,
+      65,    65,    65,    65,    66,    66,    66,    67,    67,    68,
+      68,    68,    69,    69,    69,    69,    69,    69,    69,    69,
+      69,    69,    70,    71,    72,    72,    73,    74,    75,    75,
+      76,    77,    77,    78,    79,    80,    80,    81,    82,    82,
+      83,    84,    85,    86,    87,    87,    88,    89,    89,    90,
+      91,    91,    92,    92,    93
 };
 
 };
 
-/* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE
-   doesn't specify something else to do.  Zero means the default is an
-   error. */
-static const short yydefact[] =
+/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
+static const unsigned char yyr2[] =
 {
 {
-       1,     0,     0,     2,     6,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     5,     6,     8,
-       9,    11,    10,    12,    13,    15,    16,    14,    17,     3,
-       0,    27,    27,    27,    27,    27,    27,    18,    63,    62,
-       0,    66,    93,    65,    19,    69,    70,    78,    73,    74,
-       0,    77,    81,    86,     0,    79,    80,    82,    83,     0,
-       7,     4,    51,    52,    53,    54,    55,    56,    57,    58,
-      59,    61,    22,    28,    29,    31,    34,    60,    21,    23,
-      24,    25,    26,     0,     0,     0,    20,    71,    75,     0,
-      87,     0,    84,     0,    39,     0,     0,     0,    30,    36,
-      37,    35,    33,    64,    67,     0,     0,     0,    91,    85,
-      43,    44,    45,    41,    46,    40,    32,     0,    49,    38,
-       0,    68,    72,     0,     0,    92,    42,    47,    48,    50,
-      76,    90,    89,    88,     0,     0,     0
+       0,     2,     0,     1,     3,     4,     2,     0,     2,     1,
+       1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
+       0,     1,     2,     2,     2,     2,     2,     2,     0,     1,
+       1,     2,     1,     3,     2,     0,     1,     1,     1,     2,
+       1,     2,     2,     3,     1,     1,     1,     1,     2,     3,
+       2,     3,     1,     1,     1,     1,     1,     1,     1,     1,
+       1,     1,     1,     2,     1,     3,     2,     2,     3,     4,
+       2,     1,     2,     4,     2,     1,     2,     5,     1,     1,
+       2,     2,     2,     2,     1,     2,     3,     1,     2,     5,
+       1,     1,     1,     2,     1
 };
 
 };
 
-static const short yydefgoto[] =
+/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
+   STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
+   means the default is an error.  */
+static const unsigned char yydefact[] =
 {
 {
-     134,     3,     5,    17,    18,    19,    85,    40,    72,    73,
-      74,    75,   102,    98,    99,   114,   115,   100,    76,    77,
-      20,    39,    21,    22,    41,    23,    45,    46,    24,    48,
-      49,    50,    25,    26,    27,    28,    57,    58,    52,    53,
-     130,   131,    54
+       2,     0,     0,     0,     3,     7,     0,     0,     1,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     6,
+       7,     9,    10,    12,    11,    13,    14,    16,    17,    15,
+      18,     4,     0,    28,    28,    28,    28,    28,    28,    19,
+      64,    63,     0,    67,    94,    66,    20,    70,    71,    79,
+      74,    75,     0,    78,    82,    87,     0,    80,    81,    83,
+      84,     0,     8,     5,    52,    53,    54,    55,    56,    57,
+      58,    59,    60,    62,    23,    29,    30,    32,    35,    61,
+      22,    24,    25,    26,    27,     0,     0,     0,    21,    72,
+      76,     0,    88,     0,    85,     0,    40,     0,     0,     0,
+      31,    37,    38,    36,    34,    65,    68,     0,     0,     0,
+      92,    86,    44,    45,    46,    42,    47,    41,    33,     0,
+      50,    39,     0,    69,    73,     0,     0,    93,    43,    48,
+      49,    51,    77,    91,    90,    89
 };
 
 };
 
-static const short yypact[] =
+/* YYDEFGOTO[NTERM-NUM]. */
+static const short yydefgoto[] =
 {
 {
-      21,   -29,    30,-32768,     2,    33,   -29,    52,    -9,    52,
-      -8,    -3,   -19,    -8,    -8,    -8,    -8,-32768,     2,-32768,
-  -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-      54,    13,    13,    13,    13,    13,    13,-32768,    24,-32768,
-      43,-32768,-32768,-32768,    52,-32768,    -3,-32768,-32768,   -19,
-      34,-32768,-32768,    -8,    46,-32768,-32768,-32768,    -8,    57,
-  -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-  -32768,-32768,-32768,-32768,    16,-32768,    13,-32768,-32768,-32768,
-  -32768,-32768,-32768,    -9,    -8,    58,-32768,-32768,-32768,   -19,
-  -32768,    -8,-32768,    47,   -14,    13,    42,    45,-32768,     5,
-      49,    50,-32768,-32768,    52,    -8,    64,    65,    36,-32768,
-  -32768,-32768,-32768,-32768,-32768,   -14,-32768,    55,-32768,    49,
-      56,-32768,-32768,   -20,   -20,-32768,-32768,-32768,-32768,-32768,
-  -32768,-32768,-32768,-32768,    86,    87,-32768
+      -1,     3,     4,     6,    19,    20,    21,    87,    42,    74,
+      75,    76,    77,   104,   100,   101,   116,   117,   102,    78,
+      79,    22,    41,    23,    24,    43,    25,    47,    48,    26,
+      50,    51,    52,    27,    28,    29,    30,    59,    60,    54,
+      55,   132,   133,    56
 };
 
 };
 
-static const short yypgoto[] =
+/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
+   STATE-NUM.  */
+#define YYPACT_NINF -90
+static const yysigned_char yypact[] =
 {
 {
-  -32768,-32768,    83,    72,-32768,-32768,-32768,    -6,   -18,    -4,
-      17,-32768,-32768,    -2,   -87,   -23,-32768,    -1,-32768,-32768,
-  -32768,    14,-32768,-32768,    -5,-32768,    59,-32768,-32768,    51,
-  -32768,     7,-32768,-32768,-32768,-32768,    44,-32768,   -11,-32768,
-     -21,     8,   -10
+      21,   -35,    10,    35,   -90,     2,    33,   -35,   -90,    52,
+      -9,    52,    11,    12,   -19,    11,    11,    11,    11,   -90,
+       2,   -90,   -90,   -90,   -90,   -90,   -90,   -90,   -90,   -90,
+     -90,   -90,    37,    13,    13,    13,    13,    13,    13,   -90,
+      23,   -90,    41,   -90,   -90,   -90,    52,   -90,    12,   -90,
+     -90,   -19,    44,   -90,   -90,    11,    48,   -90,   -90,   -90,
+      11,    57,   -90,   -90,   -90,   -90,   -90,   -90,   -90,   -90,
+     -90,   -90,   -90,   -90,   -90,   -90,   -11,   -90,    13,   -90,
+     -90,   -90,   -90,   -90,   -90,    -9,    11,    58,   -90,   -90,
+     -90,   -19,   -90,    11,   -90,    53,   -14,    13,    42,    45,
+     -90,     5,    49,    54,   -90,   -90,    52,    11,    65,    66,
+      38,   -90,   -90,   -90,   -90,   -90,   -90,   -14,   -90,    55,
+     -90,    49,    56,   -90,   -90,   -20,   -20,   -90,   -90,   -90,
+     -90,   -90,   -90,   -90,   -90,   -90
 };
 
 };
 
-
-#define        YYLAST          114
-
-
-static const short yytable[] =
+/* YYPGOTO[NTERM-NUM].  */
+static const yysigned_char yypgoto[] =
 {
 {
-      43,    37,    51,    55,    56,   108,    59,   113,    47,     7,
-       8,     9,    10,    94,    78,    79,    80,    81,    82,    11,
-       4,    12,    13,    14,    15,    16,     1,     2,   126,    42,
-      42,   110,   111,   112,    96,     6,    97,    29,    86,    51,
-      38,    42,    90,    94,    95,    96,    44,    97,    59,    62,
-      63,    64,    65,    66,    67,    68,    69,    70,    61,    83,
-      89,    84,    71,    31,    32,    33,    34,    35,    36,    94,
-      91,    96,   108,    97,   104,    93,   105,   118,    95,    51,
-     120,   107,   123,   124,   125,   128,   135,   136,   129,    30,
-      60,   116,   127,   101,   117,   122,   106,   103,   119,   121,
-      88,   109,    92,   133,     0,    87,     0,     0,     0,     0,
-       0,     0,     0,   132,   132
+     -90,   -90,   -90,    80,    69,   -90,   -90,   -90,    -8,     9,
+      -7,    14,   -90,   -90,    -5,   -89,   -26,   -90,    -4,   -90,
+     -90,   -90,    15,   -90,   -90,   -10,   -90,    46,   -90,   -90,
+      47,   -90,     8,   -90,   -90,   -90,   -90,    43,   -90,   -13,
+     -90,   -25,     7,   -12
 };
 
 };
 
-static const short yycheck[] =
+/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
+   positive, shift that token.  If negative, reduce the rule which
+   number is the opposite.  If zero, do what YYDEFACT says.
+   If YYTABLE_NINF, syntax error.  */
+#define YYTABLE_NINF -1
+static const unsigned char yytable[] =
 {
 {
-      10,     7,    12,    14,    15,    25,    16,    94,    27,     7,
-       8,     9,    10,    27,    32,    33,    34,    35,    36,    17,
-      49,    19,    20,    21,    22,    23,     5,     6,   115,    49,
-      49,    45,    46,    47,    29,     5,    31,     4,    44,    49,
-      49,    49,    53,    27,    28,    29,    49,    31,    58,    36,
-      37,    38,    39,    40,    41,    42,    43,    44,     4,    35,
-      26,    18,    49,    11,    12,    13,    14,    15,    16,    27,
-      24,    29,    25,    31,    84,    18,    18,    32,    28,    89,
-      31,    91,    18,    18,    48,    30,     0,     0,    32,     6,
-      18,    95,   115,    76,    96,   105,    89,    83,    99,   104,
-      49,    93,    58,   124,    -1,    46,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   123,   124
+      45,    39,    53,    57,    58,   110,    61,   115,    49,     9,
+      10,    11,    12,    96,     5,     7,    96,    97,    98,    13,
+      99,    14,    15,    16,    17,    18,     1,     2,   128,    44,
+      44,   112,   113,   114,    98,     8,    99,    31,    88,    53,
+      40,    63,    92,    80,    81,    82,    83,    84,    61,    64,
+      65,    66,    67,    68,    69,    70,    71,    72,    85,    86,
+      44,    46,    73,    33,    34,    35,    36,    37,    38,    96,
+      91,    98,    93,    99,   106,    95,   107,   120,   110,    53,
+     122,   109,    97,   125,   126,   130,   127,    32,   131,    62,
+     118,   129,   103,   119,    89,   124,   123,   121,    90,   108,
+     105,   135,   111,    94,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   134,   134
 };
 };
-#define YYPURE 1
-
-/* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
-
-/* Skeleton output parser for bison,
-
-   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software
-   Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
-   any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
-
-/* As a special exception, when this file is copied by Bison into a
-   Bison output file, you may use that output file without restriction.
-   This special exception was added by the Free Software Foundation
-   in version 1.24 of Bison.  */
-
-/* This is the parser code that is written into each bison parser when
-   the %semantic_parser declaration is not specified in the grammar.
-   It was written by Richard Stallman by simplifying the hairy parser
-   used when %semantic_parser is specified.  */
 
 
-/* All symbols defined below should begin with yy or YY, to avoid
-   infringing on user name space.  This should be done even for local
-   variables, as they might otherwise be expanded by user macros.
-   There are some unavoidable exceptions within include files to
-   define necessary library symbols; they are noted "INFRINGES ON
-   USER NAME SPACE" below.  */
-
-#if ! defined (yyoverflow) || defined (YYERROR_VERBOSE)
-
-/* The parser invokes alloca or malloc; define the necessary symbols.  */
-
-# if YYSTACK_USE_ALLOCA
-#  define YYSTACK_ALLOC alloca
-# else
-#  ifndef YYSTACK_USE_ALLOCA
-#   if defined (alloca) || defined (_ALLOCA_H)
-#    define YYSTACK_ALLOC alloca
-#   else
-#    ifdef __GNUC__
-#     define YYSTACK_ALLOC __builtin_alloca
-#    endif
-#   endif
-#  endif
-# endif
-
-# ifdef YYSTACK_ALLOC
-   /* Pacify GCC's `empty if-body' warning. */
-#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
-# else
-#  if defined (__STDC__) || defined (__cplusplus)
-#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-#   define YYSIZE_T size_t
-#  endif
-#  define YYSTACK_ALLOC malloc
-#  define YYSTACK_FREE free
-# endif
-#endif /* ! defined (yyoverflow) || defined (YYERROR_VERBOSE) */
-
-
-#if (! defined (yyoverflow) \
-     && (! defined (__cplusplus) \
-        || (YYLTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
-
-/* A type that is properly aligned for any stack member.  */
-union yyalloc
+static const yysigned_char yycheck[] =
 {
 {
-  short yyss;
-  YYSTYPE yyvs;
-# if YYLSP_NEEDED
-  YYLTYPE yyls;
-# endif
+      12,     9,    14,    16,    17,    25,    18,    96,    27,     7,
+       8,     9,    10,    27,    49,     5,    27,    28,    29,    17,
+      31,    19,    20,    21,    22,    23,     5,     6,   117,    49,
+      49,    45,    46,    47,    29,     0,    31,     4,    46,    51,
+      49,     4,    55,    34,    35,    36,    37,    38,    60,    36,
+      37,    38,    39,    40,    41,    42,    43,    44,    35,    18,
+      49,    49,    49,    11,    12,    13,    14,    15,    16,    27,
+      26,    29,    24,    31,    86,    18,    18,    32,    25,    91,
+      31,    93,    28,    18,    18,    30,    48,     7,    32,    20,
+      97,   117,    78,    98,    48,   107,   106,   101,    51,    91,
+      85,   126,    95,    60,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   125,   126
 };
 
 };
 
-/* The size of the maximum gap between one aligned stack and the next.  */
-# define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1)
-
-/* The size of an array large to enough to hold all stacks, each with
-   N elements.  */
-# if YYLSP_NEEDED
-#  define YYSTACK_BYTES(N) \
-     ((N) * (sizeof (short) + sizeof (YYSTYPE) + sizeof (YYLTYPE))     \
-      + 2 * YYSTACK_GAP_MAX)
-# else
-#  define YYSTACK_BYTES(N) \
-     ((N) * (sizeof (short) + sizeof (YYSTYPE))                                \
-      + YYSTACK_GAP_MAX)
-# endif
-
-/* Copy COUNT objects from FROM to TO.  The source and destination do
-   not overlap.  */
-# ifndef YYCOPY
-#  if 1 < __GNUC__
-#   define YYCOPY(To, From, Count) \
-      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
-#  else
-#   define YYCOPY(To, From, Count)             \
-      do                                       \
-       {                                       \
-         register YYSIZE_T yyi;                \
-         for (yyi = 0; yyi < (Count); yyi++)   \
-           (To)[yyi] = (From)[yyi];            \
-       }                                       \
-      while (0)
-#  endif
-# endif
-
-/* Relocate STACK from its old location to the new one.  The
-   local variables YYSIZE and YYSTACKSIZE give the old and new number of
-   elements in the stack, and YYPTR gives the new location of the
-   stack.  Advance YYPTR to a properly aligned location for the next
-   stack.  */
-# define YYSTACK_RELOCATE(Stack)                                       \
-    do                                                                 \
-      {                                                                        \
-       YYSIZE_T yynewbytes;                                            \
-       YYCOPY (&yyptr->Stack, Stack, yysize);                          \
-       Stack = &yyptr->Stack;                                          \
-       yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAX;   \
-       yyptr += yynewbytes / sizeof (*yyptr);                          \
-      }                                                                        \
-    while (0)
-
-#endif
-
+/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
+   symbol of state STATE-NUM.  */
+static const unsigned char yystos[] =
+{
+       0,     5,     6,    51,    52,    49,    53,     5,     0,     7,
+       8,     9,    10,    17,    19,    20,    21,    22,    23,    54,
+      55,    56,    71,    73,    74,    76,    79,    83,    84,    85,
+      86,     4,    53,    11,    12,    13,    14,    15,    16,    58,
+      49,    72,    58,    75,    49,    93,    49,    77,    78,    27,
+      80,    81,    82,    93,    89,    90,    93,    89,    89,    87,
+      88,    93,    54,     4,    36,    37,    38,    39,    40,    41,
+      42,    43,    44,    49,    59,    60,    61,    62,    69,    70,
+      59,    59,    59,    59,    59,    35,    18,    57,    58,    77,
+      80,    26,    89,    24,    87,    18,    27,    28,    29,    31,
+      64,    65,    68,    61,    63,    72,    93,    18,    82,    93,
+      25,    92,    45,    46,    47,    65,    66,    67,    60,    64,
+      32,    68,    31,    75,    93,    18,    18,    48,    65,    66,
+      30,    32,    91,    92,    93,    91
+};
 
 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
 # define YYSIZE_T __SIZE_TYPE__
 
 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
 # define YYSIZE_T __SIZE_TYPE__
@@ -598,29 +734,35 @@ union yyalloc
 
 #define yyerrok                (yyerrstatus = 0)
 #define yyclearin      (yychar = YYEMPTY)
 
 #define yyerrok                (yyerrstatus = 0)
 #define yyclearin      (yychar = YYEMPTY)
-#define YYEMPTY                -2
+#define YYEMPTY                (-2)
 #define YYEOF          0
 #define YYEOF          0
+
 #define YYACCEPT       goto yyacceptlab
 #define YYACCEPT       goto yyacceptlab
-#define YYABORT        goto yyabortlab
+#define YYABORT                goto yyabortlab
 #define YYERROR                goto yyerrlab1
 #define YYERROR                goto yyerrlab1
+
+
 /* Like YYERROR except do call yyerror.  This remains here temporarily
    to ease the transition to the new meaning of YYERROR, for GCC.
    Once GCC version 2 has supplanted version 1, this can go.  */
 /* Like YYERROR except do call yyerror.  This remains here temporarily
    to ease the transition to the new meaning of YYERROR, for GCC.
    Once GCC version 2 has supplanted version 1, this can go.  */
+
 #define YYFAIL         goto yyerrlab
 #define YYFAIL         goto yyerrlab
+
 #define YYRECOVERING()  (!!yyerrstatus)
 #define YYRECOVERING()  (!!yyerrstatus)
+
 #define YYBACKUP(Token, Value)                                 \
 do                                                             \
   if (yychar == YYEMPTY && yylen == 1)                         \
     {                                                          \
       yychar = (Token);                                                \
       yylval = (Value);                                                \
 #define YYBACKUP(Token, Value)                                 \
 do                                                             \
   if (yychar == YYEMPTY && yylen == 1)                         \
     {                                                          \
       yychar = (Token);                                                \
       yylval = (Value);                                                \
-      yychar1 = YYTRANSLATE (yychar);                          \
+      yytoken = YYTRANSLATE (yychar);                          \
       YYPOPSTACK;                                              \
       goto yybackup;                                           \
     }                                                          \
   else                                                         \
     {                                                          \
       YYPOPSTACK;                                              \
       goto yybackup;                                           \
     }                                                          \
   else                                                         \
     {                                                          \
-      yyerror ("syntax error: cannot back up");                        \
+      yyerror ("syntax error: cannot back up");\
       YYERROR;                                                 \
     }                                                          \
 while (0)
       YYERROR;                                                 \
     }                                                          \
 while (0)
@@ -628,41 +770,24 @@ while (0)
 #define YYTERROR       1
 #define YYERRCODE      256
 
 #define YYTERROR       1
 #define YYERRCODE      256
 
-
 /* YYLLOC_DEFAULT -- Compute the default location (before the actions
 /* YYLLOC_DEFAULT -- Compute the default location (before the actions
-   are run).
-
-   When YYLLOC_DEFAULT is run, CURRENT is set the location of the
-   first token.  By default, to implement support for ranges, extend
-   its range to the last symbol.  */
+   are run).  */
 
 #ifndef YYLLOC_DEFAULT
 
 #ifndef YYLLOC_DEFAULT
-# define YYLLOC_DEFAULT(Current, Rhs, N)               \
-   Current.last_line   = Rhs[N].last_line;     \
-   Current.last_column = Rhs[N].last_column;
+# define YYLLOC_DEFAULT(Current, Rhs, N)         \
+  Current.first_line   = Rhs[1].first_line;      \
+  Current.first_column = Rhs[1].first_column;    \
+  Current.last_line    = Rhs[N].last_line;       \
+  Current.last_column  = Rhs[N].last_column;
 #endif
 
 #endif
 
-
 /* YYLEX -- calling `yylex' with the right arguments.  */
 
 /* YYLEX -- calling `yylex' with the right arguments.  */
 
-#if YYPURE
-# if YYLSP_NEEDED
-#  ifdef YYLEX_PARAM
-#   define YYLEX               yylex (&yylval, &yylloc, YYLEX_PARAM)
-#  else
-#   define YYLEX               yylex (&yylval, &yylloc)
-#  endif
-# else /* !YYLSP_NEEDED */
-#  ifdef YYLEX_PARAM
-#   define YYLEX               yylex (&yylval, YYLEX_PARAM)
-#  else
-#   define YYLEX               yylex (&yylval)
-#  endif
-# endif /* !YYLSP_NEEDED */
-#else /* !YYPURE */
-# define YYLEX                 yylex ()
-#endif /* !YYPURE */
-
+#ifdef YYLEX_PARAM
+# define YYLEX yylex (&yylval, YYLEX_PARAM)
+#else
+# define YYLEX yylex (&yylval)
+#endif
 
 /* Enable debugging if requested.  */
 #if YYDEBUG
 
 /* Enable debugging if requested.  */
 #if YYDEBUG
@@ -677,13 +802,93 @@ do {                                              \
   if (yydebug)                                 \
     YYFPRINTF Args;                            \
 } while (0)
   if (yydebug)                                 \
     YYFPRINTF Args;                            \
 } while (0)
+
+# define YYDSYMPRINT(Args)                     \
+do {                                           \
+  if (yydebug)                                 \
+    yysymprint Args;                           \
+} while (0)
+
+# define YYDSYMPRINTF(Title, Token, Value, Location)           \
+do {                                                           \
+  if (yydebug)                                                 \
+    {                                                          \
+      YYFPRINTF (stderr, "%s ", Title);                                \
+      yysymprint (stderr,                                      \
+                  Token, Value);       \
+      YYFPRINTF (stderr, "\n");                                        \
+    }                                                          \
+} while (0)
+
+/*------------------------------------------------------------------.
+| yy_stack_print -- Print the state stack from its BOTTOM up to its |
+| TOP (cinluded).                                                   |
+`------------------------------------------------------------------*/
+
+#if defined (__STDC__) || defined (__cplusplus)
+static void
+yy_stack_print (short *bottom, short *top)
+#else
+static void
+yy_stack_print (bottom, top)
+    short *bottom;
+    short *top;
+#endif
+{
+  YYFPRINTF (stderr, "Stack now");
+  for (/* Nothing. */; bottom <= top; ++bottom)
+    YYFPRINTF (stderr, " %d", *bottom);
+  YYFPRINTF (stderr, "\n");
+}
+
+# define YY_STACK_PRINT(Bottom, Top)                           \
+do {                                                           \
+  if (yydebug)                                                 \
+    yy_stack_print ((Bottom), (Top));                          \
+} while (0)
+
+
+/*------------------------------------------------.
+| Report that the YYRULE is going to be reduced.  |
+`------------------------------------------------*/
+
+#if defined (__STDC__) || defined (__cplusplus)
+static void
+yy_reduce_print (int yyrule)
+#else
+static void
+yy_reduce_print (yyrule)
+    int yyrule;
+#endif
+{
+  int yyi;
+  unsigned int yylineno = yyrline[yyrule];
+  YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
+             yyrule - 1, yylineno);
+  /* Print the symbols being reduced, and their result.  */
+  for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
+    YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
+  YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
+}
+
+# define YY_REDUCE_PRINT(Rule)         \
+do {                                   \
+  if (yydebug)                         \
+    yy_reduce_print (Rule);            \
+} while (0)
+
 /* Nonzero means print parse trace.  It is left uninitialized so that
    multiple parsers can coexist.  */
 int yydebug;
 #else /* !YYDEBUG */
 # define YYDPRINTF(Args)
 /* Nonzero means print parse trace.  It is left uninitialized so that
    multiple parsers can coexist.  */
 int yydebug;
 #else /* !YYDEBUG */
 # define YYDPRINTF(Args)
+# define YYDSYMPRINT(Args)
+# define YYDSYMPRINTF(Title, Token, Value, Location)
+# define YY_STACK_PRINT(Bottom, Top)
+# define YY_REDUCE_PRINT(Rule)
 #endif /* !YYDEBUG */
 
 #endif /* !YYDEBUG */
 
+
 /* YYINITDEPTH -- initial size of the parser's stacks.  */
 #ifndef        YYINITDEPTH
 # define YYINITDEPTH 200
 /* YYINITDEPTH -- initial size of the parser's stacks.  */
 #ifndef        YYINITDEPTH
 # define YYINITDEPTH 200
@@ -703,8 +908,10 @@ int yydebug;
 #ifndef YYMAXDEPTH
 # define YYMAXDEPTH 10000
 #endif
 #ifndef YYMAXDEPTH
 # define YYMAXDEPTH 10000
 #endif
+
 \f
 \f
-#ifdef YYERROR_VERBOSE
+
+#if YYERROR_VERBOSE
 
 # ifndef yystrlen
 #  if defined (__GLIBC__) && defined (_STRING_H)
 
 # ifndef yystrlen
 #  if defined (__GLIBC__) && defined (_STRING_H)
@@ -754,77 +961,126 @@ yystpcpy (yydest, yysrc)
 }
 #  endif
 # endif
 }
 #  endif
 # endif
-#endif
+
+#endif /* !YYERROR_VERBOSE */
+
 \f
 
 \f
 
+#if YYDEBUG
+/*--------------------------------.
+| Print this symbol on YYOUTPUT.  |
+`--------------------------------*/
+
+#if defined (__STDC__) || defined (__cplusplus)
+static void
+yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
+#else
+static void
+yysymprint (yyoutput, yytype, yyvaluep)
+    FILE *yyoutput;
+    int yytype;
+    YYSTYPE *yyvaluep;
+#endif
+{
+  /* Pacify ``unused variable'' warnings.  */
+  (void) yyvaluep;
+
+  if (yytype < YYNTOKENS)
+    {
+      YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
+# ifdef YYPRINT
+      YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
+# endif
+    }
+  else
+    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
+
+  switch (yytype)
+    {
+      default:
+        break;
+    }
+  YYFPRINTF (yyoutput, ")");
+}
 
 
-/* The user can define YYPARSE_PARAM as the name of an argument to be passed
-   into yyparse.  The argument should have type void *.
-   It should actually point to an object.
-   Grammar actions can access the variable by casting it
-   to the proper pointer type.  */
+#endif /* ! YYDEBUG */
+/*-----------------------------------------------.
+| Release the memory associated to this symbol.  |
+`-----------------------------------------------*/
+
+#if defined (__STDC__) || defined (__cplusplus)
+static void
+yydestruct (int yytype, YYSTYPE *yyvaluep)
+#else
+static void
+yydestruct (yytype, yyvaluep)
+    int yytype;
+    YYSTYPE *yyvaluep;
+#endif
+{
+  /* Pacify ``unused variable'' warnings.  */
+  (void) yyvaluep;
+
+  switch (yytype)
+    {
+
+      default:
+        break;
+    }
+}
+\f
+
+/* Prevent warnings from -Wmissing-prototypes.  */
 
 #ifdef YYPARSE_PARAM
 # if defined (__STDC__) || defined (__cplusplus)
 
 #ifdef YYPARSE_PARAM
 # if defined (__STDC__) || defined (__cplusplus)
-#  define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
-#  define YYPARSE_PARAM_DECL
+int yyparse (void *YYPARSE_PARAM);
 # else
 # else
-#  define YYPARSE_PARAM_ARG YYPARSE_PARAM
-#  define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
+int yyparse ();
 # endif
 # endif
-#else /* !YYPARSE_PARAM */
-# define YYPARSE_PARAM_ARG
-# define YYPARSE_PARAM_DECL
-#endif /* !YYPARSE_PARAM */
-
-/* Prevent warning if -Wstrict-prototypes.  */
-#ifdef __GNUC__
-# ifdef YYPARSE_PARAM
-int yyparse (void *);
-# else
+#else /* ! YYPARSE_PARAM */
+#if defined (__STDC__) || defined (__cplusplus)
 int yyparse (void);
 int yyparse (void);
-# endif
+#else
+int yyparse ();
 #endif
 #endif
+#endif /* ! YYPARSE_PARAM */
+
 
 
-/* YY_DECL_VARIABLES -- depending whether we use a pure parser,
-   variables are global, or local to YYPARSE.  */
-
-#define YY_DECL_NON_LSP_VARIABLES                      \
-/* The lookahead symbol.  */                           \
-int yychar;                                            \
-                                                       \
-/* The semantic value of the lookahead symbol. */      \
-YYSTYPE yylval;                                                \
-                                                       \
-/* Number of parse errors so far.  */                  \
-int yynerrs;
 
 
-#if YYLSP_NEEDED
-# define YY_DECL_VARIABLES                     \
-YY_DECL_NON_LSP_VARIABLES                      \
-                                               \
-/* Location data for the lookahead symbol.  */ \
-YYLTYPE yylloc;
-#else
-# define YY_DECL_VARIABLES                     \
-YY_DECL_NON_LSP_VARIABLES
-#endif
 
 
 
 
-/* If nonreentrant, generate the variables here. */
 
 
-#if !YYPURE
-YY_DECL_VARIABLES
-#endif  /* !YYPURE */
+/*----------.
+| yyparse.  |
+`----------*/
 
 
+#ifdef YYPARSE_PARAM
+# if defined (__STDC__) || defined (__cplusplus)
+int yyparse (void *YYPARSE_PARAM)
+# else
+int yyparse (YYPARSE_PARAM)
+  void *YYPARSE_PARAM;
+# endif
+#else /* ! YYPARSE_PARAM */
+#if defined (__STDC__) || defined (__cplusplus)
+int
+yyparse (void)
+#else
 int
 int
-yyparse (YYPARSE_PARAM_ARG)
-     YYPARSE_PARAM_DECL
+yyparse ()
+
+#endif
+#endif
 {
 {
-  /* If reentrant, generate the variables here. */
-#if YYPURE
-  YY_DECL_VARIABLES
-#endif  /* !YYPURE */
+  /* The lookahead symbol.  */
+int yychar;
+
+/* The semantic value of the lookahead symbol.  */
+YYSTYPE yylval;
+
+/* Number of syntax errors so far.  */
+int yynerrs;
 
   register int yystate;
   register int yyn;
 
   register int yystate;
   register int yyn;
@@ -832,7 +1088,7 @@ yyparse (YYPARSE_PARAM_ARG)
   /* Number of tokens to shift before error messages enabled.  */
   int yyerrstatus;
   /* Lookahead token as an internal (translated) token number.  */
   /* Number of tokens to shift before error messages enabled.  */
   int yyerrstatus;
   /* Lookahead token as an internal (translated) token number.  */
-  int yychar1 = 0;
+  int yytoken = 0;
 
   /* Three stacks and their tools:
      `yyss': related to states,
 
   /* Three stacks and their tools:
      `yyss': related to states,
@@ -842,7 +1098,7 @@ yyparse (YYPARSE_PARAM_ARG)
      Refer to the stacks thru separate pointers, to allow yyoverflow
      to reallocate them elsewhere.  */
 
      Refer to the stacks thru separate pointers, to allow yyoverflow
      to reallocate them elsewhere.  */
 
-  /* The state stack. */
+  /* The state stack.  */
   short        yyssa[YYINITDEPTH];
   short *yyss = yyssa;
   register short *yyssp;
   short        yyssa[YYINITDEPTH];
   short *yyss = yyssa;
   register short *yyssp;
@@ -852,31 +1108,19 @@ yyparse (YYPARSE_PARAM_ARG)
   YYSTYPE *yyvs = yyvsa;
   register YYSTYPE *yyvsp;
 
   YYSTYPE *yyvs = yyvsa;
   register YYSTYPE *yyvsp;
 
-#if YYLSP_NEEDED
-  /* The location stack.  */
-  YYLTYPE yylsa[YYINITDEPTH];
-  YYLTYPE *yyls = yylsa;
-  YYLTYPE *yylsp;
-#endif
 
 
-#if YYLSP_NEEDED
-# define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--)
-#else
-# define YYPOPSTACK   (yyvsp--, yyssp--)
-#endif
 
 
-  YYSIZE_T yystacksize = YYINITDEPTH;
+#define YYPOPSTACK   (yyvsp--, yyssp--)
 
 
+  YYSIZE_T yystacksize = YYINITDEPTH;
 
   /* The variables used to return semantic value and location from the
      action routines.  */
   YYSTYPE yyval;
 
   /* The variables used to return semantic value and location from the
      action routines.  */
   YYSTYPE yyval;
-#if YYLSP_NEEDED
-  YYLTYPE yyloc;
-#endif
+
 
   /* When reducing, the number of symbols on the RHS of the reduced
 
   /* When reducing, the number of symbols on the RHS of the reduced
-     rule. */
+     rule.  */
   int yylen;
 
   YYDPRINTF ((stderr, "Starting parse\n"));
   int yylen;
 
   YYDPRINTF ((stderr, "Starting parse\n"));
@@ -893,9 +1137,7 @@ yyparse (YYPARSE_PARAM_ARG)
 
   yyssp = yyss;
   yyvsp = yyvs;
 
   yyssp = yyss;
   yyvsp = yyvs;
-#if YYLSP_NEEDED
-  yylsp = yyls;
-#endif
+
   goto yysetstate;
 
 /*------------------------------------------------------------.
   goto yysetstate;
 
 /*------------------------------------------------------------.
@@ -910,7 +1152,7 @@ yyparse (YYPARSE_PARAM_ARG)
  yysetstate:
   *yyssp = yystate;
 
  yysetstate:
   *yyssp = yystate;
 
-  if (yyssp >= yyss + yystacksize - 1)
+  if (yyss + yystacksize - 1 <= yyssp)
     {
       /* Get the current used size of the three stacks, in elements.  */
       YYSIZE_T yysize = yyssp - yyss + 1;
     {
       /* Get the current used size of the three stacks, in elements.  */
       YYSIZE_T yysize = yyssp - yyss + 1;
@@ -923,24 +1165,17 @@ yyparse (YYPARSE_PARAM_ARG)
        YYSTYPE *yyvs1 = yyvs;
        short *yyss1 = yyss;
 
        YYSTYPE *yyvs1 = yyvs;
        short *yyss1 = yyss;
 
-       /* Each stack pointer address is followed by the size of the
-          data in use in that stack, in bytes.  */
-# if YYLSP_NEEDED
-       YYLTYPE *yyls1 = yyls;
-       /* This used to be a conditional around just the two extra args,
-          but that might be undefined if yyoverflow is a macro.  */
-       yyoverflow ("parser stack overflow",
-                   &yyss1, yysize * sizeof (*yyssp),
-                   &yyvs1, yysize * sizeof (*yyvsp),
-                   &yyls1, yysize * sizeof (*yylsp),
-                   &yystacksize);
-       yyls = yyls1;
-# else
+
+       /* 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 ("parser stack overflow",
                    &yyss1, yysize * sizeof (*yyssp),
                    &yyvs1, yysize * sizeof (*yyvsp),
        yyoverflow ("parser stack overflow",
                    &yyss1, yysize * sizeof (*yyssp),
                    &yyvs1, yysize * sizeof (*yyvsp),
+
                    &yystacksize);
                    &yystacksize);
-# endif
+
        yyss = yyss1;
        yyvs = yyvs1;
       }
        yyss = yyss1;
        yyvs = yyvs1;
       }
@@ -949,10 +1184,10 @@ yyparse (YYPARSE_PARAM_ARG)
       goto yyoverflowlab;
 # else
       /* Extend the stack our own way.  */
       goto yyoverflowlab;
 # else
       /* Extend the stack our own way.  */
-      if (yystacksize >= YYMAXDEPTH)
+      if (YYMAXDEPTH <= yystacksize)
        goto yyoverflowlab;
       yystacksize *= 2;
        goto yyoverflowlab;
       yystacksize *= 2;
-      if (yystacksize > YYMAXDEPTH)
+      if (YYMAXDEPTH < yystacksize)
        yystacksize = YYMAXDEPTH;
 
       {
        yystacksize = YYMAXDEPTH;
 
       {
@@ -963,10 +1198,8 @@ yyparse (YYPARSE_PARAM_ARG)
          goto yyoverflowlab;
        YYSTACK_RELOCATE (yyss);
        YYSTACK_RELOCATE (yyvs);
          goto yyoverflowlab;
        YYSTACK_RELOCATE (yyss);
        YYSTACK_RELOCATE (yyvs);
-# if YYLSP_NEEDED
-       YYSTACK_RELOCATE (yyls);
-# endif
-# undef YYSTACK_RELOCATE
+
+#  undef YYSTACK_RELOCATE
        if (yyss1 != yyssa)
          YYSTACK_FREE (yyss1);
       }
        if (yyss1 != yyssa)
          YYSTACK_FREE (yyss1);
       }
@@ -975,14 +1208,12 @@ yyparse (YYPARSE_PARAM_ARG)
 
       yyssp = yyss + yysize - 1;
       yyvsp = yyvs + yysize - 1;
 
       yyssp = yyss + yysize - 1;
       yyvsp = yyvs + yysize - 1;
-#if YYLSP_NEEDED
-      yylsp = yyls + yysize - 1;
-#endif
+
 
       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
                  (unsigned long int) yystacksize));
 
 
       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
                  (unsigned long int) yystacksize));
 
-      if (yyssp >= yyss + yystacksize - 1)
+      if (yyss + yystacksize - 1 <= yyssp)
        YYABORT;
     }
 
        YYABORT;
     }
 
@@ -990,7 +1221,6 @@ yyparse (YYPARSE_PARAM_ARG)
 
   goto yybackup;
 
 
   goto yybackup;
 
-
 /*-----------.
 | yybackup.  |
 `-----------*/
 /*-----------.
 | yybackup.  |
 `-----------*/
@@ -1003,88 +1233,55 @@ yybackup:
   /* First try to decide what to do without reference to lookahead token.  */
 
   yyn = yypact[yystate];
   /* First try to decide what to do without reference to lookahead token.  */
 
   yyn = yypact[yystate];
-  if (yyn == YYFLAG)
+  if (yyn == YYPACT_NINF)
     goto yydefault;
 
   /* Not known => get a lookahead token if don't already have one.  */
 
     goto yydefault;
 
   /* Not known => get a lookahead token if don't already have one.  */
 
-  /* yychar is either YYEMPTY or YYEOF
-     or a valid token in external form.  */
-
+  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
   if (yychar == YYEMPTY)
     {
       YYDPRINTF ((stderr, "Reading a token: "));
       yychar = YYLEX;
     }
 
   if (yychar == YYEMPTY)
     {
       YYDPRINTF ((stderr, "Reading a token: "));
       yychar = YYLEX;
     }
 
-  /* Convert token to internal form (in yychar1) for indexing tables with */
-
-  if (yychar <= 0)             /* This means end of input. */
+  if (yychar <= YYEOF)
     {
     {
-      yychar1 = 0;
-      yychar = YYEOF;          /* Don't call YYLEX any more */
-
+      yychar = yytoken = YYEOF;
       YYDPRINTF ((stderr, "Now at end of input.\n"));
     }
   else
     {
       YYDPRINTF ((stderr, "Now at end of input.\n"));
     }
   else
     {
-      yychar1 = YYTRANSLATE (yychar);
-
-#if YYDEBUG
-     /* We have to keep this `#if YYDEBUG', since we use variables
-       which are defined only if `YYDEBUG' is set.  */
-      if (yydebug)
-       {
-         YYFPRINTF (stderr, "Next token is %d (%s",
-                    yychar, yytname[yychar1]);
-         /* Give the individual parser a way to print the precise
-            meaning of a token, for further debugging info.  */
-# ifdef YYPRINT
-         YYPRINT (stderr, yychar, yylval);
-# endif
-         YYFPRINTF (stderr, ")\n");
-       }
-#endif
+      yytoken = YYTRANSLATE (yychar);
+      YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);
     }
 
     }
 
-  yyn += yychar1;
-  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
+  /* If the proper action on seeing token YYTOKEN is to reduce or to
+     detect an error, take that action.  */
+  yyn += yytoken;
+  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
     goto yydefault;
     goto yydefault;
-
   yyn = yytable[yyn];
   yyn = yytable[yyn];
-
-  /* yyn is what to do for this token type in this state.
-     Negative => reduce, -yyn is rule number.
-     Positive => shift, yyn is new state.
-       New state is final state => don't bother to shift,
-       just return success.
-     0, or most negative number => error.  */
-
-  if (yyn < 0)
+  if (yyn <= 0)
     {
     {
-      if (yyn == YYFLAG)
+      if (yyn == 0 || yyn == YYTABLE_NINF)
        goto yyerrlab;
       yyn = -yyn;
       goto yyreduce;
     }
        goto yyerrlab;
       yyn = -yyn;
       goto yyreduce;
     }
-  else if (yyn == 0)
-    goto yyerrlab;
 
   if (yyn == YYFINAL)
     YYACCEPT;
 
   /* Shift the lookahead token.  */
 
   if (yyn == YYFINAL)
     YYACCEPT;
 
   /* Shift the lookahead token.  */
-  YYDPRINTF ((stderr, "Shifting token %d (%s), ",
-             yychar, yytname[yychar1]));
+  YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));
 
   /* Discard the token being shifted unless it is eof.  */
   if (yychar != YYEOF)
     yychar = YYEMPTY;
 
   *++yyvsp = yylval;
 
   /* Discard the token being shifted unless it is eof.  */
   if (yychar != YYEOF)
     yychar = YYEMPTY;
 
   *++yyvsp = yylval;
-#if YYLSP_NEEDED
-  *++yylsp = yylloc;
-#endif
+
 
   /* Count tokens shifted since error; after three, turn off error
      status.  */
 
   /* Count tokens shifted since error; after three, turn off error
      status.  */
@@ -1115,328 +1312,471 @@ yyreduce:
   /* If YYLEN is nonzero, implement the default value of the action:
      `$$ = $1'.
 
   /* If YYLEN is nonzero, implement the default value of the action:
      `$$ = $1'.
 
-     Otherwise, the following line sets YYVAL to the semantic value of
-     the lookahead token.  This behavior is undocumented and Bison
+     Otherwise, the following line sets YYVAL to garbage.
+     This behavior is undocumented and Bison
      users should not rely upon it.  Assigning to YYVAL
      unconditionally makes the parser a bit smaller, and it avoids a
      GCC warning that YYVAL may be used uninitialized.  */
   yyval = yyvsp[1-yylen];
 
      users should not rely upon it.  Assigning to YYVAL
      unconditionally makes the parser a bit smaller, and it avoids a
      GCC warning that YYVAL may be used uninitialized.  */
   yyval = yyvsp[1-yylen];
 
-#if YYLSP_NEEDED
-  /* Similarly for the default location.  Let the user run additional
-     commands if for instance locations are ranges.  */
-  yyloc = yylsp[1-yylen];
-  YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
-#endif
 
 
-#if YYDEBUG
-  /* We have to keep this `#if YYDEBUG', since we use variables which
-     are defined only if `YYDEBUG' is set.  */
-  if (yydebug)
+  YY_REDUCE_PRINT (yyn);
+  switch (yyn)
     {
     {
-      int yyi;
+        case 2:
 
 
-      YYFPRINTF (stderr, "Reducing via rule %d (line %d), ",
-                yyn, yyrline[yyn]);
+    {;}
+    break;
 
 
-      /* Print the symbols being reduced, and their result.  */
-      for (yyi = yyprhs[yyn]; yyrhs[yyi] > 0; yyi++)
-       YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]);
-      YYFPRINTF (stderr, " -> %s\n", yytname[yyr1[yyn]]);
-    }
-#endif
+  case 3:
 
 
-  switch (yyn) {
-
-case 1:
-{;
-    break;}
-case 2:
-{;
-    break;}
-case 3:
-{ mtreader_processDeclaration (yyvsp[-1].mtdecl); ;
-    break;}
-case 4:
-{ mtreader_processGlobalDeclaration (yyvsp[-1].mtdecl); ;
-    break;}
-case 5:
-{ yyval.mtdecl = mtDeclarationNode_create (yyvsp[-1].tok, yyvsp[0].mtpieces); ;
-    break;}
-case 6:
-{ yyval.mtpieces = mtDeclarationPieces_create (); ;
-    break;}
-case 7:
-{ yyval.mtpieces = mtDeclarationPieces_append (yyvsp[0].mtpieces, yyvsp[-1].mtpiece); ;
-    break;}
-case 8:
-{ yyval.mtpiece = mtDeclarationPiece_createContext (yyvsp[0].mtcontext); ;
-    break;}
-case 9:
-{ yyval.mtpiece = mtDeclarationPiece_createValues (yyvsp[0].mtvalues); ;
-    break;}
-case 10:
-{ yyval.mtpiece = mtDeclarationPiece_createDefaults (yyvsp[0].mtdefaults); ;
-    break;}
-case 11:
-{ yyval.mtpiece = mtDeclarationPiece_createValueDefault (yyvsp[0].tok); ;
-    break;}
-case 12:
-{ yyval.mtpiece = mtDeclarationPiece_createAnnotations (yyvsp[0].mtannotations); ;
-    break;}
-case 13:
-{ yyval.mtpiece = mtDeclarationPiece_createMerge (yyvsp[0].mtmerge); ;
-    break;}
-case 14:
-{ yyval.mtpiece = mtDeclarationPiece_createTransfers (yyvsp[0].mttransferclauselist); ;
-    break;}
-case 15:
-{ yyval.mtpiece = mtDeclarationPiece_createPreconditions (yyvsp[0].mttransferclauselist); ;
-    break;}
-case 16:
-{ yyval.mtpiece = mtDeclarationPiece_createPostconditions (yyvsp[0].mttransferclauselist); ;
-    break;}
-case 17:
-{ yyval.mtpiece = mtDeclarationPiece_createLosers (yyvsp[0].mtlosereferencelist); ;
-    break;}
-case 18:
-{ yyval.mtcontext = yyvsp[0].mtcontext; ;
-    break;}
-case 19:
-{ yyval.mtcontext = mtContextNode_createAny (); ;
-    break;}
-case 21:
-{ yyval.mtcontext = mtContextNode_createParameter (yyvsp[0].ctyp); ;
-    break;}
-case 22:
-{ yyval.mtcontext = mtContextNode_createReference (yyvsp[0].ctyp); ;
-    break;}
-case 23:
-{ yyval.mtcontext = mtContextNode_createResult (yyvsp[0].ctyp); ;
-    break;}
-case 24:
-{ yyval.mtcontext = mtContextNode_createClause (yyvsp[0].ctyp); ;
-    break;}
-case 25:
-{ yyval.mtcontext = mtContextNode_createLiteral (yyvsp[0].ctyp); ;
-    break;}
-case 26:
-{ yyval.mtcontext = mtContextNode_createNull (yyvsp[0].ctyp); ;
-    break;}
-case 27:
-{ yyval.ctyp = ctype_unknown; ;
-    break;}
-case 28:
-{ DPRINTF (("Type: %s", qtype_unparse (yyvsp[0].qtyp))); yyval.ctyp = qtype_getType (yyvsp[0].qtyp); ;
-    break;}
-case 30:
-{ yyval.qtyp = qtype_newBase (yyvsp[-1].qtyp, yyvsp[0].ctyp); ;
-    break;}
-case 31:
-{ yyval.qtyp = yyvsp[0].qtyp; ;
-    break;}
-case 32:
-{ yyval.qtyp = qtype_mergeAlt (yyvsp[-2].qtyp, yyvsp[0].qtyp); ;
-    break;}
-case 33:
-{ yyval.qtyp = qtype_combine (yyvsp[0].qtyp, yyvsp[-1].ctyp); ;
-    break;}
-case 34:
-{ yyval.qtyp = qtype_unknown (); ;
-    break;}
-case 35:
-{ yyval.qtyp = yyvsp[0].qtyp; ;
-    break;}
-case 36:
-{ yyval.ctyp = ctype_adjustPointers (yyvsp[0].pointers, ctype_unknown); ;
-    break;}
-case 38:
-{ yyval.ctyp = ctype_adjustPointers (yyvsp[-1].pointers, yyvsp[0].ctyp); ;
-    break;}
-case 39:
-{ yyval.pointers = pointers_createMt (yyvsp[0].tok); ;
-    break;}
-case 40:
-{ yyval.pointers = pointers_createModsMt (yyvsp[-1].tok, yyvsp[0].quals); ;
-    break;}
-case 41:
-{ yyval.pointers = pointers_extend (pointers_createMt (yyvsp[-1].tok), yyvsp[0].pointers); ;
-    break;}
-case 42:
-{ yyval.pointers = pointers_extend (pointers_createModsMt (yyvsp[-2].tok, yyvsp[-1].quals), yyvsp[0].pointers); ;
-    break;}
-case 43:
-{ yyval.qual = qual_createConst (); ;
-    break;}
-case 44:
-{ yyval.qual = qual_createVolatile (); ;
-    break;}
-case 45:
-{ yyval.qual = qual_createRestrict (); ;
-    break;}
-case 46:
-{ yyval.quals = qualList_single (yyvsp[0].qual); ;
-    break;}
-case 47:
-{ yyval.quals = qualList_add (yyvsp[-1].quals, yyvsp[0].qual); ;
-    break;}
-case 48:
-{ yyval.ctyp = ctype_expectFunction (yyvsp[-1].ctyp); ;
-    break;}
-case 49:
-{ yyval.ctyp = ctype_makeArray (ctype_unknown); ;
-    break;}
-case 50:
-{ yyval.ctyp = ctype_makeArray (yyvsp[-2].ctyp); ;
-    break;}
-case 51:
-{ yyval.ctyp = ctype_char; ;
-    break;}
-case 52:
-{ yyval.ctyp = ctype_int; ;
-    break;}
-case 53:
-{ yyval.ctyp = ctype_float; ;
-    break;}
-case 54:
-{ yyval.ctyp = ctype_double; ;
-    break;}
-case 55:
-{ yyval.ctyp = ctype_void; ;
-    break;}
-case 56:
-{ yyval.ctyp = ctype_unknown; ;
-    break;}
-case 57:
-{ yyval.ctyp = ctype_anyintegral; ;
-    break;}
-case 58:
-{ yyval.ctyp = ctype_unsignedintegral; ;
-    break;}
-case 59:
-{ yyval.ctyp = ctype_signedintegral; ;
-    break;}
-case 61:
-{ yyval.ctyp = mtscanner_lookupType (yyvsp[0].tok); ;
-    break;}
-case 62:
-{ yyval.mtvalues = mtValuesNode_create (yyvsp[0].cstringlist); ;
-    break;}
-case 63:
-{ yyval.cstringlist = cstringList_single (mttok_getText (yyvsp[0].tok)); ;
-    break;}
-case 64:
-{ yyval.cstringlist = cstringList_prepend (yyvsp[0].cstringlist, mttok_getText (yyvsp[-2].tok)); ;
-    break;}
-case 65:
-{ yyval.tok = yyvsp[0].tok; ;
-    break;}
-case 66:
-{ yyval.mtdefaults = mtDefaultsNode_create (yyvsp[-1].tok, yyvsp[0].mtdeflist); ;
-    break;}
-case 67:
-{ yyval.mtdeflist = mtDefaultsDeclList_single (mtDefaultsDecl_create (yyvsp[-2].mtcontext, yyvsp[0].tok)); ;
-    break;}
-case 68:
-{ yyval.mtdeflist = mtDefaultsDeclList_prepend (yyvsp[0].mtdeflist, mtDefaultsDecl_create (yyvsp[-3].mtcontext, yyvsp[-1].tok)); ;
-    break;}
-case 69:
-{ yyval.mtannotations = mtAnnotationsNode_create (yyvsp[0].mtannotlist); ;
-    break;}
-case 70:
-{ yyval.mtannotlist = mtAnnotationList_single (yyvsp[0].mtannotdecl); ;
-    break;}
-case 71:
-{ yyval.mtannotlist = mtAnnotationList_prepend (yyvsp[0].mtannotlist, yyvsp[-1].mtannotdecl); ;
-    break;}
-case 72:
-{ yyval.mtannotdecl = mtAnnotationDecl_create (yyvsp[-3].tok, yyvsp[-2].mtcontext, yyvsp[0].tok); ;
-    break;}
-case 73:
-{ yyval.mtmerge = mtMergeNode_create (yyvsp[0].mtmergeclauselist); ;
-    break;}
-case 74:
-{ yyval.mtmergeclauselist = mtMergeClauseList_single (yyvsp[0].mtmergeclause); ;
-    break;}
-case 75:
-{ yyval.mtmergeclauselist = mtMergeClauseList_prepend (yyvsp[0].mtmergeclauselist, yyvsp[-1].mtmergeclause); ;
-    break;}
-case 76:
-{ yyval.mtmergeclause = mtMergeClause_create (yyvsp[-4].mtmergeitem, yyvsp[-2].mtmergeitem, yyvsp[0].mttransferaction); ;
-    break;}
-case 77:
-{ yyval.mtmergeitem = mtMergeItem_createValue (yyvsp[0].tok); ;
-    break;}
-case 78:
-{ yyval.mtmergeitem = mtMergeItem_createStar (yyvsp[0].tok); ;
-    break;}
-case 79:
-{ yyval.mttransferclauselist = yyvsp[0].mttransferclauselist; ;
-    break;}
-case 80:
-{ yyval.mttransferclauselist = yyvsp[0].mttransferclauselist; ;
-    break;}
-case 81:
-{ yyval.mttransferclauselist = yyvsp[0].mttransferclauselist; ;
-    break;}
-case 82:
-{ yyval.mtlosereferencelist = yyvsp[0].mtlosereferencelist; ;
-    break;}
-case 83:
-{ yyval.mtlosereferencelist = mtLoseReferenceList_single (yyvsp[0].mtlosereference); ;
-    break;}
-case 84:
-{ yyval.mtlosereferencelist = mtLoseReferenceList_prepend (yyvsp[0].mtlosereferencelist, yyvsp[-1].mtlosereference); ;
-    break;}
-case 85:
-{ yyval.mtlosereference = mtLoseReference_create (yyvsp[-2].tok, yyvsp[0].mttransferaction); ;
-    break;}
-case 86:
-{ yyval.mttransferclauselist = mtTransferClauseList_single (yyvsp[0].mttransferclause); ;
-    break;}
-case 87:
-{ yyval.mttransferclauselist = mtTransferClauseList_prepend (yyvsp[0].mttransferclauselist, yyvsp[-1].mttransferclause); ;
-    break;}
-case 88:
-{ yyval.mttransferclause = mtTransferClause_create (yyvsp[-4].tok, yyvsp[-2].tok, yyvsp[0].mttransferaction); ;
-    break;}
-case 89:
-{ yyval.mttransferaction = mtTransferAction_createValue (yyvsp[0].tok); ;
-    break;}
-case 90:
-{ yyval.mttransferaction = yyvsp[0].mttransferaction; ;
-    break;}
-case 91:
-{ yyval.mttransferaction = mtTransferAction_createError (yyvsp[0].tok); ;
-    break;}
-case 92:
-{ yyval.mttransferaction = mtTransferAction_createErrorMessage (yyvsp[0].tok); ;
-    break;}
-}
+    {;}
+    break;
+
+  case 4:
+
+    { mtreader_processDeclaration (yyvsp[-1].mtdecl); ;}
+    break;
+
+  case 5:
+
+    { mtreader_processGlobalDeclaration (yyvsp[-1].mtdecl); ;}
+    break;
+
+  case 6:
+
+    { yyval.mtdecl = mtDeclarationNode_create (yyvsp[-1].tok, yyvsp[0].mtpieces); ;}
+    break;
+
+  case 7:
+
+    { yyval.mtpieces = mtDeclarationPieces_create (); ;}
+    break;
+
+  case 8:
+
+    { yyval.mtpieces = mtDeclarationPieces_append (yyvsp[0].mtpieces, yyvsp[-1].mtpiece); ;}
+    break;
+
+  case 9:
+
+    { yyval.mtpiece = mtDeclarationPiece_createContext (yyvsp[0].mtcontext); ;}
+    break;
+
+  case 10:
+
+    { yyval.mtpiece = mtDeclarationPiece_createValues (yyvsp[0].mtvalues); ;}
+    break;
+
+  case 11:
+
+    { yyval.mtpiece = mtDeclarationPiece_createDefaults (yyvsp[0].mtdefaults); ;}
+    break;
+
+  case 12:
+
+    { yyval.mtpiece = mtDeclarationPiece_createValueDefault (yyvsp[0].tok); ;}
+    break;
+
+  case 13:
+
+    { yyval.mtpiece = mtDeclarationPiece_createAnnotations (yyvsp[0].mtannotations); ;}
+    break;
+
+  case 14:
+
+    { yyval.mtpiece = mtDeclarationPiece_createMerge (yyvsp[0].mtmerge); ;}
+    break;
+
+  case 15:
+
+    { yyval.mtpiece = mtDeclarationPiece_createTransfers (yyvsp[0].mttransferclauselist); ;}
+    break;
+
+  case 16:
+
+    { yyval.mtpiece = mtDeclarationPiece_createPreconditions (yyvsp[0].mttransferclauselist); ;}
+    break;
+
+  case 17:
+
+    { yyval.mtpiece = mtDeclarationPiece_createPostconditions (yyvsp[0].mttransferclauselist); ;}
+    break;
+
+  case 18:
+
+    { yyval.mtpiece = mtDeclarationPiece_createLosers (yyvsp[0].mtlosereferencelist); ;}
+    break;
+
+  case 19:
+
+    { yyval.mtcontext = yyvsp[0].mtcontext; ;}
+    break;
+
+  case 20:
+
+    { yyval.mtcontext = mtContextNode_createAny (); ;}
+    break;
+
+  case 22:
+
+    { yyval.mtcontext = mtContextNode_createParameter (yyvsp[0].ctyp); ;}
+    break;
+
+  case 23:
+
+    { yyval.mtcontext = mtContextNode_createReference (yyvsp[0].ctyp); ;}
+    break;
+
+  case 24:
+
+    { yyval.mtcontext = mtContextNode_createResult (yyvsp[0].ctyp); ;}
+    break;
+
+  case 25:
+
+    { yyval.mtcontext = mtContextNode_createClause (yyvsp[0].ctyp); ;}
+    break;
+
+  case 26:
+
+    { yyval.mtcontext = mtContextNode_createLiteral (yyvsp[0].ctyp); ;}
+    break;
+
+  case 27:
+
+    { yyval.mtcontext = mtContextNode_createNull (yyvsp[0].ctyp); ;}
+    break;
+
+  case 28:
+
+    { yyval.ctyp = ctype_unknown; ;}
+    break;
+
+  case 29:
+
+    { DPRINTF (("Type: %s", qtype_unparse (yyvsp[0].qtyp))); yyval.ctyp = qtype_getType (yyvsp[0].qtyp); ;}
+    break;
+
+  case 31:
+
+    { yyval.qtyp = qtype_newBase (yyvsp[-1].qtyp, yyvsp[0].ctyp); ;}
+    break;
+
+  case 32:
+
+    { yyval.qtyp = yyvsp[0].qtyp; ;}
+    break;
+
+  case 33:
+
+    { yyval.qtyp = qtype_mergeAlt (yyvsp[-2].qtyp, yyvsp[0].qtyp); ;}
+    break;
+
+  case 34:
+
+    { yyval.qtyp = qtype_combine (yyvsp[0].qtyp, yyvsp[-1].ctyp); ;}
+    break;
+
+  case 35:
+
+    { yyval.qtyp = qtype_unknown (); ;}
+    break;
+
+  case 36:
+
+    { yyval.qtyp = yyvsp[0].qtyp; ;}
+    break;
+
+  case 37:
+
+    { yyval.ctyp = ctype_adjustPointers (yyvsp[0].pointers, ctype_unknown); ;}
+    break;
+
+  case 39:
+
+    { yyval.ctyp = ctype_adjustPointers (yyvsp[-1].pointers, yyvsp[0].ctyp); ;}
+    break;
+
+  case 40:
+
+    { yyval.pointers = pointers_createMt (yyvsp[0].tok); ;}
+    break;
+
+  case 41:
+
+    { yyval.pointers = pointers_createModsMt (yyvsp[-1].tok, yyvsp[0].quals); ;}
+    break;
+
+  case 42:
+
+    { yyval.pointers = pointers_extend (pointers_createMt (yyvsp[-1].tok), yyvsp[0].pointers); ;}
+    break;
+
+  case 43:
+
+    { yyval.pointers = pointers_extend (pointers_createModsMt (yyvsp[-2].tok, yyvsp[-1].quals), yyvsp[0].pointers); ;}
+    break;
+
+  case 44:
+
+    { yyval.qual = qual_createConst (); ;}
+    break;
+
+  case 45:
+
+    { yyval.qual = qual_createVolatile (); ;}
+    break;
+
+  case 46:
+
+    { yyval.qual = qual_createRestrict (); ;}
+    break;
+
+  case 47:
+
+    { yyval.quals = qualList_single (yyvsp[0].qual); ;}
+    break;
+
+  case 48:
+
+    { yyval.quals = qualList_add (yyvsp[-1].quals, yyvsp[0].qual); ;}
+    break;
+
+  case 49:
+
+    { yyval.ctyp = ctype_expectFunction (yyvsp[-1].ctyp); ;}
+    break;
+
+  case 50:
+
+    { yyval.ctyp = ctype_makeArray (ctype_unknown); ;}
+    break;
+
+  case 51:
+
+    { yyval.ctyp = ctype_makeArray (yyvsp[-2].ctyp); ;}
+    break;
+
+  case 52:
+
+    { yyval.ctyp = ctype_char; ;}
+    break;
+
+  case 53:
+
+    { yyval.ctyp = ctype_int; ;}
+    break;
+
+  case 54:
+
+    { yyval.ctyp = ctype_float; ;}
+    break;
+
+  case 55:
+
+    { yyval.ctyp = ctype_double; ;}
+    break;
 
 
+  case 56:
+
+    { yyval.ctyp = ctype_void; ;}
+    break;
+
+  case 57:
+
+    { yyval.ctyp = ctype_unknown; ;}
+    break;
+
+  case 58:
+
+    { yyval.ctyp = ctype_anyintegral; ;}
+    break;
+
+  case 59:
+
+    { yyval.ctyp = ctype_unsignedintegral; ;}
+    break;
+
+  case 60:
+
+    { yyval.ctyp = ctype_signedintegral; ;}
+    break;
+
+  case 62:
+
+    { yyval.ctyp = mtscanner_lookupType (yyvsp[0].tok); ;}
+    break;
+
+  case 63:
+
+    { yyval.mtvalues = mtValuesNode_create (yyvsp[0].cstringlist); ;}
+    break;
+
+  case 64:
+
+    { yyval.cstringlist = cstringList_single (mttok_getText (yyvsp[0].tok)); ;}
+    break;
+
+  case 65:
+
+    { yyval.cstringlist = cstringList_prepend (yyvsp[0].cstringlist, mttok_getText (yyvsp[-2].tok)); ;}
+    break;
+
+  case 66:
+
+    { yyval.tok = yyvsp[0].tok; ;}
+    break;
+
+  case 67:
+
+    { yyval.mtdefaults = mtDefaultsNode_create (yyvsp[-1].tok, yyvsp[0].mtdeflist); ;}
+    break;
+
+  case 68:
+
+    { yyval.mtdeflist = mtDefaultsDeclList_single (mtDefaultsDecl_create (yyvsp[-2].mtcontext, yyvsp[0].tok)); ;}
+    break;
+
+  case 69:
+
+    { yyval.mtdeflist = mtDefaultsDeclList_prepend (yyvsp[0].mtdeflist, mtDefaultsDecl_create (yyvsp[-3].mtcontext, yyvsp[-1].tok)); ;}
+    break;
+
+  case 70:
+
+    { yyval.mtannotations = mtAnnotationsNode_create (yyvsp[0].mtannotlist); ;}
+    break;
+
+  case 71:
+
+    { yyval.mtannotlist = mtAnnotationList_single (yyvsp[0].mtannotdecl); ;}
+    break;
+
+  case 72:
+
+    { yyval.mtannotlist = mtAnnotationList_prepend (yyvsp[0].mtannotlist, yyvsp[-1].mtannotdecl); ;}
+    break;
+
+  case 73:
+
+    { yyval.mtannotdecl = mtAnnotationDecl_create (yyvsp[-3].tok, yyvsp[-2].mtcontext, yyvsp[0].tok); ;}
+    break;
+
+  case 74:
+
+    { yyval.mtmerge = mtMergeNode_create (yyvsp[0].mtmergeclauselist); ;}
+    break;
+
+  case 75:
+
+    { yyval.mtmergeclauselist = mtMergeClauseList_single (yyvsp[0].mtmergeclause); ;}
+    break;
+
+  case 76:
+
+    { yyval.mtmergeclauselist = mtMergeClauseList_prepend (yyvsp[0].mtmergeclauselist, yyvsp[-1].mtmergeclause); ;}
+    break;
+
+  case 77:
+
+    { yyval.mtmergeclause = mtMergeClause_create (yyvsp[-4].mtmergeitem, yyvsp[-2].mtmergeitem, yyvsp[0].mttransferaction); ;}
+    break;
+
+  case 78:
+
+    { yyval.mtmergeitem = mtMergeItem_createValue (yyvsp[0].tok); ;}
+    break;
+
+  case 79:
+
+    { yyval.mtmergeitem = mtMergeItem_createStar (yyvsp[0].tok); ;}
+    break;
+
+  case 80:
+
+    { yyval.mttransferclauselist = yyvsp[0].mttransferclauselist; ;}
+    break;
+
+  case 81:
+
+    { yyval.mttransferclauselist = yyvsp[0].mttransferclauselist; ;}
+    break;
+
+  case 82:
+
+    { yyval.mttransferclauselist = yyvsp[0].mttransferclauselist; ;}
+    break;
+
+  case 83:
+
+    { yyval.mtlosereferencelist = yyvsp[0].mtlosereferencelist; ;}
+    break;
+
+  case 84:
+
+    { yyval.mtlosereferencelist = mtLoseReferenceList_single (yyvsp[0].mtlosereference); ;}
+    break;
+
+  case 85:
+
+    { yyval.mtlosereferencelist = mtLoseReferenceList_prepend (yyvsp[0].mtlosereferencelist, yyvsp[-1].mtlosereference); ;}
+    break;
+
+  case 86:
+
+    { yyval.mtlosereference = mtLoseReference_create (yyvsp[-2].tok, yyvsp[0].mttransferaction); ;}
+    break;
+
+  case 87:
+
+    { yyval.mttransferclauselist = mtTransferClauseList_single (yyvsp[0].mttransferclause); ;}
+    break;
+
+  case 88:
+
+    { yyval.mttransferclauselist = mtTransferClauseList_prepend (yyvsp[0].mttransferclauselist, yyvsp[-1].mttransferclause); ;}
+    break;
+
+  case 89:
+
+    { yyval.mttransferclause = mtTransferClause_create (yyvsp[-4].tok, yyvsp[-2].tok, yyvsp[0].mttransferaction); ;}
+    break;
+
+  case 90:
+
+    { yyval.mttransferaction = mtTransferAction_createValue (yyvsp[0].tok); ;}
+    break;
+
+  case 91:
+
+    { yyval.mttransferaction = yyvsp[0].mttransferaction; ;}
+    break;
+
+  case 92:
+
+    { yyval.mttransferaction = mtTransferAction_createError (yyvsp[0].tok); ;}
+    break;
+
+  case 93:
+
+    { yyval.mttransferaction = mtTransferAction_createErrorMessage (yyvsp[0].tok); ;}
+    break;
+
+
+    }
+
+/* Line 999 of yacc.c.  */
 
 \f
   yyvsp -= yylen;
   yyssp -= yylen;
 
 \f
   yyvsp -= yylen;
   yyssp -= yylen;
-#if YYLSP_NEEDED
-  yylsp -= yylen;
-#endif
 
 
-#if YYDEBUG
-  if (yydebug)
-    {
-      short *yyssp1 = yyss - 1;
-      YYFPRINTF (stderr, "state stack now");
-      while (yyssp1 != yyssp)
-       YYFPRINTF (stderr, " %d", *++yyssp1);
-      YYFPRINTF (stderr, "\n");
-    }
-#endif
+
+  YY_STACK_PRINT (yyss, yyssp);
 
   *++yyvsp = yyval;
 
   *++yyvsp = yyval;
-#if YYLSP_NEEDED
-  *++yylsp = yyloc;
-#endif
+
 
   /* Now `shift' the result of the reduction.  Determine what state
      that goes to, based on the state we popped back to and the rule
 
   /* Now `shift' the result of the reduction.  Determine what state
      that goes to, based on the state we popped back to and the rule
@@ -1444,11 +1784,11 @@ case 92:
 
   yyn = yyr1[yyn];
 
 
   yyn = yyr1[yyn];
 
-  yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
-  if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
+  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
+  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
     yystate = yytable[yystate];
   else
     yystate = yytable[yystate];
   else
-    yystate = yydefgoto[yyn - YYNTBASE];
+    yystate = yydefgoto[yyn - YYNTOKENS];
 
   goto yynewstate;
 
 
   goto yynewstate;
 
@@ -1461,13 +1801,13 @@ yyerrlab:
   if (!yyerrstatus)
     {
       ++yynerrs;
   if (!yyerrstatus)
     {
       ++yynerrs;
-
-#ifdef YYERROR_VERBOSE
+#if YYERROR_VERBOSE
       yyn = yypact[yystate];
 
       yyn = yypact[yystate];
 
-      if (yyn > YYFLAG && yyn < YYLAST)
+      if (YYPACT_NINF < yyn && yyn < YYLAST)
        {
          YYSIZE_T yysize = 0;
        {
          YYSIZE_T yysize = 0;
+         int yytype = YYTRANSLATE (yychar);
          char *yymsg;
          int yyx, yycount;
 
          char *yymsg;
          int yyx, yycount;
 
@@ -1476,15 +1816,15 @@ yyerrlab:
             YYCHECK.  */
          for (yyx = yyn < 0 ? -yyn : 0;
               yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)
             YYCHECK.  */
          for (yyx = yyn < 0 ? -yyn : 0;
               yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)
-           if (yycheck[yyx + yyn] == yyx)
+           if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
              yysize += yystrlen (yytname[yyx]) + 15, yycount++;
              yysize += yystrlen (yytname[yyx]) + 15, yycount++;
-         yysize += yystrlen ("parse error, unexpected ") + 1;
-         yysize += yystrlen (yytname[YYTRANSLATE (yychar)]);
+         yysize += yystrlen ("syntax error, unexpected ") + 1;
+         yysize += yystrlen (yytname[yytype]);
          yymsg = (char *) YYSTACK_ALLOC (yysize);
          if (yymsg != 0)
            {
          yymsg = (char *) YYSTACK_ALLOC (yysize);
          if (yymsg != 0)
            {
-             char *yyp = yystpcpy (yymsg, "parse error, unexpected ");
-             yyp = yystpcpy (yyp, yytname[YYTRANSLATE (yychar)]);
+             char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
+             yyp = yystpcpy (yyp, yytname[yytype]);
 
              if (yycount < 5)
                {
 
              if (yycount < 5)
                {
@@ -1492,7 +1832,7 @@ yyerrlab:
                  for (yyx = yyn < 0 ? -yyn : 0;
                       yyx < (int) (sizeof (yytname) / sizeof (char *));
                       yyx++)
                  for (yyx = yyn < 0 ? -yyn : 0;
                       yyx < (int) (sizeof (yytname) / sizeof (char *));
                       yyx++)
-                   if (yycheck[yyx + yyn] == yyx)
+                   if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
                      {
                        const char *yyq = ! yycount ? ", expecting " : " or ";
                        yyp = yystpcpy (yyp, yyq);
                      {
                        const char *yyq = ! yycount ? ", expecting " : " or ";
                        yyp = yystpcpy (yyp, yyq);
@@ -1504,102 +1844,77 @@ yyerrlab:
              YYSTACK_FREE (yymsg);
            }
          else
              YYSTACK_FREE (yymsg);
            }
          else
-           yyerror ("parse error; also virtual memory exhausted");
+           yyerror ("syntax error; also virtual memory exhausted");
        }
       else
        }
       else
-#endif /* defined (YYERROR_VERBOSE) */
-       yyerror ("parse error");
+#endif /* YYERROR_VERBOSE */
+       yyerror ("syntax error");
     }
     }
-  goto yyerrlab1;
 
 
 
 
-/*--------------------------------------------------.
-| yyerrlab1 -- error raised explicitly by an action |
-`--------------------------------------------------*/
-yyerrlab1:
+
   if (yyerrstatus == 3)
     {
       /* If just tried and failed to reuse lookahead token after an
         error, discard it.  */
 
   if (yyerrstatus == 3)
     {
       /* If just tried and failed to reuse lookahead token after an
         error, discard it.  */
 
-      /* return failure if at end of input */
+      /* Return failure if at end of input.  */
       if (yychar == YYEOF)
       if (yychar == YYEOF)
-       YYABORT;
-      YYDPRINTF ((stderr, "Discarding token %d (%s).\n",
-                 yychar, yytname[yychar1]));
+        {
+         /* Pop the error token.  */
+          YYPOPSTACK;
+         /* Pop the rest of the stack.  */
+         while (yyss < yyssp)
+           {
+             YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
+             yydestruct (yystos[*yyssp], yyvsp);
+             YYPOPSTACK;
+           }
+         YYABORT;
+        }
+
+      YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
+      yydestruct (yytoken, &yylval);
       yychar = YYEMPTY;
       yychar = YYEMPTY;
+
     }
 
   /* Else will try to reuse lookahead token after shifting the error
      token.  */
     }
 
   /* Else will try to reuse lookahead token after shifting the error
      token.  */
-
-  yyerrstatus = 3;             /* Each real token shifted decrements this */
-
-  goto yyerrhandle;
-
-
-/*-------------------------------------------------------------------.
-| yyerrdefault -- current state does not do anything special for the |
-| error token.                                                       |
-`-------------------------------------------------------------------*/
-yyerrdefault:
-#if 0
-  /* This is wrong; only states that explicitly want error tokens
-     should shift them.  */
-
-  /* If its default is to accept any token, ok.  Otherwise pop it.  */
-  yyn = yydefact[yystate];
-  if (yyn)
-    goto yydefault;
-#endif
+  goto yyerrlab1;
 
 
 
 
-/*---------------------------------------------------------------.
-| yyerrpop -- pop the current state because it cannot handle the |
-| error token                                                    |
-`---------------------------------------------------------------*/
-yyerrpop:
-  if (yyssp == yyss)
-    YYABORT;
-  yyvsp--;
-  yystate = *--yyssp;
-#if YYLSP_NEEDED
-  yylsp--;
-#endif
+/*----------------------------------------------------.
+| yyerrlab1 -- error raised explicitly by an action.  |
+`----------------------------------------------------*/
+yyerrlab1:
+  yyerrstatus = 3;     /* Each real token shifted decrements this.  */
 
 
-#if YYDEBUG
-  if (yydebug)
+  for (;;)
     {
     {
-      short *yyssp1 = yyss - 1;
-      YYFPRINTF (stderr, "Error: state stack now");
-      while (yyssp1 != yyssp)
-       YYFPRINTF (stderr, " %d", *++yyssp1);
-      YYFPRINTF (stderr, "\n");
-    }
-#endif
+      yyn = yypact[yystate];
+      if (yyn != YYPACT_NINF)
+       {
+         yyn += YYTERROR;
+         if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
+           {
+             yyn = yytable[yyn];
+             if (0 < yyn)
+               break;
+           }
+       }
 
 
-/*--------------.
-| yyerrhandle.  |
-`--------------*/
-yyerrhandle:
-  yyn = yypact[yystate];
-  if (yyn == YYFLAG)
-    goto yyerrdefault;
+      /* Pop the current state because it cannot handle the error token.  */
+      if (yyssp == yyss)
+       YYABORT;
 
 
-  yyn += YYTERROR;
-  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
-    goto yyerrdefault;
+      YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
+      yydestruct (yystos[yystate], yyvsp);
+      yyvsp--;
+      yystate = *--yyssp;
 
 
-  yyn = yytable[yyn];
-  if (yyn < 0)
-    {
-      if (yyn == YYFLAG)
-       goto yyerrpop;
-      yyn = -yyn;
-      goto yyreduce;
+      YY_STACK_PRINT (yyss, yyssp);
     }
     }
-  else if (yyn == 0)
-    goto yyerrpop;
 
   if (yyn == YYFINAL)
     YYACCEPT;
 
   if (yyn == YYFINAL)
     YYACCEPT;
@@ -1607,9 +1922,7 @@ yyerrhandle:
   YYDPRINTF ((stderr, "Shifting error token, "));
 
   *++yyvsp = yylval;
   YYDPRINTF ((stderr, "Shifting error token, "));
 
   *++yyvsp = yylval;
-#if YYLSP_NEEDED
-  *++yylsp = yylloc;
-#endif
+
 
   yystate = yyn;
   goto yynewstate;
 
   yystate = yyn;
   goto yynewstate;
@@ -1629,13 +1942,15 @@ yyabortlab:
   yyresult = 1;
   goto yyreturn;
 
   yyresult = 1;
   goto yyreturn;
 
-/*---------------------------------------------.
-| yyoverflowab -- parser overflow comes here.  |
-`---------------------------------------------*/
+#ifndef yyoverflow
+/*----------------------------------------------.
+| yyoverflowlab -- parser overflow comes here.  |
+`----------------------------------------------*/
 yyoverflowlab:
   yyerror ("parser stack overflow");
   yyresult = 2;
   /* Fall through.  */
 yyoverflowlab:
   yyerror ("parser stack overflow");
   yyresult = 2;
   /* Fall through.  */
+#endif
 
 yyreturn:
 #ifndef yyoverflow
 
 yyreturn:
 #ifndef yyoverflow
@@ -1646,6 +1961,9 @@ yyreturn:
 }
 
 
 }
 
 
+
+
+
 # include "bison.reset"
 
 extern char *yytext;
 # include "bison.reset"
 
 extern char *yytext;
@@ -1676,6 +1994,7 @@ static void yyprint (FILE *file, int type, YYSTYPE value)
 
 
 
 
 
 
+
 /*
 ** Resets all flags in bison.head
 */
 /*
 ** Resets all flags in bison.head
 */
index 67c2e99df9c9ac53b137d8836d97bd52c9953ce7..bb5729efe5c76a88c565ad0c5ab0f7297a6df024 100644 (file)
 
 /* < end of bison.head > */
 
 
 /* < end of bison.head > */
 
-/* A Bison parser, made from mtgrammar.y
-   by GNU bison 1.35.  */
+/* A Bison parser, made by GNU Bison 1.875a.  */
 
 
-#define YYBISON 1  /* Identify Bison output.  */
+/* Skeleton parser for Yacc-like parsing with Bison,
+   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
 
 
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+/* As a special exception, when this file is copied by Bison into a
+   Bison output file, you may use that output file without restriction.
+   This special exception was added by the Free Software Foundation
+   in version 1.24 of Bison.  */
+
+/* Written by Richard Stallman by simplifying the original so called
+   ``semantic'' parser.  */
+
+/* All symbols defined below should begin with yy or YY, to avoid
+   infringing on user name space.  This should be done even for local
+   variables, as they might otherwise be expanded by user macros.
+   There are some unavoidable exceptions within include files to
+   define necessary library symbols; they are noted "INFRINGES ON
+   USER NAME SPACE" below.  */
+
+/* Identify Bison output.  */
+#define YYBISON 1
+
+/* Skeleton name.  */
+#define YYSKELETON_NAME "yacc.c"
+
+/* Pure parsers.  */
+#define YYPURE 1
+
+/* Using locations.  */
+#define YYLSP_NEEDED 0
+
+/* If NAME_PREFIX is specified substitute the variables and functions
+   names.  */
 #define yyparse mtparse
 #define yyparse mtparse
-#define yylex mtlex
+#define yylex   mtlex
 #define yyerror mterror
 #define yyerror mterror
-#define yylval mtlval
-#define yychar mtchar
+#define yylval  mtlval
+#define yychar  mtchar
 #define yydebug mtdebug
 #define yynerrs mtnerrs
 #define yydebug mtdebug
 #define yynerrs mtnerrs
-# define       MT_BADTOK       257
-# define       MT_END  258
-# define       MT_STATE        259
-# define       MT_GLOBAL       260
-# define       MT_CONTEXT      261
-# define       MT_ONEOF        262
-# define       MT_DEFAULTS     263
-# define       MT_DEFAULT      264
-# define       MT_REFERENCE    265
-# define       MT_PARAMETER    266
-# define       MT_RESULT       267
-# define       MT_CLAUSE       268
-# define       MT_LITERAL      269
-# define       MT_NULL 270
-# define       MT_ANNOTATIONS  271
-# define       MT_ARROW        272
-# define       MT_MERGE        273
-# define       MT_TRANSFERS    274
-# define       MT_PRECONDITIONS        275
-# define       MT_POSTCONDITIONS       276
-# define       MT_LOSEREFERENCE        277
-# define       MT_AS   278
-# define       MT_ERROR        279
-# define       MT_PLUS 280
-# define       MT_STAR 281
-# define       MT_BAR  282
-# define       MT_LPAREN       283
-# define       MT_RPAREN       284
-# define       MT_LBRACKET     285
-# define       MT_RBRACKET     286
-# define       MT_LBRACE       287
-# define       MT_RBRACE       288
-# define       MT_COMMA        289
-# define       MT_CHAR 290
-# define       MT_INT  291
-# define       MT_FLOAT        292
-# define       MT_DOUBLE       293
-# define       MT_VOID 294
-# define       MT_ANYTYPE      295
-# define       MT_INTEGRALTYPE 296
-# define       MT_UNSIGNEDINTEGRALTYPE 297
-# define       MT_SIGNEDINTEGRALTYPE   298
-# define       MT_CONST        299
-# define       MT_VOLATILE     300
-# define       MT_RESTRICT     301
-# define       MT_STRINGLIT    302
-# define       MT_IDENT        303
+
+
+/* Tokens.  */
+#ifndef YYTOKENTYPE
+# define YYTOKENTYPE
+   /* Put the tokens into the symbol table, so that GDB and other debuggers
+      know about them.  */
+   enum yytokentype {
+     MT_BADTOK = 258,
+     MT_END = 259,
+     MT_STATE = 260,
+     MT_GLOBAL = 261,
+     MT_CONTEXT = 262,
+     MT_ONEOF = 263,
+     MT_DEFAULTS = 264,
+     MT_DEFAULT = 265,
+     MT_REFERENCE = 266,
+     MT_PARAMETER = 267,
+     MT_RESULT = 268,
+     MT_CLAUSE = 269,
+     MT_LITERAL = 270,
+     MT_NULL = 271,
+     MT_ANNOTATIONS = 272,
+     MT_ARROW = 273,
+     MT_MERGE = 274,
+     MT_TRANSFERS = 275,
+     MT_PRECONDITIONS = 276,
+     MT_POSTCONDITIONS = 277,
+     MT_LOSEREFERENCE = 278,
+     MT_AS = 279,
+     MT_ERROR = 280,
+     MT_PLUS = 281,
+     MT_STAR = 282,
+     MT_BAR = 283,
+     MT_LPAREN = 284,
+     MT_RPAREN = 285,
+     MT_LBRACKET = 286,
+     MT_RBRACKET = 287,
+     MT_LBRACE = 288,
+     MT_RBRACE = 289,
+     MT_COMMA = 290,
+     MT_CHAR = 291,
+     MT_INT = 292,
+     MT_FLOAT = 293,
+     MT_DOUBLE = 294,
+     MT_VOID = 295,
+     MT_ANYTYPE = 296,
+     MT_INTEGRALTYPE = 297,
+     MT_UNSIGNEDINTEGRALTYPE = 298,
+     MT_SIGNEDINTEGRALTYPE = 299,
+     MT_CONST = 300,
+     MT_VOLATILE = 301,
+     MT_RESTRICT = 302,
+     MT_STRINGLIT = 303,
+     MT_IDENT = 304
+   };
+#endif
+#define MT_BADTOK 258
+#define MT_END 259
+#define MT_STATE 260
+#define MT_GLOBAL 261
+#define MT_CONTEXT 262
+#define MT_ONEOF 263
+#define MT_DEFAULTS 264
+#define MT_DEFAULT 265
+#define MT_REFERENCE 266
+#define MT_PARAMETER 267
+#define MT_RESULT 268
+#define MT_CLAUSE 269
+#define MT_LITERAL 270
+#define MT_NULL 271
+#define MT_ANNOTATIONS 272
+#define MT_ARROW 273
+#define MT_MERGE 274
+#define MT_TRANSFERS 275
+#define MT_PRECONDITIONS 276
+#define MT_POSTCONDITIONS 277
+#define MT_LOSEREFERENCE 278
+#define MT_AS 279
+#define MT_ERROR 280
+#define MT_PLUS 281
+#define MT_STAR 282
+#define MT_BAR 283
+#define MT_LPAREN 284
+#define MT_RPAREN 285
+#define MT_LBRACKET 286
+#define MT_RBRACKET 287
+#define MT_LBRACE 288
+#define MT_RBRACE 289
+#define MT_COMMA 290
+#define MT_CHAR 291
+#define MT_INT 292
+#define MT_FLOAT 293
+#define MT_DOUBLE 294
+#define MT_VOID 295
+#define MT_ANYTYPE 296
+#define MT_INTEGRALTYPE 297
+#define MT_UNSIGNEDINTEGRALTYPE 298
+#define MT_SIGNEDINTEGRALTYPE 299
+#define MT_CONST 300
+#define MT_VOLATILE 301
+#define MT_RESTRICT 302
+#define MT_STRINGLIT 303
+#define MT_IDENT 304
+
+
+
+
+/* Copy the first part of user declarations.  */
 
 
 
 
 
 
@@ -143,8 +249,23 @@ static void yyprint (/*FILE *p_file, int p_type, YYSTYPE p_value */);
 # include "bison.head"
 
 
 # include "bison.head"
 
 
-#ifndef YYSTYPE
-typedef union {
+
+/* Enabling traces.  */
+#ifndef YYDEBUG
+# define YYDEBUG 1
+#endif
+
+/* Enabling verbose error messages.  */
+#ifdef YYERROR_VERBOSE
+# undef YYERROR_VERBOSE
+# define YYERROR_VERBOSE 1
+#else
+# define YYERROR_VERBOSE 0
+#endif
+
+#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
+
+typedef union YYSTYPE {
   mttok tok; 
   mtDeclarationNode mtdecl;
   mtDeclarationPiece mtpiece;
   mttok tok; 
   mtDeclarationNode mtdecl;
   mtDeclarationPiece mtpiece;
@@ -171,25 +292,139 @@ typedef union {
   /*@only@*/ qtype qtyp;
   qual qual;
   qualList quals;
   /*@only@*/ qtype qtyp;
   qual qual;
   qualList quals;
-} yystype;
-# define YYSTYPE yystype
+} YYSTYPE;
+/* Line 191 of yacc.c.  */
+
+# define yystype YYSTYPE /* obsolescent; will be withdrawn */
+# define YYSTYPE_IS_DECLARED 1
 # define YYSTYPE_IS_TRIVIAL 1
 #endif
 # define YYSTYPE_IS_TRIVIAL 1
 #endif
-#ifndef YYDEBUG
-# define YYDEBUG 1
-#endif
 
 
 
 
 
 
-#define        YYFINAL         136
-#define        YYFLAG          -32768
-#define        YYNTBASE        50
+/* Copy the second part of user declarations.  */
+
+
+/* Line 214 of yacc.c.  */
+
 
 
-/* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */
-#define YYTRANSLATE(x) ((unsigned)(x) <= 303 ? yytranslate[x] : 93)
+#if ! defined (yyoverflow) || YYERROR_VERBOSE
+
+/* The parser invokes alloca or malloc; define the necessary symbols.  */
+
+# if YYSTACK_USE_ALLOCA
+#  define YYSTACK_ALLOC alloca
+# else
+#  ifndef YYSTACK_USE_ALLOCA
+#   if defined (alloca) || defined (_ALLOCA_H)
+#    define YYSTACK_ALLOC alloca
+#   else
+#    ifdef __GNUC__
+#     define YYSTACK_ALLOC __builtin_alloca
+#    endif
+#   endif
+#  endif
+# endif
 
 
-/* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */
-static const char yytranslate[] =
+# ifdef YYSTACK_ALLOC
+   /* Pacify GCC's `empty if-body' warning. */
+#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
+# else
+#  if defined (__STDC__) || defined (__cplusplus)
+#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
+#   define YYSIZE_T size_t
+#  endif
+#  define YYSTACK_ALLOC malloc
+#  define YYSTACK_FREE free
+# endif
+#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
+
+
+#if (! defined (yyoverflow) \
+     && (! defined (__cplusplus) \
+        || (YYSTYPE_IS_TRIVIAL)))
+
+/* A type that is properly aligned for any stack member.  */
+union yyalloc
+{
+  short yyss;
+  YYSTYPE yyvs;
+  };
+
+/* The size of the maximum gap between one aligned stack and the next.  */
+# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
+
+/* The size of an array large to enough to hold all stacks, each with
+   N elements.  */
+# define YYSTACK_BYTES(N) \
+     ((N) * (sizeof (short) + sizeof (YYSTYPE))                                \
+      + YYSTACK_GAP_MAXIMUM)
+
+/* Copy COUNT objects from FROM to TO.  The source and destination do
+   not overlap.  */
+# ifndef YYCOPY
+#  if 1 < __GNUC__
+#   define YYCOPY(To, From, Count) \
+      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
+#  else
+#   define YYCOPY(To, From, Count)             \
+      do                                       \
+       {                                       \
+         register YYSIZE_T yyi;                \
+         for (yyi = 0; yyi < (Count); yyi++)   \
+           (To)[yyi] = (From)[yyi];            \
+       }                                       \
+      while (0)
+#  endif
+# endif
+
+/* Relocate STACK from its old location to the new one.  The
+   local variables YYSIZE and YYSTACKSIZE give the old and new number of
+   elements in the stack, and YYPTR gives the new location of the
+   stack.  Advance YYPTR to a properly aligned location for the next
+   stack.  */
+# define YYSTACK_RELOCATE(Stack)                                       \
+    do                                                                 \
+      {                                                                        \
+       YYSIZE_T yynewbytes;                                            \
+       YYCOPY (&yyptr->Stack, Stack, yysize);                          \
+       Stack = &yyptr->Stack;                                          \
+       yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
+       yyptr += yynewbytes / sizeof (*yyptr);                          \
+      }                                                                        \
+    while (0)
+
+#endif
+
+#if defined (__STDC__) || defined (__cplusplus)
+   typedef signed char yysigned_char;
+#else
+   typedef short yysigned_char;
+#endif
+
+/* YYFINAL -- State number of the termination state. */
+#define YYFINAL  8
+/* YYLAST -- Last index in YYTABLE.  */
+#define YYLAST   114
+
+/* YYNTOKENS -- Number of terminals. */
+#define YYNTOKENS  50
+/* YYNNTS -- Number of nonterminals. */
+#define YYNNTS  44
+/* YYNRULES -- Number of rules. */
+#define YYNRULES  94
+/* YYNRULES -- Number of states. */
+#define YYNSTATES  136
+
+/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
+#define YYUNDEFTOK  2
+#define YYMAXUTOK   304
+
+#define YYTRANSLATE(YYX)                                               \
+  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
+
+/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
+static const unsigned char yytranslate[] =
 {
        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 {
        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
@@ -216,83 +451,83 @@ static const char yytranslate[] =
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     1,     3,     4,     5,
-       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
-      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
-      26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
-      36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
-      46,    47,    48,    49
+       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
+       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
+      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
+      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
+      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
+      45,    46,    47,    48,    49
 };
 
 #if YYDEBUG
 };
 
 #if YYDEBUG
-static const short yyprhs[] =
+/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
+   YYRHS.  */
+static const unsigned char yyprhs[] =
 {
 {
-       0,     0,     1,     3,     7,    12,    15,    16,    19,    21,
-      23,    25,    27,    29,    31,    33,    35,    37,    39,    42,
-      43,    45,    48,    51,    54,    57,    60,    63,    64,    66,
-      68,    71,    73,    77,    80,    81,    83,    85,    87,    90,
-      92,    95,    98,   102,   104,   106,   108,   110,   113,   117,
-     120,   124,   126,   128,   130,   132,   134,   136,   138,   140,
-     142,   144,   146,   149,   151,   155,   158,   161,   165,   170,
-     173,   175,   178,   183,   186,   188,   191,   197,   199,   201,
-     204,   207,   210,   213,   215,   218,   222,   224,   227,   233,
-     235,   237,   239,   242
+       0,     0,     3,     4,     6,    10,    15,    18,    19,    22,
+      24,    26,    28,    30,    32,    34,    36,    38,    40,    42,
+      45,    46,    48,    51,    54,    57,    60,    63,    66,    67,
+      69,    71,    74,    76,    80,    83,    84,    86,    88,    90,
+      93,    95,    98,   101,   105,   107,   109,   111,   113,   116,
+     120,   123,   127,   129,   131,   133,   135,   137,   139,   141,
+     143,   145,   147,   149,   152,   154,   158,   161,   164,   168,
+     173,   176,   178,   181,   186,   189,   191,   194,   200,   202,
+     204,   207,   210,   213,   216,   218,   221,   225,   227,   230,
+     236,   238,   240,   242,   245
 };
 };
-static const short yyrhs[] =
+
+/* YYRHS -- A `-1'-separated list of the rules' RHS. */
+static const yysigned_char yyrhs[] =
 {
 {
-      -1,    51,     0,     5,    52,     4,     0,     6,     5,    52,
-       4,     0,    49,    53,     0,     0,    54,    53,     0,    55,
-       0,    70,     0,    73,     0,    72,     0,    75,     0,    78,
-       0,    84,     0,    82,     0,    83,     0,    85,     0,     7,
-      57,     0,     0,    57,     0,    12,    58,     0,    11,    58,
-       0,    13,    58,     0,    14,    58,     0,    15,    58,     0,
-      16,    58,     0,     0,    59,     0,    60,     0,    60,    63,
-       0,    61,     0,    60,    28,    59,     0,    68,    62,     0,
-       0,    60,     0,    64,     0,    67,     0,    64,    67,     0,
-      27,     0,    27,    66,     0,    27,    64,     0,    27,    66,
-      64,     0,    45,     0,    46,     0,    47,     0,    65,     0,
-      66,    65,     0,    29,    63,    30,     0,    31,    32,     0,
-      67,    31,    32,     0,    36,     0,    37,     0,    38,     0,
-      39,     0,    40,     0,    41,     0,    42,     0,    43,     0,
-      44,     0,    69,     0,    49,     0,     8,    71,     0,    49,
-       0,    49,    35,    71,     0,    10,    92,     0,     9,    74,
-       0,    57,    18,    92,     0,    57,    18,    92,    74,     0,
-      17,    76,     0,    77,     0,    77,    76,     0,    49,    56,
-      18,    92,     0,    19,    79,     0,    80,     0,    80,    79,
-       0,    81,    26,    81,    18,    90,     0,    92,     0,    27,
-       0,    21,    88,     0,    22,    88,     0,    20,    88,     0,
-      23,    86,     0,    87,     0,    87,    86,     0,    92,    18,
-      91,     0,    89,     0,    89,    88,     0,    92,    24,    92,
-      18,    90,     0,    92,     0,    91,     0,    25,     0,    25,
-      48,     0,    49,     0
+      51,     0,    -1,    -1,    52,    -1,     5,    53,     4,    -1,
+       6,     5,    53,     4,    -1,    49,    54,    -1,    -1,    55,
+      54,    -1,    56,    -1,    71,    -1,    74,    -1,    73,    -1,
+      76,    -1,    79,    -1,    85,    -1,    83,    -1,    84,    -1,
+      86,    -1,     7,    58,    -1,    -1,    58,    -1,    12,    59,
+      -1,    11,    59,    -1,    13,    59,    -1,    14,    59,    -1,
+      15,    59,    -1,    16,    59,    -1,    -1,    60,    -1,    61,
+      -1,    61,    64,    -1,    62,    -1,    61,    28,    60,    -1,
+      69,    63,    -1,    -1,    61,    -1,    65,    -1,    68,    -1,
+      65,    68,    -1,    27,    -1,    27,    67,    -1,    27,    65,
+      -1,    27,    67,    65,    -1,    45,    -1,    46,    -1,    47,
+      -1,    66,    -1,    67,    66,    -1,    29,    64,    30,    -1,
+      31,    32,    -1,    68,    31,    32,    -1,    36,    -1,    37,
+      -1,    38,    -1,    39,    -1,    40,    -1,    41,    -1,    42,
+      -1,    43,    -1,    44,    -1,    70,    -1,    49,    -1,     8,
+      72,    -1,    49,    -1,    49,    35,    72,    -1,    10,    93,
+      -1,     9,    75,    -1,    58,    18,    93,    -1,    58,    18,
+      93,    75,    -1,    17,    77,    -1,    78,    -1,    78,    77,
+      -1,    49,    57,    18,    93,    -1,    19,    80,    -1,    81,
+      -1,    81,    80,    -1,    82,    26,    82,    18,    91,    -1,
+      93,    -1,    27,    -1,    21,    89,    -1,    22,    89,    -1,
+      20,    89,    -1,    23,    87,    -1,    88,    -1,    88,    87,
+      -1,    93,    18,    92,    -1,    90,    -1,    90,    89,    -1,
+      93,    24,    93,    18,    91,    -1,    93,    -1,    92,    -1,
+      25,    -1,    25,    48,    -1,    49,    -1
 };
 
 };
 
-#endif
-
-#if YYDEBUG
-/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
-static const short yyrline[] =
+/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
+static const unsigned short yyrline[] =
 {
 {
-       0,   160,   161,   165,   167,   172,   177,   178,   183,   184,
-     185,   186,   187,   188,   189,   190,   191,   192,   196,   201,
-     202,   206,   207,   208,   209,   210,   211,   219,   220,   224,
-     225,   229,   230,   235,   239,   240,   244,   245,   246,   250,
-     251,   252,   253,   257,   258,   259,   263,   264,   268,   269,
-     270,   278,   279,   280,   281,   282,   283,   284,   285,   286,
-     287,   294,   298,   302,   303,   308,   312,   316,   318,   323,
-     327,   328,   333,   338,   342,   343,   347,   352,   353,   357,
-     361,   365,   369,   373,   374,   378,   382,   383,   387,   392,
-     393,   397,   398,   402
+       0,   160,   160,   161,   165,   167,   172,   177,   178,   183,
+     184,   185,   186,   187,   188,   189,   190,   191,   192,   196,
+     201,   202,   206,   207,   208,   209,   210,   211,   219,   220,
+     224,   225,   229,   230,   235,   239,   240,   244,   245,   246,
+     250,   251,   252,   253,   257,   258,   259,   263,   264,   268,
+     269,   270,   278,   279,   280,   281,   282,   283,   284,   285,
+     286,   287,   294,   298,   302,   303,   308,   312,   316,   318,
+     323,   327,   328,   333,   338,   342,   343,   347,   352,   353,
+     357,   361,   365,   369,   373,   374,   378,   382,   383,   387,
+     392,   393,   397,   398,   402
 };
 #endif
 
 };
 #endif
 
-
-#if (YYDEBUG) || defined YYERROR_VERBOSE
-
-/* YYTNAME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */
+#if YYDEBUG || YYERROR_VERBOSE
+/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
+   First, the terminals, then, starting at YYNTOKENS, nonterminals. */
 static const char *const yytname[] =
 {
 static const char *const yytname[] =
 {
-  "$", "error", "$undefined.", "MT_BADTOK", "MT_END", "MT_STATE", 
+  "$end", "error", "$undefined", "MT_BADTOK", "MT_END", "MT_STATE", 
   "MT_GLOBAL", "MT_CONTEXT", "MT_ONEOF", "MT_DEFAULTS", "MT_DEFAULT", 
   "MT_REFERENCE", "MT_PARAMETER", "MT_RESULT", "MT_CLAUSE", "MT_LITERAL", 
   "MT_NULL", "MT_ANNOTATIONS", "MT_ARROW", "MT_MERGE", "MT_TRANSFERS", 
   "MT_GLOBAL", "MT_CONTEXT", "MT_ONEOF", "MT_DEFAULTS", "MT_DEFAULT", 
   "MT_REFERENCE", "MT_PARAMETER", "MT_RESULT", "MT_CLAUSE", "MT_LITERAL", 
   "MT_NULL", "MT_ANNOTATIONS", "MT_ARROW", "MT_MERGE", "MT_TRANSFERS", 
@@ -302,13 +537,13 @@ static const char *const yytname[] =
   "MT_CHAR", "MT_INT", "MT_FLOAT", "MT_DOUBLE", "MT_VOID", "MT_ANYTYPE", 
   "MT_INTEGRALTYPE", "MT_UNSIGNEDINTEGRALTYPE", "MT_SIGNEDINTEGRALTYPE", 
   "MT_CONST", "MT_VOLATILE", "MT_RESTRICT", "MT_STRINGLIT", "MT_IDENT", 
   "MT_CHAR", "MT_INT", "MT_FLOAT", "MT_DOUBLE", "MT_VOID", "MT_ANYTYPE", 
   "MT_INTEGRALTYPE", "MT_UNSIGNEDINTEGRALTYPE", "MT_SIGNEDINTEGRALTYPE", 
   "MT_CONST", "MT_VOLATILE", "MT_RESTRICT", "MT_STRINGLIT", "MT_IDENT", 
-  "file", "mtsDeclaration", "declarationNode", "declarationPieces", 
-  "declarationPiece", "contextDeclaration", "optContextSelection", 
-  "contextSelection", "optType", "typeExpression", "completeType", 
-  "completeTypeAux", "optCompleteType", "abstractDecl", "pointers", 
-  "innerMods", "innerModsList", "abstractDeclBase", "typeSpecifier", 
-  "typeName", "valuesDeclaration", "valuesList", "defaultNode", 
-  "defaultsDeclaration", "defaultDeclarationList", 
+  "$accept", "file", "mtsDeclaration", "declarationNode", 
+  "declarationPieces", "declarationPiece", "contextDeclaration", 
+  "optContextSelection", "contextSelection", "optType", "typeExpression", 
+  "completeType", "completeTypeAux", "optCompleteType", "abstractDecl", 
+  "pointers", "innerMods", "innerModsList", "abstractDeclBase", 
+  "typeSpecifier", "typeName", "valuesDeclaration", "valuesList", 
+  "defaultNode", "defaultsDeclaration", "defaultDeclarationList", 
   "annotationsDeclaration", "annotationsDeclarationList", 
   "annotationDeclaration", "mergeDeclaration", "mergeClauses", 
   "mergeClause", "mergeItem", "preconditionsDeclaration", 
   "annotationsDeclaration", "annotationsDeclarationList", 
   "annotationDeclaration", "mergeDeclaration", "mergeClauses", 
   "mergeClause", "mergeItem", "preconditionsDeclaration", 
@@ -319,266 +554,167 @@ static const char *const yytname[] =
 };
 #endif
 
 };
 #endif
 
-/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
-static const short yyr1[] =
+# ifdef YYPRINT
+/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
+   token YYLEX-NUM.  */
+static const unsigned short yytoknum[] =
 {
 {
-       0,    50,    50,    51,    51,    52,    53,    53,    54,    54,
-      54,    54,    54,    54,    54,    54,    54,    54,    55,    56,
-      56,    57,    57,    57,    57,    57,    57,    58,    58,    59,
-      59,    60,    60,    61,    62,    62,    63,    63,    63,    64,
-      64,    64,    64,    65,    65,    65,    66,    66,    67,    67,
-      67,    68,    68,    68,    68,    68,    68,    68,    68,    68,
-      68,    69,    70,    71,    71,    72,    73,    74,    74,    75,
-      76,    76,    77,    78,    79,    79,    80,    81,    81,    82,
-      83,    84,    85,    86,    86,    87,    88,    88,    89,    90,
-      90,    91,    91,    92
+       0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
+     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
+     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
+     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
+     295,   296,   297,   298,   299,   300,   301,   302,   303,   304
 };
 };
+# endif
 
 
-/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
-static const short yyr2[] =
+/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
+static const unsigned char yyr1[] =
 {
 {
-       0,     0,     1,     3,     4,     2,     0,     2,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     1,     2,     0,
-       1,     2,     2,     2,     2,     2,     2,     0,     1,     1,
-       2,     1,     3,     2,     0,     1,     1,     1,     2,     1,
-       2,     2,     3,     1,     1,     1,     1,     2,     3,     2,
-       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     2,     1,     3,     2,     2,     3,     4,     2,
-       1,     2,     4,     2,     1,     2,     5,     1,     1,     2,
-       2,     2,     2,     1,     2,     3,     1,     2,     5,     1,
-       1,     1,     2,     1
+       0,    50,    51,    51,    52,    52,    53,    54,    54,    55,
+      55,    55,    55,    55,    55,    55,    55,    55,    55,    56,
+      57,    57,    58,    58,    58,    58,    58,    58,    59,    59,
+      60,    60,    61,    61,    62,    63,    63,    64,    64,    64,
+      65,    65,    65,    65,    66,    66,    66,    67,    67,    68,
+      68,    68,    69,    69,    69,    69,    69,    69,    69,    69,
+      69,    69,    70,    71,    72,    72,    73,    74,    75,    75,
+      76,    77,    77,    78,    79,    80,    80,    81,    82,    82,
+      83,    84,    85,    86,    87,    87,    88,    89,    89,    90,
+      91,    91,    92,    92,    93
 };
 
 };
 
-/* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE
-   doesn't specify something else to do.  Zero means the default is an
-   error. */
-static const short yydefact[] =
+/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
+static const unsigned char yyr2[] =
 {
 {
-       1,     0,     0,     2,     6,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     5,     6,     8,
-       9,    11,    10,    12,    13,    15,    16,    14,    17,     3,
-       0,    27,    27,    27,    27,    27,    27,    18,    63,    62,
-       0,    66,    93,    65,    19,    69,    70,    78,    73,    74,
-       0,    77,    81,    86,     0,    79,    80,    82,    83,     0,
-       7,     4,    51,    52,    53,    54,    55,    56,    57,    58,
-      59,    61,    22,    28,    29,    31,    34,    60,    21,    23,
-      24,    25,    26,     0,     0,     0,    20,    71,    75,     0,
-      87,     0,    84,     0,    39,     0,     0,     0,    30,    36,
-      37,    35,    33,    64,    67,     0,     0,     0,    91,    85,
-      43,    44,    45,    41,    46,    40,    32,     0,    49,    38,
-       0,    68,    72,     0,     0,    92,    42,    47,    48,    50,
-      76,    90,    89,    88,     0,     0,     0
+       0,     2,     0,     1,     3,     4,     2,     0,     2,     1,
+       1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
+       0,     1,     2,     2,     2,     2,     2,     2,     0,     1,
+       1,     2,     1,     3,     2,     0,     1,     1,     1,     2,
+       1,     2,     2,     3,     1,     1,     1,     1,     2,     3,
+       2,     3,     1,     1,     1,     1,     1,     1,     1,     1,
+       1,     1,     1,     2,     1,     3,     2,     2,     3,     4,
+       2,     1,     2,     4,     2,     1,     2,     5,     1,     1,
+       2,     2,     2,     2,     1,     2,     3,     1,     2,     5,
+       1,     1,     1,     2,     1
 };
 
 };
 
-static const short yydefgoto[] =
+/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
+   STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
+   means the default is an error.  */
+static const unsigned char yydefact[] =
 {
 {
-     134,     3,     5,    17,    18,    19,    85,    40,    72,    73,
-      74,    75,   102,    98,    99,   114,   115,   100,    76,    77,
-      20,    39,    21,    22,    41,    23,    45,    46,    24,    48,
-      49,    50,    25,    26,    27,    28,    57,    58,    52,    53,
-     130,   131,    54
+       2,     0,     0,     0,     3,     7,     0,     0,     1,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     6,
+       7,     9,    10,    12,    11,    13,    14,    16,    17,    15,
+      18,     4,     0,    28,    28,    28,    28,    28,    28,    19,
+      64,    63,     0,    67,    94,    66,    20,    70,    71,    79,
+      74,    75,     0,    78,    82,    87,     0,    80,    81,    83,
+      84,     0,     8,     5,    52,    53,    54,    55,    56,    57,
+      58,    59,    60,    62,    23,    29,    30,    32,    35,    61,
+      22,    24,    25,    26,    27,     0,     0,     0,    21,    72,
+      76,     0,    88,     0,    85,     0,    40,     0,     0,     0,
+      31,    37,    38,    36,    34,    65,    68,     0,     0,     0,
+      92,    86,    44,    45,    46,    42,    47,    41,    33,     0,
+      50,    39,     0,    69,    73,     0,     0,    93,    43,    48,
+      49,    51,    77,    91,    90,    89
 };
 
 };
 
-static const short yypact[] =
+/* YYDEFGOTO[NTERM-NUM]. */
+static const short yydefgoto[] =
 {
 {
-      21,   -29,    30,-32768,     2,    33,   -29,    52,    -9,    52,
-      -8,    -3,   -19,    -8,    -8,    -8,    -8,-32768,     2,-32768,
-  -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-      54,    13,    13,    13,    13,    13,    13,-32768,    24,-32768,
-      43,-32768,-32768,-32768,    52,-32768,    -3,-32768,-32768,   -19,
-      34,-32768,-32768,    -8,    46,-32768,-32768,-32768,    -8,    57,
-  -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-  -32768,-32768,-32768,-32768,    16,-32768,    13,-32768,-32768,-32768,
-  -32768,-32768,-32768,    -9,    -8,    58,-32768,-32768,-32768,   -19,
-  -32768,    -8,-32768,    47,   -14,    13,    42,    45,-32768,     5,
-      49,    50,-32768,-32768,    52,    -8,    64,    65,    36,-32768,
-  -32768,-32768,-32768,-32768,-32768,   -14,-32768,    55,-32768,    49,
-      56,-32768,-32768,   -20,   -20,-32768,-32768,-32768,-32768,-32768,
-  -32768,-32768,-32768,-32768,    86,    87,-32768
+      -1,     3,     4,     6,    19,    20,    21,    87,    42,    74,
+      75,    76,    77,   104,   100,   101,   116,   117,   102,    78,
+      79,    22,    41,    23,    24,    43,    25,    47,    48,    26,
+      50,    51,    52,    27,    28,    29,    30,    59,    60,    54,
+      55,   132,   133,    56
 };
 
 };
 
-static const short yypgoto[] =
+/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
+   STATE-NUM.  */
+#define YYPACT_NINF -90
+static const yysigned_char yypact[] =
 {
 {
-  -32768,-32768,    83,    72,-32768,-32768,-32768,    -6,   -18,    -4,
-      17,-32768,-32768,    -2,   -87,   -23,-32768,    -1,-32768,-32768,
-  -32768,    14,-32768,-32768,    -5,-32768,    59,-32768,-32768,    51,
-  -32768,     7,-32768,-32768,-32768,-32768,    44,-32768,   -11,-32768,
-     -21,     8,   -10
+      21,   -35,    10,    35,   -90,     2,    33,   -35,   -90,    52,
+      -9,    52,    11,    12,   -19,    11,    11,    11,    11,   -90,
+       2,   -90,   -90,   -90,   -90,   -90,   -90,   -90,   -90,   -90,
+     -90,   -90,    37,    13,    13,    13,    13,    13,    13,   -90,
+      23,   -90,    41,   -90,   -90,   -90,    52,   -90,    12,   -90,
+     -90,   -19,    44,   -90,   -90,    11,    48,   -90,   -90,   -90,
+      11,    57,   -90,   -90,   -90,   -90,   -90,   -90,   -90,   -90,
+     -90,   -90,   -90,   -90,   -90,   -90,   -11,   -90,    13,   -90,
+     -90,   -90,   -90,   -90,   -90,    -9,    11,    58,   -90,   -90,
+     -90,   -19,   -90,    11,   -90,    53,   -14,    13,    42,    45,
+     -90,     5,    49,    54,   -90,   -90,    52,    11,    65,    66,
+      38,   -90,   -90,   -90,   -90,   -90,   -90,   -14,   -90,    55,
+     -90,    49,    56,   -90,   -90,   -20,   -20,   -90,   -90,   -90,
+     -90,   -90,   -90,   -90,   -90,   -90
 };
 
 };
 
-
-#define        YYLAST          114
-
-
-static const short yytable[] =
+/* YYPGOTO[NTERM-NUM].  */
+static const yysigned_char yypgoto[] =
 {
 {
-      43,    37,    51,    55,    56,   108,    59,   113,    47,     7,
-       8,     9,    10,    94,    78,    79,    80,    81,    82,    11,
-       4,    12,    13,    14,    15,    16,     1,     2,   126,    42,
-      42,   110,   111,   112,    96,     6,    97,    29,    86,    51,
-      38,    42,    90,    94,    95,    96,    44,    97,    59,    62,
-      63,    64,    65,    66,    67,    68,    69,    70,    61,    83,
-      89,    84,    71,    31,    32,    33,    34,    35,    36,    94,
-      91,    96,   108,    97,   104,    93,   105,   118,    95,    51,
-     120,   107,   123,   124,   125,   128,   135,   136,   129,    30,
-      60,   116,   127,   101,   117,   122,   106,   103,   119,   121,
-      88,   109,    92,   133,     0,    87,     0,     0,     0,     0,
-       0,     0,     0,   132,   132
+     -90,   -90,   -90,    80,    69,   -90,   -90,   -90,    -8,     9,
+      -7,    14,   -90,   -90,    -5,   -89,   -26,   -90,    -4,   -90,
+     -90,   -90,    15,   -90,   -90,   -10,   -90,    46,   -90,   -90,
+      47,   -90,     8,   -90,   -90,   -90,   -90,    43,   -90,   -13,
+     -90,   -25,     7,   -12
 };
 
 };
 
-static const short yycheck[] =
+/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
+   positive, shift that token.  If negative, reduce the rule which
+   number is the opposite.  If zero, do what YYDEFACT says.
+   If YYTABLE_NINF, syntax error.  */
+#define YYTABLE_NINF -1
+static const unsigned char yytable[] =
 {
 {
-      10,     7,    12,    14,    15,    25,    16,    94,    27,     7,
-       8,     9,    10,    27,    32,    33,    34,    35,    36,    17,
-      49,    19,    20,    21,    22,    23,     5,     6,   115,    49,
-      49,    45,    46,    47,    29,     5,    31,     4,    44,    49,
-      49,    49,    53,    27,    28,    29,    49,    31,    58,    36,
-      37,    38,    39,    40,    41,    42,    43,    44,     4,    35,
-      26,    18,    49,    11,    12,    13,    14,    15,    16,    27,
-      24,    29,    25,    31,    84,    18,    18,    32,    28,    89,
-      31,    91,    18,    18,    48,    30,     0,     0,    32,     6,
-      18,    95,   115,    76,    96,   105,    89,    83,    99,   104,
-      49,    93,    58,   124,    -1,    46,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   123,   124
+      45,    39,    53,    57,    58,   110,    61,   115,    49,     9,
+      10,    11,    12,    96,     5,     7,    96,    97,    98,    13,
+      99,    14,    15,    16,    17,    18,     1,     2,   128,    44,
+      44,   112,   113,   114,    98,     8,    99,    31,    88,    53,
+      40,    63,    92,    80,    81,    82,    83,    84,    61,    64,
+      65,    66,    67,    68,    69,    70,    71,    72,    85,    86,
+      44,    46,    73,    33,    34,    35,    36,    37,    38,    96,
+      91,    98,    93,    99,   106,    95,   107,   120,   110,    53,
+     122,   109,    97,   125,   126,   130,   127,    32,   131,    62,
+     118,   129,   103,   119,    89,   124,   123,   121,    90,   108,
+     105,   135,   111,    94,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   134,   134
 };
 };
-#define YYPURE 1
-
-/* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
-
-/* Skeleton output parser for bison,
-
-   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software
-   Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
-   any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
-
-/* As a special exception, when this file is copied by Bison into a
-   Bison output file, you may use that output file without restriction.
-   This special exception was added by the Free Software Foundation
-   in version 1.24 of Bison.  */
-
-/* This is the parser code that is written into each bison parser when
-   the %semantic_parser declaration is not specified in the grammar.
-   It was written by Richard Stallman by simplifying the hairy parser
-   used when %semantic_parser is specified.  */
 
 
-/* All symbols defined below should begin with yy or YY, to avoid
-   infringing on user name space.  This should be done even for local
-   variables, as they might otherwise be expanded by user macros.
-   There are some unavoidable exceptions within include files to
-   define necessary library symbols; they are noted "INFRINGES ON
-   USER NAME SPACE" below.  */
-
-#if ! defined (yyoverflow) || defined (YYERROR_VERBOSE)
-
-/* The parser invokes alloca or malloc; define the necessary symbols.  */
-
-# if YYSTACK_USE_ALLOCA
-#  define YYSTACK_ALLOC alloca
-# else
-#  ifndef YYSTACK_USE_ALLOCA
-#   if defined (alloca) || defined (_ALLOCA_H)
-#    define YYSTACK_ALLOC alloca
-#   else
-#    ifdef __GNUC__
-#     define YYSTACK_ALLOC __builtin_alloca
-#    endif
-#   endif
-#  endif
-# endif
-
-# ifdef YYSTACK_ALLOC
-   /* Pacify GCC's `empty if-body' warning. */
-#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
-# else
-#  if defined (__STDC__) || defined (__cplusplus)
-#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-#   define YYSIZE_T size_t
-#  endif
-#  define YYSTACK_ALLOC malloc
-#  define YYSTACK_FREE free
-# endif
-#endif /* ! defined (yyoverflow) || defined (YYERROR_VERBOSE) */
-
-
-#if (! defined (yyoverflow) \
-     && (! defined (__cplusplus) \
-        || (YYLTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
-
-/* A type that is properly aligned for any stack member.  */
-union yyalloc
+static const yysigned_char yycheck[] =
 {
 {
-  short yyss;
-  YYSTYPE yyvs;
-# if YYLSP_NEEDED
-  YYLTYPE yyls;
-# endif
+      12,     9,    14,    16,    17,    25,    18,    96,    27,     7,
+       8,     9,    10,    27,    49,     5,    27,    28,    29,    17,
+      31,    19,    20,    21,    22,    23,     5,     6,   117,    49,
+      49,    45,    46,    47,    29,     0,    31,     4,    46,    51,
+      49,     4,    55,    34,    35,    36,    37,    38,    60,    36,
+      37,    38,    39,    40,    41,    42,    43,    44,    35,    18,
+      49,    49,    49,    11,    12,    13,    14,    15,    16,    27,
+      26,    29,    24,    31,    86,    18,    18,    32,    25,    91,
+      31,    93,    28,    18,    18,    30,    48,     7,    32,    20,
+      97,   117,    78,    98,    48,   107,   106,   101,    51,    91,
+      85,   126,    95,    60,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   125,   126
 };
 
 };
 
-/* The size of the maximum gap between one aligned stack and the next.  */
-# define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1)
-
-/* The size of an array large to enough to hold all stacks, each with
-   N elements.  */
-# if YYLSP_NEEDED
-#  define YYSTACK_BYTES(N) \
-     ((N) * (sizeof (short) + sizeof (YYSTYPE) + sizeof (YYLTYPE))     \
-      + 2 * YYSTACK_GAP_MAX)
-# else
-#  define YYSTACK_BYTES(N) \
-     ((N) * (sizeof (short) + sizeof (YYSTYPE))                                \
-      + YYSTACK_GAP_MAX)
-# endif
-
-/* Copy COUNT objects from FROM to TO.  The source and destination do
-   not overlap.  */
-# ifndef YYCOPY
-#  if 1 < __GNUC__
-#   define YYCOPY(To, From, Count) \
-      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
-#  else
-#   define YYCOPY(To, From, Count)             \
-      do                                       \
-       {                                       \
-         register YYSIZE_T yyi;                \
-         for (yyi = 0; yyi < (Count); yyi++)   \
-           (To)[yyi] = (From)[yyi];            \
-       }                                       \
-      while (0)
-#  endif
-# endif
-
-/* Relocate STACK from its old location to the new one.  The
-   local variables YYSIZE and YYSTACKSIZE give the old and new number of
-   elements in the stack, and YYPTR gives the new location of the
-   stack.  Advance YYPTR to a properly aligned location for the next
-   stack.  */
-# define YYSTACK_RELOCATE(Stack)                                       \
-    do                                                                 \
-      {                                                                        \
-       YYSIZE_T yynewbytes;                                            \
-       YYCOPY (&yyptr->Stack, Stack, yysize);                          \
-       Stack = &yyptr->Stack;                                          \
-       yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAX;   \
-       yyptr += yynewbytes / sizeof (*yyptr);                          \
-      }                                                                        \
-    while (0)
-
-#endif
-
+/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
+   symbol of state STATE-NUM.  */
+static const unsigned char yystos[] =
+{
+       0,     5,     6,    51,    52,    49,    53,     5,     0,     7,
+       8,     9,    10,    17,    19,    20,    21,    22,    23,    54,
+      55,    56,    71,    73,    74,    76,    79,    83,    84,    85,
+      86,     4,    53,    11,    12,    13,    14,    15,    16,    58,
+      49,    72,    58,    75,    49,    93,    49,    77,    78,    27,
+      80,    81,    82,    93,    89,    90,    93,    89,    89,    87,
+      88,    93,    54,     4,    36,    37,    38,    39,    40,    41,
+      42,    43,    44,    49,    59,    60,    61,    62,    69,    70,
+      59,    59,    59,    59,    59,    35,    18,    57,    58,    77,
+      80,    26,    89,    24,    87,    18,    27,    28,    29,    31,
+      64,    65,    68,    61,    63,    72,    93,    18,    82,    93,
+      25,    92,    45,    46,    47,    65,    66,    67,    60,    64,
+      32,    68,    31,    75,    93,    18,    18,    48,    65,    66,
+      30,    32,    91,    92,    93,    91
+};
 
 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
 # define YYSIZE_T __SIZE_TYPE__
 
 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
 # define YYSIZE_T __SIZE_TYPE__
@@ -598,29 +734,35 @@ union yyalloc
 
 #define yyerrok                (yyerrstatus = 0)
 #define yyclearin      (yychar = YYEMPTY)
 
 #define yyerrok                (yyerrstatus = 0)
 #define yyclearin      (yychar = YYEMPTY)
-#define YYEMPTY                -2
+#define YYEMPTY                (-2)
 #define YYEOF          0
 #define YYEOF          0
+
 #define YYACCEPT       goto yyacceptlab
 #define YYACCEPT       goto yyacceptlab
-#define YYABORT        goto yyabortlab
+#define YYABORT                goto yyabortlab
 #define YYERROR                goto yyerrlab1
 #define YYERROR                goto yyerrlab1
+
+
 /* Like YYERROR except do call yyerror.  This remains here temporarily
    to ease the transition to the new meaning of YYERROR, for GCC.
    Once GCC version 2 has supplanted version 1, this can go.  */
 /* Like YYERROR except do call yyerror.  This remains here temporarily
    to ease the transition to the new meaning of YYERROR, for GCC.
    Once GCC version 2 has supplanted version 1, this can go.  */
+
 #define YYFAIL         goto yyerrlab
 #define YYFAIL         goto yyerrlab
+
 #define YYRECOVERING()  (!!yyerrstatus)
 #define YYRECOVERING()  (!!yyerrstatus)
+
 #define YYBACKUP(Token, Value)                                 \
 do                                                             \
   if (yychar == YYEMPTY && yylen == 1)                         \
     {                                                          \
       yychar = (Token);                                                \
       yylval = (Value);                                                \
 #define YYBACKUP(Token, Value)                                 \
 do                                                             \
   if (yychar == YYEMPTY && yylen == 1)                         \
     {                                                          \
       yychar = (Token);                                                \
       yylval = (Value);                                                \
-      yychar1 = YYTRANSLATE (yychar);                          \
+      yytoken = YYTRANSLATE (yychar);                          \
       YYPOPSTACK;                                              \
       goto yybackup;                                           \
     }                                                          \
   else                                                         \
     {                                                          \
       YYPOPSTACK;                                              \
       goto yybackup;                                           \
     }                                                          \
   else                                                         \
     {                                                          \
-      yyerror ("syntax error: cannot back up");                        \
+      yyerror ("syntax error: cannot back up");\
       YYERROR;                                                 \
     }                                                          \
 while (0)
       YYERROR;                                                 \
     }                                                          \
 while (0)
@@ -628,41 +770,24 @@ while (0)
 #define YYTERROR       1
 #define YYERRCODE      256
 
 #define YYTERROR       1
 #define YYERRCODE      256
 
-
 /* YYLLOC_DEFAULT -- Compute the default location (before the actions
 /* YYLLOC_DEFAULT -- Compute the default location (before the actions
-   are run).
-
-   When YYLLOC_DEFAULT is run, CURRENT is set the location of the
-   first token.  By default, to implement support for ranges, extend
-   its range to the last symbol.  */
+   are run).  */
 
 #ifndef YYLLOC_DEFAULT
 
 #ifndef YYLLOC_DEFAULT
-# define YYLLOC_DEFAULT(Current, Rhs, N)               \
-   Current.last_line   = Rhs[N].last_line;     \
-   Current.last_column = Rhs[N].last_column;
+# define YYLLOC_DEFAULT(Current, Rhs, N)         \
+  Current.first_line   = Rhs[1].first_line;      \
+  Current.first_column = Rhs[1].first_column;    \
+  Current.last_line    = Rhs[N].last_line;       \
+  Current.last_column  = Rhs[N].last_column;
 #endif
 
 #endif
 
-
 /* YYLEX -- calling `yylex' with the right arguments.  */
 
 /* YYLEX -- calling `yylex' with the right arguments.  */
 
-#if YYPURE
-# if YYLSP_NEEDED
-#  ifdef YYLEX_PARAM
-#   define YYLEX               yylex (&yylval, &yylloc, YYLEX_PARAM)
-#  else
-#   define YYLEX               yylex (&yylval, &yylloc)
-#  endif
-# else /* !YYLSP_NEEDED */
-#  ifdef YYLEX_PARAM
-#   define YYLEX               yylex (&yylval, YYLEX_PARAM)
-#  else
-#   define YYLEX               yylex (&yylval)
-#  endif
-# endif /* !YYLSP_NEEDED */
-#else /* !YYPURE */
-# define YYLEX                 yylex ()
-#endif /* !YYPURE */
-
+#ifdef YYLEX_PARAM
+# define YYLEX yylex (&yylval, YYLEX_PARAM)
+#else
+# define YYLEX yylex (&yylval)
+#endif
 
 /* Enable debugging if requested.  */
 #if YYDEBUG
 
 /* Enable debugging if requested.  */
 #if YYDEBUG
@@ -677,13 +802,93 @@ do {                                              \
   if (yydebug)                                 \
     YYFPRINTF Args;                            \
 } while (0)
   if (yydebug)                                 \
     YYFPRINTF Args;                            \
 } while (0)
+
+# define YYDSYMPRINT(Args)                     \
+do {                                           \
+  if (yydebug)                                 \
+    yysymprint Args;                           \
+} while (0)
+
+# define YYDSYMPRINTF(Title, Token, Value, Location)           \
+do {                                                           \
+  if (yydebug)                                                 \
+    {                                                          \
+      YYFPRINTF (stderr, "%s ", Title);                                \
+      yysymprint (stderr,                                      \
+                  Token, Value);       \
+      YYFPRINTF (stderr, "\n");                                        \
+    }                                                          \
+} while (0)
+
+/*------------------------------------------------------------------.
+| yy_stack_print -- Print the state stack from its BOTTOM up to its |
+| TOP (cinluded).                                                   |
+`------------------------------------------------------------------*/
+
+#if defined (__STDC__) || defined (__cplusplus)
+static void
+yy_stack_print (short *bottom, short *top)
+#else
+static void
+yy_stack_print (bottom, top)
+    short *bottom;
+    short *top;
+#endif
+{
+  YYFPRINTF (stderr, "Stack now");
+  for (/* Nothing. */; bottom <= top; ++bottom)
+    YYFPRINTF (stderr, " %d", *bottom);
+  YYFPRINTF (stderr, "\n");
+}
+
+# define YY_STACK_PRINT(Bottom, Top)                           \
+do {                                                           \
+  if (yydebug)                                                 \
+    yy_stack_print ((Bottom), (Top));                          \
+} while (0)
+
+
+/*------------------------------------------------.
+| Report that the YYRULE is going to be reduced.  |
+`------------------------------------------------*/
+
+#if defined (__STDC__) || defined (__cplusplus)
+static void
+yy_reduce_print (int yyrule)
+#else
+static void
+yy_reduce_print (yyrule)
+    int yyrule;
+#endif
+{
+  int yyi;
+  unsigned int yylineno = yyrline[yyrule];
+  YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
+             yyrule - 1, yylineno);
+  /* Print the symbols being reduced, and their result.  */
+  for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
+    YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
+  YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
+}
+
+# define YY_REDUCE_PRINT(Rule)         \
+do {                                   \
+  if (yydebug)                         \
+    yy_reduce_print (Rule);            \
+} while (0)
+
 /* Nonzero means print parse trace.  It is left uninitialized so that
    multiple parsers can coexist.  */
 int yydebug;
 #else /* !YYDEBUG */
 # define YYDPRINTF(Args)
 /* Nonzero means print parse trace.  It is left uninitialized so that
    multiple parsers can coexist.  */
 int yydebug;
 #else /* !YYDEBUG */
 # define YYDPRINTF(Args)
+# define YYDSYMPRINT(Args)
+# define YYDSYMPRINTF(Title, Token, Value, Location)
+# define YY_STACK_PRINT(Bottom, Top)
+# define YY_REDUCE_PRINT(Rule)
 #endif /* !YYDEBUG */
 
 #endif /* !YYDEBUG */
 
+
 /* YYINITDEPTH -- initial size of the parser's stacks.  */
 #ifndef        YYINITDEPTH
 # define YYINITDEPTH 200
 /* YYINITDEPTH -- initial size of the parser's stacks.  */
 #ifndef        YYINITDEPTH
 # define YYINITDEPTH 200
@@ -703,8 +908,10 @@ int yydebug;
 #ifndef YYMAXDEPTH
 # define YYMAXDEPTH 10000
 #endif
 #ifndef YYMAXDEPTH
 # define YYMAXDEPTH 10000
 #endif
+
 \f
 \f
-#ifdef YYERROR_VERBOSE
+
+#if YYERROR_VERBOSE
 
 # ifndef yystrlen
 #  if defined (__GLIBC__) && defined (_STRING_H)
 
 # ifndef yystrlen
 #  if defined (__GLIBC__) && defined (_STRING_H)
@@ -754,77 +961,126 @@ yystpcpy (yydest, yysrc)
 }
 #  endif
 # endif
 }
 #  endif
 # endif
-#endif
+
+#endif /* !YYERROR_VERBOSE */
+
 \f
 
 \f
 
+#if YYDEBUG
+/*--------------------------------.
+| Print this symbol on YYOUTPUT.  |
+`--------------------------------*/
+
+#if defined (__STDC__) || defined (__cplusplus)
+static void
+yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
+#else
+static void
+yysymprint (yyoutput, yytype, yyvaluep)
+    FILE *yyoutput;
+    int yytype;
+    YYSTYPE *yyvaluep;
+#endif
+{
+  /* Pacify ``unused variable'' warnings.  */
+  (void) yyvaluep;
+
+  if (yytype < YYNTOKENS)
+    {
+      YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
+# ifdef YYPRINT
+      YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
+# endif
+    }
+  else
+    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
+
+  switch (yytype)
+    {
+      default:
+        break;
+    }
+  YYFPRINTF (yyoutput, ")");
+}
 
 
-/* The user can define YYPARSE_PARAM as the name of an argument to be passed
-   into yyparse.  The argument should have type void *.
-   It should actually point to an object.
-   Grammar actions can access the variable by casting it
-   to the proper pointer type.  */
+#endif /* ! YYDEBUG */
+/*-----------------------------------------------.
+| Release the memory associated to this symbol.  |
+`-----------------------------------------------*/
+
+#if defined (__STDC__) || defined (__cplusplus)
+static void
+yydestruct (int yytype, YYSTYPE *yyvaluep)
+#else
+static void
+yydestruct (yytype, yyvaluep)
+    int yytype;
+    YYSTYPE *yyvaluep;
+#endif
+{
+  /* Pacify ``unused variable'' warnings.  */
+  (void) yyvaluep;
+
+  switch (yytype)
+    {
+
+      default:
+        break;
+    }
+}
+\f
+
+/* Prevent warnings from -Wmissing-prototypes.  */
 
 #ifdef YYPARSE_PARAM
 # if defined (__STDC__) || defined (__cplusplus)
 
 #ifdef YYPARSE_PARAM
 # if defined (__STDC__) || defined (__cplusplus)
-#  define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
-#  define YYPARSE_PARAM_DECL
+int yyparse (void *YYPARSE_PARAM);
 # else
 # else
-#  define YYPARSE_PARAM_ARG YYPARSE_PARAM
-#  define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
+int yyparse ();
 # endif
 # endif
-#else /* !YYPARSE_PARAM */
-# define YYPARSE_PARAM_ARG
-# define YYPARSE_PARAM_DECL
-#endif /* !YYPARSE_PARAM */
-
-/* Prevent warning if -Wstrict-prototypes.  */
-#ifdef __GNUC__
-# ifdef YYPARSE_PARAM
-int yyparse (void *);
-# else
+#else /* ! YYPARSE_PARAM */
+#if defined (__STDC__) || defined (__cplusplus)
 int yyparse (void);
 int yyparse (void);
-# endif
+#else
+int yyparse ();
 #endif
 #endif
+#endif /* ! YYPARSE_PARAM */
+
 
 
-/* YY_DECL_VARIABLES -- depending whether we use a pure parser,
-   variables are global, or local to YYPARSE.  */
-
-#define YY_DECL_NON_LSP_VARIABLES                      \
-/* The lookahead symbol.  */                           \
-int yychar;                                            \
-                                                       \
-/* The semantic value of the lookahead symbol. */      \
-YYSTYPE yylval;                                                \
-                                                       \
-/* Number of parse errors so far.  */                  \
-int yynerrs;
 
 
-#if YYLSP_NEEDED
-# define YY_DECL_VARIABLES                     \
-YY_DECL_NON_LSP_VARIABLES                      \
-                                               \
-/* Location data for the lookahead symbol.  */ \
-YYLTYPE yylloc;
-#else
-# define YY_DECL_VARIABLES                     \
-YY_DECL_NON_LSP_VARIABLES
-#endif
 
 
 
 
-/* If nonreentrant, generate the variables here. */
 
 
-#if !YYPURE
-YY_DECL_VARIABLES
-#endif  /* !YYPURE */
+/*----------.
+| yyparse.  |
+`----------*/
 
 
+#ifdef YYPARSE_PARAM
+# if defined (__STDC__) || defined (__cplusplus)
+int yyparse (void *YYPARSE_PARAM)
+# else
+int yyparse (YYPARSE_PARAM)
+  void *YYPARSE_PARAM;
+# endif
+#else /* ! YYPARSE_PARAM */
+#if defined (__STDC__) || defined (__cplusplus)
+int
+yyparse (void)
+#else
 int
 int
-yyparse (YYPARSE_PARAM_ARG)
-     YYPARSE_PARAM_DECL
+yyparse ()
+
+#endif
+#endif
 {
 {
-  /* If reentrant, generate the variables here. */
-#if YYPURE
-  YY_DECL_VARIABLES
-#endif  /* !YYPURE */
+  /* The lookahead symbol.  */
+int yychar;
+
+/* The semantic value of the lookahead symbol.  */
+YYSTYPE yylval;
+
+/* Number of syntax errors so far.  */
+int yynerrs;
 
   register int yystate;
   register int yyn;
 
   register int yystate;
   register int yyn;
@@ -832,7 +1088,7 @@ yyparse (YYPARSE_PARAM_ARG)
   /* Number of tokens to shift before error messages enabled.  */
   int yyerrstatus;
   /* Lookahead token as an internal (translated) token number.  */
   /* Number of tokens to shift before error messages enabled.  */
   int yyerrstatus;
   /* Lookahead token as an internal (translated) token number.  */
-  int yychar1 = 0;
+  int yytoken = 0;
 
   /* Three stacks and their tools:
      `yyss': related to states,
 
   /* Three stacks and their tools:
      `yyss': related to states,
@@ -842,7 +1098,7 @@ yyparse (YYPARSE_PARAM_ARG)
      Refer to the stacks thru separate pointers, to allow yyoverflow
      to reallocate them elsewhere.  */
 
      Refer to the stacks thru separate pointers, to allow yyoverflow
      to reallocate them elsewhere.  */
 
-  /* The state stack. */
+  /* The state stack.  */
   short        yyssa[YYINITDEPTH];
   short *yyss = yyssa;
   register short *yyssp;
   short        yyssa[YYINITDEPTH];
   short *yyss = yyssa;
   register short *yyssp;
@@ -852,31 +1108,19 @@ yyparse (YYPARSE_PARAM_ARG)
   YYSTYPE *yyvs = yyvsa;
   register YYSTYPE *yyvsp;
 
   YYSTYPE *yyvs = yyvsa;
   register YYSTYPE *yyvsp;
 
-#if YYLSP_NEEDED
-  /* The location stack.  */
-  YYLTYPE yylsa[YYINITDEPTH];
-  YYLTYPE *yyls = yylsa;
-  YYLTYPE *yylsp;
-#endif
 
 
-#if YYLSP_NEEDED
-# define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--)
-#else
-# define YYPOPSTACK   (yyvsp--, yyssp--)
-#endif
 
 
-  YYSIZE_T yystacksize = YYINITDEPTH;
+#define YYPOPSTACK   (yyvsp--, yyssp--)
 
 
+  YYSIZE_T yystacksize = YYINITDEPTH;
 
   /* The variables used to return semantic value and location from the
      action routines.  */
   YYSTYPE yyval;
 
   /* The variables used to return semantic value and location from the
      action routines.  */
   YYSTYPE yyval;
-#if YYLSP_NEEDED
-  YYLTYPE yyloc;
-#endif
+
 
   /* When reducing, the number of symbols on the RHS of the reduced
 
   /* When reducing, the number of symbols on the RHS of the reduced
-     rule. */
+     rule.  */
   int yylen;
 
   YYDPRINTF ((stderr, "Starting parse\n"));
   int yylen;
 
   YYDPRINTF ((stderr, "Starting parse\n"));
@@ -893,9 +1137,7 @@ yyparse (YYPARSE_PARAM_ARG)
 
   yyssp = yyss;
   yyvsp = yyvs;
 
   yyssp = yyss;
   yyvsp = yyvs;
-#if YYLSP_NEEDED
-  yylsp = yyls;
-#endif
+
   goto yysetstate;
 
 /*------------------------------------------------------------.
   goto yysetstate;
 
 /*------------------------------------------------------------.
@@ -910,7 +1152,7 @@ yyparse (YYPARSE_PARAM_ARG)
  yysetstate:
   *yyssp = yystate;
 
  yysetstate:
   *yyssp = yystate;
 
-  if (yyssp >= yyss + yystacksize - 1)
+  if (yyss + yystacksize - 1 <= yyssp)
     {
       /* Get the current used size of the three stacks, in elements.  */
       YYSIZE_T yysize = yyssp - yyss + 1;
     {
       /* Get the current used size of the three stacks, in elements.  */
       YYSIZE_T yysize = yyssp - yyss + 1;
@@ -923,24 +1165,17 @@ yyparse (YYPARSE_PARAM_ARG)
        YYSTYPE *yyvs1 = yyvs;
        short *yyss1 = yyss;
 
        YYSTYPE *yyvs1 = yyvs;
        short *yyss1 = yyss;
 
-       /* Each stack pointer address is followed by the size of the
-          data in use in that stack, in bytes.  */
-# if YYLSP_NEEDED
-       YYLTYPE *yyls1 = yyls;
-       /* This used to be a conditional around just the two extra args,
-          but that might be undefined if yyoverflow is a macro.  */
-       yyoverflow ("parser stack overflow",
-                   &yyss1, yysize * sizeof (*yyssp),
-                   &yyvs1, yysize * sizeof (*yyvsp),
-                   &yyls1, yysize * sizeof (*yylsp),
-                   &yystacksize);
-       yyls = yyls1;
-# else
+
+       /* 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 ("parser stack overflow",
                    &yyss1, yysize * sizeof (*yyssp),
                    &yyvs1, yysize * sizeof (*yyvsp),
        yyoverflow ("parser stack overflow",
                    &yyss1, yysize * sizeof (*yyssp),
                    &yyvs1, yysize * sizeof (*yyvsp),
+
                    &yystacksize);
                    &yystacksize);
-# endif
+
        yyss = yyss1;
        yyvs = yyvs1;
       }
        yyss = yyss1;
        yyvs = yyvs1;
       }
@@ -949,10 +1184,10 @@ yyparse (YYPARSE_PARAM_ARG)
       goto yyoverflowlab;
 # else
       /* Extend the stack our own way.  */
       goto yyoverflowlab;
 # else
       /* Extend the stack our own way.  */
-      if (yystacksize >= YYMAXDEPTH)
+      if (YYMAXDEPTH <= yystacksize)
        goto yyoverflowlab;
       yystacksize *= 2;
        goto yyoverflowlab;
       yystacksize *= 2;
-      if (yystacksize > YYMAXDEPTH)
+      if (YYMAXDEPTH < yystacksize)
        yystacksize = YYMAXDEPTH;
 
       {
        yystacksize = YYMAXDEPTH;
 
       {
@@ -963,10 +1198,8 @@ yyparse (YYPARSE_PARAM_ARG)
          goto yyoverflowlab;
        YYSTACK_RELOCATE (yyss);
        YYSTACK_RELOCATE (yyvs);
          goto yyoverflowlab;
        YYSTACK_RELOCATE (yyss);
        YYSTACK_RELOCATE (yyvs);
-# if YYLSP_NEEDED
-       YYSTACK_RELOCATE (yyls);
-# endif
-# undef YYSTACK_RELOCATE
+
+#  undef YYSTACK_RELOCATE
        if (yyss1 != yyssa)
          YYSTACK_FREE (yyss1);
       }
        if (yyss1 != yyssa)
          YYSTACK_FREE (yyss1);
       }
@@ -975,14 +1208,12 @@ yyparse (YYPARSE_PARAM_ARG)
 
       yyssp = yyss + yysize - 1;
       yyvsp = yyvs + yysize - 1;
 
       yyssp = yyss + yysize - 1;
       yyvsp = yyvs + yysize - 1;
-#if YYLSP_NEEDED
-      yylsp = yyls + yysize - 1;
-#endif
+
 
       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
                  (unsigned long int) yystacksize));
 
 
       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
                  (unsigned long int) yystacksize));
 
-      if (yyssp >= yyss + yystacksize - 1)
+      if (yyss + yystacksize - 1 <= yyssp)
        YYABORT;
     }
 
        YYABORT;
     }
 
@@ -990,7 +1221,6 @@ yyparse (YYPARSE_PARAM_ARG)
 
   goto yybackup;
 
 
   goto yybackup;
 
-
 /*-----------.
 | yybackup.  |
 `-----------*/
 /*-----------.
 | yybackup.  |
 `-----------*/
@@ -1003,88 +1233,55 @@ yybackup:
   /* First try to decide what to do without reference to lookahead token.  */
 
   yyn = yypact[yystate];
   /* First try to decide what to do without reference to lookahead token.  */
 
   yyn = yypact[yystate];
-  if (yyn == YYFLAG)
+  if (yyn == YYPACT_NINF)
     goto yydefault;
 
   /* Not known => get a lookahead token if don't already have one.  */
 
     goto yydefault;
 
   /* Not known => get a lookahead token if don't already have one.  */
 
-  /* yychar is either YYEMPTY or YYEOF
-     or a valid token in external form.  */
-
+  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
   if (yychar == YYEMPTY)
     {
       YYDPRINTF ((stderr, "Reading a token: "));
       yychar = YYLEX;
     }
 
   if (yychar == YYEMPTY)
     {
       YYDPRINTF ((stderr, "Reading a token: "));
       yychar = YYLEX;
     }
 
-  /* Convert token to internal form (in yychar1) for indexing tables with */
-
-  if (yychar <= 0)             /* This means end of input. */
+  if (yychar <= YYEOF)
     {
     {
-      yychar1 = 0;
-      yychar = YYEOF;          /* Don't call YYLEX any more */
-
+      yychar = yytoken = YYEOF;
       YYDPRINTF ((stderr, "Now at end of input.\n"));
     }
   else
     {
       YYDPRINTF ((stderr, "Now at end of input.\n"));
     }
   else
     {
-      yychar1 = YYTRANSLATE (yychar);
-
-#if YYDEBUG
-     /* We have to keep this `#if YYDEBUG', since we use variables
-       which are defined only if `YYDEBUG' is set.  */
-      if (yydebug)
-       {
-         YYFPRINTF (stderr, "Next token is %d (%s",
-                    yychar, yytname[yychar1]);
-         /* Give the individual parser a way to print the precise
-            meaning of a token, for further debugging info.  */
-# ifdef YYPRINT
-         YYPRINT (stderr, yychar, yylval);
-# endif
-         YYFPRINTF (stderr, ")\n");
-       }
-#endif
+      yytoken = YYTRANSLATE (yychar);
+      YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);
     }
 
     }
 
-  yyn += yychar1;
-  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
+  /* If the proper action on seeing token YYTOKEN is to reduce or to
+     detect an error, take that action.  */
+  yyn += yytoken;
+  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
     goto yydefault;
     goto yydefault;
-
   yyn = yytable[yyn];
   yyn = yytable[yyn];
-
-  /* yyn is what to do for this token type in this state.
-     Negative => reduce, -yyn is rule number.
-     Positive => shift, yyn is new state.
-       New state is final state => don't bother to shift,
-       just return success.
-     0, or most negative number => error.  */
-
-  if (yyn < 0)
+  if (yyn <= 0)
     {
     {
-      if (yyn == YYFLAG)
+      if (yyn == 0 || yyn == YYTABLE_NINF)
        goto yyerrlab;
       yyn = -yyn;
       goto yyreduce;
     }
        goto yyerrlab;
       yyn = -yyn;
       goto yyreduce;
     }
-  else if (yyn == 0)
-    goto yyerrlab;
 
   if (yyn == YYFINAL)
     YYACCEPT;
 
   /* Shift the lookahead token.  */
 
   if (yyn == YYFINAL)
     YYACCEPT;
 
   /* Shift the lookahead token.  */
-  YYDPRINTF ((stderr, "Shifting token %d (%s), ",
-             yychar, yytname[yychar1]));
+  YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));
 
   /* Discard the token being shifted unless it is eof.  */
   if (yychar != YYEOF)
     yychar = YYEMPTY;
 
   *++yyvsp = yylval;
 
   /* Discard the token being shifted unless it is eof.  */
   if (yychar != YYEOF)
     yychar = YYEMPTY;
 
   *++yyvsp = yylval;
-#if YYLSP_NEEDED
-  *++yylsp = yylloc;
-#endif
+
 
   /* Count tokens shifted since error; after three, turn off error
      status.  */
 
   /* Count tokens shifted since error; after three, turn off error
      status.  */
@@ -1115,328 +1312,471 @@ yyreduce:
   /* If YYLEN is nonzero, implement the default value of the action:
      `$$ = $1'.
 
   /* If YYLEN is nonzero, implement the default value of the action:
      `$$ = $1'.
 
-     Otherwise, the following line sets YYVAL to the semantic value of
-     the lookahead token.  This behavior is undocumented and Bison
+     Otherwise, the following line sets YYVAL to garbage.
+     This behavior is undocumented and Bison
      users should not rely upon it.  Assigning to YYVAL
      unconditionally makes the parser a bit smaller, and it avoids a
      GCC warning that YYVAL may be used uninitialized.  */
   yyval = yyvsp[1-yylen];
 
      users should not rely upon it.  Assigning to YYVAL
      unconditionally makes the parser a bit smaller, and it avoids a
      GCC warning that YYVAL may be used uninitialized.  */
   yyval = yyvsp[1-yylen];
 
-#if YYLSP_NEEDED
-  /* Similarly for the default location.  Let the user run additional
-     commands if for instance locations are ranges.  */
-  yyloc = yylsp[1-yylen];
-  YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
-#endif
 
 
-#if YYDEBUG
-  /* We have to keep this `#if YYDEBUG', since we use variables which
-     are defined only if `YYDEBUG' is set.  */
-  if (yydebug)
+  YY_REDUCE_PRINT (yyn);
+  switch (yyn)
     {
     {
-      int yyi;
+        case 2:
 
 
-      YYFPRINTF (stderr, "Reducing via rule %d (line %d), ",
-                yyn, yyrline[yyn]);
+    {;}
+    break;
 
 
-      /* Print the symbols being reduced, and their result.  */
-      for (yyi = yyprhs[yyn]; yyrhs[yyi] > 0; yyi++)
-       YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]);
-      YYFPRINTF (stderr, " -> %s\n", yytname[yyr1[yyn]]);
-    }
-#endif
+  case 3:
 
 
-  switch (yyn) {
-
-case 1:
-{;
-    break;}
-case 2:
-{;
-    break;}
-case 3:
-{ mtreader_processDeclaration (yyvsp[-1].mtdecl); ;
-    break;}
-case 4:
-{ mtreader_processGlobalDeclaration (yyvsp[-1].mtdecl); ;
-    break;}
-case 5:
-{ yyval.mtdecl = mtDeclarationNode_create (yyvsp[-1].tok, yyvsp[0].mtpieces); ;
-    break;}
-case 6:
-{ yyval.mtpieces = mtDeclarationPieces_create (); ;
-    break;}
-case 7:
-{ yyval.mtpieces = mtDeclarationPieces_append (yyvsp[0].mtpieces, yyvsp[-1].mtpiece); ;
-    break;}
-case 8:
-{ yyval.mtpiece = mtDeclarationPiece_createContext (yyvsp[0].mtcontext); ;
-    break;}
-case 9:
-{ yyval.mtpiece = mtDeclarationPiece_createValues (yyvsp[0].mtvalues); ;
-    break;}
-case 10:
-{ yyval.mtpiece = mtDeclarationPiece_createDefaults (yyvsp[0].mtdefaults); ;
-    break;}
-case 11:
-{ yyval.mtpiece = mtDeclarationPiece_createValueDefault (yyvsp[0].tok); ;
-    break;}
-case 12:
-{ yyval.mtpiece = mtDeclarationPiece_createAnnotations (yyvsp[0].mtannotations); ;
-    break;}
-case 13:
-{ yyval.mtpiece = mtDeclarationPiece_createMerge (yyvsp[0].mtmerge); ;
-    break;}
-case 14:
-{ yyval.mtpiece = mtDeclarationPiece_createTransfers (yyvsp[0].mttransferclauselist); ;
-    break;}
-case 15:
-{ yyval.mtpiece = mtDeclarationPiece_createPreconditions (yyvsp[0].mttransferclauselist); ;
-    break;}
-case 16:
-{ yyval.mtpiece = mtDeclarationPiece_createPostconditions (yyvsp[0].mttransferclauselist); ;
-    break;}
-case 17:
-{ yyval.mtpiece = mtDeclarationPiece_createLosers (yyvsp[0].mtlosereferencelist); ;
-    break;}
-case 18:
-{ yyval.mtcontext = yyvsp[0].mtcontext; ;
-    break;}
-case 19:
-{ yyval.mtcontext = mtContextNode_createAny (); ;
-    break;}
-case 21:
-{ yyval.mtcontext = mtContextNode_createParameter (yyvsp[0].ctyp); ;
-    break;}
-case 22:
-{ yyval.mtcontext = mtContextNode_createReference (yyvsp[0].ctyp); ;
-    break;}
-case 23:
-{ yyval.mtcontext = mtContextNode_createResult (yyvsp[0].ctyp); ;
-    break;}
-case 24:
-{ yyval.mtcontext = mtContextNode_createClause (yyvsp[0].ctyp); ;
-    break;}
-case 25:
-{ yyval.mtcontext = mtContextNode_createLiteral (yyvsp[0].ctyp); ;
-    break;}
-case 26:
-{ yyval.mtcontext = mtContextNode_createNull (yyvsp[0].ctyp); ;
-    break;}
-case 27:
-{ yyval.ctyp = ctype_unknown; ;
-    break;}
-case 28:
-{ DPRINTF (("Type: %s", qtype_unparse (yyvsp[0].qtyp))); yyval.ctyp = qtype_getType (yyvsp[0].qtyp); ;
-    break;}
-case 30:
-{ yyval.qtyp = qtype_newBase (yyvsp[-1].qtyp, yyvsp[0].ctyp); ;
-    break;}
-case 31:
-{ yyval.qtyp = yyvsp[0].qtyp; ;
-    break;}
-case 32:
-{ yyval.qtyp = qtype_mergeAlt (yyvsp[-2].qtyp, yyvsp[0].qtyp); ;
-    break;}
-case 33:
-{ yyval.qtyp = qtype_combine (yyvsp[0].qtyp, yyvsp[-1].ctyp); ;
-    break;}
-case 34:
-{ yyval.qtyp = qtype_unknown (); ;
-    break;}
-case 35:
-{ yyval.qtyp = yyvsp[0].qtyp; ;
-    break;}
-case 36:
-{ yyval.ctyp = ctype_adjustPointers (yyvsp[0].pointers, ctype_unknown); ;
-    break;}
-case 38:
-{ yyval.ctyp = ctype_adjustPointers (yyvsp[-1].pointers, yyvsp[0].ctyp); ;
-    break;}
-case 39:
-{ yyval.pointers = pointers_createMt (yyvsp[0].tok); ;
-    break;}
-case 40:
-{ yyval.pointers = pointers_createModsMt (yyvsp[-1].tok, yyvsp[0].quals); ;
-    break;}
-case 41:
-{ yyval.pointers = pointers_extend (pointers_createMt (yyvsp[-1].tok), yyvsp[0].pointers); ;
-    break;}
-case 42:
-{ yyval.pointers = pointers_extend (pointers_createModsMt (yyvsp[-2].tok, yyvsp[-1].quals), yyvsp[0].pointers); ;
-    break;}
-case 43:
-{ yyval.qual = qual_createConst (); ;
-    break;}
-case 44:
-{ yyval.qual = qual_createVolatile (); ;
-    break;}
-case 45:
-{ yyval.qual = qual_createRestrict (); ;
-    break;}
-case 46:
-{ yyval.quals = qualList_single (yyvsp[0].qual); ;
-    break;}
-case 47:
-{ yyval.quals = qualList_add (yyvsp[-1].quals, yyvsp[0].qual); ;
-    break;}
-case 48:
-{ yyval.ctyp = ctype_expectFunction (yyvsp[-1].ctyp); ;
-    break;}
-case 49:
-{ yyval.ctyp = ctype_makeArray (ctype_unknown); ;
-    break;}
-case 50:
-{ yyval.ctyp = ctype_makeArray (yyvsp[-2].ctyp); ;
-    break;}
-case 51:
-{ yyval.ctyp = ctype_char; ;
-    break;}
-case 52:
-{ yyval.ctyp = ctype_int; ;
-    break;}
-case 53:
-{ yyval.ctyp = ctype_float; ;
-    break;}
-case 54:
-{ yyval.ctyp = ctype_double; ;
-    break;}
-case 55:
-{ yyval.ctyp = ctype_void; ;
-    break;}
-case 56:
-{ yyval.ctyp = ctype_unknown; ;
-    break;}
-case 57:
-{ yyval.ctyp = ctype_anyintegral; ;
-    break;}
-case 58:
-{ yyval.ctyp = ctype_unsignedintegral; ;
-    break;}
-case 59:
-{ yyval.ctyp = ctype_signedintegral; ;
-    break;}
-case 61:
-{ yyval.ctyp = mtscanner_lookupType (yyvsp[0].tok); ;
-    break;}
-case 62:
-{ yyval.mtvalues = mtValuesNode_create (yyvsp[0].cstringlist); ;
-    break;}
-case 63:
-{ yyval.cstringlist = cstringList_single (mttok_getText (yyvsp[0].tok)); ;
-    break;}
-case 64:
-{ yyval.cstringlist = cstringList_prepend (yyvsp[0].cstringlist, mttok_getText (yyvsp[-2].tok)); ;
-    break;}
-case 65:
-{ yyval.tok = yyvsp[0].tok; ;
-    break;}
-case 66:
-{ yyval.mtdefaults = mtDefaultsNode_create (yyvsp[-1].tok, yyvsp[0].mtdeflist); ;
-    break;}
-case 67:
-{ yyval.mtdeflist = mtDefaultsDeclList_single (mtDefaultsDecl_create (yyvsp[-2].mtcontext, yyvsp[0].tok)); ;
-    break;}
-case 68:
-{ yyval.mtdeflist = mtDefaultsDeclList_prepend (yyvsp[0].mtdeflist, mtDefaultsDecl_create (yyvsp[-3].mtcontext, yyvsp[-1].tok)); ;
-    break;}
-case 69:
-{ yyval.mtannotations = mtAnnotationsNode_create (yyvsp[0].mtannotlist); ;
-    break;}
-case 70:
-{ yyval.mtannotlist = mtAnnotationList_single (yyvsp[0].mtannotdecl); ;
-    break;}
-case 71:
-{ yyval.mtannotlist = mtAnnotationList_prepend (yyvsp[0].mtannotlist, yyvsp[-1].mtannotdecl); ;
-    break;}
-case 72:
-{ yyval.mtannotdecl = mtAnnotationDecl_create (yyvsp[-3].tok, yyvsp[-2].mtcontext, yyvsp[0].tok); ;
-    break;}
-case 73:
-{ yyval.mtmerge = mtMergeNode_create (yyvsp[0].mtmergeclauselist); ;
-    break;}
-case 74:
-{ yyval.mtmergeclauselist = mtMergeClauseList_single (yyvsp[0].mtmergeclause); ;
-    break;}
-case 75:
-{ yyval.mtmergeclauselist = mtMergeClauseList_prepend (yyvsp[0].mtmergeclauselist, yyvsp[-1].mtmergeclause); ;
-    break;}
-case 76:
-{ yyval.mtmergeclause = mtMergeClause_create (yyvsp[-4].mtmergeitem, yyvsp[-2].mtmergeitem, yyvsp[0].mttransferaction); ;
-    break;}
-case 77:
-{ yyval.mtmergeitem = mtMergeItem_createValue (yyvsp[0].tok); ;
-    break;}
-case 78:
-{ yyval.mtmergeitem = mtMergeItem_createStar (yyvsp[0].tok); ;
-    break;}
-case 79:
-{ yyval.mttransferclauselist = yyvsp[0].mttransferclauselist; ;
-    break;}
-case 80:
-{ yyval.mttransferclauselist = yyvsp[0].mttransferclauselist; ;
-    break;}
-case 81:
-{ yyval.mttransferclauselist = yyvsp[0].mttransferclauselist; ;
-    break;}
-case 82:
-{ yyval.mtlosereferencelist = yyvsp[0].mtlosereferencelist; ;
-    break;}
-case 83:
-{ yyval.mtlosereferencelist = mtLoseReferenceList_single (yyvsp[0].mtlosereference); ;
-    break;}
-case 84:
-{ yyval.mtlosereferencelist = mtLoseReferenceList_prepend (yyvsp[0].mtlosereferencelist, yyvsp[-1].mtlosereference); ;
-    break;}
-case 85:
-{ yyval.mtlosereference = mtLoseReference_create (yyvsp[-2].tok, yyvsp[0].mttransferaction); ;
-    break;}
-case 86:
-{ yyval.mttransferclauselist = mtTransferClauseList_single (yyvsp[0].mttransferclause); ;
-    break;}
-case 87:
-{ yyval.mttransferclauselist = mtTransferClauseList_prepend (yyvsp[0].mttransferclauselist, yyvsp[-1].mttransferclause); ;
-    break;}
-case 88:
-{ yyval.mttransferclause = mtTransferClause_create (yyvsp[-4].tok, yyvsp[-2].tok, yyvsp[0].mttransferaction); ;
-    break;}
-case 89:
-{ yyval.mttransferaction = mtTransferAction_createValue (yyvsp[0].tok); ;
-    break;}
-case 90:
-{ yyval.mttransferaction = yyvsp[0].mttransferaction; ;
-    break;}
-case 91:
-{ yyval.mttransferaction = mtTransferAction_createError (yyvsp[0].tok); ;
-    break;}
-case 92:
-{ yyval.mttransferaction = mtTransferAction_createErrorMessage (yyvsp[0].tok); ;
-    break;}
-}
+    {;}
+    break;
+
+  case 4:
+
+    { mtreader_processDeclaration (yyvsp[-1].mtdecl); ;}
+    break;
+
+  case 5:
+
+    { mtreader_processGlobalDeclaration (yyvsp[-1].mtdecl); ;}
+    break;
+
+  case 6:
+
+    { yyval.mtdecl = mtDeclarationNode_create (yyvsp[-1].tok, yyvsp[0].mtpieces); ;}
+    break;
+
+  case 7:
+
+    { yyval.mtpieces = mtDeclarationPieces_create (); ;}
+    break;
+
+  case 8:
+
+    { yyval.mtpieces = mtDeclarationPieces_append (yyvsp[0].mtpieces, yyvsp[-1].mtpiece); ;}
+    break;
+
+  case 9:
+
+    { yyval.mtpiece = mtDeclarationPiece_createContext (yyvsp[0].mtcontext); ;}
+    break;
+
+  case 10:
+
+    { yyval.mtpiece = mtDeclarationPiece_createValues (yyvsp[0].mtvalues); ;}
+    break;
+
+  case 11:
+
+    { yyval.mtpiece = mtDeclarationPiece_createDefaults (yyvsp[0].mtdefaults); ;}
+    break;
+
+  case 12:
+
+    { yyval.mtpiece = mtDeclarationPiece_createValueDefault (yyvsp[0].tok); ;}
+    break;
+
+  case 13:
+
+    { yyval.mtpiece = mtDeclarationPiece_createAnnotations (yyvsp[0].mtannotations); ;}
+    break;
+
+  case 14:
+
+    { yyval.mtpiece = mtDeclarationPiece_createMerge (yyvsp[0].mtmerge); ;}
+    break;
+
+  case 15:
+
+    { yyval.mtpiece = mtDeclarationPiece_createTransfers (yyvsp[0].mttransferclauselist); ;}
+    break;
+
+  case 16:
+
+    { yyval.mtpiece = mtDeclarationPiece_createPreconditions (yyvsp[0].mttransferclauselist); ;}
+    break;
+
+  case 17:
+
+    { yyval.mtpiece = mtDeclarationPiece_createPostconditions (yyvsp[0].mttransferclauselist); ;}
+    break;
+
+  case 18:
+
+    { yyval.mtpiece = mtDeclarationPiece_createLosers (yyvsp[0].mtlosereferencelist); ;}
+    break;
+
+  case 19:
+
+    { yyval.mtcontext = yyvsp[0].mtcontext; ;}
+    break;
+
+  case 20:
+
+    { yyval.mtcontext = mtContextNode_createAny (); ;}
+    break;
+
+  case 22:
+
+    { yyval.mtcontext = mtContextNode_createParameter (yyvsp[0].ctyp); ;}
+    break;
+
+  case 23:
+
+    { yyval.mtcontext = mtContextNode_createReference (yyvsp[0].ctyp); ;}
+    break;
+
+  case 24:
+
+    { yyval.mtcontext = mtContextNode_createResult (yyvsp[0].ctyp); ;}
+    break;
+
+  case 25:
+
+    { yyval.mtcontext = mtContextNode_createClause (yyvsp[0].ctyp); ;}
+    break;
+
+  case 26:
+
+    { yyval.mtcontext = mtContextNode_createLiteral (yyvsp[0].ctyp); ;}
+    break;
+
+  case 27:
+
+    { yyval.mtcontext = mtContextNode_createNull (yyvsp[0].ctyp); ;}
+    break;
+
+  case 28:
+
+    { yyval.ctyp = ctype_unknown; ;}
+    break;
+
+  case 29:
+
+    { DPRINTF (("Type: %s", qtype_unparse (yyvsp[0].qtyp))); yyval.ctyp = qtype_getType (yyvsp[0].qtyp); ;}
+    break;
+
+  case 31:
+
+    { yyval.qtyp = qtype_newBase (yyvsp[-1].qtyp, yyvsp[0].ctyp); ;}
+    break;
+
+  case 32:
+
+    { yyval.qtyp = yyvsp[0].qtyp; ;}
+    break;
+
+  case 33:
+
+    { yyval.qtyp = qtype_mergeAlt (yyvsp[-2].qtyp, yyvsp[0].qtyp); ;}
+    break;
+
+  case 34:
+
+    { yyval.qtyp = qtype_combine (yyvsp[0].qtyp, yyvsp[-1].ctyp); ;}
+    break;
+
+  case 35:
+
+    { yyval.qtyp = qtype_unknown (); ;}
+    break;
+
+  case 36:
+
+    { yyval.qtyp = yyvsp[0].qtyp; ;}
+    break;
+
+  case 37:
+
+    { yyval.ctyp = ctype_adjustPointers (yyvsp[0].pointers, ctype_unknown); ;}
+    break;
+
+  case 39:
+
+    { yyval.ctyp = ctype_adjustPointers (yyvsp[-1].pointers, yyvsp[0].ctyp); ;}
+    break;
+
+  case 40:
+
+    { yyval.pointers = pointers_createMt (yyvsp[0].tok); ;}
+    break;
+
+  case 41:
+
+    { yyval.pointers = pointers_createModsMt (yyvsp[-1].tok, yyvsp[0].quals); ;}
+    break;
+
+  case 42:
+
+    { yyval.pointers = pointers_extend (pointers_createMt (yyvsp[-1].tok), yyvsp[0].pointers); ;}
+    break;
+
+  case 43:
+
+    { yyval.pointers = pointers_extend (pointers_createModsMt (yyvsp[-2].tok, yyvsp[-1].quals), yyvsp[0].pointers); ;}
+    break;
+
+  case 44:
+
+    { yyval.qual = qual_createConst (); ;}
+    break;
+
+  case 45:
+
+    { yyval.qual = qual_createVolatile (); ;}
+    break;
+
+  case 46:
+
+    { yyval.qual = qual_createRestrict (); ;}
+    break;
+
+  case 47:
+
+    { yyval.quals = qualList_single (yyvsp[0].qual); ;}
+    break;
+
+  case 48:
+
+    { yyval.quals = qualList_add (yyvsp[-1].quals, yyvsp[0].qual); ;}
+    break;
+
+  case 49:
+
+    { yyval.ctyp = ctype_expectFunction (yyvsp[-1].ctyp); ;}
+    break;
+
+  case 50:
+
+    { yyval.ctyp = ctype_makeArray (ctype_unknown); ;}
+    break;
+
+  case 51:
+
+    { yyval.ctyp = ctype_makeArray (yyvsp[-2].ctyp); ;}
+    break;
+
+  case 52:
+
+    { yyval.ctyp = ctype_char; ;}
+    break;
+
+  case 53:
+
+    { yyval.ctyp = ctype_int; ;}
+    break;
+
+  case 54:
+
+    { yyval.ctyp = ctype_float; ;}
+    break;
+
+  case 55:
+
+    { yyval.ctyp = ctype_double; ;}
+    break;
 
 
+  case 56:
+
+    { yyval.ctyp = ctype_void; ;}
+    break;
+
+  case 57:
+
+    { yyval.ctyp = ctype_unknown; ;}
+    break;
+
+  case 58:
+
+    { yyval.ctyp = ctype_anyintegral; ;}
+    break;
+
+  case 59:
+
+    { yyval.ctyp = ctype_unsignedintegral; ;}
+    break;
+
+  case 60:
+
+    { yyval.ctyp = ctype_signedintegral; ;}
+    break;
+
+  case 62:
+
+    { yyval.ctyp = mtscanner_lookupType (yyvsp[0].tok); ;}
+    break;
+
+  case 63:
+
+    { yyval.mtvalues = mtValuesNode_create (yyvsp[0].cstringlist); ;}
+    break;
+
+  case 64:
+
+    { yyval.cstringlist = cstringList_single (mttok_getText (yyvsp[0].tok)); ;}
+    break;
+
+  case 65:
+
+    { yyval.cstringlist = cstringList_prepend (yyvsp[0].cstringlist, mttok_getText (yyvsp[-2].tok)); ;}
+    break;
+
+  case 66:
+
+    { yyval.tok = yyvsp[0].tok; ;}
+    break;
+
+  case 67:
+
+    { yyval.mtdefaults = mtDefaultsNode_create (yyvsp[-1].tok, yyvsp[0].mtdeflist); ;}
+    break;
+
+  case 68:
+
+    { yyval.mtdeflist = mtDefaultsDeclList_single (mtDefaultsDecl_create (yyvsp[-2].mtcontext, yyvsp[0].tok)); ;}
+    break;
+
+  case 69:
+
+    { yyval.mtdeflist = mtDefaultsDeclList_prepend (yyvsp[0].mtdeflist, mtDefaultsDecl_create (yyvsp[-3].mtcontext, yyvsp[-1].tok)); ;}
+    break;
+
+  case 70:
+
+    { yyval.mtannotations = mtAnnotationsNode_create (yyvsp[0].mtannotlist); ;}
+    break;
+
+  case 71:
+
+    { yyval.mtannotlist = mtAnnotationList_single (yyvsp[0].mtannotdecl); ;}
+    break;
+
+  case 72:
+
+    { yyval.mtannotlist = mtAnnotationList_prepend (yyvsp[0].mtannotlist, yyvsp[-1].mtannotdecl); ;}
+    break;
+
+  case 73:
+
+    { yyval.mtannotdecl = mtAnnotationDecl_create (yyvsp[-3].tok, yyvsp[-2].mtcontext, yyvsp[0].tok); ;}
+    break;
+
+  case 74:
+
+    { yyval.mtmerge = mtMergeNode_create (yyvsp[0].mtmergeclauselist); ;}
+    break;
+
+  case 75:
+
+    { yyval.mtmergeclauselist = mtMergeClauseList_single (yyvsp[0].mtmergeclause); ;}
+    break;
+
+  case 76:
+
+    { yyval.mtmergeclauselist = mtMergeClauseList_prepend (yyvsp[0].mtmergeclauselist, yyvsp[-1].mtmergeclause); ;}
+    break;
+
+  case 77:
+
+    { yyval.mtmergeclause = mtMergeClause_create (yyvsp[-4].mtmergeitem, yyvsp[-2].mtmergeitem, yyvsp[0].mttransferaction); ;}
+    break;
+
+  case 78:
+
+    { yyval.mtmergeitem = mtMergeItem_createValue (yyvsp[0].tok); ;}
+    break;
+
+  case 79:
+
+    { yyval.mtmergeitem = mtMergeItem_createStar (yyvsp[0].tok); ;}
+    break;
+
+  case 80:
+
+    { yyval.mttransferclauselist = yyvsp[0].mttransferclauselist; ;}
+    break;
+
+  case 81:
+
+    { yyval.mttransferclauselist = yyvsp[0].mttransferclauselist; ;}
+    break;
+
+  case 82:
+
+    { yyval.mttransferclauselist = yyvsp[0].mttransferclauselist; ;}
+    break;
+
+  case 83:
+
+    { yyval.mtlosereferencelist = yyvsp[0].mtlosereferencelist; ;}
+    break;
+
+  case 84:
+
+    { yyval.mtlosereferencelist = mtLoseReferenceList_single (yyvsp[0].mtlosereference); ;}
+    break;
+
+  case 85:
+
+    { yyval.mtlosereferencelist = mtLoseReferenceList_prepend (yyvsp[0].mtlosereferencelist, yyvsp[-1].mtlosereference); ;}
+    break;
+
+  case 86:
+
+    { yyval.mtlosereference = mtLoseReference_create (yyvsp[-2].tok, yyvsp[0].mttransferaction); ;}
+    break;
+
+  case 87:
+
+    { yyval.mttransferclauselist = mtTransferClauseList_single (yyvsp[0].mttransferclause); ;}
+    break;
+
+  case 88:
+
+    { yyval.mttransferclauselist = mtTransferClauseList_prepend (yyvsp[0].mttransferclauselist, yyvsp[-1].mttransferclause); ;}
+    break;
+
+  case 89:
+
+    { yyval.mttransferclause = mtTransferClause_create (yyvsp[-4].tok, yyvsp[-2].tok, yyvsp[0].mttransferaction); ;}
+    break;
+
+  case 90:
+
+    { yyval.mttransferaction = mtTransferAction_createValue (yyvsp[0].tok); ;}
+    break;
+
+  case 91:
+
+    { yyval.mttransferaction = yyvsp[0].mttransferaction; ;}
+    break;
+
+  case 92:
+
+    { yyval.mttransferaction = mtTransferAction_createError (yyvsp[0].tok); ;}
+    break;
+
+  case 93:
+
+    { yyval.mttransferaction = mtTransferAction_createErrorMessage (yyvsp[0].tok); ;}
+    break;
+
+
+    }
+
+/* Line 999 of yacc.c.  */
 
 \f
   yyvsp -= yylen;
   yyssp -= yylen;
 
 \f
   yyvsp -= yylen;
   yyssp -= yylen;
-#if YYLSP_NEEDED
-  yylsp -= yylen;
-#endif
 
 
-#if YYDEBUG
-  if (yydebug)
-    {
-      short *yyssp1 = yyss - 1;
-      YYFPRINTF (stderr, "state stack now");
-      while (yyssp1 != yyssp)
-       YYFPRINTF (stderr, " %d", *++yyssp1);
-      YYFPRINTF (stderr, "\n");
-    }
-#endif
+
+  YY_STACK_PRINT (yyss, yyssp);
 
   *++yyvsp = yyval;
 
   *++yyvsp = yyval;
-#if YYLSP_NEEDED
-  *++yylsp = yyloc;
-#endif
+
 
   /* Now `shift' the result of the reduction.  Determine what state
      that goes to, based on the state we popped back to and the rule
 
   /* Now `shift' the result of the reduction.  Determine what state
      that goes to, based on the state we popped back to and the rule
@@ -1444,11 +1784,11 @@ case 92:
 
   yyn = yyr1[yyn];
 
 
   yyn = yyr1[yyn];
 
-  yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
-  if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
+  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
+  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
     yystate = yytable[yystate];
   else
     yystate = yytable[yystate];
   else
-    yystate = yydefgoto[yyn - YYNTBASE];
+    yystate = yydefgoto[yyn - YYNTOKENS];
 
   goto yynewstate;
 
 
   goto yynewstate;
 
@@ -1461,13 +1801,13 @@ yyerrlab:
   if (!yyerrstatus)
     {
       ++yynerrs;
   if (!yyerrstatus)
     {
       ++yynerrs;
-
-#ifdef YYERROR_VERBOSE
+#if YYERROR_VERBOSE
       yyn = yypact[yystate];
 
       yyn = yypact[yystate];
 
-      if (yyn > YYFLAG && yyn < YYLAST)
+      if (YYPACT_NINF < yyn && yyn < YYLAST)
        {
          YYSIZE_T yysize = 0;
        {
          YYSIZE_T yysize = 0;
+         int yytype = YYTRANSLATE (yychar);
          char *yymsg;
          int yyx, yycount;
 
          char *yymsg;
          int yyx, yycount;
 
@@ -1476,15 +1816,15 @@ yyerrlab:
             YYCHECK.  */
          for (yyx = yyn < 0 ? -yyn : 0;
               yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)
             YYCHECK.  */
          for (yyx = yyn < 0 ? -yyn : 0;
               yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)
-           if (yycheck[yyx + yyn] == yyx)
+           if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
              yysize += yystrlen (yytname[yyx]) + 15, yycount++;
              yysize += yystrlen (yytname[yyx]) + 15, yycount++;
-         yysize += yystrlen ("parse error, unexpected ") + 1;
-         yysize += yystrlen (yytname[YYTRANSLATE (yychar)]);
+         yysize += yystrlen ("syntax error, unexpected ") + 1;
+         yysize += yystrlen (yytname[yytype]);
          yymsg = (char *) YYSTACK_ALLOC (yysize);
          if (yymsg != 0)
            {
          yymsg = (char *) YYSTACK_ALLOC (yysize);
          if (yymsg != 0)
            {
-             char *yyp = yystpcpy (yymsg, "parse error, unexpected ");
-             yyp = yystpcpy (yyp, yytname[YYTRANSLATE (yychar)]);
+             char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
+             yyp = yystpcpy (yyp, yytname[yytype]);
 
              if (yycount < 5)
                {
 
              if (yycount < 5)
                {
@@ -1492,7 +1832,7 @@ yyerrlab:
                  for (yyx = yyn < 0 ? -yyn : 0;
                       yyx < (int) (sizeof (yytname) / sizeof (char *));
                       yyx++)
                  for (yyx = yyn < 0 ? -yyn : 0;
                       yyx < (int) (sizeof (yytname) / sizeof (char *));
                       yyx++)
-                   if (yycheck[yyx + yyn] == yyx)
+                   if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
                      {
                        const char *yyq = ! yycount ? ", expecting " : " or ";
                        yyp = yystpcpy (yyp, yyq);
                      {
                        const char *yyq = ! yycount ? ", expecting " : " or ";
                        yyp = yystpcpy (yyp, yyq);
@@ -1504,102 +1844,77 @@ yyerrlab:
              YYSTACK_FREE (yymsg);
            }
          else
              YYSTACK_FREE (yymsg);
            }
          else
-           yyerror ("parse error; also virtual memory exhausted");
+           yyerror ("syntax error; also virtual memory exhausted");
        }
       else
        }
       else
-#endif /* defined (YYERROR_VERBOSE) */
-       yyerror ("parse error");
+#endif /* YYERROR_VERBOSE */
+       yyerror ("syntax error");
     }
     }
-  goto yyerrlab1;
 
 
 
 
-/*--------------------------------------------------.
-| yyerrlab1 -- error raised explicitly by an action |
-`--------------------------------------------------*/
-yyerrlab1:
+
   if (yyerrstatus == 3)
     {
       /* If just tried and failed to reuse lookahead token after an
         error, discard it.  */
 
   if (yyerrstatus == 3)
     {
       /* If just tried and failed to reuse lookahead token after an
         error, discard it.  */
 
-      /* return failure if at end of input */
+      /* Return failure if at end of input.  */
       if (yychar == YYEOF)
       if (yychar == YYEOF)
-       YYABORT;
-      YYDPRINTF ((stderr, "Discarding token %d (%s).\n",
-                 yychar, yytname[yychar1]));
+        {
+         /* Pop the error token.  */
+          YYPOPSTACK;
+         /* Pop the rest of the stack.  */
+         while (yyss < yyssp)
+           {
+             YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
+             yydestruct (yystos[*yyssp], yyvsp);
+             YYPOPSTACK;
+           }
+         YYABORT;
+        }
+
+      YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
+      yydestruct (yytoken, &yylval);
       yychar = YYEMPTY;
       yychar = YYEMPTY;
+
     }
 
   /* Else will try to reuse lookahead token after shifting the error
      token.  */
     }
 
   /* Else will try to reuse lookahead token after shifting the error
      token.  */
-
-  yyerrstatus = 3;             /* Each real token shifted decrements this */
-
-  goto yyerrhandle;
-
-
-/*-------------------------------------------------------------------.
-| yyerrdefault -- current state does not do anything special for the |
-| error token.                                                       |
-`-------------------------------------------------------------------*/
-yyerrdefault:
-#if 0
-  /* This is wrong; only states that explicitly want error tokens
-     should shift them.  */
-
-  /* If its default is to accept any token, ok.  Otherwise pop it.  */
-  yyn = yydefact[yystate];
-  if (yyn)
-    goto yydefault;
-#endif
+  goto yyerrlab1;
 
 
 
 
-/*---------------------------------------------------------------.
-| yyerrpop -- pop the current state because it cannot handle the |
-| error token                                                    |
-`---------------------------------------------------------------*/
-yyerrpop:
-  if (yyssp == yyss)
-    YYABORT;
-  yyvsp--;
-  yystate = *--yyssp;
-#if YYLSP_NEEDED
-  yylsp--;
-#endif
+/*----------------------------------------------------.
+| yyerrlab1 -- error raised explicitly by an action.  |
+`----------------------------------------------------*/
+yyerrlab1:
+  yyerrstatus = 3;     /* Each real token shifted decrements this.  */
 
 
-#if YYDEBUG
-  if (yydebug)
+  for (;;)
     {
     {
-      short *yyssp1 = yyss - 1;
-      YYFPRINTF (stderr, "Error: state stack now");
-      while (yyssp1 != yyssp)
-       YYFPRINTF (stderr, " %d", *++yyssp1);
-      YYFPRINTF (stderr, "\n");
-    }
-#endif
+      yyn = yypact[yystate];
+      if (yyn != YYPACT_NINF)
+       {
+         yyn += YYTERROR;
+         if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
+           {
+             yyn = yytable[yyn];
+             if (0 < yyn)
+               break;
+           }
+       }
 
 
-/*--------------.
-| yyerrhandle.  |
-`--------------*/
-yyerrhandle:
-  yyn = yypact[yystate];
-  if (yyn == YYFLAG)
-    goto yyerrdefault;
+      /* Pop the current state because it cannot handle the error token.  */
+      if (yyssp == yyss)
+       YYABORT;
 
 
-  yyn += YYTERROR;
-  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
-    goto yyerrdefault;
+      YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
+      yydestruct (yystos[yystate], yyvsp);
+      yyvsp--;
+      yystate = *--yyssp;
 
 
-  yyn = yytable[yyn];
-  if (yyn < 0)
-    {
-      if (yyn == YYFLAG)
-       goto yyerrpop;
-      yyn = -yyn;
-      goto yyreduce;
+      YY_STACK_PRINT (yyss, yyssp);
     }
     }
-  else if (yyn == 0)
-    goto yyerrpop;
 
   if (yyn == YYFINAL)
     YYACCEPT;
 
   if (yyn == YYFINAL)
     YYACCEPT;
@@ -1607,9 +1922,7 @@ yyerrhandle:
   YYDPRINTF ((stderr, "Shifting error token, "));
 
   *++yyvsp = yylval;
   YYDPRINTF ((stderr, "Shifting error token, "));
 
   *++yyvsp = yylval;
-#if YYLSP_NEEDED
-  *++yylsp = yylloc;
-#endif
+
 
   yystate = yyn;
   goto yynewstate;
 
   yystate = yyn;
   goto yynewstate;
@@ -1629,13 +1942,15 @@ yyabortlab:
   yyresult = 1;
   goto yyreturn;
 
   yyresult = 1;
   goto yyreturn;
 
-/*---------------------------------------------.
-| yyoverflowab -- parser overflow comes here.  |
-`---------------------------------------------*/
+#ifndef yyoverflow
+/*----------------------------------------------.
+| yyoverflowlab -- parser overflow comes here.  |
+`----------------------------------------------*/
 yyoverflowlab:
   yyerror ("parser stack overflow");
   yyresult = 2;
   /* Fall through.  */
 yyoverflowlab:
   yyerror ("parser stack overflow");
   yyresult = 2;
   /* Fall through.  */
+#endif
 
 yyreturn:
 #ifndef yyoverflow
 
 yyreturn:
 #ifndef yyoverflow
@@ -1646,6 +1961,9 @@ yyreturn:
 }
 
 
 }
 
 
+
+
+
 # include "bison.reset"
 
 extern char *yytext;
 # include "bison.reset"
 
 extern char *yytext;
@@ -1676,6 +1994,7 @@ static void yyprint (FILE *file, int type, YYSTYPE value)
 
 
 
 
 
 
+
 /*
 ** Resets all flags in bison.head
 */
 /*
 ** Resets all flags in bison.head
 */
index 2df1fc492e2f2553e8f266c72c93e29998a7580b..6bde6910a128a2ea3bf9f0a52cd268138b836fc5 100644 (file)
 
 /* < end of bison.head > */
 
 
 /* < end of bison.head > */
 
-/* A Bison parser, made from signature.y
-   by GNU bison 1.35.  */
+/* A Bison parser, made by GNU Bison 1.875a.  */
 
 
-#define YYBISON 1  /* Identify Bison output.  */
+/* Skeleton parser for Yacc-like parsing with Bison,
+   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
 
 
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+/* As a special exception, when this file is copied by Bison into a
+   Bison output file, you may use that output file without restriction.
+   This special exception was added by the Free Software Foundation
+   in version 1.24 of Bison.  */
+
+/* Written by Richard Stallman by simplifying the original so called
+   ``semantic'' parser.  */
+
+/* All symbols defined below should begin with yy or YY, to avoid
+   infringing on user name space.  This should be done even for local
+   variables, as they might otherwise be expanded by user macros.
+   There are some unavoidable exceptions within include files to
+   define necessary library symbols; they are noted "INFRINGES ON
+   USER NAME SPACE" below.  */
+
+/* Identify Bison output.  */
+#define YYBISON 1
+
+/* Skeleton name.  */
+#define YYSKELETON_NAME "yacc.c"
+
+/* Pure parsers.  */
+#define YYPURE 1
+
+/* Using locations.  */
+#define YYLSP_NEEDED 0
+
+/* If NAME_PREFIX is specified substitute the variables and functions
+   names.  */
 #define yyparse lslparse
 #define yyparse lslparse
-#define yylex lsllex
+#define yylex   lsllex
 #define yyerror lslerror
 #define yyerror lslerror
-#define yylval lsllval
-#define yychar lslchar
+#define yylval  lsllval
+#define yychar  lslchar
 #define yydebug lsldebug
 #define yynerrs lslnerrs
 #define yydebug lsldebug
 #define yynerrs lslnerrs
-# define       LST_SIMPLEID    257
-# define       LST_LOGICALOP   258
-# define       LST_EQOP        259
-# define       LST_SIMPLEOP    260
-# define       LST_MAPSYM      261
-# define       LST_FIELDMAPSYM 262
-# define       LST_MARKERSYM   263
-# define       LST_ifTOKEN     264
-# define       LST_thenTOKEN   265
-# define       LST_elseTOKEN   266
-# define       LST_LBRACKET    267
-# define       LST_RBRACKET    268
-# define       LST_SELECTSYM   269
-# define       LST_SEPSYM      270
-# define       LST_OPENSYM     271
-# define       LST_CLOSESYM    272
-# define       LST_COLON       273
-# define       LST_COMMA       274
-# define       LST_EOL 275
-# define       LST_COMMENTSYM  276
-# define       LST_WHITESPACE  277
-# define       LST_QUANTIFIERSYM       278
-# define       LST_EQUATIONSYM 279
-# define       LST_EQSEPSYM    280
-# define       LST_COMPOSESYM  281
-# define       LST_LPAR        282
-# define       LST_RPAR        283
-# define       LST_assertsTOKEN        284
-# define       LST_assumesTOKEN        285
-# define       LST_byTOKEN     286
-# define       LST_convertsTOKEN       287
-# define       LST_enumerationTOKEN    288
-# define       LST_equationsTOKEN      289
-# define       LST_exemptingTOKEN      290
-# define       LST_forTOKEN    291
-# define       LST_generatedTOKEN      292
-# define       LST_impliesTOKEN        293
-# define       LST_includesTOKEN       294
-# define       LST_introducesTOKEN     295
-# define       LST_ofTOKEN     296
-# define       LST_partitionedTOKEN    297
-# define       LST_traitTOKEN  298
-# define       LST_tupleTOKEN  299
-# define       LST_unionTOKEN  300
-# define       LST_BADTOKEN    301
+
+
+/* Tokens.  */
+#ifndef YYTOKENTYPE
+# define YYTOKENTYPE
+   /* Put the tokens into the symbol table, so that GDB and other debuggers
+      know about them.  */
+   enum yytokentype {
+     LST_SIMPLEID = 258,
+     LST_LOGICALOP = 259,
+     LST_EQOP = 260,
+     LST_SIMPLEOP = 261,
+     LST_MAPSYM = 262,
+     LST_FIELDMAPSYM = 263,
+     LST_MARKERSYM = 264,
+     LST_ifTOKEN = 265,
+     LST_thenTOKEN = 266,
+     LST_elseTOKEN = 267,
+     LST_LBRACKET = 268,
+     LST_RBRACKET = 269,
+     LST_SELECTSYM = 270,
+     LST_SEPSYM = 271,
+     LST_OPENSYM = 272,
+     LST_CLOSESYM = 273,
+     LST_COLON = 274,
+     LST_COMMA = 275,
+     LST_EOL = 276,
+     LST_COMMENTSYM = 277,
+     LST_WHITESPACE = 278,
+     LST_QUANTIFIERSYM = 279,
+     LST_EQUATIONSYM = 280,
+     LST_EQSEPSYM = 281,
+     LST_COMPOSESYM = 282,
+     LST_LPAR = 283,
+     LST_RPAR = 284,
+     LST_assertsTOKEN = 285,
+     LST_assumesTOKEN = 286,
+     LST_byTOKEN = 287,
+     LST_convertsTOKEN = 288,
+     LST_enumerationTOKEN = 289,
+     LST_equationsTOKEN = 290,
+     LST_exemptingTOKEN = 291,
+     LST_forTOKEN = 292,
+     LST_generatedTOKEN = 293,
+     LST_impliesTOKEN = 294,
+     LST_includesTOKEN = 295,
+     LST_introducesTOKEN = 296,
+     LST_ofTOKEN = 297,
+     LST_partitionedTOKEN = 298,
+     LST_traitTOKEN = 299,
+     LST_tupleTOKEN = 300,
+     LST_unionTOKEN = 301,
+     LST_BADTOKEN = 302
+   };
+#endif
+#define LST_SIMPLEID 258
+#define LST_LOGICALOP 259
+#define LST_EQOP 260
+#define LST_SIMPLEOP 261
+#define LST_MAPSYM 262
+#define LST_FIELDMAPSYM 263
+#define LST_MARKERSYM 264
+#define LST_ifTOKEN 265
+#define LST_thenTOKEN 266
+#define LST_elseTOKEN 267
+#define LST_LBRACKET 268
+#define LST_RBRACKET 269
+#define LST_SELECTSYM 270
+#define LST_SEPSYM 271
+#define LST_OPENSYM 272
+#define LST_CLOSESYM 273
+#define LST_COLON 274
+#define LST_COMMA 275
+#define LST_EOL 276
+#define LST_COMMENTSYM 277
+#define LST_WHITESPACE 278
+#define LST_QUANTIFIERSYM 279
+#define LST_EQUATIONSYM 280
+#define LST_EQSEPSYM 281
+#define LST_COMPOSESYM 282
+#define LST_LPAR 283
+#define LST_RPAR 284
+#define LST_assertsTOKEN 285
+#define LST_assumesTOKEN 286
+#define LST_byTOKEN 287
+#define LST_convertsTOKEN 288
+#define LST_enumerationTOKEN 289
+#define LST_equationsTOKEN 290
+#define LST_exemptingTOKEN 291
+#define LST_forTOKEN 292
+#define LST_generatedTOKEN 293
+#define LST_impliesTOKEN 294
+#define LST_includesTOKEN 295
+#define LST_introducesTOKEN 296
+#define LST_ofTOKEN 297
+#define LST_partitionedTOKEN 298
+#define LST_traitTOKEN 299
+#define LST_tupleTOKEN 300
+#define LST_unionTOKEN 301
+#define LST_BADTOKEN 302
+
+
+
+
+/* Copy the first part of user declarations.  */
 
 
 
 
 
 
@@ -138,8 +242,23 @@ static void yyprint (/*FILE *p_file, int p_type, YYSTYPE p_value */);
 /*@-nullassign@*/
 
 
 /*@-nullassign@*/
 
 
-#ifndef YYSTYPE
-typedef union {
+
+/* Enabling traces.  */
+#ifndef YYDEBUG
+# define YYDEBUG 1
+#endif
+
+/* Enabling verbose error messages.  */
+#ifdef YYERROR_VERBOSE
+# undef YYERROR_VERBOSE
+# define YYERROR_VERBOSE 1
+#else
+# define YYERROR_VERBOSE 0
+#endif
+
+#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
+
+typedef union YYSTYPE {
   ltoken ltok;  /* a leaf is also an ltoken */
   unsigned int count;
   /*@only@*/  ltokenList ltokenList;
   ltoken ltok;  /* a leaf is also an ltoken */
   unsigned int count;
   /*@only@*/  ltokenList ltokenList;
@@ -149,242 +268,23 @@ typedef union {
   /*@owned@*/ lslOp operator;
   /*@only@*/  lslOpList operators;
   /*@-redef@*/ /*@-matchfields@*/ 
   /*@owned@*/ lslOp operator;
   /*@only@*/  lslOpList operators;
   /*@-redef@*/ /*@-matchfields@*/ 
-} yystype;
-# define YYSTYPE yystype
-# define YYSTYPE_IS_TRIVIAL 1
-#endif
-#ifndef YYDEBUG
-# define YYDEBUG 1
-#endif
-
-
-
-#define        YYFINAL         62
-#define        YYFLAG          -32768
-#define        YYNTBASE        48
+} YYSTYPE;
+/* Line 191 of yacc.c.  */
 
 
-/* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */
-#define YYTRANSLATE(x) ((unsigned)(x) <= 301 ? yytranslate[x] : 62)
-
-/* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */
-static const char yytranslate[] =
-{
-       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     1,     3,     4,     5,
-       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
-      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
-      26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
-      36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
-      46,    47
-};
-
-#if YYDEBUG
-static const short yyprhs[] =
-{
-       0,     0,     2,     4,     7,    11,    13,    15,    22,    24,
-      27,    30,    34,    38,    43,    48,    54,    58,    63,    68,
-      74,    77,    81,    85,    87,    89,    91,    92,    94,    96,
-     100,   102,   104,   108,   109,   111,   113,   117,   119
-};
-static const short yyrhs[] =
-{
-      49,     0,    50,     0,    49,    50,     0,    51,    19,    57,
-       0,    61,     0,    52,     0,    10,     9,    11,     9,    12,
-       9,     0,    53,     0,     9,    53,     0,    53,     9,     0,
-       9,    53,     9,     0,    17,    54,    18,     0,     9,    17,
-      54,    18,     0,    17,    54,    18,     9,     0,     9,    17,
-      54,    18,     9,     0,    13,    54,    14,     0,     9,    13,
-      54,    14,     0,    13,    54,    14,     9,     0,     9,    13,
-      54,    14,     9,     0,    15,     3,     0,     9,    15,     3,
-       0,     9,     8,     3,     0,     6,     0,     4,     0,     5,
-       0,     0,    55,     0,     9,     0,    55,    56,     9,     0,
-      20,     0,    16,     0,    58,     7,    60,     0,     0,    59,
-       0,    60,     0,    59,    20,    60,     0,     3,     0,     3,
-       0
-};
-
-#endif
-
-#if YYDEBUG
-/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
-static const short yyrline[] =
-{
-       0,   139,   142,   147,   152,   159,   161,   166,   168,   170,
-     172,   174,   176,   178,   180,   182,   185,   188,   191,   194,
-     197,   200,   205,   210,   212,   214,   218,   220,   224,   226,
-     230,   232,   236,   240,   242,   246,   248,   252,   259
-};
-#endif
-
-
-#if (YYDEBUG) || defined YYERROR_VERBOSE
-
-/* YYTNAME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */
-static const char *const yytname[] =
-{
-  "$", "error", "$undefined.", "LST_SIMPLEID", "LST_LOGICALOP", "LST_EQOP", 
-  "LST_SIMPLEOP", "LST_MAPSYM", "LST_FIELDMAPSYM", "LST_MARKERSYM", 
-  "LST_ifTOKEN", "LST_thenTOKEN", "LST_elseTOKEN", "LST_LBRACKET", 
-  "LST_RBRACKET", "LST_SELECTSYM", "LST_SEPSYM", "LST_OPENSYM", 
-  "LST_CLOSESYM", "LST_COLON", "LST_COMMA", "LST_EOL", "LST_COMMENTSYM", 
-  "LST_WHITESPACE", "LST_QUANTIFIERSYM", "LST_EQUATIONSYM", 
-  "LST_EQSEPSYM", "LST_COMPOSESYM", "LST_LPAR", "LST_RPAR", 
-  "LST_assertsTOKEN", "LST_assumesTOKEN", "LST_byTOKEN", 
-  "LST_convertsTOKEN", "LST_enumerationTOKEN", "LST_equationsTOKEN", 
-  "LST_exemptingTOKEN", "LST_forTOKEN", "LST_generatedTOKEN", 
-  "LST_impliesTOKEN", "LST_includesTOKEN", "LST_introducesTOKEN", 
-  "LST_ofTOKEN", "LST_partitionedTOKEN", "LST_traitTOKEN", 
-  "LST_tupleTOKEN", "LST_unionTOKEN", "LST_BADTOKEN", "top", 
-  "operatorList", "operator", "name", "opForm", "anyOp", "middle", 
-  "placeList", "separator", "signature", "domain", "sortList", "sortId", 
-  "opId", 0
-};
+# define yystype YYSTYPE /* obsolescent; will be withdrawn */
+# define YYSTYPE_IS_DECLARED 1
+# define YYSTYPE_IS_TRIVIAL 1
 #endif
 
 #endif
 
-/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
-static const short yyr1[] =
-{
-       0,    48,    49,    49,    50,    51,    51,    52,    52,    52,
-      52,    52,    52,    52,    52,    52,    52,    52,    52,    52,
-      52,    52,    52,    53,    53,    53,    54,    54,    55,    55,
-      56,    56,    57,    58,    58,    59,    59,    60,    61
-};
-
-/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
-static const short yyr2[] =
-{
-       0,     1,     1,     2,     3,     1,     1,     6,     1,     2,
-       2,     3,     3,     4,     4,     5,     3,     4,     4,     5,
-       2,     3,     3,     1,     1,     1,     0,     1,     1,     3,
-       1,     1,     3,     0,     1,     1,     3,     1,     1
-};
-
-/* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE
-   doesn't specify something else to do.  Zero means the default is an
-   error. */
-static const short yydefact[] =
-{
-       0,    38,    24,    25,    23,     0,     0,    26,     0,    26,
-       1,     2,     0,     6,     8,     5,     0,    26,     0,    26,
-       9,     0,    28,     0,    27,    20,     0,     3,    33,    10,
-      22,     0,    21,     0,    11,     0,    16,    31,    30,     0,
-      12,    37,     4,     0,    34,    35,    17,    13,     0,    18,
-      29,    14,     0,     0,    19,    15,     0,    32,    36,     7,
-       0,     0,     0
-};
-
-static const short yydefgoto[] =
-{
-      60,    10,    11,    12,    13,    14,    23,    24,    39,    42,
-      43,    44,    45,    15
-};
-
-static const short yypact[] =
-{
-      -3,-32768,-32768,-32768,-32768,    11,    -4,     0,     8,     0,
-      -3,-32768,    -1,-32768,    13,-32768,    17,     0,    22,     0,
-      18,    20,-32768,    19,   -12,-32768,    14,-32768,    31,-32768,
-  -32768,    21,-32768,    23,-32768,    27,    28,-32768,-32768,    29,
-      30,-32768,-32768,    33,    24,-32768,    34,    36,    35,-32768,
-  -32768,-32768,    31,    31,-32768,-32768,    37,-32768,-32768,-32768,
-      42,    48,-32768
-};
-
-static const short yypgoto[] =
-{
-  -32768,-32768,    39,-32768,-32768,    45,     4,-32768,-32768,-32768,
-  -32768,-32768,   -23,-32768
-};
-
-
-#define        YYLAST          50
-
-
-static const short yytable[] =
-{
-       1,     2,     3,     4,    37,    21,     5,     6,    38,    22,
-       7,    25,     8,    26,     9,     2,     3,     4,    28,    16,
-      30,    31,    29,    33,    17,    32,    18,    34,    19,    57,
-      58,    35,    40,    36,    41,    46,    48,    49,    50,    51,
-      52,    47,    61,    54,    53,    55,    59,    56,    62,    27,
-      20
-};
-
-static const short yycheck[] =
-{
-       3,     4,     5,     6,    16,     9,     9,    10,    20,     9,
-      13,     3,    15,     9,    17,     4,     5,     6,    19,     8,
-       3,    17,     9,    19,    13,     3,    15,     9,    17,    52,
-      53,    11,    18,    14,     3,    14,     9,     9,     9,     9,
-       7,    18,     0,     9,    20,     9,     9,    12,     0,    10,
-       5
-};
-#define YYPURE 1
 
 
-/* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
 
 
-/* Skeleton output parser for bison,
+/* Copy the second part of user declarations.  */
 
 
-   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software
-   Foundation, Inc.
 
 
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
-   any later version.
+/* Line 214 of yacc.c.  */
 
 
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
 
 
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
-
-/* As a special exception, when this file is copied by Bison into a
-   Bison output file, you may use that output file without restriction.
-   This special exception was added by the Free Software Foundation
-   in version 1.24 of Bison.  */
-
-/* This is the parser code that is written into each bison parser when
-   the %semantic_parser declaration is not specified in the grammar.
-   It was written by Richard Stallman by simplifying the hairy parser
-   used when %semantic_parser is specified.  */
-
-/* All symbols defined below should begin with yy or YY, to avoid
-   infringing on user name space.  This should be done even for local
-   variables, as they might otherwise be expanded by user macros.
-   There are some unavoidable exceptions within include files to
-   define necessary library symbols; they are noted "INFRINGES ON
-   USER NAME SPACE" below.  */
-
-#if ! defined (yyoverflow) || defined (YYERROR_VERBOSE)
+#if ! defined (yyoverflow) || YYERROR_VERBOSE
 
 /* The parser invokes alloca or malloc; define the necessary symbols.  */
 
 
 /* The parser invokes alloca or malloc; define the necessary symbols.  */
 
@@ -413,37 +313,28 @@ static const short yycheck[] =
 #  define YYSTACK_ALLOC malloc
 #  define YYSTACK_FREE free
 # endif
 #  define YYSTACK_ALLOC malloc
 #  define YYSTACK_FREE free
 # endif
-#endif /* ! defined (yyoverflow) || defined (YYERROR_VERBOSE) */
+#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
 
 
 #if (! defined (yyoverflow) \
      && (! defined (__cplusplus) \
 
 
 #if (! defined (yyoverflow) \
      && (! defined (__cplusplus) \
-        || (YYLTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
+        || (YYSTYPE_IS_TRIVIAL)))
 
 /* A type that is properly aligned for any stack member.  */
 union yyalloc
 {
   short yyss;
   YYSTYPE yyvs;
 
 /* A type that is properly aligned for any stack member.  */
 union yyalloc
 {
   short yyss;
   YYSTYPE yyvs;
-# if YYLSP_NEEDED
-  YYLTYPE yyls;
-# endif
-};
+  };
 
 /* The size of the maximum gap between one aligned stack and the next.  */
 
 /* The size of the maximum gap between one aligned stack and the next.  */
-# define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1)
+# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
 
 /* The size of an array large to enough to hold all stacks, each with
    N elements.  */
 
 /* The size of an array large to enough to hold all stacks, each with
    N elements.  */
-# if YYLSP_NEEDED
-#  define YYSTACK_BYTES(N) \
-     ((N) * (sizeof (short) + sizeof (YYSTYPE) + sizeof (YYLTYPE))     \
-      + 2 * YYSTACK_GAP_MAX)
-# else
-#  define YYSTACK_BYTES(N) \
+# define YYSTACK_BYTES(N) \
      ((N) * (sizeof (short) + sizeof (YYSTYPE))                                \
      ((N) * (sizeof (short) + sizeof (YYSTYPE))                                \
-      + YYSTACK_GAP_MAX)
-# endif
+      + YYSTACK_GAP_MAXIMUM)
 
 /* Copy COUNT objects from FROM to TO.  The source and destination do
    not overlap.  */
 
 /* Copy COUNT objects from FROM to TO.  The source and destination do
    not overlap.  */
@@ -474,13 +365,249 @@ union yyalloc
        YYSIZE_T yynewbytes;                                            \
        YYCOPY (&yyptr->Stack, Stack, yysize);                          \
        Stack = &yyptr->Stack;                                          \
        YYSIZE_T yynewbytes;                                            \
        YYCOPY (&yyptr->Stack, Stack, yysize);                          \
        Stack = &yyptr->Stack;                                          \
-       yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAX;   \
+       yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
        yyptr += yynewbytes / sizeof (*yyptr);                          \
       }                                                                        \
     while (0)
 
 #endif
 
        yyptr += yynewbytes / sizeof (*yyptr);                          \
       }                                                                        \
     while (0)
 
 #endif
 
+#if defined (__STDC__) || defined (__cplusplus)
+   typedef signed char yysigned_char;
+#else
+   typedef short yysigned_char;
+#endif
+
+/* YYFINAL -- State number of the termination state. */
+#define YYFINAL  28
+/* YYLAST -- Last index in YYTABLE.  */
+#define YYLAST   54
+
+/* YYNTOKENS -- Number of terminals. */
+#define YYNTOKENS  48
+/* YYNNTS -- Number of nonterminals. */
+#define YYNNTS  15
+/* YYNRULES -- Number of rules. */
+#define YYNRULES  39
+/* YYNRULES -- Number of states. */
+#define YYNSTATES  62
+
+/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
+#define YYUNDEFTOK  2
+#define YYMAXUTOK   302
+
+#define YYTRANSLATE(YYX)                                               \
+  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
+
+/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
+static const unsigned char yytranslate[] =
+{
+       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
+       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
+      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
+      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
+      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
+      45,    46,    47
+};
+
+#if YYDEBUG
+/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
+   YYRHS.  */
+static const unsigned char yyprhs[] =
+{
+       0,     0,     3,     5,     7,    10,    14,    16,    18,    25,
+      27,    30,    33,    37,    41,    46,    51,    57,    61,    66,
+      71,    77,    80,    84,    88,    90,    92,    94,    95,    97,
+      99,   103,   105,   107,   111,   112,   114,   116,   120,   122
+};
+
+/* YYRHS -- A `-1'-separated list of the rules' RHS. */
+static const yysigned_char yyrhs[] =
+{
+      49,     0,    -1,    50,    -1,    51,    -1,    50,    51,    -1,
+      52,    19,    58,    -1,    62,    -1,    53,    -1,    10,     9,
+      11,     9,    12,     9,    -1,    54,    -1,     9,    54,    -1,
+      54,     9,    -1,     9,    54,     9,    -1,    17,    55,    18,
+      -1,     9,    17,    55,    18,    -1,    17,    55,    18,     9,
+      -1,     9,    17,    55,    18,     9,    -1,    13,    55,    14,
+      -1,     9,    13,    55,    14,    -1,    13,    55,    14,     9,
+      -1,     9,    13,    55,    14,     9,    -1,    15,     3,    -1,
+       9,    15,     3,    -1,     9,     8,     3,    -1,     6,    -1,
+       4,    -1,     5,    -1,    -1,    56,    -1,     9,    -1,    56,
+      57,     9,    -1,    20,    -1,    16,    -1,    59,     7,    61,
+      -1,    -1,    60,    -1,    61,    -1,    60,    20,    61,    -1,
+       3,    -1,     3,    -1
+};
+
+/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
+static const unsigned short yyrline[] =
+{
+       0,   139,   139,   142,   147,   152,   159,   161,   166,   168,
+     170,   172,   174,   176,   178,   180,   182,   185,   188,   191,
+     194,   197,   200,   205,   210,   212,   214,   219,   220,   224,
+     226,   230,   232,   236,   241,   242,   246,   248,   252,   259
+};
+#endif
+
+#if YYDEBUG || YYERROR_VERBOSE
+/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
+   First, the terminals, then, starting at YYNTOKENS, nonterminals. */
+static const char *const yytname[] =
+{
+  "$end", "error", "$undefined", "LST_SIMPLEID", "LST_LOGICALOP", 
+  "LST_EQOP", "LST_SIMPLEOP", "LST_MAPSYM", "LST_FIELDMAPSYM", 
+  "LST_MARKERSYM", "LST_ifTOKEN", "LST_thenTOKEN", "LST_elseTOKEN", 
+  "LST_LBRACKET", "LST_RBRACKET", "LST_SELECTSYM", "LST_SEPSYM", 
+  "LST_OPENSYM", "LST_CLOSESYM", "LST_COLON", "LST_COMMA", "LST_EOL", 
+  "LST_COMMENTSYM", "LST_WHITESPACE", "LST_QUANTIFIERSYM", 
+  "LST_EQUATIONSYM", "LST_EQSEPSYM", "LST_COMPOSESYM", "LST_LPAR", 
+  "LST_RPAR", "LST_assertsTOKEN", "LST_assumesTOKEN", "LST_byTOKEN", 
+  "LST_convertsTOKEN", "LST_enumerationTOKEN", "LST_equationsTOKEN", 
+  "LST_exemptingTOKEN", "LST_forTOKEN", "LST_generatedTOKEN", 
+  "LST_impliesTOKEN", "LST_includesTOKEN", "LST_introducesTOKEN", 
+  "LST_ofTOKEN", "LST_partitionedTOKEN", "LST_traitTOKEN", 
+  "LST_tupleTOKEN", "LST_unionTOKEN", "LST_BADTOKEN", "$accept", "top", 
+  "operatorList", "operator", "name", "opForm", "anyOp", "middle", 
+  "placeList", "separator", "signature", "domain", "sortList", "sortId", 
+  "opId", 0
+};
+#endif
+
+# ifdef YYPRINT
+/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
+   token YYLEX-NUM.  */
+static const unsigned short yytoknum[] =
+{
+       0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
+     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
+     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
+     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
+     295,   296,   297,   298,   299,   300,   301,   302
+};
+# endif
+
+/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
+static const unsigned char yyr1[] =
+{
+       0,    48,    49,    50,    50,    51,    52,    52,    53,    53,
+      53,    53,    53,    53,    53,    53,    53,    53,    53,    53,
+      53,    53,    53,    53,    54,    54,    54,    55,    55,    56,
+      56,    57,    57,    58,    59,    59,    60,    60,    61,    62
+};
+
+/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
+static const unsigned char yyr2[] =
+{
+       0,     2,     1,     1,     2,     3,     1,     1,     6,     1,
+       2,     2,     3,     3,     4,     4,     5,     3,     4,     4,
+       5,     2,     3,     3,     1,     1,     1,     0,     1,     1,
+       3,     1,     1,     3,     0,     1,     1,     3,     1,     1
+};
+
+/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
+   STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
+   means the default is an error.  */
+static const unsigned char yydefact[] =
+{
+       0,    39,    25,    26,    24,     0,     0,    27,     0,    27,
+       0,     2,     3,     0,     7,     9,     6,     0,    27,     0,
+      27,    10,     0,    29,     0,    28,    21,     0,     1,     4,
+      34,    11,    23,     0,    22,     0,    12,     0,    17,    32,
+      31,     0,    13,    38,     5,     0,    35,    36,    18,    14,
+       0,    19,    30,    15,     0,     0,    20,    16,     0,    33,
+      37,     8
+};
+
+/* YYDEFGOTO[NTERM-NUM]. */
+static const yysigned_char yydefgoto[] =
+{
+      -1,    10,    11,    12,    13,    14,    15,    24,    25,    41,
+      44,    45,    46,    47,    16
+};
+
+/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
+   STATE-NUM.  */
+#define YYPACT_NINF -34
+static const yysigned_char yypact[] =
+{
+      -3,   -34,   -34,   -34,   -34,    11,    -4,     2,    10,     2,
+      23,    -3,   -34,     6,   -34,    18,   -34,    26,     2,    27,
+       2,    22,    21,   -34,    19,   -12,   -34,    16,   -34,   -34,
+      32,   -34,   -34,    24,   -34,    25,   -34,    28,    30,   -34,
+     -34,    31,    33,   -34,   -34,    29,    34,   -34,    35,    36,
+      37,   -34,   -34,   -34,    32,    32,   -34,   -34,    38,   -34,
+     -34,   -34
+};
+
+/* YYPGOTO[NTERM-NUM].  */
+static const yysigned_char yypgoto[] =
+{
+     -34,   -34,   -34,    39,   -34,   -34,    41,     0,   -34,   -34,
+     -34,   -34,   -34,   -33,   -34
+};
+
+/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
+   positive, shift that token.  If negative, reduce the rule which
+   number is the opposite.  If zero, do what YYDEFACT says.
+   If YYTABLE_NINF, syntax error.  */
+#define YYTABLE_NINF -1
+static const unsigned char yytable[] =
+{
+       1,     2,     3,     4,    39,    22,     5,     6,    40,    27,
+       7,    23,     8,    26,     9,     2,     3,     4,    33,    17,
+      35,    59,    60,    28,    18,    30,    19,    31,    20,    32,
+      34,    36,    37,    38,    42,    43,    54,    50,    48,    51,
+      52,     0,    53,    49,    56,    57,    21,    61,     0,    58,
+      29,     0,     0,     0,    55
+};
+
+static const yysigned_char yycheck[] =
+{
+       3,     4,     5,     6,    16,     9,     9,    10,    20,     9,
+      13,     9,    15,     3,    17,     4,     5,     6,    18,     8,
+      20,    54,    55,     0,    13,    19,    15,     9,    17,     3,
+       3,     9,    11,    14,    18,     3,     7,     9,    14,     9,
+       9,    -1,     9,    18,     9,     9,     5,     9,    -1,    12,
+      11,    -1,    -1,    -1,    20
+};
+
+/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
+   symbol of state STATE-NUM.  */
+static const unsigned char yystos[] =
+{
+       0,     3,     4,     5,     6,     9,    10,    13,    15,    17,
+      49,    50,    51,    52,    53,    54,    62,     8,    13,    15,
+      17,    54,     9,     9,    55,    56,     3,    55,     0,    51,
+      19,     9,     3,    55,     3,    55,     9,    11,    14,    16,
+      20,    57,    18,     3,    58,    59,    60,    61,    14,    18,
+       9,     9,     9,     9,     7,    20,     9,     9,    12,    61,
+      61,     9
+};
 
 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
 # define YYSIZE_T __SIZE_TYPE__
 
 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
 # define YYSIZE_T __SIZE_TYPE__
@@ -500,29 +627,35 @@ union yyalloc
 
 #define yyerrok                (yyerrstatus = 0)
 #define yyclearin      (yychar = YYEMPTY)
 
 #define yyerrok                (yyerrstatus = 0)
 #define yyclearin      (yychar = YYEMPTY)
-#define YYEMPTY                -2
+#define YYEMPTY                (-2)
 #define YYEOF          0
 #define YYEOF          0
+
 #define YYACCEPT       goto yyacceptlab
 #define YYACCEPT       goto yyacceptlab
-#define YYABORT        goto yyabortlab
+#define YYABORT                goto yyabortlab
 #define YYERROR                goto yyerrlab1
 #define YYERROR                goto yyerrlab1
+
+
 /* Like YYERROR except do call yyerror.  This remains here temporarily
    to ease the transition to the new meaning of YYERROR, for GCC.
    Once GCC version 2 has supplanted version 1, this can go.  */
 /* Like YYERROR except do call yyerror.  This remains here temporarily
    to ease the transition to the new meaning of YYERROR, for GCC.
    Once GCC version 2 has supplanted version 1, this can go.  */
+
 #define YYFAIL         goto yyerrlab
 #define YYFAIL         goto yyerrlab
+
 #define YYRECOVERING()  (!!yyerrstatus)
 #define YYRECOVERING()  (!!yyerrstatus)
+
 #define YYBACKUP(Token, Value)                                 \
 do                                                             \
   if (yychar == YYEMPTY && yylen == 1)                         \
     {                                                          \
       yychar = (Token);                                                \
       yylval = (Value);                                                \
 #define YYBACKUP(Token, Value)                                 \
 do                                                             \
   if (yychar == YYEMPTY && yylen == 1)                         \
     {                                                          \
       yychar = (Token);                                                \
       yylval = (Value);                                                \
-      yychar1 = YYTRANSLATE (yychar);                          \
+      yytoken = YYTRANSLATE (yychar);                          \
       YYPOPSTACK;                                              \
       goto yybackup;                                           \
     }                                                          \
   else                                                         \
     {                                                          \
       YYPOPSTACK;                                              \
       goto yybackup;                                           \
     }                                                          \
   else                                                         \
     {                                                          \
-      yyerror ("syntax error: cannot back up");                        \
+      yyerror ("syntax error: cannot back up");\
       YYERROR;                                                 \
     }                                                          \
 while (0)
       YYERROR;                                                 \
     }                                                          \
 while (0)
@@ -530,41 +663,24 @@ while (0)
 #define YYTERROR       1
 #define YYERRCODE      256
 
 #define YYTERROR       1
 #define YYERRCODE      256
 
-
 /* YYLLOC_DEFAULT -- Compute the default location (before the actions
 /* YYLLOC_DEFAULT -- Compute the default location (before the actions
-   are run).
-
-   When YYLLOC_DEFAULT is run, CURRENT is set the location of the
-   first token.  By default, to implement support for ranges, extend
-   its range to the last symbol.  */
+   are run).  */
 
 #ifndef YYLLOC_DEFAULT
 
 #ifndef YYLLOC_DEFAULT
-# define YYLLOC_DEFAULT(Current, Rhs, N)               \
-   Current.last_line   = Rhs[N].last_line;     \
-   Current.last_column = Rhs[N].last_column;
+# define YYLLOC_DEFAULT(Current, Rhs, N)         \
+  Current.first_line   = Rhs[1].first_line;      \
+  Current.first_column = Rhs[1].first_column;    \
+  Current.last_line    = Rhs[N].last_line;       \
+  Current.last_column  = Rhs[N].last_column;
 #endif
 
 #endif
 
-
 /* YYLEX -- calling `yylex' with the right arguments.  */
 
 /* YYLEX -- calling `yylex' with the right arguments.  */
 
-#if YYPURE
-# if YYLSP_NEEDED
-#  ifdef YYLEX_PARAM
-#   define YYLEX               yylex (&yylval, &yylloc, YYLEX_PARAM)
-#  else
-#   define YYLEX               yylex (&yylval, &yylloc)
-#  endif
-# else /* !YYLSP_NEEDED */
-#  ifdef YYLEX_PARAM
-#   define YYLEX               yylex (&yylval, YYLEX_PARAM)
-#  else
-#   define YYLEX               yylex (&yylval)
-#  endif
-# endif /* !YYLSP_NEEDED */
-#else /* !YYPURE */
-# define YYLEX                 yylex ()
-#endif /* !YYPURE */
-
+#ifdef YYLEX_PARAM
+# define YYLEX yylex (&yylval, YYLEX_PARAM)
+#else
+# define YYLEX yylex (&yylval)
+#endif
 
 /* Enable debugging if requested.  */
 #if YYDEBUG
 
 /* Enable debugging if requested.  */
 #if YYDEBUG
@@ -579,13 +695,93 @@ do {                                              \
   if (yydebug)                                 \
     YYFPRINTF Args;                            \
 } while (0)
   if (yydebug)                                 \
     YYFPRINTF Args;                            \
 } while (0)
+
+# define YYDSYMPRINT(Args)                     \
+do {                                           \
+  if (yydebug)                                 \
+    yysymprint Args;                           \
+} while (0)
+
+# define YYDSYMPRINTF(Title, Token, Value, Location)           \
+do {                                                           \
+  if (yydebug)                                                 \
+    {                                                          \
+      YYFPRINTF (stderr, "%s ", Title);                                \
+      yysymprint (stderr,                                      \
+                  Token, Value);       \
+      YYFPRINTF (stderr, "\n");                                        \
+    }                                                          \
+} while (0)
+
+/*------------------------------------------------------------------.
+| yy_stack_print -- Print the state stack from its BOTTOM up to its |
+| TOP (cinluded).                                                   |
+`------------------------------------------------------------------*/
+
+#if defined (__STDC__) || defined (__cplusplus)
+static void
+yy_stack_print (short *bottom, short *top)
+#else
+static void
+yy_stack_print (bottom, top)
+    short *bottom;
+    short *top;
+#endif
+{
+  YYFPRINTF (stderr, "Stack now");
+  for (/* Nothing. */; bottom <= top; ++bottom)
+    YYFPRINTF (stderr, " %d", *bottom);
+  YYFPRINTF (stderr, "\n");
+}
+
+# define YY_STACK_PRINT(Bottom, Top)                           \
+do {                                                           \
+  if (yydebug)                                                 \
+    yy_stack_print ((Bottom), (Top));                          \
+} while (0)
+
+
+/*------------------------------------------------.
+| Report that the YYRULE is going to be reduced.  |
+`------------------------------------------------*/
+
+#if defined (__STDC__) || defined (__cplusplus)
+static void
+yy_reduce_print (int yyrule)
+#else
+static void
+yy_reduce_print (yyrule)
+    int yyrule;
+#endif
+{
+  int yyi;
+  unsigned int yylineno = yyrline[yyrule];
+  YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
+             yyrule - 1, yylineno);
+  /* Print the symbols being reduced, and their result.  */
+  for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
+    YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
+  YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
+}
+
+# define YY_REDUCE_PRINT(Rule)         \
+do {                                   \
+  if (yydebug)                         \
+    yy_reduce_print (Rule);            \
+} while (0)
+
 /* Nonzero means print parse trace.  It is left uninitialized so that
    multiple parsers can coexist.  */
 int yydebug;
 #else /* !YYDEBUG */
 # define YYDPRINTF(Args)
 /* Nonzero means print parse trace.  It is left uninitialized so that
    multiple parsers can coexist.  */
 int yydebug;
 #else /* !YYDEBUG */
 # define YYDPRINTF(Args)
+# define YYDSYMPRINT(Args)
+# define YYDSYMPRINTF(Title, Token, Value, Location)
+# define YY_STACK_PRINT(Bottom, Top)
+# define YY_REDUCE_PRINT(Rule)
 #endif /* !YYDEBUG */
 
 #endif /* !YYDEBUG */
 
+
 /* YYINITDEPTH -- initial size of the parser's stacks.  */
 #ifndef        YYINITDEPTH
 # define YYINITDEPTH 200
 /* YYINITDEPTH -- initial size of the parser's stacks.  */
 #ifndef        YYINITDEPTH
 # define YYINITDEPTH 200
@@ -605,8 +801,10 @@ int yydebug;
 #ifndef YYMAXDEPTH
 # define YYMAXDEPTH 10000
 #endif
 #ifndef YYMAXDEPTH
 # define YYMAXDEPTH 10000
 #endif
+
 \f
 \f
-#ifdef YYERROR_VERBOSE
+
+#if YYERROR_VERBOSE
 
 # ifndef yystrlen
 #  if defined (__GLIBC__) && defined (_STRING_H)
 
 # ifndef yystrlen
 #  if defined (__GLIBC__) && defined (_STRING_H)
@@ -656,77 +854,126 @@ yystpcpy (yydest, yysrc)
 }
 #  endif
 # endif
 }
 #  endif
 # endif
-#endif
+
+#endif /* !YYERROR_VERBOSE */
+
 \f
 
 \f
 
+#if YYDEBUG
+/*--------------------------------.
+| Print this symbol on YYOUTPUT.  |
+`--------------------------------*/
+
+#if defined (__STDC__) || defined (__cplusplus)
+static void
+yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
+#else
+static void
+yysymprint (yyoutput, yytype, yyvaluep)
+    FILE *yyoutput;
+    int yytype;
+    YYSTYPE *yyvaluep;
+#endif
+{
+  /* Pacify ``unused variable'' warnings.  */
+  (void) yyvaluep;
+
+  if (yytype < YYNTOKENS)
+    {
+      YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
+# ifdef YYPRINT
+      YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
+# endif
+    }
+  else
+    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
+
+  switch (yytype)
+    {
+      default:
+        break;
+    }
+  YYFPRINTF (yyoutput, ")");
+}
+
+#endif /* ! YYDEBUG */
+/*-----------------------------------------------.
+| Release the memory associated to this symbol.  |
+`-----------------------------------------------*/
+
+#if defined (__STDC__) || defined (__cplusplus)
+static void
+yydestruct (int yytype, YYSTYPE *yyvaluep)
+#else
+static void
+yydestruct (yytype, yyvaluep)
+    int yytype;
+    YYSTYPE *yyvaluep;
+#endif
+{
+  /* Pacify ``unused variable'' warnings.  */
+  (void) yyvaluep;
+
+  switch (yytype)
+    {
+
+      default:
+        break;
+    }
+}
+\f
 
 
-/* The user can define YYPARSE_PARAM as the name of an argument to be passed
-   into yyparse.  The argument should have type void *.
-   It should actually point to an object.
-   Grammar actions can access the variable by casting it
-   to the proper pointer type.  */
+/* Prevent warnings from -Wmissing-prototypes.  */
 
 #ifdef YYPARSE_PARAM
 # if defined (__STDC__) || defined (__cplusplus)
 
 #ifdef YYPARSE_PARAM
 # if defined (__STDC__) || defined (__cplusplus)
-#  define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
-#  define YYPARSE_PARAM_DECL
+int yyparse (void *YYPARSE_PARAM);
 # else
 # else
-#  define YYPARSE_PARAM_ARG YYPARSE_PARAM
-#  define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
+int yyparse ();
 # endif
 # endif
-#else /* !YYPARSE_PARAM */
-# define YYPARSE_PARAM_ARG
-# define YYPARSE_PARAM_DECL
-#endif /* !YYPARSE_PARAM */
-
-/* Prevent warning if -Wstrict-prototypes.  */
-#ifdef __GNUC__
-# ifdef YYPARSE_PARAM
-int yyparse (void *);
-# else
+#else /* ! YYPARSE_PARAM */
+#if defined (__STDC__) || defined (__cplusplus)
 int yyparse (void);
 int yyparse (void);
-# endif
+#else
+int yyparse ();
 #endif
 #endif
+#endif /* ! YYPARSE_PARAM */
 
 
-/* YY_DECL_VARIABLES -- depending whether we use a pure parser,
-   variables are global, or local to YYPARSE.  */
-
-#define YY_DECL_NON_LSP_VARIABLES                      \
-/* The lookahead symbol.  */                           \
-int yychar;                                            \
-                                                       \
-/* The semantic value of the lookahead symbol. */      \
-YYSTYPE yylval;                                                \
-                                                       \
-/* Number of parse errors so far.  */                  \
-int yynerrs;
 
 
-#if YYLSP_NEEDED
-# define YY_DECL_VARIABLES                     \
-YY_DECL_NON_LSP_VARIABLES                      \
-                                               \
-/* Location data for the lookahead symbol.  */ \
-YYLTYPE yylloc;
-#else
-# define YY_DECL_VARIABLES                     \
-YY_DECL_NON_LSP_VARIABLES
-#endif
 
 
 
 
-/* If nonreentrant, generate the variables here. */
 
 
-#if !YYPURE
-YY_DECL_VARIABLES
-#endif  /* !YYPURE */
 
 
+/*----------.
+| yyparse.  |
+`----------*/
+
+#ifdef YYPARSE_PARAM
+# if defined (__STDC__) || defined (__cplusplus)
+int yyparse (void *YYPARSE_PARAM)
+# else
+int yyparse (YYPARSE_PARAM)
+  void *YYPARSE_PARAM;
+# endif
+#else /* ! YYPARSE_PARAM */
+#if defined (__STDC__) || defined (__cplusplus)
+int
+yyparse (void)
+#else
 int
 int
-yyparse (YYPARSE_PARAM_ARG)
-     YYPARSE_PARAM_DECL
+yyparse ()
+
+#endif
+#endif
 {
 {
-  /* If reentrant, generate the variables here. */
-#if YYPURE
-  YY_DECL_VARIABLES
-#endif  /* !YYPURE */
+  /* The lookahead symbol.  */
+int yychar;
+
+/* The semantic value of the lookahead symbol.  */
+YYSTYPE yylval;
+
+/* Number of syntax errors so far.  */
+int yynerrs;
 
   register int yystate;
   register int yyn;
 
   register int yystate;
   register int yyn;
@@ -734,7 +981,7 @@ yyparse (YYPARSE_PARAM_ARG)
   /* Number of tokens to shift before error messages enabled.  */
   int yyerrstatus;
   /* Lookahead token as an internal (translated) token number.  */
   /* Number of tokens to shift before error messages enabled.  */
   int yyerrstatus;
   /* Lookahead token as an internal (translated) token number.  */
-  int yychar1 = 0;
+  int yytoken = 0;
 
   /* Three stacks and their tools:
      `yyss': related to states,
 
   /* Three stacks and their tools:
      `yyss': related to states,
@@ -744,7 +991,7 @@ yyparse (YYPARSE_PARAM_ARG)
      Refer to the stacks thru separate pointers, to allow yyoverflow
      to reallocate them elsewhere.  */
 
      Refer to the stacks thru separate pointers, to allow yyoverflow
      to reallocate them elsewhere.  */
 
-  /* The state stack. */
+  /* The state stack.  */
   short        yyssa[YYINITDEPTH];
   short *yyss = yyssa;
   register short *yyssp;
   short        yyssa[YYINITDEPTH];
   short *yyss = yyssa;
   register short *yyssp;
@@ -754,31 +1001,19 @@ yyparse (YYPARSE_PARAM_ARG)
   YYSTYPE *yyvs = yyvsa;
   register YYSTYPE *yyvsp;
 
   YYSTYPE *yyvs = yyvsa;
   register YYSTYPE *yyvsp;
 
-#if YYLSP_NEEDED
-  /* The location stack.  */
-  YYLTYPE yylsa[YYINITDEPTH];
-  YYLTYPE *yyls = yylsa;
-  YYLTYPE *yylsp;
-#endif
 
 
-#if YYLSP_NEEDED
-# define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--)
-#else
-# define YYPOPSTACK   (yyvsp--, yyssp--)
-#endif
 
 
-  YYSIZE_T yystacksize = YYINITDEPTH;
+#define YYPOPSTACK   (yyvsp--, yyssp--)
 
 
+  YYSIZE_T yystacksize = YYINITDEPTH;
 
   /* The variables used to return semantic value and location from the
      action routines.  */
   YYSTYPE yyval;
 
   /* The variables used to return semantic value and location from the
      action routines.  */
   YYSTYPE yyval;
-#if YYLSP_NEEDED
-  YYLTYPE yyloc;
-#endif
+
 
   /* When reducing, the number of symbols on the RHS of the reduced
 
   /* When reducing, the number of symbols on the RHS of the reduced
-     rule. */
+     rule.  */
   int yylen;
 
   YYDPRINTF ((stderr, "Starting parse\n"));
   int yylen;
 
   YYDPRINTF ((stderr, "Starting parse\n"));
@@ -795,9 +1030,7 @@ yyparse (YYPARSE_PARAM_ARG)
 
   yyssp = yyss;
   yyvsp = yyvs;
 
   yyssp = yyss;
   yyvsp = yyvs;
-#if YYLSP_NEEDED
-  yylsp = yyls;
-#endif
+
   goto yysetstate;
 
 /*------------------------------------------------------------.
   goto yysetstate;
 
 /*------------------------------------------------------------.
@@ -812,7 +1045,7 @@ yyparse (YYPARSE_PARAM_ARG)
  yysetstate:
   *yyssp = yystate;
 
  yysetstate:
   *yyssp = yystate;
 
-  if (yyssp >= yyss + yystacksize - 1)
+  if (yyss + yystacksize - 1 <= yyssp)
     {
       /* Get the current used size of the three stacks, in elements.  */
       YYSIZE_T yysize = yyssp - yyss + 1;
     {
       /* Get the current used size of the three stacks, in elements.  */
       YYSIZE_T yysize = yyssp - yyss + 1;
@@ -825,24 +1058,17 @@ yyparse (YYPARSE_PARAM_ARG)
        YYSTYPE *yyvs1 = yyvs;
        short *yyss1 = yyss;
 
        YYSTYPE *yyvs1 = yyvs;
        short *yyss1 = yyss;
 
+
        /* Each stack pointer address is followed by the size of the
        /* Each stack pointer address is followed by the size of the
-          data in use in that stack, in bytes.  */
-# if YYLSP_NEEDED
-       YYLTYPE *yyls1 = yyls;
-       /* This used to be a conditional around just the two extra args,
-          but that might be undefined if yyoverflow is a macro.  */
-       yyoverflow ("parser stack overflow",
-                   &yyss1, yysize * sizeof (*yyssp),
-                   &yyvs1, yysize * sizeof (*yyvsp),
-                   &yyls1, yysize * sizeof (*yylsp),
-                   &yystacksize);
-       yyls = yyls1;
-# else
+          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 ("parser stack overflow",
                    &yyss1, yysize * sizeof (*yyssp),
                    &yyvs1, yysize * sizeof (*yyvsp),
        yyoverflow ("parser stack overflow",
                    &yyss1, yysize * sizeof (*yyssp),
                    &yyvs1, yysize * sizeof (*yyvsp),
+
                    &yystacksize);
                    &yystacksize);
-# endif
+
        yyss = yyss1;
        yyvs = yyvs1;
       }
        yyss = yyss1;
        yyvs = yyvs1;
       }
@@ -851,10 +1077,10 @@ yyparse (YYPARSE_PARAM_ARG)
       goto yyoverflowlab;
 # else
       /* Extend the stack our own way.  */
       goto yyoverflowlab;
 # else
       /* Extend the stack our own way.  */
-      if (yystacksize >= YYMAXDEPTH)
+      if (YYMAXDEPTH <= yystacksize)
        goto yyoverflowlab;
       yystacksize *= 2;
        goto yyoverflowlab;
       yystacksize *= 2;
-      if (yystacksize > YYMAXDEPTH)
+      if (YYMAXDEPTH < yystacksize)
        yystacksize = YYMAXDEPTH;
 
       {
        yystacksize = YYMAXDEPTH;
 
       {
@@ -865,10 +1091,8 @@ yyparse (YYPARSE_PARAM_ARG)
          goto yyoverflowlab;
        YYSTACK_RELOCATE (yyss);
        YYSTACK_RELOCATE (yyvs);
          goto yyoverflowlab;
        YYSTACK_RELOCATE (yyss);
        YYSTACK_RELOCATE (yyvs);
-# if YYLSP_NEEDED
-       YYSTACK_RELOCATE (yyls);
-# endif
-# undef YYSTACK_RELOCATE
+
+#  undef YYSTACK_RELOCATE
        if (yyss1 != yyssa)
          YYSTACK_FREE (yyss1);
       }
        if (yyss1 != yyssa)
          YYSTACK_FREE (yyss1);
       }
@@ -877,14 +1101,12 @@ yyparse (YYPARSE_PARAM_ARG)
 
       yyssp = yyss + yysize - 1;
       yyvsp = yyvs + yysize - 1;
 
       yyssp = yyss + yysize - 1;
       yyvsp = yyvs + yysize - 1;
-#if YYLSP_NEEDED
-      yylsp = yyls + yysize - 1;
-#endif
+
 
       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
                  (unsigned long int) yystacksize));
 
 
       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
                  (unsigned long int) yystacksize));
 
-      if (yyssp >= yyss + yystacksize - 1)
+      if (yyss + yystacksize - 1 <= yyssp)
        YYABORT;
     }
 
        YYABORT;
     }
 
@@ -892,7 +1114,6 @@ yyparse (YYPARSE_PARAM_ARG)
 
   goto yybackup;
 
 
   goto yybackup;
 
-
 /*-----------.
 | yybackup.  |
 `-----------*/
 /*-----------.
 | yybackup.  |
 `-----------*/
@@ -905,88 +1126,55 @@ yybackup:
   /* First try to decide what to do without reference to lookahead token.  */
 
   yyn = yypact[yystate];
   /* First try to decide what to do without reference to lookahead token.  */
 
   yyn = yypact[yystate];
-  if (yyn == YYFLAG)
+  if (yyn == YYPACT_NINF)
     goto yydefault;
 
   /* Not known => get a lookahead token if don't already have one.  */
 
     goto yydefault;
 
   /* Not known => get a lookahead token if don't already have one.  */
 
-  /* yychar is either YYEMPTY or YYEOF
-     or a valid token in external form.  */
-
+  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
   if (yychar == YYEMPTY)
     {
       YYDPRINTF ((stderr, "Reading a token: "));
       yychar = YYLEX;
     }
 
   if (yychar == YYEMPTY)
     {
       YYDPRINTF ((stderr, "Reading a token: "));
       yychar = YYLEX;
     }
 
-  /* Convert token to internal form (in yychar1) for indexing tables with */
-
-  if (yychar <= 0)             /* This means end of input. */
+  if (yychar <= YYEOF)
     {
     {
-      yychar1 = 0;
-      yychar = YYEOF;          /* Don't call YYLEX any more */
-
+      yychar = yytoken = YYEOF;
       YYDPRINTF ((stderr, "Now at end of input.\n"));
     }
   else
     {
       YYDPRINTF ((stderr, "Now at end of input.\n"));
     }
   else
     {
-      yychar1 = YYTRANSLATE (yychar);
-
-#if YYDEBUG
-     /* We have to keep this `#if YYDEBUG', since we use variables
-       which are defined only if `YYDEBUG' is set.  */
-      if (yydebug)
-       {
-         YYFPRINTF (stderr, "Next token is %d (%s",
-                    yychar, yytname[yychar1]);
-         /* Give the individual parser a way to print the precise
-            meaning of a token, for further debugging info.  */
-# ifdef YYPRINT
-         YYPRINT (stderr, yychar, yylval);
-# endif
-         YYFPRINTF (stderr, ")\n");
-       }
-#endif
+      yytoken = YYTRANSLATE (yychar);
+      YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);
     }
 
     }
 
-  yyn += yychar1;
-  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
+  /* If the proper action on seeing token YYTOKEN is to reduce or to
+     detect an error, take that action.  */
+  yyn += yytoken;
+  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
     goto yydefault;
     goto yydefault;
-
   yyn = yytable[yyn];
   yyn = yytable[yyn];
-
-  /* yyn is what to do for this token type in this state.
-     Negative => reduce, -yyn is rule number.
-     Positive => shift, yyn is new state.
-       New state is final state => don't bother to shift,
-       just return success.
-     0, or most negative number => error.  */
-
-  if (yyn < 0)
+  if (yyn <= 0)
     {
     {
-      if (yyn == YYFLAG)
+      if (yyn == 0 || yyn == YYTABLE_NINF)
        goto yyerrlab;
       yyn = -yyn;
       goto yyreduce;
     }
        goto yyerrlab;
       yyn = -yyn;
       goto yyreduce;
     }
-  else if (yyn == 0)
-    goto yyerrlab;
 
   if (yyn == YYFINAL)
     YYACCEPT;
 
   /* Shift the lookahead token.  */
 
   if (yyn == YYFINAL)
     YYACCEPT;
 
   /* Shift the lookahead token.  */
-  YYDPRINTF ((stderr, "Shifting token %d (%s), ",
-             yychar, yytname[yychar1]));
+  YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));
 
   /* Discard the token being shifted unless it is eof.  */
   if (yychar != YYEOF)
     yychar = YYEMPTY;
 
   *++yyvsp = yylval;
 
   /* Discard the token being shifted unless it is eof.  */
   if (yychar != YYEOF)
     yychar = YYEMPTY;
 
   *++yyvsp = yylval;
-#if YYLSP_NEEDED
-  *++yylsp = yylloc;
-#endif
+
 
   /* Count tokens shifted since error; after three, turn off error
      status.  */
 
   /* Count tokens shifted since error; after three, turn off error
      status.  */
@@ -1017,193 +1205,236 @@ yyreduce:
   /* If YYLEN is nonzero, implement the default value of the action:
      `$$ = $1'.
 
   /* If YYLEN is nonzero, implement the default value of the action:
      `$$ = $1'.
 
-     Otherwise, the following line sets YYVAL to the semantic value of
-     the lookahead token.  This behavior is undocumented and Bison
+     Otherwise, the following line sets YYVAL to garbage.
+     This behavior is undocumented and Bison
      users should not rely upon it.  Assigning to YYVAL
      unconditionally makes the parser a bit smaller, and it avoids a
      GCC warning that YYVAL may be used uninitialized.  */
   yyval = yyvsp[1-yylen];
 
      users should not rely upon it.  Assigning to YYVAL
      unconditionally makes the parser a bit smaller, and it avoids a
      GCC warning that YYVAL may be used uninitialized.  */
   yyval = yyvsp[1-yylen];
 
-#if YYLSP_NEEDED
-  /* Similarly for the default location.  Let the user run additional
-     commands if for instance locations are ranges.  */
-  yyloc = yylsp[1-yylen];
-  YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
-#endif
 
 
-#if YYDEBUG
-  /* We have to keep this `#if YYDEBUG', since we use variables which
-     are defined only if `YYDEBUG' is set.  */
-  if (yydebug)
+  YY_REDUCE_PRINT (yyn);
+  switch (yyn)
     {
     {
-      int yyi;
+        case 2:
 
 
-      YYFPRINTF (stderr, "Reducing via rule %d (line %d), ",
-                yyn, yyrline[yyn]);
-
-      /* Print the symbols being reduced, and their result.  */
-      for (yyi = yyprhs[yyn]; yyrhs[yyi] > 0; yyi++)
-       YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]);
-      YYFPRINTF (stderr, " -> %s\n", yytname[yyr1[yyn]]);
-    }
-#endif
+    { lslOpList_free (yyvsp[0].operators); ;}
+    break;
 
 
-  switch (yyn) {
+  case 3:
 
 
-case 1:
-{ lslOpList_free (yyvsp[0].operators); ;
-    break;}
-case 2:
-{ lslOpList x = lslOpList_new ();
+    { lslOpList x = lslOpList_new ();
                g_importedlslOp = yyvsp[0].operator;
                lslOpList_add (x, yyvsp[0].operator);
                g_importedlslOp = yyvsp[0].operator;
                lslOpList_add (x, yyvsp[0].operator);
-               yyval.operators = x; ;
-    break;}
-case 3:
-{ lslOpList_add (yyvsp[-1].operators, yyvsp[0].operator);
-               yyval.operators = yyvsp[-1].operators; ;
-    break;}
-case 4:
-{ yyval.operator = makelslOpNode (yyvsp[-2].name, yyvsp[0].signature); ;
-    break;}
-case 5:
-{ yyval.name = makeNameNodeId (yyvsp[0].ltok); ;
-    break;}
-case 6:
-{ yyval.name = makeNameNodeForm (yyvsp[0].opform); ;
-    break;}
-case 7:
-{ yyval.opform = makeOpFormNode (yyvsp[-5].ltok, OPF_IF, opFormUnion_createMiddle (0), ltoken_undefined); ;
-    break;}
-case 8:
-{ yyval.opform = makeOpFormNode (yyvsp[0].ltok, OPF_ANYOP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
-    break;}
-case 9:
-{ yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_MANYOP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
-    break;}
-case 10:
-{ yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_ANYOPM, opFormUnion_createAnyOp (yyvsp[-1].ltok), ltoken_undefined); ;
-    break;}
-case 11:
-{ yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MANYOPM, opFormUnion_createAnyOp (yyvsp[-1].ltok), ltoken_undefined); ;
-    break;}
-case 12:
-{ yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
-    break;}
-case 13:
-{ yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
-    break;}
-case 14:
-{ yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
-    break;}
-case 15:
-{ yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MMIDDLEM, 
-                             opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
-    break;}
-case 16:
-{ yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_BMIDDLE, 
-                             opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
-    break;}
-case 17:
-{ yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_BMMIDDLE, 
-                             opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
-    break;}
-case 18:
-{ yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_BMIDDLEM, 
-                           opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
-    break;}
-case 19:
-{ yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_BMMIDDLEM, 
-                           opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
-    break;}
-case 20:
-{ yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_SELECT, 
-                           opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
-    break;}
-case 21:
-{ yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MSELECT, 
-                           opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
-    break;}
-case 22:
-{ yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MMAP, 
-                           opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
-    break;}
-case 23:
-{ yyval.ltok = yyvsp[0].ltok; ;
-    break;}
-case 24:
-{ yyval.ltok = yyvsp[0].ltok; ;
-    break;}
-case 25:
-{ yyval.ltok = yyvsp[0].ltok; ;
-    break;}
-case 26:
-{ yyval.count = 0; ;
-    break;}
-case 27:
-{ yyval.count = yyvsp[0].count; ;
-    break;}
-case 28:
-{ yyval.count = 1; ;
-    break;}
-case 29:
-{ yyval.count = yyvsp[-2].count + 1; ;
-    break;}
-case 30:
-{ yyval.ltok = yyvsp[0].ltok; ;
-    break;}
-case 31:
-{ yyval.ltok = yyvsp[0].ltok; ;
-    break;}
-case 32:
-{ yyval.signature = makesigNode (yyvsp[-1].ltok, yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
-    break;}
-case 33:
-{ yyval.ltokenList = ltokenList_new (); ;
-    break;}
-case 34:
-{ yyval.ltokenList = yyvsp[0].ltokenList; ;
-    break;}
-case 35:
-{ yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
-    break;}
-case 36:
-{ yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
-    break;}
-case 37:
-{ 
+               yyval.operators = x; ;}
+    break;
+
+  case 4:
+
+    { lslOpList_add (yyvsp[-1].operators, yyvsp[0].operator);
+               yyval.operators = yyvsp[-1].operators; ;}
+    break;
+
+  case 5:
+
+    { yyval.operator = makelslOpNode (yyvsp[-2].name, yyvsp[0].signature); ;}
+    break;
+
+  case 6:
+
+    { yyval.name = makeNameNodeId (yyvsp[0].ltok); ;}
+    break;
+
+  case 7:
+
+    { yyval.name = makeNameNodeForm (yyvsp[0].opform); ;}
+    break;
+
+  case 8:
+
+    { yyval.opform = makeOpFormNode (yyvsp[-5].ltok, OPF_IF, opFormUnion_createMiddle (0), ltoken_undefined); ;}
+    break;
+
+  case 9:
+
+    { yyval.opform = makeOpFormNode (yyvsp[0].ltok, OPF_ANYOP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;}
+    break;
+
+  case 10:
+
+    { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_MANYOP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;}
+    break;
+
+  case 11:
+
+    { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_ANYOPM, opFormUnion_createAnyOp (yyvsp[-1].ltok), ltoken_undefined); ;}
+    break;
+
+  case 12:
+
+    { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MANYOPM, opFormUnion_createAnyOp (yyvsp[-1].ltok), ltoken_undefined); ;}
+    break;
+
+  case 13:
+
+    { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;}
+    break;
+
+  case 14:
+
+    { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;}
+    break;
+
+  case 15:
+
+    { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;}
+    break;
+
+  case 16:
+
+    { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MMIDDLEM, 
+                             opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;}
+    break;
+
+  case 17:
+
+    { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_BMIDDLE, 
+                             opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;}
+    break;
+
+  case 18:
+
+    { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_BMMIDDLE, 
+                             opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;}
+    break;
+
+  case 19:
+
+    { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_BMIDDLEM, 
+                           opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;}
+    break;
+
+  case 20:
+
+    { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_BMMIDDLEM, 
+                           opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;}
+    break;
+
+  case 21:
+
+    { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_SELECT, 
+                           opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;}
+    break;
+
+  case 22:
+
+    { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MSELECT, 
+                           opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;}
+    break;
+
+  case 23:
+
+    { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MMAP, 
+                           opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;}
+    break;
+
+  case 24:
+
+    { yyval.ltok = yyvsp[0].ltok; ;}
+    break;
+
+  case 25:
+
+    { yyval.ltok = yyvsp[0].ltok; ;}
+    break;
+
+  case 26:
+
+    { yyval.ltok = yyvsp[0].ltok; ;}
+    break;
+
+  case 27:
+
+    { yyval.count = 0; ;}
+    break;
+
+  case 28:
+
+    { yyval.count = yyvsp[0].count; ;}
+    break;
+
+  case 29:
+
+    { yyval.count = 1; ;}
+    break;
+
+  case 30:
+
+    { yyval.count = yyvsp[-2].count + 1; ;}
+    break;
+
+  case 31:
+
+    { yyval.ltok = yyvsp[0].ltok; ;}
+    break;
+
+  case 32:
+
+    { yyval.ltok = yyvsp[0].ltok; ;}
+    break;
+
+  case 33:
+
+    { yyval.signature = makesigNode (yyvsp[-1].ltok, yyvsp[-2].ltokenList, yyvsp[0].ltok); ;}
+    break;
+
+  case 34:
+
+    { yyval.ltokenList = ltokenList_new (); ;}
+    break;
+
+  case 35:
+
+    { yyval.ltokenList = yyvsp[0].ltokenList; ;}
+    break;
+
+  case 36:
+
+    { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;}
+    break;
+
+  case 37:
+
+    { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;}
+    break;
+
+  case 38:
+
+    { 
          yyval.ltok = yyvsp[0].ltok; 
          ltoken_setText (yyval.ltok, processTraitSortId (ltoken_getText (yyvsp[0].ltok))); 
          yyval.ltok = yyvsp[0].ltok; 
          ltoken_setText (yyval.ltok, processTraitSortId (ltoken_getText (yyvsp[0].ltok))); 
-       ;
-    break;}
-case 38:
-{ yyval.ltok = yyvsp[0].ltok; ;
-    break;}
-}
+       ;}
+    break;
 
 
+  case 39:
+
+    { yyval.ltok = yyvsp[0].ltok; ;}
+    break;
+
+
+    }
+
+/* Line 999 of yacc.c.  */
 
 \f
   yyvsp -= yylen;
   yyssp -= yylen;
 
 \f
   yyvsp -= yylen;
   yyssp -= yylen;
-#if YYLSP_NEEDED
-  yylsp -= yylen;
-#endif
 
 
-#if YYDEBUG
-  if (yydebug)
-    {
-      short *yyssp1 = yyss - 1;
-      YYFPRINTF (stderr, "state stack now");
-      while (yyssp1 != yyssp)
-       YYFPRINTF (stderr, " %d", *++yyssp1);
-      YYFPRINTF (stderr, "\n");
-    }
-#endif
+
+  YY_STACK_PRINT (yyss, yyssp);
 
   *++yyvsp = yyval;
 
   *++yyvsp = yyval;
-#if YYLSP_NEEDED
-  *++yylsp = yyloc;
-#endif
+
 
   /* Now `shift' the result of the reduction.  Determine what state
      that goes to, based on the state we popped back to and the rule
 
   /* Now `shift' the result of the reduction.  Determine what state
      that goes to, based on the state we popped back to and the rule
@@ -1211,11 +1442,11 @@ case 38:
 
   yyn = yyr1[yyn];
 
 
   yyn = yyr1[yyn];
 
-  yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
-  if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
+  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
+  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
     yystate = yytable[yystate];
   else
     yystate = yytable[yystate];
   else
-    yystate = yydefgoto[yyn - YYNTBASE];
+    yystate = yydefgoto[yyn - YYNTOKENS];
 
   goto yynewstate;
 
 
   goto yynewstate;
 
@@ -1228,13 +1459,13 @@ yyerrlab:
   if (!yyerrstatus)
     {
       ++yynerrs;
   if (!yyerrstatus)
     {
       ++yynerrs;
-
-#ifdef YYERROR_VERBOSE
+#if YYERROR_VERBOSE
       yyn = yypact[yystate];
 
       yyn = yypact[yystate];
 
-      if (yyn > YYFLAG && yyn < YYLAST)
+      if (YYPACT_NINF < yyn && yyn < YYLAST)
        {
          YYSIZE_T yysize = 0;
        {
          YYSIZE_T yysize = 0;
+         int yytype = YYTRANSLATE (yychar);
          char *yymsg;
          int yyx, yycount;
 
          char *yymsg;
          int yyx, yycount;
 
@@ -1243,15 +1474,15 @@ yyerrlab:
             YYCHECK.  */
          for (yyx = yyn < 0 ? -yyn : 0;
               yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)
             YYCHECK.  */
          for (yyx = yyn < 0 ? -yyn : 0;
               yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)
-           if (yycheck[yyx + yyn] == yyx)
+           if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
              yysize += yystrlen (yytname[yyx]) + 15, yycount++;
              yysize += yystrlen (yytname[yyx]) + 15, yycount++;
-         yysize += yystrlen ("parse error, unexpected ") + 1;
-         yysize += yystrlen (yytname[YYTRANSLATE (yychar)]);
+         yysize += yystrlen ("syntax error, unexpected ") + 1;
+         yysize += yystrlen (yytname[yytype]);
          yymsg = (char *) YYSTACK_ALLOC (yysize);
          if (yymsg != 0)
            {
          yymsg = (char *) YYSTACK_ALLOC (yysize);
          if (yymsg != 0)
            {
-             char *yyp = yystpcpy (yymsg, "parse error, unexpected ");
-             yyp = yystpcpy (yyp, yytname[YYTRANSLATE (yychar)]);
+             char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
+             yyp = yystpcpy (yyp, yytname[yytype]);
 
              if (yycount < 5)
                {
 
              if (yycount < 5)
                {
@@ -1259,7 +1490,7 @@ yyerrlab:
                  for (yyx = yyn < 0 ? -yyn : 0;
                       yyx < (int) (sizeof (yytname) / sizeof (char *));
                       yyx++)
                  for (yyx = yyn < 0 ? -yyn : 0;
                       yyx < (int) (sizeof (yytname) / sizeof (char *));
                       yyx++)
-                   if (yycheck[yyx + yyn] == yyx)
+                   if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
                      {
                        const char *yyq = ! yycount ? ", expecting " : " or ";
                        yyp = yystpcpy (yyp, yyq);
                      {
                        const char *yyq = ! yycount ? ", expecting " : " or ";
                        yyp = yystpcpy (yyp, yyq);
@@ -1271,102 +1502,77 @@ yyerrlab:
              YYSTACK_FREE (yymsg);
            }
          else
              YYSTACK_FREE (yymsg);
            }
          else
-           yyerror ("parse error; also virtual memory exhausted");
+           yyerror ("syntax error; also virtual memory exhausted");
        }
       else
        }
       else
-#endif /* defined (YYERROR_VERBOSE) */
-       yyerror ("parse error");
+#endif /* YYERROR_VERBOSE */
+       yyerror ("syntax error");
     }
     }
-  goto yyerrlab1;
 
 
 
 
-/*--------------------------------------------------.
-| yyerrlab1 -- error raised explicitly by an action |
-`--------------------------------------------------*/
-yyerrlab1:
+
   if (yyerrstatus == 3)
     {
       /* If just tried and failed to reuse lookahead token after an
         error, discard it.  */
 
   if (yyerrstatus == 3)
     {
       /* If just tried and failed to reuse lookahead token after an
         error, discard it.  */
 
-      /* return failure if at end of input */
+      /* Return failure if at end of input.  */
       if (yychar == YYEOF)
       if (yychar == YYEOF)
-       YYABORT;
-      YYDPRINTF ((stderr, "Discarding token %d (%s).\n",
-                 yychar, yytname[yychar1]));
+        {
+         /* Pop the error token.  */
+          YYPOPSTACK;
+         /* Pop the rest of the stack.  */
+         while (yyss < yyssp)
+           {
+             YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
+             yydestruct (yystos[*yyssp], yyvsp);
+             YYPOPSTACK;
+           }
+         YYABORT;
+        }
+
+      YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
+      yydestruct (yytoken, &yylval);
       yychar = YYEMPTY;
       yychar = YYEMPTY;
+
     }
 
   /* Else will try to reuse lookahead token after shifting the error
      token.  */
     }
 
   /* Else will try to reuse lookahead token after shifting the error
      token.  */
-
-  yyerrstatus = 3;             /* Each real token shifted decrements this */
-
-  goto yyerrhandle;
-
-
-/*-------------------------------------------------------------------.
-| yyerrdefault -- current state does not do anything special for the |
-| error token.                                                       |
-`-------------------------------------------------------------------*/
-yyerrdefault:
-#if 0
-  /* This is wrong; only states that explicitly want error tokens
-     should shift them.  */
-
-  /* If its default is to accept any token, ok.  Otherwise pop it.  */
-  yyn = yydefact[yystate];
-  if (yyn)
-    goto yydefault;
-#endif
+  goto yyerrlab1;
 
 
 
 
-/*---------------------------------------------------------------.
-| yyerrpop -- pop the current state because it cannot handle the |
-| error token                                                    |
-`---------------------------------------------------------------*/
-yyerrpop:
-  if (yyssp == yyss)
-    YYABORT;
-  yyvsp--;
-  yystate = *--yyssp;
-#if YYLSP_NEEDED
-  yylsp--;
-#endif
+/*----------------------------------------------------.
+| yyerrlab1 -- error raised explicitly by an action.  |
+`----------------------------------------------------*/
+yyerrlab1:
+  yyerrstatus = 3;     /* Each real token shifted decrements this.  */
 
 
-#if YYDEBUG
-  if (yydebug)
+  for (;;)
     {
     {
-      short *yyssp1 = yyss - 1;
-      YYFPRINTF (stderr, "Error: state stack now");
-      while (yyssp1 != yyssp)
-       YYFPRINTF (stderr, " %d", *++yyssp1);
-      YYFPRINTF (stderr, "\n");
-    }
-#endif
+      yyn = yypact[yystate];
+      if (yyn != YYPACT_NINF)
+       {
+         yyn += YYTERROR;
+         if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
+           {
+             yyn = yytable[yyn];
+             if (0 < yyn)
+               break;
+           }
+       }
 
 
-/*--------------.
-| yyerrhandle.  |
-`--------------*/
-yyerrhandle:
-  yyn = yypact[yystate];
-  if (yyn == YYFLAG)
-    goto yyerrdefault;
+      /* Pop the current state because it cannot handle the error token.  */
+      if (yyssp == yyss)
+       YYABORT;
 
 
-  yyn += YYTERROR;
-  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
-    goto yyerrdefault;
+      YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
+      yydestruct (yystos[yystate], yyvsp);
+      yyvsp--;
+      yystate = *--yyssp;
 
 
-  yyn = yytable[yyn];
-  if (yyn < 0)
-    {
-      if (yyn == YYFLAG)
-       goto yyerrpop;
-      yyn = -yyn;
-      goto yyreduce;
+      YY_STACK_PRINT (yyss, yyssp);
     }
     }
-  else if (yyn == 0)
-    goto yyerrpop;
 
   if (yyn == YYFINAL)
     YYACCEPT;
 
   if (yyn == YYFINAL)
     YYACCEPT;
@@ -1374,9 +1580,7 @@ yyerrhandle:
   YYDPRINTF ((stderr, "Shifting error token, "));
 
   *++yyvsp = yylval;
   YYDPRINTF ((stderr, "Shifting error token, "));
 
   *++yyvsp = yylval;
-#if YYLSP_NEEDED
-  *++yylsp = yylloc;
-#endif
+
 
   yystate = yyn;
   goto yynewstate;
 
   yystate = yyn;
   goto yynewstate;
@@ -1396,13 +1600,15 @@ yyabortlab:
   yyresult = 1;
   goto yyreturn;
 
   yyresult = 1;
   goto yyreturn;
 
-/*---------------------------------------------.
-| yyoverflowab -- parser overflow comes here.  |
-`---------------------------------------------*/
+#ifndef yyoverflow
+/*----------------------------------------------.
+| yyoverflowlab -- parser overflow comes here.  |
+`----------------------------------------------*/
 yyoverflowlab:
   yyerror ("parser stack overflow");
   yyresult = 2;
   /* Fall through.  */
 yyoverflowlab:
   yyerror ("parser stack overflow");
   yyresult = 2;
   /* Fall through.  */
+#endif
 
 yyreturn:
 #ifndef yyoverflow
 
 yyreturn:
 #ifndef yyoverflow
@@ -1413,6 +1619,9 @@ yyreturn:
 }
 
 
 }
 
 
+
+
+
 # include "bison.reset"
 
 extern char *yytext;
 # include "bison.reset"
 
 extern char *yytext;
@@ -1488,6 +1697,7 @@ extern void PrintToken (ltoken tok) {
 
 
 
 
 
 
+
 /*
 ** Resets all flags in bison.head
 */
 /*
 ** Resets all flags in bison.head
 */
index f46f3b91f9ace814dacc05d5ac0d335315aa58c5..a419bc1f967f3b6dd59caaa97d27bc0089b5e8cd 100644 (file)
@@ -17,3 +17,12 @@ fixedArrayType.c:9:3: Possible out-of-bounds store: buffer[sizeof(Array) - 1]
     fixedArrayType.c:9:25 - 1
 
 Finished checking --- 1 code warning, as expected
     fixedArrayType.c:9:25 - 1
 
 Finished checking --- 1 code warning, as expected
+
+initBlock.c: (in function main)
+initBlock.c:8:3: Likely out-of-bounds store: buf[10]
+    Unable to resolve constraint:
+    requires 9 >= 10
+     needed to satisfy precondition:
+    requires maxSet(buf @ initBlock.c:8:3) >= 10
+
+Finished checking --- 1 code warning, as expected
index 3aac2b84dff3265b8ece44e71ec916d713beaf9c..69ea4064faf3b73514ec3ee1a4ca908c12c6bbdb 100644 (file)
@@ -5,4 +5,5 @@
 check:
        $(SPLINT) -exportlocal +bounds unknownsize.c arrayConstExpr.c -expect 1
        $(SPLINT) -exportlocal +bounds fixedArrayType.c -expect 1
 check:
        $(SPLINT) -exportlocal +bounds unknownsize.c arrayConstExpr.c -expect 1
        $(SPLINT) -exportlocal +bounds fixedArrayType.c -expect 1
+       $(SPLINT) -exportlocal +bounds initBlock.c -expect 1
 
 
diff --git a/test/moreBufferTests2/initBlock.c b/test/moreBufferTests2/initBlock.c
new file mode 100644 (file)
index 0000000..0033bec
--- /dev/null
@@ -0,0 +1,12 @@
+
+int main(void) {
+  
+  int buf[]={0,0,0,0,0,0,0,0,0,0};
+  int buf1[]={0,0,0,0,0,0,0,0,0,0};
+  
+
+  buf[10] = 0;
+  buf1[9]  = 0;
+  
+  return 0;
+}
This page took 1.434917 seconds and 5 git commands to generate.