[remotetea] Initial import (#991621).

gil gil at fedoraproject.org
Wed Dec 11 20:48:24 UTC 2013


commit a4414152c1e525a553e676cdfd77198ff7736b20
Author: gil <puntogil at libero.it>
Date:   Wed Dec 11 21:48:15 2013 +0100

    Initial import (#991621).

 .gitignore                              |    1 +
 oncrpc-1.0.7.pom                        |   30 +
 remotetea-1.0.7-build.patch             |  102 +
 remotetea-1.0.7-build.xml               |  192 ++
 remotetea-1.0.7-custom_JrpcgenSHA.patch |  333 ++++
 remotetea-1.0.7-system-java_cup.patch   | 3228 +++++++++++++++++++++++++++++++
 remotetea-jrpcgen-template.pom          |   30 +
 remotetea-portmap-template.pom          |   30 +
 remotetea.spec                          |  110 ++
 sources                                 |    1 +
 10 files changed, 4057 insertions(+), 0 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index e69de29..7c393c6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/remotetea-src-1.0.7.zip
diff --git a/oncrpc-1.0.7.pom b/oncrpc-1.0.7.pom
new file mode 100644
index 0000000..fdbc772
--- /dev/null
+++ b/oncrpc-1.0.7.pom
@@ -0,0 +1,30 @@
+<?xml version="1.0"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.acplt</groupId>
+  <artifactId>oncrpc</artifactId>
+  <name>Remote Tea Runtime</name>
+  <packaging>jar</packaging>
+  <version>1.0.7</version>
+  <description>A fully fledged implementation of the ONC/RPC protocol</description>
+  <url>http://remotetea.sourceforge.net/</url>
+  <licenses>
+    <license>
+      <name>GNU Lesser General Public License</name>
+      <url>http://www.gnu.org/licenses/lgpl.html</url>
+      <distribution>repo</distribution>
+    </license>
+  </licenses>
+  <scm>
+    <connection>scm:cvs:pserver:remotetea.cvs.sourceforge.net:/cvsroot/remotetea</connection>
+    <developerConnection>scm:ext:remotetea.cvs.sourceforge.net:/cvsroot/remotetea</developerConnection>
+    <url>http://remotetea.cvs.sourceforge.net/viewvc/remotetea/</url>
+  </scm>
+  <developers>
+    <developer>
+      <id>haraldalbrecht</id>
+      <name>Harald Albrecht</name>
+      <email>haraldalbrecht at users.sourceforge.net</email>
+    </developer>
+  </developers>
+</project>
diff --git a/remotetea-1.0.7-build.patch b/remotetea-1.0.7-build.patch
new file mode 100644
index 0000000..c099b1b
--- /dev/null
+++ b/remotetea-1.0.7-build.patch
@@ -0,0 +1,102 @@
+diff -Nru remotetea/build.xml remotetea-gil/build.xml
+--- remotetea/build.xml	2013-08-03 04:09:41.110417784 +0200
++++ remotetea-gil/build.xml	2013-12-10 21:21:08.192783089 +0100
+@@ -16,6 +16,10 @@
+ 	
+ 	<property name="distVersion" value="1.0.7" />
+ 
++	<path id="build.classpath">
++            <pathelement location="${buildDir}/**"/>
++	</path>
++
+ 	<!-- -->
+ 	<!-- ** SF patch #943219: add compile target ** -->
+ 	<!-- Compile classes -->
+@@ -26,7 +30,9 @@
+ 				destdir="${buildDir}"
+ 				debug="true"
+ 				deprecation="true"
+-				optimize="true">
++				optimize="true"
++				classpathref="build.classpath"
++				excludes="org/acplt/oncrpc/apps/jrpcgen/**/*,org/acplt/oncrpc/ant/*">
+ 		</javac>
+ 	</target>
+ 
+@@ -55,7 +61,7 @@
+ 		</jar>
+ 		<delete file="${buildDir}/jrpcgen.jar"/>
+ 		<!-- ** SF patch #943215: include Ant task with jrpcgen.jar ** -->
+-		<jar
++		<!--jar
+ 				jarfile="${buildDir}/jrpcgen.jar"
+ 				basedir="${buildDir}"
+ 				includes="org/acplt/oncrpc/apps/jrpcgen/**/*.class,org/acplt/oncrpc/ant/*.class">
+@@ -69,7 +75,7 @@
+ 				<attribute name="Implementation-Version" value="${distVersion}"/>  
+ 				<attribute name="Implementation-Vendor" value="RemoteTea SF Project"/> 
+ 			</manifest>
+-		</jar>
++		</jar-->
+ 		<delete file="${buildDir}/portmap.jar"/>
+ 		<jar
+ 				jarfile="${buildDir}/portmap.jar"
+@@ -95,15 +101,19 @@
+ 		<javadoc
+ 				sourcepath="${srcDir}"
+ 				destdir="${javadocDir}"
+-				classpath="${buildDir}"
+ 				private="true"
+ 				author="on">
++			<classpath refid="build.classpath"/>  
+ 			<package name="org.acplt.oncrpc" />
+ 			<package name="org.acplt.oncrpc.server" />
+ 			<package name="org.acplt.oncrpc.web" />
+-			<package name="org.acplt.oncrpc.apps.jrpcgen" />
++			<!--package name="org.acplt.oncrpc.apps.jrpcgen" /-->
+ 			<package name="org.acplt.oncrpc.apps.jportmap" />
+-			<package name="org.acplt.oncrpc.apps.ant" />
++			<!--package name="org.acplt.oncrpc.apps.ant" /-->
++			<packageset dir="${srcDir}">
++				<exclude name="org/acplt/oncrpc/apps/jrpcgen/**" />
++				<exclude name="org/acplt/oncrpc/ant/**" />
++			</packageset>
+ 		</javadoc>
+ 	</target>
+ 
+@@ -154,7 +164,6 @@
+ 		<antcall target="compile"></antcall>
+ 		<echo>Running Jrpcgen x protocol compiler on demo.x...</echo>
+ 		<java classname="org.acplt.oncrpc.apps.jrpcgen.jrpcgen"
+-		      classpath="${buildDir}"
+ 			  dir="${srcDir}/tests/org/acplt/oncrpc/jrpcgen"
+ 			  fork="yes">
+ 			<arg value="-verbose"/>
+@@ -164,10 +173,10 @@
+ 			<arg value="tests.org.acplt.oncrpc.jrpcgen"/>
+ 			<arg value="-nobackup"/>
+ 			<arg value="demo.x"/>
++			<classpath refid="build.classpath"/>  
+ 		</java>
+ 		<echo>Running Jrpcgen x protocol compiler on demo2.x...</echo>
+ 		<java classname="org.acplt.oncrpc.apps.jrpcgen.jrpcgen"
+-		      classpath="${buildDir}"
+ 			  dir="${srcDir}/tests/org/acplt/oncrpc/jrpcgen"
+ 			  fork="yes">
+ 			<arg value="-verbose"/>
+@@ -175,6 +184,7 @@
+ 			<arg value="tests.org.acplt.oncrpc.jrpcgen"/>
+ 			<arg value="-nobackup"/>
+ 			<arg value="demo2.x"/>
++			<classpath refid="build.classpath"/>  
+ 		</java>
+ 		<echo>Compiling example mess...</echo>
+ 		<javac
+@@ -183,6 +193,7 @@
+ 				debug="true"
+ 				deprecation="true"
+ 				optimize="true">
++				<classpath refid="build.classpath"/>  
+ 		</javac>
+ 		<echo>Succeeded.</echo>
+ 	</target>
diff --git a/remotetea-1.0.7-build.xml b/remotetea-1.0.7-build.xml
new file mode 100644
index 0000000..833d060
--- /dev/null
+++ b/remotetea-1.0.7-build.xml
@@ -0,0 +1,192 @@
+<?xml version="1.0"?>
+<!--
+  $Header: /home/harald/repos/remotetea.sf.net/remotetea/build.xml,v 1.7 2008/01/05 17:21:45 haraldalbrecht Exp $
+  
+  build.xml - contains the ANT rules for building Remote Tea
+  
+  -->
+
+<project name="Remote Tea" default="jar" basedir=".">
+
+	<!-- -->
+	<property name="buildDir" value="classes" />
+	<property name="srcDir" value="src" />
+	<property name="javadocDir" value="javadoc" />
+	<property name="distDir" value="dist" />
+	
+	<property name="distVersion" value="1.0.7" />
+
+	<!-- -->
+	<!-- ** SF patch #943219: add compile target ** -->
+	<!-- Compile classes -->
+	<target name="compile" description="compile classes">
+		<mkdir dir="${buildDir}"/>
+		<javac
+				srcdir="${srcDir}"
+				destdir="${buildDir}"
+				debug="true"
+				deprecation="true"
+				optimize="true">
+		</javac>
+	</target>
+
+	<!-- Generate JAR files:
+	     * oncrpc.jar contains the ONC/RPC client and server functionality,
+	     * jrpcgen.jar contains the x-file protocol compiler,
+	     * jportmap.jar contains an ONC/RPC portmapper including base libraries
+	       (so older JREs have no problems executing it standalone).
+	  -->
+	<!-- ** SF patch #943219: add compile target / compile dependency ** -->
+	<target name="jar" description="generate jar files" depends="compile">
+		<delete file="${buildDir}/oncrpc.jar"/>
+		<jar 
+				jarfile="${buildDir}/oncrpc.jar"
+				basedir="${buildDir}"
+				includes="org/acplt/oncrpc/*.class,org/acplt/oncrpc/server/*.class">
+			<manifest>
+				<attribute name="Extension-Name" value="ONC/RPC"/>
+				<attribute name="Specification-Title" value="Open Network Computing Remote Procedure Call (core)"/> 
+				<attribute name="Specification-Version" value="2.0"/> 
+				<attribute name="Specification-Vendor" value="Sun Microsystems, Inc"/> 
+				<attribute name="Implementation-Title" value="Open Network Computing Remote Procedure Call (core)"/> 
+				<attribute name="Implementation-Version" value="${distVersion}"/>  
+				<attribute name="Implementation-Vendor" value="RemoteTea SF Project"/> 
+			</manifest>
+		</jar>
+		<delete file="${buildDir}/jrpcgen.jar"/>
+		<!-- ** SF patch #943215: include Ant task with jrpcgen.jar ** -->
+		<jar
+				jarfile="${buildDir}/jrpcgen.jar"
+				basedir="${buildDir}"
+				includes="org/acplt/oncrpc/apps/jrpcgen/**/*.class,org/acplt/oncrpc/ant/*.class">
+			<manifest>
+				<attribute name="Main-Class" value="org.acplt.oncrpc.apps.jrpcgen.jrpcgen"/>
+				<attribute name="Extension-Name" value="ONC/RPC"/>
+				<attribute name="Specification-Title" value="Open Network Computing Remote Procedure Call (rpcgen)"/> 
+				<attribute name="Specification-Version" value="unknown (rpcgen x.x)"/> 
+				<attribute name="Specification-Vendor" value="Sun Microsystems, Inc"/> 
+				<attribute name="Implementation-Title" value="Open Network Computing Remote Procedure Call (rpcgen)"/> 
+				<attribute name="Implementation-Version" value="${distVersion}"/>  
+				<attribute name="Implementation-Vendor" value="RemoteTea SF Project"/> 
+			</manifest>
+		</jar>
+		<delete file="${buildDir}/portmap.jar"/>
+		<jar
+				jarfile="${buildDir}/portmap.jar"
+				basedir="${buildDir}"
+				includes="org/acplt/oncrpc/*.class,org/acplt/oncrpc/server/*.class,org/acplt/oncrpc/apps/jportmap/*.class">
+			<manifest>
+				<attribute name="Main-Class" value="org.acplt.oncrpc.apps.jportmap.jportmap"/>
+				<attribute name="Extension-Name" value="ONC/RPC"/>
+				<attribute name="Specification-Title" value="Open Network Computing Remote Procedure Call (rpcbind)"/> 
+				<attribute name="Specification-Version" value="2.0"/> 
+				<attribute name="Specification-Vendor" value="Sun Microsystems, Inc"/> 
+				<attribute name="Implementation-Title" value="Open Network Computing Remote Procedure Call (rpcbind)"/> 
+				<attribute name="Implementation-Version" value="${distVersion}"/>  
+				<attribute name="Implementation-Vendor" value="RemoteTea SF Project"/> 
+			</manifest>
+		</jar>
+	</target>
+	
+	<!-- Generate JavaDoc -->
+	<target name="javadoc" description="generate JavaDoc documentation files">
+		<delete dir="${javadocDir}"/>
+		<mkdir dir="${javadocDir}" />
+		<javadoc
+				sourcepath="${srcDir}"
+				destdir="${javadocDir}"
+				classpath="${buildDir}"
+				private="true"
+				author="on">
+			<package name="org.acplt.oncrpc" />
+			<package name="org.acplt.oncrpc.server" />
+			<package name="org.acplt.oncrpc.web" />
+			<package name="org.acplt.oncrpc.apps.jrpcgen" />
+			<package name="org.acplt.oncrpc.apps.jportmap" />
+			<package name="org.acplt.oncrpc.apps.ant" />
+		</javadoc>
+	</target>
+
+	<!-- Generate SF file packages -->
+	<target name="sf" description="generate SF file packages"
+		    depends="jar,javadoc">
+		<echo>generating SF file packages for version ${distVersion}...</echo>
+		<mkdir dir="${distDir}"/>
+		<!-- binary plus documentation distribution -->
+		<zip zipfile="${distDir}/remotetea-bin-doc.zip">
+			<zipfileset dir="." prefix="remotetea/">
+				<include name="${buildDir}/*.jar" />
+				<include name="${javadocDir}/" />
+			</zipfileset>
+			<zipfileset dir="." prefix="remotetea/">
+				<include name="readme.html" />
+				<include name="changelog.html" />
+				<include name="docstyle.css" />
+				<include name="COPYING.LIB" />
+				<include name="build.xml" />
+			</zipfileset>
+		</zip>
+		<!-- source only distribution -->
+		<zip zipfile="${distDir}/remotetea-src.zip">
+			<zipfileset dir="." prefix="remotetea/">
+				<include name=".project" />
+				<include name=".classpath" />
+				<include name="readme.html" />
+				<include name="changelog.html" />
+				<include name="docstyle.css" />
+				<include name="COPYING.LIB" />
+			</zipfileset>
+			<zipfileset dir="." prefix="remotetea/">
+				<include name="${srcDir}/" />
+			</zipfileset>
+		</zip>
+	</target>
+
+	<!-- compile Jrpcgen test example and compile resulting Java files -->
+	<target name="jrpcgen-test" description="run jrpcgen test">
+		<echo>Cleaning up example mess...</echo>
+		<delete><!-- make a fresh start so we don't get bitten by damaged example source code -->
+			<fileset dir="${srcDir}/tests/org/acplt/oncrpc/jrpcgen"
+				     includes="*.java"
+			         excludes="demoClientExample.java demoServer.java"/>
+		</delete>
+		<echo>Compiling Jrpcgen protocol compiler...</echo>
+		<antcall target="compile"></antcall>
+		<echo>Running Jrpcgen x protocol compiler on demo.x...</echo>
+		<java classname="org.acplt.oncrpc.apps.jrpcgen.jrpcgen"
+		      classpath="${buildDir}"
+			  dir="${srcDir}/tests/org/acplt/oncrpc/jrpcgen"
+			  fork="yes">
+			<arg value="-verbose"/>
+			<arg value="-ser"/>
+			<arg value="-bean"/>
+			<arg value="-p"/>
+			<arg value="tests.org.acplt.oncrpc.jrpcgen"/>
+			<arg value="-nobackup"/>
+			<arg value="demo.x"/>
+		</java>
+		<echo>Running Jrpcgen x protocol compiler on demo2.x...</echo>
+		<java classname="org.acplt.oncrpc.apps.jrpcgen.jrpcgen"
+		      classpath="${buildDir}"
+			  dir="${srcDir}/tests/org/acplt/oncrpc/jrpcgen"
+			  fork="yes">
+			<arg value="-verbose"/>
+			<arg value="-p"/>
+			<arg value="tests.org.acplt.oncrpc.jrpcgen"/>
+			<arg value="-nobackup"/>
+			<arg value="demo2.x"/>
+		</java>
+		<echo>Compiling example mess...</echo>
+		<javac
+				srcdir="${srcDir}/tests/org/acplt/oncrpc/jrpcgen"
+				destdir="${buildDir}"
+				debug="true"
+				deprecation="true"
+				optimize="true">
+		</javac>
+		<echo>Succeeded.</echo>
+	</target>
+	
+</project>
+
+<!-- End of build.xml -->
diff --git a/remotetea-1.0.7-custom_JrpcgenSHA.patch b/remotetea-1.0.7-custom_JrpcgenSHA.patch
new file mode 100644
index 0000000..c37e85b
--- /dev/null
+++ b/remotetea-1.0.7-custom_JrpcgenSHA.patch
@@ -0,0 +1,333 @@
+diff -Nru remotetea/src/org/acplt/oncrpc/apps/jrpcgen/JrpcgenSHA.java remotetea-gil/src/org/acplt/oncrpc/apps/jrpcgen/JrpcgenSHA.java
+--- remotetea/src/org/acplt/oncrpc/apps/jrpcgen/JrpcgenSHA.java	2003-08-13 12:03:48.000000000 +0200
++++ remotetea-gil/src/org/acplt/oncrpc/apps/jrpcgen/JrpcgenSHA.java	2013-12-11 18:37:39.120330266 +0100
+@@ -1,281 +1,71 @@
+-/* SHA.java -- Class implementing the SHA-1 algorithm as specified in [1].
+-   Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+-
+-This file is part of GNU Classpath.
+-
+-GNU Classpath 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.
+- 
+-GNU Classpath 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 GNU Classpath; see the file COPYING.  If not, write to the
+-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+-02111-1307 USA.
++/*
++    JpcgenSHA.java -- implementation of the JrpcgenSHA interface that 
++    calls out to the Java standard library instead of to bundled code
+ 
+-As a special exception, if you link this library with other files to
+-produce an executable, this library does not by itself cause the
+-resulting executable to be covered by the GNU General Public License.
+-This exception does not however invalidate any other reasons why the
+-executable file might be covered by the GNU General Public License. */
++    This program is free software: you can redistribute it and/or modify
++    it under the terms of the GNU Library General Public License as published by
++    the Free Software Foundation, either version 2 of the License, or
++    (at your option) any later version.
++
++    This program is distributed in the hope that it will be useful,
++    but WITHOUT ANY WARRANTY; without even the implied warranty of
++    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++    GNU General Public License for more details.
++
++    You should have received a copy of the GNU Library General Public License
++    along with this program.  If not, see <http://www.gnu.org/licenses/>.
++    
++    @author William Benton <willb at redhat.com>
++*/
+ 
+-/*
+- * $Header: /cvsroot/remotetea/remotetea/src/org/acplt/oncrpc/apps/jrpcgen/JrpcgenSHA.java,v 1.1.1.1 2003/08/13 12:03:47 haraldalbrecht Exp $
+- *
+- * The original file gnu.java.security.provider.SHA.java has been
+- * renamed to reflect the many chances made to it. While the processing
+- * kernel has not been changed, the overall interface has. Especially
+- * some methods have been added which can hash several kinds of data
+- * types, as needed by the jrpcgen protocol compiler.
+- *
+- * @version $Revision: 1.1.1.1 $ $Date: 2003/08/13 12:03:47 $ $State: Exp $ $Locker:  $
+- * @author GNU Classpath
+- */
+ package org.acplt.oncrpc.apps.jrpcgen;
+ 
+-/**
+- * This class implements the SHA-1 algorithm as described in
+- * "Federal Information Processing Standards Publication 180-1:
+- * Specifications for the Secure Hash Standard. April 17, 1995."
+- */
+-public class JrpcgenSHA {
++import java.security.MessageDigest;
++import java.security.NoSuchAlgorithmException;
+ 
+-    /**
+-     * Create a new SHA-1 hashing object.
+-     */
++public class JrpcgenSHA {
+     public JrpcgenSHA() {
+         reset();
+     }
+-
+-    /**
+-     * Update the hash using a single byte (8 bits).
+-     *
+-     * @param b Byte to hash.
+-     */
++    
+     public void update(byte b) {
+-        int i = (int)bytecount % 64;
+-        int shift = (3 - i % 4) * 8;
+-        int idx = i / 4;
+-
+-        // if you could index ints, this would be: W[idx][shift/8] = b
+-        W[idx] = (W[idx] & ~(0xff << shift)) | ((b & 0xff) << shift);
+-
+-        // if we've filled up a block, then process it
+-        if ( (++bytecount) % 64 == 0 ) {
+-            process();
+-        }
++        this.digest.update(b);
+     }
+-
+-    /**
+-     * Update the hash using a short integer (16 bits).
+-     *
+-     * @param s Short integer to hash.
+-     */
++    
+     public void update(short s) {
+-        update((byte) s);
+-        update((byte)(s >>> 8));
++        for (int pos = 0 ; pos < 2 ; pos ++) {
++            update((byte)((s >> (pos * 8)) & 0xff));
++        }
+     }
+-
+-    /**
+-     * Update the hash using an integer (32 bits).
+-     *
+-     * @param i Integer to hash.
+-     */
++    
+     public void update(int i) {
+-        update((byte) i);
+-        update((byte)(i >>>  8));
+-        update((byte)(i >>> 16));
+-        update((byte)(i >>> 24));
++        for (int pos = 0 ; pos < 4 ; pos ++) {
++            update((byte)((i >> (pos * 8)) & 0xff));
++        }
+     }
+-
+-    /**
+-     * Update the hash using a string.
+-     *
+-     * @param s String to hash.
+-     */
++    
+     public void update(String s) {
+-        int len = s.length();
+-        for ( int idx = 0; idx < len; ++idx ) {
+-            update((short)s.charAt(idx));
++        for (char ch: s.toCharArray()) {
++            update((short)ch);
+         }
+     }
+-
+-
+-    /**
+-     * Reset the hashing engine to start hashing another set of innocent
+-     * bytes.
+-     */
+-    public void reset() {
+-        bytecount = 0;
+-        // magic numbers from [1] p. 10.
+-        H0 = 0x67452301;
+-        H1 = 0xefcdab89;
+-        H2 = 0x98badcfe;
+-        H3 = 0x10325476;
+-        H4 = 0xc3d2e1f0;
+-    }
+-
+-    /**
+-     * Retrieve the digest (that is, informally spoken, the "hash value").
+-     *
+-     * @return digest as a series of 20 bytes (80 bits).
+-     */
+-    public byte[] getDigest() {
+-        long bitcount = bytecount * 8;
+-        update((byte)0x80); // 10000000 in binary; the start of the padding
+-
+-        // add the rest of the padding to fill this block out, but leave 8
+-        // bytes to put in the original bytecount
+-        while ( (int)bytecount % 64 != 56 ) {
+-            update((byte)0);
++    
++    public long getHash() {
++        byte[] h = this.digest.digest();
++        long result = 0;
++        for(int i = 0; i < 8; i++) {
++            result += ((long)h[i] & 0xffl) << (i*8);
+         }
+-
+-        // add the length of the original, unpadded block to the end of
+-        // the padding
+-        W[14] = (int)(bitcount >>> 32);
+-        W[15] = (int)bitcount;
+-        bytecount += 8;
+-
+-        // digest the fully padded block
+-        process();
+-
+-        byte[] result
+-            = new byte[] {
+-                (byte)(H0 >>> 24), (byte)(H0 >>> 16),
+-		        (byte)(H0 >>>  8), (byte) H0,
+-    		    (byte)(H1 >>> 24), (byte)(H1 >>> 16),
+-	    	    (byte)(H1 >>>  8), (byte) H1,
+-		        (byte)(H2 >>> 24), (byte)(H2 >>> 16),
+-		        (byte)(H2 >>>  8), (byte) H2,
+-    		    (byte)(H3 >>> 24), (byte)(H3 >>> 16),
+-	    	    (byte)(H3 >>>  8), (byte) H3,
+-		        (byte)(H4 >>> 24), (byte)(H4 >>> 16),
+-		        (byte)(H4 >>>  8), (byte) H4
+-            };
+-
+-        reset();
+         return result;
+     }
+-
+-    /**
+-     * Return first 64 bits of hash digest for use as a serialization
+-     * UID, etc.
+-     *
+-     * @return hash digest with only 64 bit size.
+-     */
+-    public long getHash() {
+-        byte [] hash = getDigest();
+-        return   ( ((long)hash[0]) & 0xFF)
+-               + ((((long)hash[1]) & 0xFF) <<  8)
+-               + ((((long)hash[2]) & 0xFF) << 16)
+-               + ((((long)hash[3]) & 0xFF) << 24)
+-               + ((((long)hash[4]) & 0xFF) << 32)
+-               + ((((long)hash[5]) & 0xFF) << 40)
+-               + ((((long)hash[6]) & 0xFF) << 48)
+-               + ((((long)hash[7]) & 0xFF) << 56);
+-    }
+-
+-    /**
+-     * Process a single block. This is pretty much copied verbatim from
+-     * "Federal Information Processing Standards Publication 180-1:
+-     * Specifications for the Secure Hash Standard. April 17, 1995.",
+-     * pp. 9, 10.
+-     */
+-    private void process() {
+-        for ( int t = 16; t < 80; ++t ) {
+-        	int Wt = W[t - 3] ^ W[t - 8] ^ W[t - 14] ^ W[t - 16];
+-        	W[t] = Wt << 1 | Wt >>> 31;
+-        }
+-
+-        int A = H0;
+-        int B = H1;
+-        int C = H2;
+-        int D = H3;
+-        int E = H4;
+-
+-        for ( int t = 0; t < 20; ++t ) {
+-	        int TEMP = (A << 5 | A >>> 27)          // S^5(A)
+-	                   + ((B & C) | (~B & D))       // f_t(B,C,D)
+-	                   + E + W[t]
+-	                   + 0x5a827999;                // K_t
+-
+-	        E = D;
+-	        D = C;
+-	        C = B << 30 | B >>> 2;                  // S^30(B)
+-	        B = A;
+-	        A = TEMP;
+-        }
+-
+-        for ( int t = 20; t < 40; ++t ) {
+-	        int TEMP = (A << 5 | A >>> 27)          // S^5(A)
+-	                   + (B ^ C ^ D)                // f_t(B,C,D)
+-	                   + E + W[t]
+-	                   + 0x6ed9eba1;                // K_t
+-
+-	        E = D;
+-	        D = C;
+-	        C = B << 30 | B >>> 2;                  // S^30(B)
+-	        B = A;
+-	        A = TEMP;
+-        }
+-
+-        for ( int t = 40; t < 60; ++t ) {
+-	        int TEMP = (A << 5 | A >>> 27)          // S^5(A)
+-	                   + (B & C | B & D | C & D)    // f_t(B,C,D)
+-	                   + E + W[t]
+-	                   + 0x8f1bbcdc;                // K_t
+-
+-	        E = D;
+-	        D = C;
+-	        C = B << 30 | B >>> 2;                  // S^30(B)
+-	        B = A;
+-	        A = TEMP;
+-        }
+-
+-        for ( int t = 60; t < 80; ++t ) {
+-	        int TEMP = (A << 5 | A >>> 27)          // S^5(A)
+-	                   + (B ^ C ^ D)                // f_t(B,C,D)
+-	                   + E + W[t]
+-	                   + 0xca62c1d6;                // K_t
+-
+-	        E = D;
+-	        D = C;
+-	        C = B << 30 | B >>> 2;                  // S^30(B)
+-	        B = A;
+-	        A = TEMP;
+-        }
+-
+-        H0 += A;
+-        H1 += B;
+-        H2 += C;
+-        H3 += D;
+-        H4 += E;
+-
+-        // Reset W by clearing it.
+-        for ( int t = 0; t < 80; ++t ) {
+-            W[t] = 0;
++    
++    private void reset() {
++        try {
++            this.digest = MessageDigest.getInstance("SHA-1");
++        } catch (NoSuchAlgorithmException e) {
++            throw new RuntimeException("This JVM doesn't supply SHA-1; something is seriously wrong");
+         }
+     }
+-
+-
+-    /**
+-     * Work buffer for calculating the hash.
+-     */
+-    private final int W[] = new int[80];
+-
+-    private long bytecount;
+-    private int H0;
+-    private int H1;
+-    private int H2;
+-    private int H3;
+-    private int H4;
+-
++    
++    private MessageDigest digest;
+ }
+-
+-// End of JrpcgenSHA.java
+-
diff --git a/remotetea-1.0.7-system-java_cup.patch b/remotetea-1.0.7-system-java_cup.patch
new file mode 100644
index 0000000..21d0963
--- /dev/null
+++ b/remotetea-1.0.7-system-java_cup.patch
@@ -0,0 +1,3228 @@
+diff -Nru remotetea/build.xml remotetea-gil/build.xml
+--- remotetea/build.xml	2013-12-10 21:38:00.814881421 +0100
++++ remotetea-gil/build.xml	2013-12-10 21:41:29.548539704 +0100
+@@ -18,6 +18,7 @@
+ 
+ 	<path id="build.classpath">
+             <pathelement location="${buildDir}/**"/>
++            <fileset dir="/usr/share/java" includes="java_cup.jar"/>
+ 	</path>
+ 
+ 	<!-- -->
+@@ -31,8 +32,7 @@
+ 				debug="true"
+ 				deprecation="true"
+ 				optimize="true"
+-				classpathref="build.classpath"
+-				excludes="org/acplt/oncrpc/apps/jrpcgen/**/*,org/acplt/oncrpc/ant/*">
++				classpathref="build.classpath">
+ 		</javac>
+ 	</target>
+ 
+@@ -61,7 +61,7 @@
+ 		</jar>
+ 		<delete file="${buildDir}/jrpcgen.jar"/>
+ 		<!-- ** SF patch #943215: include Ant task with jrpcgen.jar ** -->
+-		<!--jar
++		<jar
+ 				jarfile="${buildDir}/jrpcgen.jar"
+ 				basedir="${buildDir}"
+ 				includes="org/acplt/oncrpc/apps/jrpcgen/**/*.class,org/acplt/oncrpc/ant/*.class">
+@@ -75,7 +75,7 @@
+ 				<attribute name="Implementation-Version" value="${distVersion}"/>  
+ 				<attribute name="Implementation-Vendor" value="RemoteTea SF Project"/> 
+ 			</manifest>
+-		</jar-->
++		</jar>
+ 		<delete file="${buildDir}/portmap.jar"/>
+ 		<jar
+ 				jarfile="${buildDir}/portmap.jar"
+@@ -107,13 +107,9 @@
+ 			<package name="org.acplt.oncrpc" />
+ 			<package name="org.acplt.oncrpc.server" />
+ 			<package name="org.acplt.oncrpc.web" />
+-			<!--package name="org.acplt.oncrpc.apps.jrpcgen" /-->
++			<package name="org.acplt.oncrpc.apps.jrpcgen" />
+ 			<package name="org.acplt.oncrpc.apps.jportmap" />
+-			<!--package name="org.acplt.oncrpc.apps.ant" /-->
+-			<packageset dir="${srcDir}">
+-				<exclude name="org/acplt/oncrpc/apps/jrpcgen/**" />
+-				<exclude name="org/acplt/oncrpc/ant/**" />
+-			</packageset>
++			<package name="org.acplt.oncrpc.apps.ant" />
+ 		</javadoc>
+ 	</target>
+ 
+@@ -164,6 +160,7 @@
+ 		<antcall target="compile"></antcall>
+ 		<echo>Running Jrpcgen x protocol compiler on demo.x...</echo>
+ 		<java classname="org.acplt.oncrpc.apps.jrpcgen.jrpcgen"
++		      classpath="${buildDir}:/usr/share/java/java_cup.jar"
+ 			  dir="${srcDir}/tests/org/acplt/oncrpc/jrpcgen"
+ 			  fork="yes">
+ 			<arg value="-verbose"/>
+@@ -173,10 +170,10 @@
+ 			<arg value="tests.org.acplt.oncrpc.jrpcgen"/>
+ 			<arg value="-nobackup"/>
+ 			<arg value="demo.x"/>
+-			<classpath refid="build.classpath"/>  
+ 		</java>
+ 		<echo>Running Jrpcgen x protocol compiler on demo2.x...</echo>
+ 		<java classname="org.acplt.oncrpc.apps.jrpcgen.jrpcgen"
++		      classpath="${buildDir}:/usr/share/java/java_cup.jar"
+ 			  dir="${srcDir}/tests/org/acplt/oncrpc/jrpcgen"
+ 			  fork="yes">
+ 			<arg value="-verbose"/>
+@@ -184,7 +181,6 @@
+ 			<arg value="tests.org.acplt.oncrpc.jrpcgen"/>
+ 			<arg value="-nobackup"/>
+ 			<arg value="demo2.x"/>
+-			<classpath refid="build.classpath"/>  
+ 		</java>
+ 		<echo>Compiling example mess...</echo>
+ 		<javac
+@@ -193,7 +189,7 @@
+ 				debug="true"
+ 				deprecation="true"
+ 				optimize="true">
+-				<classpath refid="build.classpath"/>  
++				<classpath refid="build.classpath"/> 
+ 		</javac>
+ 		<echo>Succeeded.</echo>
+ 	</target>
+diff -Nru remotetea/jrpcgen.pom remotetea-gil/jrpcgen.pom
+--- remotetea/jrpcgen.pom	2013-08-03 04:31:36.859890303 +0200
++++ remotetea-gil/jrpcgen.pom	2013-12-10 21:32:39.456882094 +0100
+@@ -27,4 +27,11 @@
+       <email>haraldalbrecht at users.sourceforge.net</email>
+     </developer>
+   </developers>
++  <dependencies>
++    <dependency>
++      <groupId>java_cup</groupId>
++      <artifactId>java_cup</artifactId>
++      <version>0.11a</version>
++    </dependency>
++  </dependencies>
+ </project>
+diff -Nru remotetea/src/org/acplt/oncrpc/apps/jrpcgen/cup_runtime/lr_parser.java remotetea-gil/src/org/acplt/oncrpc/apps/jrpcgen/cup_runtime/lr_parser.java
+--- remotetea/src/org/acplt/oncrpc/apps/jrpcgen/cup_runtime/lr_parser.java	2005-11-11 21:25:28.000000000 +0100
++++ remotetea-gil/src/org/acplt/oncrpc/apps/jrpcgen/cup_runtime/lr_parser.java	1970-01-01 01:00:00.000000000 +0100
+@@ -1,1238 +0,0 @@
+-				    
+-package org.acplt.oncrpc.apps.jrpcgen.cup_runtime;
+-
+-import java.util.Stack;
+-
+-/** This class implements a skeleton table driven LR parser.  In general,
+- *  LR parsers are a form of bottom up shift-reduce parsers.  Shift-reduce
+- *  parsers act by shifting input onto a parse stack until the Symbols 
+- *  matching the right hand side of a production appear on the top of the 
+- *  stack.  Once this occurs, a reduce is performed.  This involves removing
+- *  the Symbols corresponding to the right hand side of the production
+- *  (the so called "handle") and replacing them with the non-terminal from
+- *  the left hand side of the production.  <p>
+- *
+- *  To control the decision of whether to shift or reduce at any given point, 
+- *  the parser uses a state machine (the "viable prefix recognition machine" 
+- *  built by the parser generator).  The current state of the machine is placed
+- *  on top of the parse stack (stored as part of a Symbol object representing
+- *  a terminal or non terminal).  The parse action table is consulted 
+- *  (using the current state and the current lookahead Symbol as indexes) to 
+- *  determine whether to shift or to reduce.  When the parser shifts, it 
+- *  changes to a new state by pushing a new Symbol (containing a new state) 
+- *  onto the stack.  When the parser reduces, it pops the handle (right hand 
+- *  side of a production) off the stack.  This leaves the parser in the state 
+- *  it was in before any of those Symbols were matched.  Next the reduce-goto 
+- *  table is consulted (using the new state and current lookahead Symbol as 
+- *  indexes) to determine a new state to go to.  The parser then shifts to 
+- *  this goto state by pushing the left hand side Symbol of the production 
+- *  (also containing the new state) onto the stack.<p>
+- *
+- *  This class actually provides four LR parsers.  The methods parse() and 
+- *  debug_parse() provide two versions of the main parser (the only difference 
+- *  being that debug_parse() emits debugging trace messages as it parses).  
+- *  In addition to these main parsers, the error recovery mechanism uses two 
+- *  more.  One of these is used to simulate "parsing ahead" in the input 
+- *  without carrying out actions (to verify that a potential error recovery 
+- *  has worked), and the other is used to parse through buffered "parse ahead" 
+- *  input in order to execute all actions and re-synchronize the actual parser 
+- *  configuration.<p>
+- *
+- *  This is an abstract class which is normally filled out by a subclass
+- *  generated by the JavaCup parser generator.  In addition to supplying
+- *  the actual parse tables, generated code also supplies methods which 
+- *  invoke various pieces of user supplied code, provide access to certain
+- *  special Symbols (e.g., EOF and error), etc.  Specifically, the following
+- *  abstract methods are normally supplied by generated code:
+- *  <dl compact>
+- *  <dt> short[][] production_table()
+- *  <dd> Provides a reference to the production table (indicating the index of
+- *       the left hand side non terminal and the length of the right hand side
+- *       for each production in the grammar).
+- *  <dt> short[][] action_table()
+- *  <dd> Provides a reference to the parse action table.
+- *  <dt> short[][] reduce_table()
+- *  <dd> Provides a reference to the reduce-goto table.
+- *  <dt> int start_state()      
+- *  <dd> Indicates the index of the start state.
+- *  <dt> int start_production() 
+- *  <dd> Indicates the index of the starting production.
+- *  <dt> int EOF_sym() 
+- *  <dd> Indicates the index of the EOF Symbol.
+- *  <dt> int error_sym() 
+- *  <dd> Indicates the index of the error Symbol.
+- *  <dt> Symbol do_action() 
+- *  <dd> Executes a piece of user supplied action code.  This always comes at 
+- *       the point of a reduce in the parse, so this code also allocates and 
+- *       fills in the left hand side non terminal Symbol object that is to be 
+- *       pushed onto the stack for the reduce.
+- *  <dt> void init_actions()
+- *  <dd> Code to initialize a special object that encapsulates user supplied
+- *       actions (this object is used by do_action() to actually carry out the 
+- *       actions).
+- *  </dl>
+- *  
+- *  In addition to these routines that <i>must</i> be supplied by the 
+- *  generated subclass there are also a series of routines that <i>may</i> 
+- *  be supplied.  These include:
+- *  <dl>
+- *  <dt> Symbol scan()
+- *  <dd> Used to get the next input Symbol from the scanner.
+- *  <dt> Scanner getScanner()
+- *  <dd> Used to provide a scanner for the default implementation of
+- *       scan().
+- *  <dt> int error_sync_size()
+- *  <dd> This determines how many Symbols past the point of an error 
+- *       must be parsed without error in order to consider a recovery to 
+- *       be valid.  This defaults to 3.  Values less than 2 are not 
+- *       recommended.
+- *  <dt> void report_error(String message, Object info)
+- *  <dd> This method is called to report an error.  The default implementation
+- *       simply prints a message to System.err and where the error occurred.
+- *       This method is often replaced in order to provide a more sophisticated
+- *       error reporting mechanism.
+- *  <dt> void report_fatal_error(String message, Object info)
+- *  <dd> This method is called when a fatal error that cannot be recovered from
+- *       is encountered.  In the default implementation, it calls 
+- *       report_error() to emit a message, then throws an exception.
+- *  <dt> void syntax_error(Symbol cur_token)
+- *  <dd> This method is called as soon as syntax error is detected (but
+- *       before recovery is attempted).  In the default implementation it 
+- *       invokes: report_error("Syntax error", null);
+- *  <dt> void unrecovered_syntax_error(Symbol cur_token)
+- *  <dd> This method is called if syntax error recovery fails.  In the default
+- *       implementation it invokes:<br> 
+- *         report_fatal_error("Couldn't repair and continue parse", null);
+- *  </dl>
+- *
+- * @see     java_cup.runtime.Symbol
+- * @see     java_cup.runtime.Symbol
+- * @see     java_cup.runtime.virtual_parse_stack
+- * @version last updated: 7/3/96
+- * @author  Frank Flannery
+- */
+-
+-public abstract class lr_parser {
+-
+-  /*-----------------------------------------------------------*/
+-  /*--- Constructor(s) ----------------------------------------*/
+-  /*-----------------------------------------------------------*/
+-
+-  /** Simple constructor. */
+-  public lr_parser()
+-    {
+-      /* nothing to do here */
+-    }
+-
+-  /** Constructor that sets the default scanner. [CSA/davidm] */
+-  public lr_parser(Scanner s) {
+-    this(); /* in case default constructor someday does something */
+-    setScanner(s);
+-  }
+-
+-  /*-----------------------------------------------------------*/
+-  /*--- (Access to) Static (Class) Variables ------------------*/
+-  /*-----------------------------------------------------------*/
+-
+-  /** The default number of Symbols after an error we much match to consider 
+-   *  it recovered from. 
+-   */
+-  protected final static int _error_sync_size = 3;
+-
+-  /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
+-
+-  /** The number of Symbols after an error we much match to consider it 
+-   *  recovered from. 
+-   */
+-  protected int error_sync_size() {return _error_sync_size; }
+-
+-  /*-----------------------------------------------------------*/
+-  /*--- (Access to) Instance Variables ------------------------*/
+-  /*-----------------------------------------------------------*/
+-
+-  /** Table of production information (supplied by generated subclass).
+-   *  This table contains one entry per production and is indexed by 
+-   *  the negative-encoded values (reduce actions) in the action_table.  
+-   *  Each entry has two parts, the index of the non-terminal on the 
+-   *  left hand side of the production, and the number of Symbols 
+-   *  on the right hand side. 
+-   */
+-  public abstract short[][] production_table();
+-
+-  /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
+-
+-  /** The action table (supplied by generated subclass).  This table is
+-   *  indexed by state and terminal number indicating what action is to
+-   *  be taken when the parser is in the given state (i.e., the given state 
+-   *  is on top of the stack) and the given terminal is next on the input.  
+-   *  States are indexed using the first dimension, however, the entries for 
+-   *  a given state are compacted and stored in adjacent index, value pairs 
+-   *  which are searched for rather than accessed directly (see get_action()).  
+-   *  The actions stored in the table will be either shifts, reduces, or 
+-   *  errors.  Shifts are encoded as positive values (one greater than the 
+-   *  state shifted to).  Reduces are encoded as negative values (one less 
+-   *  than the production reduced by).  Error entries are denoted by zero. 
+-   * 
+-   * @see java_cup.runtime.lr_parser#get_action
+-   */
+-  public abstract short[][] action_table();
+-
+-  /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
+-
+-  /** The reduce-goto table (supplied by generated subclass).  This
+-   *  table is indexed by state and non-terminal number and contains
+-   *  state numbers.  States are indexed using the first dimension, however,
+-   *  the entries for a given state are compacted and stored in adjacent
+-   *  index, value pairs which are searched for rather than accessed 
+-   *  directly (see get_reduce()).  When a reduce occurs, the handle 
+-   *  (corresponding to the RHS of the matched production) is popped off 
+-   *  the stack.  The new top of stack indicates a state.  This table is 
+-   *  then indexed by that state and the LHS of the reducing production to 
+-   *  indicate where to "shift" to. 
+-   *
+-   * @see java_cup.runtime.lr_parser#get_reduce
+-   */
+-  public abstract short[][] reduce_table();
+-
+-  /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
+-
+-  /** The index of the start state (supplied by generated subclass). */
+-  public abstract int start_state();
+-
+-  /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
+-
+-  /** The index of the start production (supplied by generated subclass). */
+-  public abstract int start_production();
+-
+-  /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
+-
+-  /** The index of the end of file terminal Symbol (supplied by generated 
+-   *  subclass). 
+-   */
+-  public abstract int EOF_sym();
+-
+-  /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
+-
+-  /** The index of the special error Symbol (supplied by generated subclass). */
+-  public abstract int error_sym();
+-
+-  /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
+-
+-  /** Internal flag to indicate when parser should quit. */
+-  protected boolean _done_parsing = false;
+-
+-  /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
+-
+-  /** This method is called to indicate that the parser should quit.  This is 
+-   *  normally called by an accept action, but can be used to cancel parsing 
+-   *  early in other circumstances if desired. 
+-   */
+-  public void done_parsing()
+-    {
+-      _done_parsing = true;
+-    }
+-
+-  /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
+-  /* Global parse state shared by parse(), error recovery, and 
+-   * debugging routines */
+-  /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
+-
+-  /** Indication of the index for top of stack (for use by actions). */
+-  protected int tos;
+-
+-  /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
+-
+-  /** The current lookahead Symbol. */
+-  protected Symbol cur_token;
+-
+-  /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
+-
+-  /** The parse stack itself. */
+-  protected Stack stack = new Stack();
+-
+-  /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
+-
+-  /** Direct reference to the production table. */ 
+-  protected short[][] production_tab;
+-
+-  /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
+-
+-  /** Direct reference to the action table. */
+-  protected short[][] action_tab;
+-
+-  /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
+-
+-  /** Direct reference to the reduce-goto table. */
+-  protected short[][] reduce_tab;
+-
+-  /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
+-
+-  /** This is the scanner object used by the default implementation
+-   *  of scan() to get Symbols.  To avoid name conflicts with existing
+-   *  code, this field is private. [CSA/davidm] */
+-  private Scanner _scanner;
+-
+-  /**
+-   * Simple accessor method to set the default scanner.
+-   */
+-  public void setScanner(Scanner s) { _scanner = s; }
+-
+-  /**
+-   * Simple accessor method to get the default scanner.
+-   */
+-  public Scanner getScanner() { return _scanner; }
+-
+-  /*-----------------------------------------------------------*/
+-  /*--- General Methods ---------------------------------------*/
+-  /*-----------------------------------------------------------*/
+-
+-  /** Perform a bit of user supplied action code (supplied by generated 
+-   *  subclass).  Actions are indexed by an internal action number assigned
+-   *  at parser generation time.
+-   *
+-   * @param act_num   the internal index of the action to be performed.
+-   * @param parser    the parser object we are acting for.
+-   * @param stack     the parse stack of that object.
+-   * @param top       the index of the top element of the parse stack.
+-   */
+-  public abstract Symbol do_action(
+-    int       act_num, 
+-    lr_parser parser, 
+-    Stack     stack, 
+-    int       top) 
+-    throws java.lang.Exception;
+-
+-  /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
+-
+-  /** User code for initialization inside the parser.  Typically this 
+-   *  initializes the scanner.  This is called before the parser requests
+-   *  the first Symbol.  Here this is just a placeholder for subclasses that 
+-   *  might need this and we perform no action.   This method is normally
+-   *  overridden by the generated code using this contents of the "init with"
+-   *  clause as its body.
+-   */
+-  public void user_init() throws java.lang.Exception { }
+-
+-  /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
+-
+-  /** Initialize the action object.  This is called before the parser does
+-   *  any parse actions. This is filled in by generated code to create
+-   *  an object that encapsulates all action code. 
+-   */ 
+-  protected abstract void init_actions() throws java.lang.Exception;
+-
+-  /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
+-
+-  /** Get the next Symbol from the input (supplied by generated subclass).
+-   *  Once end of file has been reached, all subsequent calls to scan 
+-   *  should return an EOF Symbol (which is Symbol number 0).  By default
+-   *  this method returns getScanner().next_token(); this implementation
+-   *  can be overriden by the generated parser using the code declared in
+-   *  the "scan with" clause.  Do not recycle objects; every call to
+-   *  scan() should return a fresh object.
+-   */
+-  public Symbol scan() throws java.lang.Exception {
+-    Symbol sym = getScanner().next_token();
+-    return (sym!=null) ? sym : new Symbol(EOF_sym());
+-  }
+-
+-  /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
+-
+-  /** Report a fatal error.  This method takes a  message string and an 
+-   *  additional object (to be used by specializations implemented in 
+-   *  subclasses).  Here in the base class a very simple implementation 
+-   *  is provided which reports the error then throws an exception. 
+-   *
+-   * @param message an error message.
+-   * @param info    an extra object reserved for use by specialized subclasses.
+-   */
+-  public void report_fatal_error(
+-    String   message, 
+-    Object   info)
+-    throws java.lang.Exception
+-    {
+-      /* stop parsing (not really necessary since we throw an exception, but) */
+-      done_parsing();
+-
+-      /* use the normal error message reporting to put out the message */
+-      report_error(message, info);
+-
+-      /* throw an exception */
+-      throw new Exception("Can't recover from previous error(s)");
+-    }
+-
+-  /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
+-
+-  /** Report a non fatal error (or warning).  This method takes a message 
+-   *  string and an additional object (to be used by specializations 
+-   *  implemented in subclasses).  Here in the base class a very simple 
+-   *  implementation is provided which simply prints the message to 
+-   *  System.err. 
+-   *
+-   * @param message an error message.
+-   * @param info    an extra object reserved for use by specialized subclasses.
+-   */
+-  public void report_error(String message, Object info)
+-    {
+-      System.err.print(message);
+-      if (info instanceof Symbol)
+-	if (((Symbol)info).left != -1)
+-	System.err.println(" at character " + ((Symbol)info).left + 
+-			   " of input");
+-	else System.err.println("");
+-      else System.err.println("");
+-    }
+-
+-  /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
+-
+-  /** This method is called when a syntax error has been detected and recovery 
+-   *  is about to be invoked.  Here in the base class we just emit a 
+-   *  "Syntax error" error message.  
+-   *
+-   * @param cur_token the current lookahead Symbol.
+-   */
+-  public void syntax_error(Symbol cur_token)
+-    {
+-      report_error("Syntax error", cur_token);
+-    }
+-
+-  /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
+-
+-  /** This method is called if it is determined that syntax error recovery 
+-   *  has been unsuccessful.  Here in the base class we report a fatal error. 
+-   *
+-   * @param cur_token the current lookahead Symbol.
+-   */
+-  public void unrecovered_syntax_error(Symbol cur_token)
+-    throws java.lang.Exception
+-    {
+-      report_fatal_error("Couldn't repair and continue parse", cur_token);
+-    }
+-
+-  /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
+-
+-  /** Fetch an action from the action table.  The table is broken up into
+-   *  rows, one per state (rows are indexed directly by state number).  
+-   *  Within each row, a list of index, value pairs are given (as sequential
+-   *  entries in the table), and the list is terminated by a default entry 
+-   *  (denoted with a Symbol index of -1).  To find the proper entry in a row 
+-   *  we do a linear or binary search (depending on the size of the row).  
+-   *
+-   * @param state the state index of the action being accessed.
+-   * @param sym   the Symbol index of the action being accessed.
+-   */
+-  protected final short get_action(int state, int sym)
+-    {
+-      short tag;
+-      int first, last, probe;
+-      short[] row = action_tab[state];
+-
+-      /* linear search if we are < 10 entries */
+-      if (row.length < 20)
+-        for (probe = 0; probe < row.length; probe++)
+-	  {
+-	    /* is this entry labeled with our Symbol or the default? */
+-	    tag = row[probe++];
+-	    if (tag == sym || tag == -1)
+-	      {
+-	        /* return the next entry */
+-	        return row[probe];
+-	      }
+-	  }
+-      /* otherwise binary search */
+-      else
+-	{
+-	  first = 0; 
+-	  last = (row.length-1)/2 - 1;  /* leave out trailing default entry */
+-	  while (first <= last)
+-	    {
+-	      probe = (first+last)/2;
+-	      if (sym == row[probe*2])
+-		return row[probe*2+1];
+-	      else if (sym > row[probe*2])
+-		first = probe+1;
+-	      else
+-	        last = probe-1;
+-	    }
+-
+-	  /* not found, use the default at the end */
+-	  return row[row.length-1];
+-	}
+-
+-      /* shouldn't happened, but if we run off the end we return the 
+-	 default (error == 0) */
+-      return 0;
+-    }
+-
+-  /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
+-
+-  /** Fetch a state from the reduce-goto table.  The table is broken up into
+-   *  rows, one per state (rows are indexed directly by state number).  
+-   *  Within each row, a list of index, value pairs are given (as sequential
+-   *  entries in the table), and the list is terminated by a default entry 
+-   *  (denoted with a Symbol index of -1).  To find the proper entry in a row 
+-   *  we do a linear search.  
+-   *
+-   * @param state the state index of the entry being accessed.
+-   * @param sym   the Symbol index of the entry being accessed.
+-   */
+-  protected final short get_reduce(int state, int sym)
+-    {
+-      short tag;
+-      short[] row = reduce_tab[state];
+-
+-      /* if we have a null row we go with the default */
+-      if (row == null)
+-        return -1;
+-
+-      for (int probe = 0; probe < row.length; probe++)
+-	{
+-	  /* is this entry labeled with our Symbol or the default? */
+-	  tag = row[probe++];
+-	  if (tag == sym || tag == -1)
+-	    {
+-	      /* return the next entry */
+-	      return row[probe];
+-	    }
+-	}
+-      /* if we run off the end we return the default (error == -1) */
+-      return -1;
+-    }
+-
+-  /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
+-
+-  /** This method provides the main parsing routine.  It returns only when 
+-   *  done_parsing() has been called (typically because the parser has 
+-   *  accepted, or a fatal error has been reported).  See the header 
+-   *  documentation for the class regarding how shift/reduce parsers operate
+-   *  and how the various tables are used.
+-   */
+-  public Symbol parse() throws java.lang.Exception
+-    {
+-      /* the current action code */
+-      int act;
+-
+-      /* the Symbol/stack element returned by a reduce */
+-      Symbol lhs_sym = null;
+-
+-      /* information about production being reduced with */
+-      short handle_size, lhs_sym_num;
+-
+-      /* set up direct reference to tables to drive the parser */
+-
+-      production_tab = production_table();
+-      action_tab     = action_table();
+-      reduce_tab     = reduce_table();
+-
+-      /* initialize the action encapsulation object */
+-      init_actions();
+-
+-      /* do user initialization */
+-      user_init();
+-
+-      /* get the first token */
+-      cur_token = scan(); 
+-
+-      /* push dummy Symbol with start state to get us underway */
+-      stack.removeAllElements();
+-      stack.push(new Symbol(0, start_state()));
+-      tos = 0;
+-
+-      /* continue until we are told to stop */
+-      for (_done_parsing = false; !_done_parsing; )
+-	{
+-	  /* Check current token for freshness. */
+-	  if (cur_token.used_by_parser)
+-	    throw new Error("Symbol recycling detected (fix your scanner).");
+-
+-	  /* current state is always on the top of the stack */
+-
+-	  /* look up action out of the current state with the current input */
+-	  act = get_action(((Symbol)stack.peek()).parse_state, cur_token.sym);
+-
+-	  /* decode the action -- > 0 encodes shift */
+-	  if (act > 0)
+-	    {
+-	      /* shift to the encoded state by pushing it on the stack */
+-	      cur_token.parse_state = act-1;
+-	      cur_token.used_by_parser = true;
+-	      stack.push(cur_token);
+-	      tos++;
+-
+-	      /* advance to the next Symbol */
+-	      cur_token = scan();
+-	    }
+-	  /* if its less than zero, then it encodes a reduce action */
+-	  else if (act < 0)
+-	    {
+-	      /* perform the action for the reduce */
+-	      lhs_sym = do_action((-act)-1, this, stack, tos);
+-
+-	      /* look up information about the production */
+-	      lhs_sym_num = production_tab[(-act)-1][0];
+-	      handle_size = production_tab[(-act)-1][1];
+-
+-	      /* pop the handle off the stack */
+-	      for (int i = 0; i < handle_size; i++)
+-		{
+-		  stack.pop();
+-		  tos--;
+-		}
+-	      
+-	      /* look up the state to go to from the one popped back to */
+-	      act = get_reduce(((Symbol)stack.peek()).parse_state, lhs_sym_num);
+-
+-	      /* shift to that state */
+-	      lhs_sym.parse_state = act;
+-	      lhs_sym.used_by_parser = true;
+-	      stack.push(lhs_sym);
+-	      tos++;
+-	    }
+-	  /* finally if the entry is zero, we have an error */
+-	  else if (act == 0)
+-	    {
+-	      /* call user syntax error reporting routine */
+-	      syntax_error(cur_token);
+-
+-	      /* try to error recover */
+-	      if (!error_recovery(false))
+-		{
+-		  /* if that fails give up with a fatal syntax error */
+-		  unrecovered_syntax_error(cur_token);
+-
+-		  /* just in case that wasn't fatal enough, end parse */
+-		  done_parsing();
+-		} else {
+-		  lhs_sym = (Symbol)stack.peek();
+-		}
+-	    }
+-	}
+-      return lhs_sym;
+-    }
+-
+-  /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
+-
+-  /** Write a debugging message to System.err for the debugging version 
+-   *  of the parser. 
+-   *
+-   * @param mess the text of the debugging message.
+-   */
+-  public void debug_message(String mess)
+-    {
+-      System.err.println(mess);
+-    }
+-
+-  /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
+-
+-  /** Dump the parse stack for debugging purposes. */
+-  public void dump_stack()
+-    {
+-      if (stack == null)
+-	{
+-	  debug_message("# Stack dump requested, but stack is null");
+-	  return;
+-	}
+-
+-      debug_message("============ Parse Stack Dump ============");
+-
+-      /* dump the stack */
+-      for (int i=0; i<stack.size(); i++)
+-	{
+-	  debug_message("Symbol: " + ((Symbol)stack.elementAt(i)).sym +
+-			" State: " + ((Symbol)stack.elementAt(i)).parse_state);
+-	}
+-      debug_message("==========================================");
+-    }
+-
+-  /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
+-
+-  /** Do debug output for a reduce. 
+-   *
+-   * @param prod_num  the production we are reducing with.
+-   * @param nt_num    the index of the LHS non terminal.
+-   * @param rhs_size  the size of the RHS.
+-   */
+-  public void debug_reduce(int prod_num, int nt_num, int rhs_size)
+-    {
+-      debug_message("# Reduce with prod #" + prod_num + " [NT=" + nt_num + 
+-	            ", " + "SZ=" + rhs_size + "]");
+-    }
+-
+-  /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
+-
+-  /** Do debug output for shift. 
+-   *
+-   * @param shift_tkn the Symbol being shifted onto the stack.
+-   */
+-  public void debug_shift(Symbol shift_tkn)
+-    {
+-      debug_message("# Shift under term #" + shift_tkn.sym + 
+-		    " to state #" + shift_tkn.parse_state);
+-    }
+-
+-  /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
+-
+-  /** Do debug output for stack state. [CSA]
+-   */
+-  public void debug_stack() {
+-      StringBuffer sb=new StringBuffer("## STACK:");
+-      for (int i=0; i<stack.size(); i++) {
+-	  Symbol s = (Symbol) stack.elementAt(i);
+-	  sb.append(" <state "+s.parse_state+", sym "+s.sym+">");
+-	  if ((i%3)==2 || (i==(stack.size()-1))) {
+-	      debug_message(sb.toString());
+-	      sb = new StringBuffer("         ");
+-	  }
+-      }
+-  }
+-
+-  /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
+-
+-  /** Perform a parse with debugging output.  This does exactly the
+-   *  same things as parse(), except that it calls debug_shift() and
+-   *  debug_reduce() when shift and reduce moves are taken by the parser
+-   *  and produces various other debugging messages.  
+-   */
+-  public Symbol debug_parse()
+-    throws java.lang.Exception
+-    {
+-      /* the current action code */
+-      int act;
+-
+-      /* the Symbol/stack element returned by a reduce */
+-      Symbol lhs_sym = null;
+-
+-      /* information about production being reduced with */
+-      short handle_size, lhs_sym_num;
+-
+-      /* set up direct reference to tables to drive the parser */
+-      production_tab = production_table();
+-      action_tab     = action_table();
+-      reduce_tab     = reduce_table();
+-
+-      debug_message("# Initializing parser");
+-
+-      /* initialize the action encapsulation object */
+-      init_actions();
+-
+-      /* do user initialization */
+-      user_init();
+-
+-      /* the current Symbol */
+-      cur_token = scan(); 
+-
+-      debug_message("# Current Symbol is #" + cur_token.sym);
+-
+-      /* push dummy Symbol with start state to get us underway */
+-      stack.removeAllElements();
+-      stack.push(new Symbol(0, start_state()));
+-      tos = 0;
+-
+-      /* continue until we are told to stop */
+-      for (_done_parsing = false; !_done_parsing; )
+-	{
+-	  /* Check current token for freshness. */
+-	  if (cur_token.used_by_parser)
+-	    throw new Error("Symbol recycling detected (fix your scanner).");
+-
+-	  /* current state is always on the top of the stack */
+-	  //debug_stack();
+-
+-	  /* look up action out of the current state with the current input */
+-	  act = get_action(((Symbol)stack.peek()).parse_state, cur_token.sym);
+-
+-	  /* decode the action -- > 0 encodes shift */
+-	  if (act > 0)
+-	    {
+-	      /* shift to the encoded state by pushing it on the stack */
+-	      cur_token.parse_state = act-1;
+-	      cur_token.used_by_parser = true;
+-	      debug_shift(cur_token);
+-	      stack.push(cur_token);
+-	      tos++;
+-
+-	      /* advance to the next Symbol */
+-	      cur_token = scan();
+-              debug_message("# Current token is " + cur_token);
+-	    }
+-	  /* if its less than zero, then it encodes a reduce action */
+-	  else if (act < 0)
+-	    {
+-	      /* perform the action for the reduce */
+-	      lhs_sym = do_action((-act)-1, this, stack, tos);
+-
+-	      /* look up information about the production */
+-	      lhs_sym_num = production_tab[(-act)-1][0];
+-	      handle_size = production_tab[(-act)-1][1];
+-
+-	      debug_reduce((-act)-1, lhs_sym_num, handle_size);
+-
+-	      /* pop the handle off the stack */
+-	      for (int i = 0; i < handle_size; i++)
+-		{
+-		  stack.pop();
+-		  tos--;
+-		}
+-	      
+-	      /* look up the state to go to from the one popped back to */
+-	      act = get_reduce(((Symbol)stack.peek()).parse_state, lhs_sym_num);
+-	      debug_message("# Reduce rule: top state " +
+-			     ((Symbol)stack.peek()).parse_state +
+-			     ", lhs sym " + lhs_sym_num + " -> state " + act); 
+-
+-	      /* shift to that state */
+-	      lhs_sym.parse_state = act;
+-	      lhs_sym.used_by_parser = true;
+-	      stack.push(lhs_sym);
+-	      tos++;
+-
+-	      debug_message("# Goto state #" + act);
+-	    }
+-	  /* finally if the entry is zero, we have an error */
+-	  else if (act == 0)
+-	    {
+-	      /* call user syntax error reporting routine */
+-	      syntax_error(cur_token);
+-
+-	      /* try to error recover */
+-	      if (!error_recovery(true))
+-		{
+-		  /* if that fails give up with a fatal syntax error */
+-		  unrecovered_syntax_error(cur_token);
+-
+-		  /* just in case that wasn't fatal enough, end parse */
+-		  done_parsing();
+-		} else {
+-		  lhs_sym = (Symbol)stack.peek();
+-		}
+-	    }
+-	}
+-      return lhs_sym;
+-    }
+-
+-  /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
+-  /* Error recovery code */
+-  /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
+-
+-  /** Attempt to recover from a syntax error.  This returns false if recovery 
+-   *  fails, true if it succeeds.  Recovery happens in 4 steps.  First we
+-   *  pop the parse stack down to a point at which we have a shift out
+-   *  of the top-most state on the error Symbol.  This represents the
+-   *  initial error recovery configuration.  If no such configuration is
+-   *  found, then we fail.  Next a small number of "lookahead" or "parse
+-   *  ahead" Symbols are read into a buffer.  The size of this buffer is 
+-   *  determined by error_sync_size() and determines how many Symbols beyond
+-   *  the error must be matched to consider the recovery a success.  Next, 
+-   *  we begin to discard Symbols in attempt to get past the point of error
+-   *  to a point where we can continue parsing.  After each Symbol, we attempt 
+-   *  to "parse ahead" though the buffered lookahead Symbols.  The "parse ahead"
+-   *  process simulates that actual parse, but does not modify the real 
+-   *  parser's configuration, nor execute any actions. If we can  parse all 
+-   *  the stored Symbols without error, then the recovery is considered a 
+-   *  success.  Once a successful recovery point is determined, we do an
+-   *  actual parse over the stored input -- modifying the real parse 
+-   *  configuration and executing all actions.  Finally, we return the the 
+-   *  normal parser to continue with the overall parse.
+-   *
+-   * @param debug should we produce debugging messages as we parse.
+-   */
+-  protected boolean error_recovery(boolean debug)
+-    throws java.lang.Exception
+-    {
+-      if (debug) debug_message("# Attempting error recovery");
+-
+-      /* first pop the stack back into a state that can shift on error and 
+-	 do that shift (if that fails, we fail) */
+-      if (!find_recovery_config(debug))
+-	{
+-	  if (debug) debug_message("# Error recovery fails");
+-	  return false;
+-	}
+-
+-      /* read ahead to create lookahead we can parse multiple times */
+-      read_lookahead();
+-
+-      /* repeatedly try to parse forward until we make it the required dist */
+-      for (;;)
+-	{
+-	  /* try to parse forward, if it makes it, bail out of loop */
+-	  if (debug) debug_message("# Trying to parse ahead");
+-	  if (try_parse_ahead(debug))
+-	    {
+-	      break;
+-	    }
+-
+-	  /* if we are now at EOF, we have failed */
+-	  if (lookahead[0].sym == EOF_sym()) 
+-	    {
+-	      if (debug) debug_message("# Error recovery fails at EOF");
+-	      return false;
+-	    }
+-
+-	  /* otherwise, we consume another Symbol and try again */
+-	  // BUG FIX by Bruce Hutton
+-	  // Computer Science Department, University of Auckland,
+-	  // Auckland, New Zealand.
+-	  // It is the first token that is being consumed, not the one 
+-	  // we were up to parsing
+-	  if (debug) 
+-	      debug_message("# Consuming Symbol #" + lookahead[ 0 ].sym);
+-	  restart_lookahead();
+-	}
+-
+-      /* we have consumed to a point where we can parse forward */
+-      if (debug) debug_message("# Parse-ahead ok, going back to normal parse");
+-
+-      /* do the real parse (including actions) across the lookahead */
+-      parse_lookahead(debug);
+-
+-      /* we have success */
+-      return true;
+-    }
+-
+-  /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
+-
+-  /** Determine if we can shift under the special error Symbol out of the 
+-   *  state currently on the top of the (real) parse stack. 
+-   */
+-  protected boolean shift_under_error()
+-    {
+-      /* is there a shift under error Symbol */
+-      return get_action(((Symbol)stack.peek()).parse_state, error_sym()) > 0;
+-    }
+-
+-  /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
+-
+-  /** Put the (real) parse stack into error recovery configuration by 
+-   *  popping the stack down to a state that can shift on the special 
+-   *  error Symbol, then doing the shift.  If no suitable state exists on 
+-   *  the stack we return false 
+-   *
+-   * @param debug should we produce debugging messages as we parse.
+-   */
+-  protected boolean find_recovery_config(boolean debug)
+-    {
+-      Symbol error_token;
+-      int act;
+-
+-      if (debug) debug_message("# Finding recovery state on stack");
+-
+-      /* Remember the right-position of the top symbol on the stack */
+-      int right_pos = ((Symbol)stack.peek()).right;
+-      int left_pos  = ((Symbol)stack.peek()).left;
+-
+-      /* pop down until we can shift under error Symbol */
+-      while (!shift_under_error())
+-	{
+-	  /* pop the stack */
+-	  if (debug) 
+-	    debug_message("# Pop stack by one, state was # " +
+-	                  ((Symbol)stack.peek()).parse_state);
+-          left_pos = ((Symbol)stack.pop()).left;	
+-	  tos--;
+-
+-	  /* if we have hit bottom, we fail */
+-	  if (stack.empty()) 
+-	    {
+-	      if (debug) debug_message("# No recovery state found on stack");
+-	      return false;
+-	    }
+-	}
+-
+-      /* state on top of the stack can shift under error, find the shift */
+-      act = get_action(((Symbol)stack.peek()).parse_state, error_sym());
+-      if (debug) 
+-	{
+-	  debug_message("# Recover state found (#" + 
+-			((Symbol)stack.peek()).parse_state + ")");
+-	  debug_message("# Shifting on error to state #" + (act-1));
+-	}
+-
+-      /* build and shift a special error Symbol */
+-      error_token = new Symbol(error_sym(), left_pos, right_pos);
+-      error_token.parse_state = act-1;
+-      error_token.used_by_parser = true;
+-      stack.push(error_token);
+-      tos++;
+-
+-      return true;
+-    }
+-
+-  /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
+-
+-  /** Lookahead Symbols used for attempting error recovery "parse aheads". */
+-  protected Symbol lookahead[];
+-
+-  /** Position in lookahead input buffer used for "parse ahead". */
+-  protected int lookahead_pos;
+-
+-  /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
+-
+-  /** Read from input to establish our buffer of "parse ahead" lookahead 
+-   *  Symbols. 
+-   */
+-  protected void read_lookahead() throws java.lang.Exception
+-    {
+-      /* create the lookahead array */
+-      lookahead = new Symbol[error_sync_size()];
+-
+-      /* fill in the array */
+-      for (int i = 0; i < error_sync_size(); i++)
+-	{
+-	  lookahead[i] = cur_token;
+-	  cur_token = scan();
+-	}
+-
+-      /* start at the beginning */
+-      lookahead_pos = 0;
+-    }
+-
+-  /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
+-
+-  /** Return the current lookahead in our error "parse ahead" buffer. */
+-  protected Symbol cur_err_token() { return lookahead[lookahead_pos]; }
+-
+-  /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
+-
+-  /** Advance to next "parse ahead" input Symbol. Return true if we have 
+-   *  input to advance to, false otherwise. 
+-   */
+-  protected boolean advance_lookahead()
+-    {
+-      /* advance the input location */
+-      lookahead_pos++;
+-
+-      /* return true if we didn't go off the end */
+-      return lookahead_pos < error_sync_size();
+-    }
+-
+-  /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
+-
+-  /** Reset the parse ahead input to one Symbol past where we started error 
+-   *  recovery (this consumes one new Symbol from the real input). 
+-   */
+-  protected void restart_lookahead() throws java.lang.Exception
+-    {
+-      /* move all the existing input over */
+-      for (int i = 1; i < error_sync_size(); i++)
+-	lookahead[i-1] = lookahead[i];
+-
+-      /* read a new Symbol into the last spot */
+-      // BUG Fix by Bruce Hutton
+-      // Computer Science Department, University of Auckland,
+-      // Auckland, New Zealand. [applied 5-sep-1999 by csa]
+-      // The following two lines were out of order!!
+-      lookahead[error_sync_size()-1] = cur_token;
+-      cur_token = scan();
+-
+-      /* reset our internal position marker */
+-      lookahead_pos = 0;
+-    }
+-
+-  /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
+-
+-  /** Do a simulated parse forward (a "parse ahead") from the current 
+-   *  stack configuration using stored lookahead input and a virtual parse
+-   *  stack.  Return true if we make it all the way through the stored 
+-   *  lookahead input without error. This basically simulates the action of 
+-   *  parse() using only our saved "parse ahead" input, and not executing any 
+-   *  actions.
+-   *
+-   * @param debug should we produce debugging messages as we parse.
+-   */
+-  protected boolean try_parse_ahead(boolean debug)
+-    throws java.lang.Exception
+-    {
+-      int act;
+-      short lhs, rhs_size;
+-
+-      /* create a virtual stack from the real parse stack */
+-      virtual_parse_stack vstack = new virtual_parse_stack(stack);
+-
+-      /* parse until we fail or get past the lookahead input */
+-      for (;;)
+-	{
+-	  /* look up the action from the current state (on top of stack) */
+-	  act = get_action(vstack.top(), cur_err_token().sym);
+-
+-	  /* if its an error, we fail */
+-	  if (act == 0) return false;
+-
+-	  /* > 0 encodes a shift */
+-	  if (act > 0)
+-	    {
+-	      /* push the new state on the stack */
+-	      vstack.push(act-1);
+-
+-	      if (debug) debug_message("# Parse-ahead shifts Symbol #" + 
+-		       cur_err_token().sym + " into state #" + (act-1));
+-
+-	      /* advance simulated input, if we run off the end, we are done */
+-	      if (!advance_lookahead()) return true;
+-	    }
+-	  /* < 0 encodes a reduce */
+-	  else
+-	    {
+-	      /* if this is a reduce with the start production we are done */
+-	      if ((-act)-1 == start_production()) 
+-		{
+-		  if (debug) debug_message("# Parse-ahead accepts");
+-		  return true;
+-		}
+-
+-	      /* get the lhs Symbol and the rhs size */
+-	      lhs = production_tab[(-act)-1][0];
+-	      rhs_size = production_tab[(-act)-1][1];
+-
+-	      /* pop handle off the stack */
+-	      for (int i = 0; i < rhs_size; i++)
+-		vstack.pop();
+-
+-	      if (debug) 
+-		debug_message("# Parse-ahead reduces: handle size = " + 
+-	          rhs_size + " lhs = #" + lhs + " from state #" + vstack.top());
+-
+-	      /* look up goto and push it onto the stack */
+-	      vstack.push(get_reduce(vstack.top(), lhs));
+-	      if (debug) 
+-		debug_message("# Goto state #" + vstack.top());
+-	    }
+-	}
+-    }
+-
+-  /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
+-
+-  /** Parse forward using stored lookahead Symbols.  In this case we have
+-   *  already verified that parsing will make it through the stored lookahead
+-   *  Symbols and we are now getting back to the point at which we can hand
+-   *  control back to the normal parser.  Consequently, this version of the
+-   *  parser performs all actions and modifies the real parse configuration.  
+-   *  This returns once we have consumed all the stored input or we accept.
+-   *
+-   * @param debug should we produce debugging messages as we parse.
+-   */
+-  protected void parse_lookahead(boolean debug)
+-    throws java.lang.Exception
+-    {
+-      /* the current action code */
+-      int act;
+-
+-      /* the Symbol/stack element returned by a reduce */
+-      Symbol lhs_sym = null;
+-
+-      /* information about production being reduced with */
+-      short handle_size, lhs_sym_num;
+-
+-      /* restart the saved input at the beginning */
+-      lookahead_pos = 0;
+-
+-      if (debug) 
+-	{
+-	  debug_message("# Reparsing saved input with actions");
+-	  debug_message("# Current Symbol is #" + cur_err_token().sym);
+-	  debug_message("# Current state is #" + 
+-			((Symbol)stack.peek()).parse_state);
+-	}
+-
+-      /* continue until we accept or have read all lookahead input */
+-      while(!_done_parsing)
+-	{
+-	  /* current state is always on the top of the stack */
+-
+-	  /* look up action out of the current state with the current input */
+-	  act = 
+-	    get_action(((Symbol)stack.peek()).parse_state, cur_err_token().sym);
+-
+-	  /* decode the action -- > 0 encodes shift */
+-	  if (act > 0)
+-	    {
+-	      /* shift to the encoded state by pushing it on the stack */
+-	      cur_err_token().parse_state = act-1;
+-	      cur_err_token().used_by_parser = true;
+-	      if (debug) debug_shift(cur_err_token());
+-	      stack.push(cur_err_token());
+-	      tos++;
+-
+-	      /* advance to the next Symbol, if there is none, we are done */
+-	      if (!advance_lookahead()) 
+-		{
+-		  if (debug) debug_message("# Completed reparse");
+-
+-		  /* scan next Symbol so we can continue parse */
+-		  // BUGFIX by Chris Harris <ckharris at ucsd.edu>:
+-		  //   correct a one-off error by commenting out
+-		  //   this next line.
+-		  /*cur_token = scan();*/
+-
+-		  /* go back to normal parser */
+-		  return;
+-		}
+-	      
+-	      if (debug) 
+-		debug_message("# Current Symbol is #" + cur_err_token().sym);
+-	    }
+-	  /* if its less than zero, then it encodes a reduce action */
+-	  else if (act < 0)
+-	    {
+-	      /* perform the action for the reduce */
+-	      lhs_sym = do_action((-act)-1, this, stack, tos);
+-
+-	      /* look up information about the production */
+-	      lhs_sym_num = production_tab[(-act)-1][0];
+-	      handle_size = production_tab[(-act)-1][1];
+-
+-	      if (debug) debug_reduce((-act)-1, lhs_sym_num, handle_size);
+-
+-	      /* pop the handle off the stack */
+-	      for (int i = 0; i < handle_size; i++)
+-		{
+-		  stack.pop();
+-		  tos--;
+-		}
+-	      
+-	      /* look up the state to go to from the one popped back to */
+-	      act = get_reduce(((Symbol)stack.peek()).parse_state, lhs_sym_num);
+-
+-	      /* shift to that state */
+-	      lhs_sym.parse_state = act;
+-	      lhs_sym.used_by_parser = true;
+-	      stack.push(lhs_sym);
+-	      tos++;
+-	       
+-	      if (debug) debug_message("# Goto state #" + act);
+-
+-	    }
+-	  /* finally if the entry is zero, we have an error 
+-	     (shouldn't happen here, but...)*/
+-	  else if (act == 0)
+-	    {
+-	      report_fatal_error("Syntax error", lhs_sym);
+-	      return;
+-	    }
+-	}
+-
+-	
+-    }
+-
+-  /*-----------------------------------------------------------*/
+-
+-  /** Utility function: unpacks parse tables from strings */
+-  protected static short[][] unpackFromStrings(String[] sa)
+-    {
+-      // Concatanate initialization strings.
+-      StringBuffer sb = new StringBuffer(sa[0]);
+-      for (int i=1; i<sa.length; i++)
+-	sb.append(sa[i]);
+-      int n=0; // location in initialization string
+-      int size1 = (((int)sb.charAt(n))<<16) | ((int)sb.charAt(n+1)); n+=2;
+-      short[][] result = new short[size1][];
+-      for (int i=0; i<size1; i++) {
+-        int size2 = (((int)sb.charAt(n))<<16) | ((int)sb.charAt(n+1)); n+=2;
+-        result[i] = new short[size2];
+-        for (int j=0; j<size2; j++)
+-          result[i][j] = (short) (sb.charAt(n++)-2);
+-      }
+-      return result;
+-    }
+-}
+-
+diff -Nru remotetea/src/org/acplt/oncrpc/apps/jrpcgen/cup_runtime/Scanner.java remotetea-gil/src/org/acplt/oncrpc/apps/jrpcgen/cup_runtime/Scanner.java
+--- remotetea/src/org/acplt/oncrpc/apps/jrpcgen/cup_runtime/Scanner.java	2005-11-11 21:25:28.000000000 +0100
++++ remotetea-gil/src/org/acplt/oncrpc/apps/jrpcgen/cup_runtime/Scanner.java	1970-01-01 01:00:00.000000000 +0100
+@@ -1,25 +0,0 @@
+-package org.acplt.oncrpc.apps.jrpcgen.cup_runtime;
+-
+-/**
+- * Defines the Scanner interface, which CUP uses in the default
+- * implementation of <code>lr_parser.scan()</code>.  Integration
+- * of scanners implementing <code>Scanner</code> is facilitated.
+- *
+- * @version last updated 23-Jul-1999
+- * @author David MacMahon <davidm at smartsc.com>
+- */
+-
+-/* *************************************************
+-  Interface Scanner
+-  
+-  Declares the next_token() method that should be
+-  implemented by scanners.  This method is typically
+-  called by lr_parser.scan().  End-of-file can be
+-  indicated either by returning
+-  <code>new Symbol(lr_parser.EOF_sym())</code> or
+-  <code>null</code>.
+- ***************************************************/
+-public interface Scanner {
+-    /** Return the next token, or <code>null</code> on end-of-file. */
+-    public Symbol next_token() throws java.lang.Exception;
+-}
+diff -Nru remotetea/src/org/acplt/oncrpc/apps/jrpcgen/cup_runtime/Symbol.java remotetea-gil/src/org/acplt/oncrpc/apps/jrpcgen/cup_runtime/Symbol.java
+--- remotetea/src/org/acplt/oncrpc/apps/jrpcgen/cup_runtime/Symbol.java	2005-11-11 21:25:28.000000000 +0100
++++ remotetea-gil/src/org/acplt/oncrpc/apps/jrpcgen/cup_runtime/Symbol.java	1970-01-01 01:00:00.000000000 +0100
+@@ -1,105 +0,0 @@
+-package org.acplt.oncrpc.apps.jrpcgen.cup_runtime;
+-
+-/**
+- * Defines the Symbol class, which is used to represent all terminals
+- * and nonterminals while parsing.  The lexer should pass CUP Symbols 
+- * and CUP returns a Symbol.
+- *
+- * @version last updated: 7/3/96
+- * @author  Frank Flannery
+- */
+-
+-/* ****************************************************************
+-  Class Symbol
+-  what the parser expects to receive from the lexer. 
+-  the token is identified as follows:
+-  sym:    the symbol type
+-  parse_state: the parse state.
+-  value:  is the lexical value of type Object
+-  left :  is the left position in the original input file
+-  right:  is the right position in the original input file
+-******************************************************************/
+-
+-public class Symbol {
+-
+-/*******************************
+-  Constructor for l,r values
+- *******************************/
+-
+-  public Symbol(int id, int l, int r, Object o) {
+-    this(id);
+-    left = l;
+-    right = r;
+-    value = o;
+-  }
+-
+-/*******************************
+-  Constructor for no l,r values
+-********************************/
+-
+-  public Symbol(int id, Object o) {
+-    this(id, -1, -1, o);
+-  }
+-
+-/*****************************
+-  Constructor for no value
+-  ***************************/
+-
+-  public Symbol(int id, int l, int r) {
+-    this(id, l, r, null);
+-  }
+-
+-/***********************************
+-  Constructor for no value or l,r
+-***********************************/
+-
+-  public Symbol(int sym_num) {
+-    this(sym_num, -1);
+-    left = -1;
+-    right = -1;
+-    value = null;
+-  }
+-
+-/***********************************
+-  Constructor to give a start state
+-***********************************/
+-  Symbol(int sym_num, int state)
+-    {
+-      sym = sym_num;
+-      parse_state = state;
+-    }
+-
+-/*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
+-
+-  /** The symbol number of the terminal or non terminal being represented */
+-  public int sym;
+-
+-  /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
+-
+-  /** The parse state to be recorded on the parse stack with this symbol.
+-   *  This field is for the convenience of the parser and shouldn't be 
+-   *  modified except by the parser. 
+-   */
+-  public int parse_state;
+-  /** This allows us to catch some errors caused by scanners recycling
+-   *  symbols.  For the use of the parser only. [CSA, 23-Jul-1999] */
+-  boolean used_by_parser = false;
+-
+-/*******************************
+-  The data passed to parser
+- *******************************/
+-
+-  public int left, right;
+-  public Object value;
+-
+-  /*****************************
+-    Printing this token out. (Override for pretty-print).
+-    ****************************/
+-  public String toString() { return "#"+sym; }
+-}
+-
+-
+-
+-
+-
+-
+diff -Nru remotetea/src/org/acplt/oncrpc/apps/jrpcgen/cup_runtime/virtual_parse_stack.java remotetea-gil/src/org/acplt/oncrpc/apps/jrpcgen/cup_runtime/virtual_parse_stack.java
+--- remotetea/src/org/acplt/oncrpc/apps/jrpcgen/cup_runtime/virtual_parse_stack.java	2003-08-13 12:03:50.000000000 +0200
++++ remotetea-gil/src/org/acplt/oncrpc/apps/jrpcgen/cup_runtime/virtual_parse_stack.java	1970-01-01 01:00:00.000000000 +0100
+@@ -1,145 +0,0 @@
+-
+-package org.acplt.oncrpc.apps.jrpcgen.cup_runtime;
+-
+-import java.util.Stack;
+-
+-/** This class implements a temporary or "virtual" parse stack that 
+- *  replaces the top portion of the actual parse stack (the part that 
+- *  has been changed by some set of operations) while maintaining its
+- *  original contents.  This data structure is used when the parse needs 
+- *  to "parse ahead" to determine if a given error recovery attempt will 
+- *  allow the parse to continue far enough to consider it successful.  Once 
+- *  success or failure of parse ahead is determined the system then 
+- *  reverts to the original parse stack (which has not actually been 
+- *  modified).  Since parse ahead does not execute actions, only parse
+- *  state is maintained on the virtual stack, not full Symbol objects.
+- *
+- * @see     java_cup.runtime.lr_parser
+- * @version last updated: 7/3/96
+- * @author  Frank Flannery
+- */
+-
+-public class virtual_parse_stack {
+-  /*-----------------------------------------------------------*/
+-  /*--- Constructor(s) ----------------------------------------*/
+-  /*-----------------------------------------------------------*/
+-
+-  /** Constructor to build a virtual stack out of a real stack. */
+-  public virtual_parse_stack(Stack shadowing_stack) throws java.lang.Exception
+-    {
+-      /* sanity check */
+-      if (shadowing_stack == null)
+-	throw new Exception(
+-	  "Internal parser error: attempt to create null virtual stack");
+-
+-      /* set up our internals */
+-      real_stack = shadowing_stack;
+-      vstack     = new Stack();
+-      real_next  = 0;
+-
+-      /* get one element onto the virtual portion of the stack */
+-      get_from_real();
+-    }
+-
+-  /*-----------------------------------------------------------*/
+-  /*--- (Access to) Instance Variables ------------------------*/
+-  /*-----------------------------------------------------------*/
+-       
+-  /** The real stack that we shadow.  This is accessed when we move off
+-   *  the bottom of the virtual portion of the stack, but is always left
+-   *  unmodified.
+-   */
+-  protected Stack real_stack;
+-
+-  /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
+-
+-  /** Top of stack indicator for where we leave off in the real stack.
+-   *  This is measured from top of stack, so 0 would indicate that no
+-   *  elements have been "moved" from the real to virtual stack. 
+-   */
+-  protected int real_next;
+-
+-  /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
+-
+-  /** The virtual top portion of the stack.  This stack contains Integer
+-   *  objects with state numbers.  This stack shadows the top portion
+-   *  of the real stack within the area that has been modified (via operations
+-   *  on the virtual stack).  When this portion of the stack becomes empty we 
+-   *  transfer elements from the underlying stack onto this stack. 
+-   */
+-  protected Stack vstack;
+-
+-  /*-----------------------------------------------------------*/
+-  /*--- General Methods ---------------------------------------*/
+-  /*-----------------------------------------------------------*/
+-
+-  /** Transfer an element from the real to the virtual stack.  This assumes 
+-   *  that the virtual stack is currently empty.  
+-   */
+-  protected void get_from_real()
+-    {
+-      Symbol stack_sym;
+-
+-      /* don't transfer if the real stack is empty */
+-      if (real_next >= real_stack.size()) return;
+-
+-      /* get a copy of the first Symbol we have not transfered */
+-      stack_sym = (Symbol)real_stack.elementAt(real_stack.size()-1-real_next);
+-
+-      /* record the transfer */
+-      real_next++;
+-
+-      /* put the state number from the Symbol onto the virtual stack */
+-      vstack.push(new Integer(stack_sym.parse_state));
+-    }
+-
+-  /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
+-
+-  /** Indicate whether the stack is empty. */
+-  public boolean empty()
+-    {
+-      /* if vstack is empty then we were unable to transfer onto it and 
+-	 the whole thing is empty. */
+-      return vstack.empty();
+-    }
+-
+-  /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
+-      
+-  /** Return value on the top of the stack (without popping it). */
+-  public int top() throws java.lang.Exception
+-    {
+-      if (vstack.empty())
+-	throw new Exception(
+-		  "Internal parser error: top() called on empty virtual stack");
+-
+-      return ((Integer)vstack.peek()).intValue();
+-    }
+-
+-  /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
+-
+-  /** Pop the stack. */
+-  public void pop() throws java.lang.Exception
+-    {
+-      if (vstack.empty())
+-	throw new Exception(
+-		  "Internal parser error: pop from empty virtual stack");
+-
+-      /* pop it */
+-      vstack.pop();
+-
+-      /* if we are now empty transfer an element (if there is one) */
+-      if (vstack.empty())
+-        get_from_real();
+-    }
+-
+-  /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
+-
+-  /** Push a state number onto the stack. */
+-  public void push(int state_num)
+-    {
+-      vstack.push(new Integer(state_num));
+-    }
+-
+-  /*-----------------------------------------------------------*/
+-
+-}
+diff -Nru remotetea/src/org/acplt/oncrpc/apps/jrpcgen/jrpcgen.java remotetea-gil/src/org/acplt/oncrpc/apps/jrpcgen/jrpcgen.java
+--- remotetea/src/org/acplt/oncrpc/apps/jrpcgen/jrpcgen.java	2007-05-29 19:38:30.000000000 +0200
++++ remotetea-gil/src/org/acplt/oncrpc/apps/jrpcgen/jrpcgen.java	2013-12-10 21:31:07.962291787 +0100
+@@ -29,7 +29,7 @@
+ 
+ package org.acplt.oncrpc.apps.jrpcgen;
+ 
+-import org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol;
++import java_cup.runtime.Symbol;
+ 
+ import java.io.*;
+ import java.util.Hashtable;
+diff -Nru remotetea/src/org/acplt/oncrpc/apps/jrpcgen/JrpcgenParser.cup remotetea-gil/src/org/acplt/oncrpc/apps/jrpcgen/JrpcgenParser.cup
+--- remotetea/src/org/acplt/oncrpc/apps/jrpcgen/JrpcgenParser.cup	2005-11-11 21:29:44.000000000 +0100
++++ remotetea-gil/src/org/acplt/oncrpc/apps/jrpcgen/JrpcgenParser.cup	2013-12-10 21:31:07.980290722 +0100
+@@ -25,13 +25,13 @@
+ /*
+  * To compile into java code use:
+  *   java java_cup.Main -interface \
+- *     -runtime org.acplt.oncrpc.apps.jrpcgen.cup_runtime \
++ *     -runtime java_cup.runtime \
+  *     -symbols JrpcgenSymbols -parser JrpcgenParser < JrpcgenParser.cup
+  */
+ 
+ package org.acplt.oncrpc.apps.jrpcgen;
+ 
+-import org.acplt.oncrpc.apps.jrpcgen.cup_runtime.*;
++import java_cup.runtime.*;
+ import java.util.Vector;
+ 
+ //
+diff -Nru remotetea/src/org/acplt/oncrpc/apps/jrpcgen/JrpcgenParser.java remotetea-gil/src/org/acplt/oncrpc/apps/jrpcgen/JrpcgenParser.java
+--- remotetea/src/org/acplt/oncrpc/apps/jrpcgen/JrpcgenParser.java	2005-11-11 21:30:56.000000000 +0100
++++ remotetea-gil/src/org/acplt/oncrpc/apps/jrpcgen/JrpcgenParser.java	2013-12-10 21:31:07.984290486 +0100
+@@ -6,19 +6,19 @@
+ 
+ package org.acplt.oncrpc.apps.jrpcgen;
+ 
+-import org.acplt.oncrpc.apps.jrpcgen.cup_runtime.*;
++import java_cup.runtime.*;
+ import java.util.Vector;
+ 
+ /** CUP v0.10k TUM Edition 20050516 generated parser.
+   * @version Fri Nov 11 20:53:50 CET 2005
+   */
+-public class JrpcgenParser extends org.acplt.oncrpc.apps.jrpcgen.cup_runtime.lr_parser {
++public class JrpcgenParser extends java_cup.runtime.lr_parser {
+ 
+   /** Default constructor. */
+   public JrpcgenParser() {super();}
+ 
+   /** Constructor which sets the default scanner. */
+-  public JrpcgenParser(org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Scanner s) {super(s);}
++  public JrpcgenParser(java_cup.runtime.Scanner s) {super(s);}
+ 
+   /** Production table. */
+   protected static final short _production_table[][] = 
+@@ -282,9 +282,9 @@
+     }
+ 
+   /** Invoke a user supplied parse action. */
+-  public org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol do_action(
++  public java_cup.runtime.Symbol do_action(
+     int                        act_num,
+-    org.acplt.oncrpc.apps.jrpcgen.cup_runtime.lr_parser parser,
++    java_cup.runtime.lr_parser parser,
+     java.util.Stack            stack,
+     int                        top)
+     throws java.lang.Exception
+@@ -354,15 +354,15 @@
+   }
+ 
+   /** Method with the actual generated action code. */
+-  public final org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol CUP$JrpcgenParser$do_action(
++  public final java_cup.runtime.Symbol CUP$JrpcgenParser$do_action(
+     int                        CUP$JrpcgenParser$act_num,
+-    org.acplt.oncrpc.apps.jrpcgen.cup_runtime.lr_parser CUP$JrpcgenParser$parser,
++    java_cup.runtime.lr_parser CUP$JrpcgenParser$parser,
+     java.util.Stack            CUP$JrpcgenParser$stack,
+     int                        CUP$JrpcgenParser$top)
+     throws java.lang.Exception
+     {
+       /* Symbol object for return from actions */
+-	  org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol CUP$JrpcgenParser$result;
++	  java_cup.runtime.Symbol CUP$JrpcgenParser$result;
+ 
+       /* select the action based on the action number */
+       switch (CUP$JrpcgenParser$act_num)
+@@ -371,11 +371,11 @@
+           case 79: // value ::= IDENTIFIER 
+             {
+               String RESULT = null;
+-		int idleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left;
+-		int idright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right;
+-		String id = (String)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).value;
++		int idleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left;
++		int idright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right;
++		String id = (String)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).value;
+ 		 RESULT = id; 
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(29/*value*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(29/*value*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -383,11 +383,11 @@
+           case 78: // value ::= INTEGER_LITERAL 
+             {
+               String RESULT = null;
+-		int litleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left;
+-		int litright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right;
+-		String lit = (String)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).value;
++		int litleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left;
++		int litright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right;
++		String lit = (String)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).value;
+ 		 RESULT = lit; 
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(29/*value*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(29/*value*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -396,7 +396,7 @@
+             {
+               String RESULT = null;
+ 		 RESULT = "long"; 
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(28/*int_types*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(28/*int_types*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -405,7 +405,7 @@
+             {
+               String RESULT = null;
+ 		 RESULT = "long"; 
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(28/*int_types*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(28/*int_types*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -414,7 +414,7 @@
+             {
+               String RESULT = null;
+ 		 RESULT = "int"; 
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(28/*int_types*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(28/*int_types*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -423,7 +423,7 @@
+             {
+               String RESULT = null;
+ 		 RESULT = "int"; 
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(28/*int_types*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(28/*int_types*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -432,7 +432,7 @@
+             {
+               String RESULT = null;
+ 		 RESULT = "int"; 
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(28/*int_types*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(28/*int_types*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -441,7 +441,7 @@
+             {
+               String RESULT = null;
+ 		 RESULT = "byte"; 
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(28/*int_types*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(28/*int_types*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -450,7 +450,7 @@
+             {
+               String RESULT = null;
+ 		 RESULT = "short"; 
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(28/*int_types*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(28/*int_types*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -459,7 +459,7 @@
+             {
+               String RESULT = null;
+ 		 RESULT = "short"; 
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(28/*int_types*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(28/*int_types*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -470,7 +470,7 @@
+ 		
+                 RESULT = new JrpcgenDeclaration(null, "void");
+             
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(27/*declaration*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(27/*declaration*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -478,17 +478,17 @@
+           case 68: // declaration ::= type_specifier STAR IDENTIFIER 
+             {
+               JrpcgenDeclaration RESULT = null;
+-		int typeleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).left;
+-		int typeright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).right;
+-		String type = (String)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).value;
+-		int idleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left;
+-		int idright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right;
+-		String id = (String)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).value;
++		int typeleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).left;
++		int typeright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).right;
++		String type = (String)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).value;
++		int idleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left;
++		int idright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right;
++		String id = (String)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).value;
+ 		
+                 RESULT = new JrpcgenDeclaration(
+                     id, type, JrpcgenDeclaration.INDIRECTION, null);
+             
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(27/*declaration*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(27/*declaration*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -496,17 +496,17 @@
+           case 67: // declaration ::= type_specifier IDENTIFIER LANGLE RANGLE 
+             {
+               JrpcgenDeclaration RESULT = null;
+-		int typeleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-3)).left;
+-		int typeright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-3)).right;
+-		String type = (String)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-3)).value;
+-		int idleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).left;
+-		int idright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).right;
+-		String id = (String)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).value;
++		int typeleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-3)).left;
++		int typeright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-3)).right;
++		String type = (String)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-3)).value;
++		int idleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).left;
++		int idright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).right;
++		String id = (String)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).value;
+ 		
+                 RESULT = new JrpcgenDeclaration(
+                     id, type, JrpcgenDeclaration.DYNAMICVECTOR, null);
+             
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(27/*declaration*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-3)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(27/*declaration*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-3)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -514,20 +514,20 @@
+           case 66: // declaration ::= type_specifier IDENTIFIER LANGLE value RANGLE 
+             {
+               JrpcgenDeclaration RESULT = null;
+-		int typeleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-4)).left;
+-		int typeright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-4)).right;
+-		String type = (String)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-4)).value;
+-		int idleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-3)).left;
+-		int idright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-3)).right;
+-		String id = (String)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-3)).value;
+-		int sizeleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left;
+-		int sizeright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).right;
+-		String size = (String)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).value;
++		int typeleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-4)).left;
++		int typeright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-4)).right;
++		String type = (String)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-4)).value;
++		int idleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-3)).left;
++		int idright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-3)).right;
++		String id = (String)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-3)).value;
++		int sizeleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left;
++		int sizeright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).right;
++		String size = (String)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).value;
+ 		
+                 RESULT = new JrpcgenDeclaration(
+                     id, type, JrpcgenDeclaration.DYNAMICVECTOR, size);
+             
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(27/*declaration*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-4)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(27/*declaration*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-4)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -535,20 +535,20 @@
+           case 65: // declaration ::= type_specifier IDENTIFIER LBRACKET value RBRACKET 
+             {
+               JrpcgenDeclaration RESULT = null;
+-		int typeleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-4)).left;
+-		int typeright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-4)).right;
+-		String type = (String)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-4)).value;
+-		int idleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-3)).left;
+-		int idright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-3)).right;
+-		String id = (String)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-3)).value;
+-		int sizeleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left;
+-		int sizeright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).right;
+-		String size = (String)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).value;
++		int typeleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-4)).left;
++		int typeright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-4)).right;
++		String type = (String)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-4)).value;
++		int idleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-3)).left;
++		int idright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-3)).right;
++		String id = (String)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-3)).value;
++		int sizeleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left;
++		int sizeright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).right;
++		String size = (String)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).value;
+ 		
+                RESULT = new JrpcgenDeclaration(
+                    id, type, JrpcgenDeclaration.FIXEDVECTOR, size);
+             
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(27/*declaration*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-4)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(27/*declaration*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-4)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -556,16 +556,16 @@
+           case 64: // declaration ::= type_specifier IDENTIFIER 
+             {
+               JrpcgenDeclaration RESULT = null;
+-		int typeleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left;
+-		int typeright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).right;
+-		String type = (String)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).value;
+-		int idleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left;
+-		int idright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right;
+-		String id = (String)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).value;
++		int typeleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left;
++		int typeright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).right;
++		String type = (String)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).value;
++		int idleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left;
++		int idright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right;
++		String id = (String)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).value;
+ 		
+                RESULT = new JrpcgenDeclaration(id, type);
+             
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(27/*declaration*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(27/*declaration*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -573,14 +573,14 @@
+           case 63: // declaration ::= STRING IDENTIFIER LANGLE RANGLE 
+             {
+               JrpcgenDeclaration RESULT = null;
+-		int idleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).left;
+-		int idright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).right;
+-		String id = (String)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).value;
++		int idleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).left;
++		int idright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).right;
++		String id = (String)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).value;
+ 		
+                 RESULT = new JrpcgenDeclaration(
+                     id, "String", JrpcgenDeclaration.DYNAMICVECTOR, null);
+             
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(27/*declaration*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-3)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(27/*declaration*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-3)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -588,17 +588,17 @@
+           case 62: // declaration ::= STRING IDENTIFIER LANGLE value RANGLE 
+             {
+               JrpcgenDeclaration RESULT = null;
+-		int idleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-3)).left;
+-		int idright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-3)).right;
+-		String id = (String)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-3)).value;
+-		int sizeleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left;
+-		int sizeright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).right;
+-		String size = (String)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).value;
++		int idleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-3)).left;
++		int idright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-3)).right;
++		String id = (String)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-3)).value;
++		int sizeleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left;
++		int sizeright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).right;
++		String size = (String)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).value;
+ 		
+                 RESULT = new JrpcgenDeclaration(
+                     id, "String", JrpcgenDeclaration.DYNAMICVECTOR, size);
+             
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(27/*declaration*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-4)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(27/*declaration*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-4)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -606,16 +606,16 @@
+           case 61: // declaration ::= OPAQUE IDENTIFIER LANGLE RANGLE 
+             {
+               JrpcgenDeclaration RESULT = null;
+-		int idleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).left;
+-		int idright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).right;
+-		String id = (String)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).value;
++		int idleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).left;
++		int idright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).right;
++		String id = (String)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).value;
+ 		
+                 // Note: we use the pseudo-type "opaque" here to distinguish
+                 // real byte arrays from fake byte (char) arrays.
+                 RESULT = new JrpcgenDeclaration(
+                     id, "opaque", JrpcgenDeclaration.DYNAMICVECTOR, null);
+             
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(27/*declaration*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-3)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(27/*declaration*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-3)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -623,19 +623,19 @@
+           case 60: // declaration ::= OPAQUE IDENTIFIER LANGLE value RANGLE 
+             {
+               JrpcgenDeclaration RESULT = null;
+-		int idleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-3)).left;
+-		int idright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-3)).right;
+-		String id = (String)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-3)).value;
+-		int sizeleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left;
+-		int sizeright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).right;
+-		String size = (String)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).value;
++		int idleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-3)).left;
++		int idright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-3)).right;
++		String id = (String)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-3)).value;
++		int sizeleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left;
++		int sizeright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).right;
++		String size = (String)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).value;
+ 		
+                 // Note: we use the pseudo-type "opaque" here to distinguish
+                 // real byte arrays from fake byte (char) arrays.
+                 RESULT = new JrpcgenDeclaration(
+                     id, "opaque", JrpcgenDeclaration.DYNAMICVECTOR, size);
+             
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(27/*declaration*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-4)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(27/*declaration*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-4)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -643,19 +643,19 @@
+           case 59: // declaration ::= OPAQUE IDENTIFIER LBRACKET value RBRACKET 
+             {
+               JrpcgenDeclaration RESULT = null;
+-		int idleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-3)).left;
+-		int idright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-3)).right;
+-		String id = (String)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-3)).value;
+-		int sizeleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left;
+-		int sizeright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).right;
+-		String size = (String)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).value;
++		int idleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-3)).left;
++		int idright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-3)).right;
++		String id = (String)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-3)).value;
++		int sizeleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left;
++		int sizeright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).right;
++		String size = (String)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).value;
+ 		
+                 // Note: we use the pseudo-type "opaque" here to distinguish
+                 // real byte arrays from fake byte (char) arrays.
+                 RESULT = new JrpcgenDeclaration(
+                     id, "opaque", JrpcgenDeclaration.FIXEDVECTOR, size);
+             
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(27/*declaration*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-4)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(27/*declaration*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-4)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -663,17 +663,17 @@
+           case 58: // declarations ::= declarations declaration SEMICOLON 
+             {
+               Vector RESULT = null;
+-		int declsleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).left;
+-		int declsright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).right;
+-		Vector decls = (Vector)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).value;
+-		int declleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left;
+-		int declright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).right;
+-		JrpcgenDeclaration decl = (JrpcgenDeclaration)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).value;
++		int declsleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).left;
++		int declsright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).right;
++		Vector decls = (Vector)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).value;
++		int declleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left;
++		int declright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).right;
++		JrpcgenDeclaration decl = (JrpcgenDeclaration)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).value;
+ 		
+                decls.addElement(decl);
+                RESULT = decls;
+             
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(26/*declarations*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(26/*declarations*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -681,14 +681,14 @@
+           case 57: // declarations ::= declaration SEMICOLON 
+             {
+               Vector RESULT = null;
+-		int declleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left;
+-		int declright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).right;
+-		JrpcgenDeclaration decl = (JrpcgenDeclaration)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).value;
++		int declleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left;
++		int declright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).right;
++		JrpcgenDeclaration decl = (JrpcgenDeclaration)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).value;
+ 		
+                RESULT = new Vector();
+                RESULT.addElement(decl);
+             
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(26/*declarations*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(26/*declarations*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -696,11 +696,11 @@
+           case 56: // type_specifier ::= UNION IDENTIFIER 
+             {
+               String RESULT = null;
+-		int idleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left;
+-		int idright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right;
+-		String id = (String)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).value;
++		int idleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left;
++		int idright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right;
++		String id = (String)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).value;
+ 		 RESULT = id; 
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(25/*type_specifier*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(25/*type_specifier*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -708,11 +708,11 @@
+           case 55: // type_specifier ::= STRUCT IDENTIFIER 
+             {
+               String RESULT = null;
+-		int idleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left;
+-		int idright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right;
+-		String id = (String)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).value;
++		int idleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left;
++		int idright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right;
++		String id = (String)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).value;
+ 		 RESULT = id; 
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(25/*type_specifier*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(25/*type_specifier*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -720,11 +720,11 @@
+           case 54: // type_specifier ::= ENUM IDENTIFIER 
+             {
+               String RESULT = null;
+-		int idleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left;
+-		int idright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right;
+-		String id = (String)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).value;
++		int idleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left;
++		int idright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right;
++		String id = (String)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).value;
+ 		 RESULT = id; 
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(25/*type_specifier*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(25/*type_specifier*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -733,7 +733,7 @@
+             {
+               String RESULT = null;
+ 		 RESULT = "double"; 
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(25/*type_specifier*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(25/*type_specifier*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -742,7 +742,7 @@
+             {
+               String RESULT = null;
+ 		 RESULT = "double"; 
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(25/*type_specifier*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(25/*type_specifier*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -751,7 +751,7 @@
+             {
+               String RESULT = null;
+ 		 RESULT = "float"; 
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(25/*type_specifier*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(25/*type_specifier*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -760,7 +760,7 @@
+             {
+               String RESULT = null;
+ 		 RESULT = "int"; 
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(25/*type_specifier*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(25/*type_specifier*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -768,11 +768,11 @@
+           case 49: // type_specifier ::= int_types 
+             {
+               String RESULT = null;
+-		int typeleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left;
+-		int typeright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right;
+-		String type = (String)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).value;
++		int typeleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left;
++		int typeright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right;
++		String type = (String)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).value;
+ 		 RESULT = type; 
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(25/*type_specifier*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(25/*type_specifier*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -780,11 +780,11 @@
+           case 48: // type_specifier ::= UNSIGNED int_types 
+             {
+               String RESULT = null;
+-		int typeleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left;
+-		int typeright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right;
+-		String type = (String)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).value;
++		int typeleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left;
++		int typeright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right;
++		String type = (String)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).value;
+ 		 RESULT = type; 
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(25/*type_specifier*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(25/*type_specifier*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -793,7 +793,7 @@
+             {
+               String RESULT = null;
+ 		 RESULT = "boolean"; 
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(25/*type_specifier*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(25/*type_specifier*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -801,11 +801,11 @@
+           case 46: // type_specifier ::= IDENTIFIER 
+             {
+               String RESULT = null;
+-		int idleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left;
+-		int idright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right;
+-		String id = (String)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).value;
++		int idleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left;
++		int idright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right;
++		String id = (String)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).value;
+ 		 RESULT = id; 
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(25/*type_specifier*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(25/*type_specifier*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -813,11 +813,11 @@
+           case 45: // type_specifier_incl_string ::= type_specifier 
+             {
+               String RESULT = null;
+-		int typeleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left;
+-		int typeright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right;
+-		String type = (String)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).value;
++		int typeleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left;
++		int typeright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right;
++		String type = (String)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).value;
+ 		 RESULT = type; 
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(24/*type_specifier_incl_string*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(24/*type_specifier_incl_string*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -826,7 +826,7 @@
+             {
+               String RESULT = null;
+ 		 RESULT = "String"; 
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(24/*type_specifier_incl_string*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(24/*type_specifier_incl_string*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -834,11 +834,11 @@
+           case 43: // type_specifier_incl_specials ::= type_specifier_incl_string 
+             {
+               String RESULT = null;
+-		int typeleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left;
+-		int typeright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right;
+-		String type = (String)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).value;
++		int typeleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left;
++		int typeright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right;
++		String type = (String)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).value;
+ 		 RESULT = type; 
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(23/*type_specifier_incl_specials*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(23/*type_specifier_incl_specials*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -847,7 +847,7 @@
+             {
+               String RESULT = null;
+ 		 RESULT = "void"; 
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(23/*type_specifier_incl_specials*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(23/*type_specifier_incl_specials*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -855,20 +855,20 @@
+           case 41: // argument_list_no_void ::= argument_list COMMA type_specifier_incl_string IDENTIFIER 
+             {
+               Vector RESULT = null;
+-		int argsleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-3)).left;
+-		int argsright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-3)).right;
+-		Vector args = (Vector)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-3)).value;
+-		int paramTypeleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left;
+-		int paramTyperight = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).right;
+-		String paramType = (String)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).value;
+-		int paramNameleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left;
+-		int paramNameright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right;
+-		String paramName = (String)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).value;
++		int argsleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-3)).left;
++		int argsright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-3)).right;
++		Vector args = (Vector)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-3)).value;
++		int paramTypeleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left;
++		int paramTyperight = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).right;
++		String paramType = (String)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).value;
++		int paramNameleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left;
++		int paramNameright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right;
++		String paramName = (String)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).value;
+ 		
+                RESULT = args;
+                RESULT.addElement(new JrpcgenParamInfo(paramType, paramName));
+             
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(22/*argument_list_no_void*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-3)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(22/*argument_list_no_void*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-3)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -876,17 +876,17 @@
+           case 40: // argument_list_no_void ::= argument_list COMMA type_specifier_incl_string 
+             {
+               Vector RESULT = null;
+-		int argsleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).left;
+-		int argsright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).right;
+-		Vector args = (Vector)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).value;
+-		int paramTypeleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left;
+-		int paramTyperight = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right;
+-		String paramType = (String)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).value;
++		int argsleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).left;
++		int argsright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).right;
++		Vector args = (Vector)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).value;
++		int paramTypeleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left;
++		int paramTyperight = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right;
++		String paramType = (String)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).value;
+ 		
+                RESULT = args;
+                RESULT.addElement(new JrpcgenParamInfo(paramType, null));
+             
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(22/*argument_list_no_void*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(22/*argument_list_no_void*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -894,17 +894,17 @@
+           case 39: // argument_list_no_void ::= type_specifier_incl_string IDENTIFIER 
+             {
+               Vector RESULT = null;
+-		int paramTypeleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left;
+-		int paramTyperight = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).right;
+-		String paramType = (String)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).value;
+-		int paramNameleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left;
+-		int paramNameright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right;
+-		String paramName = (String)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).value;
++		int paramTypeleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left;
++		int paramTyperight = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).right;
++		String paramType = (String)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).value;
++		int paramNameleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left;
++		int paramNameright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right;
++		String paramName = (String)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).value;
+ 		
+                RESULT = new Vector();
+                RESULT.addElement(new JrpcgenParamInfo(paramType, paramName));
+             
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(22/*argument_list_no_void*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(22/*argument_list_no_void*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -912,14 +912,14 @@
+           case 38: // argument_list_no_void ::= type_specifier_incl_string 
+             {
+               Vector RESULT = null;
+-		int paramTypeleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left;
+-		int paramTyperight = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right;
+-		String paramType = (String)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).value;
++		int paramTypeleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left;
++		int paramTyperight = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right;
++		String paramType = (String)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).value;
+ 		
+                RESULT = new Vector();
+                RESULT.addElement(new JrpcgenParamInfo(paramType, null));
+             
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(22/*argument_list_no_void*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(22/*argument_list_no_void*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -927,9 +927,9 @@
+           case 37: // argument_list ::= argument_list_no_void 
+             {
+               Vector RESULT = null;
+-		int argsleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left;
+-		int argsright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right;
+-		Vector args = (Vector)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).value;
++		int argsleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left;
++		int argsright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right;
++		Vector args = (Vector)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).value;
+ 		
+                RESULT = args; // just pass through
+                int size = RESULT.size();
+@@ -945,7 +945,7 @@
+                    }
+                }
+             
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(21/*argument_list*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(21/*argument_list*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -956,7 +956,7 @@
+ 		
+                RESULT = null; // special case, allows fast tests
+             
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(21/*argument_list*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(21/*argument_list*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -964,18 +964,18 @@
+           case 35: // procedure_def ::= type_specifier_incl_specials IDENTIFIER LPAREN argument_list RPAREN EQUAL value SEMICOLON 
+             {
+               JrpcgenProcedureInfo RESULT = null;
+-		int resultTypeleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-7)).left;
+-		int resultTyperight = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-7)).right;
+-		String resultType = (String)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-7)).value;
+-		int procIdleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-6)).left;
+-		int procIdright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-6)).right;
+-		String procId = (String)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-6)).value;
+-		int argsleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-4)).left;
+-		int argsright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-4)).right;
+-		Vector args = (Vector)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-4)).value;
+-		int procNumberleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left;
+-		int procNumberright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).right;
+-		String procNumber = (String)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).value;
++		int resultTypeleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-7)).left;
++		int resultTyperight = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-7)).right;
++		String resultType = (String)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-7)).value;
++		int procIdleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-6)).left;
++		int procIdright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-6)).right;
++		String procId = (String)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-6)).value;
++		int argsleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-4)).left;
++		int argsright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-4)).right;
++		Vector args = (Vector)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-4)).value;
++		int procNumberleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left;
++		int procNumberright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).right;
++		String procNumber = (String)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).value;
+ 		
+                RESULT = new JrpcgenProcedureInfo(procId, procNumber, resultType, args);
+                //
+@@ -985,7 +985,7 @@
+                // version definition was parsed in toto.
+                //
+             
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(20/*procedure_def*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-7)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(20/*procedure_def*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-7)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -993,17 +993,17 @@
+           case 34: // procedure_defs ::= procedure_defs procedure_def 
+             {
+               Vector RESULT = null;
+-		int procsleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left;
+-		int procsright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).right;
+-		Vector procs = (Vector)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).value;
+-		int procleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left;
+-		int procright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right;
+-		JrpcgenProcedureInfo proc = (JrpcgenProcedureInfo)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).value;
++		int procsleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left;
++		int procsright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).right;
++		Vector procs = (Vector)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).value;
++		int procleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left;
++		int procright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right;
++		JrpcgenProcedureInfo proc = (JrpcgenProcedureInfo)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).value;
+ 		
+                 procs.addElement(proc);
+                 RESULT = procs;
+             
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(19/*procedure_defs*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(19/*procedure_defs*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -1011,14 +1011,14 @@
+           case 33: // procedure_defs ::= procedure_def 
+             {
+               Vector RESULT = null;
+-		int procleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left;
+-		int procright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right;
+-		JrpcgenProcedureInfo proc = (JrpcgenProcedureInfo)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).value;
++		int procleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left;
++		int procright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right;
++		JrpcgenProcedureInfo proc = (JrpcgenProcedureInfo)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).value;
+ 		
+                 RESULT = new Vector();
+                 RESULT.addElement(proc);
+             
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(19/*procedure_defs*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(19/*procedure_defs*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -1026,15 +1026,15 @@
+           case 32: // version_def ::= VERSION IDENTIFIER LBRACE procedure_defs RBRACE EQUAL value SEMICOLON 
+             {
+               JrpcgenVersionInfo RESULT = null;
+-		int versIdleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-6)).left;
+-		int versIdright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-6)).right;
+-		String versId = (String)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-6)).value;
+-		int procsleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-4)).left;
+-		int procsright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-4)).right;
+-		Vector procs = (Vector)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-4)).value;
+-		int versNumberleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left;
+-		int versNumberright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).right;
+-		String versNumber = (String)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).value;
++		int versIdleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-6)).left;
++		int versIdright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-6)).right;
++		String versId = (String)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-6)).value;
++		int procsleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-4)).left;
++		int procsright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-4)).right;
++		Vector procs = (Vector)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-4)).value;
++		int versNumberleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left;
++		int versNumberright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).right;
++		String versNumber = (String)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).value;
+ 		
+                JrpcgenConst vers = new JrpcgenConst(versId, versNumber, jrpcgen.baseClassname);
+                RESULT = new JrpcgenVersionInfo(versId, versNumber, procs);
+@@ -1091,7 +1091,7 @@
+                    }
+                }
+             
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(18/*version_def*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-7)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(18/*version_def*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-7)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -1099,17 +1099,17 @@
+           case 31: // version_defs ::= version_defs version_def 
+             {
+               Vector RESULT = null;
+-		int versionsleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left;
+-		int versionsright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).right;
+-		Vector versions = (Vector)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).value;
+-		int versionleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left;
+-		int versionright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right;
+-		JrpcgenVersionInfo version = (JrpcgenVersionInfo)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).value;
++		int versionsleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left;
++		int versionsright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).right;
++		Vector versions = (Vector)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).value;
++		int versionleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left;
++		int versionright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right;
++		JrpcgenVersionInfo version = (JrpcgenVersionInfo)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).value;
+ 		
+                 versions.addElement(version);
+                 RESULT = versions;
+             
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(17/*version_defs*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(17/*version_defs*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -1117,14 +1117,14 @@
+           case 30: // version_defs ::= version_def 
+             {
+               Vector RESULT = null;
+-		int versionleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left;
+-		int versionright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right;
+-		JrpcgenVersionInfo version = (JrpcgenVersionInfo)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).value;
++		int versionleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left;
++		int versionright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right;
++		JrpcgenVersionInfo version = (JrpcgenVersionInfo)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).value;
+ 		
+                 RESULT = new Vector();
+                 RESULT.addElement(version);
+             
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(17/*version_defs*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(17/*version_defs*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -1132,15 +1132,15 @@
+           case 29: // program_def ::= PROGRAM IDENTIFIER LBRACE version_defs RBRACE EQUAL value SEMICOLON 
+             {
+               JrpcgenProgramInfo RESULT = null;
+-		int progIdleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-6)).left;
+-		int progIdright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-6)).right;
+-		String progId = (String)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-6)).value;
+-		int versionsleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-4)).left;
+-		int versionsright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-4)).right;
+-		Vector versions = (Vector)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-4)).value;
+-		int progNumberleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left;
+-		int progNumberright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).right;
+-		String progNumber = (String)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).value;
++		int progIdleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-6)).left;
++		int progIdright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-6)).right;
++		String progId = (String)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-6)).value;
++		int versionsleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-4)).left;
++		int versionsright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-4)).right;
++		Vector versions = (Vector)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-4)).value;
++		int progNumberleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left;
++		int progNumberright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).right;
++		String progNumber = (String)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).value;
+ 		
+                JrpcgenConst prog = new JrpcgenConst(progId, progNumber, jrpcgen.baseClassname);
+                RESULT = new JrpcgenProgramInfo(progId, progNumber, versions);
+@@ -1151,7 +1151,7 @@
+                    System.out.println("PROGRAM " + progId + " = " + progNumber);
+                }
+             
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(16/*program_def*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-7)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(16/*program_def*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-7)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -1159,9 +1159,9 @@
+           case 28: // typedef_def ::= TYPEDEF declaration SEMICOLON 
+             {
+               Object RESULT = null;
+-		int declleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left;
+-		int declright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).right;
+-		JrpcgenDeclaration decl = (JrpcgenDeclaration)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).value;
++		int declleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left;
++		int declright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).right;
++		JrpcgenDeclaration decl = (JrpcgenDeclaration)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).value;
+ 		
+                if ( jrpcgen.globalIdentifiers.put(decl.identifier, decl) != null ) {
+                    parser.report_error("typedef identifier \"" + decl.identifier + "\" already defined", declleft);
+@@ -1171,7 +1171,7 @@
+                    decl.dump();
+                }
+             
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(13/*typedef_def*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(13/*typedef_def*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -1179,13 +1179,13 @@
+           case 27: // union_case ::= DEFAULT COLON declaration SEMICOLON 
+             {
+               JrpcgenUnionArm RESULT = null;
+-		int elementleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left;
+-		int elementright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).right;
+-		JrpcgenDeclaration element = (JrpcgenDeclaration)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).value;
++		int elementleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left;
++		int elementright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).right;
++		JrpcgenDeclaration element = (JrpcgenDeclaration)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).value;
+ 		
+                RESULT = new JrpcgenUnionArm(null, element);
+             
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(12/*union_case*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-3)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(12/*union_case*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-3)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -1193,16 +1193,16 @@
+           case 26: // union_case ::= CASE value COLON declaration SEMICOLON 
+             {
+               JrpcgenUnionArm RESULT = null;
+-		int valleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-3)).left;
+-		int valright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-3)).right;
+-		String val = (String)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-3)).value;
+-		int elementleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left;
+-		int elementright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).right;
+-		JrpcgenDeclaration element = (JrpcgenDeclaration)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).value;
++		int valleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-3)).left;
++		int valright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-3)).right;
++		String val = (String)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-3)).value;
++		int elementleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left;
++		int elementright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).right;
++		JrpcgenDeclaration element = (JrpcgenDeclaration)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).value;
+ 		
+                RESULT = new JrpcgenUnionArm(val, element);
+             
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(12/*union_case*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-4)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(12/*union_case*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-4)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -1210,13 +1210,13 @@
+           case 25: // union_case ::= CASE value COLON 
+             {
+               JrpcgenUnionArm RESULT = null;
+-		int valleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left;
+-		int valright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).right;
+-		String val = (String)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).value;
++		int valleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left;
++		int valright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).right;
++		String val = (String)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).value;
+ 		
+                RESULT = new JrpcgenUnionArm(val, null);
+             
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(12/*union_case*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(12/*union_case*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -1224,17 +1224,17 @@
+           case 24: // union_cases ::= union_cases union_case 
+             {
+               Vector RESULT = null;
+-		int armsleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left;
+-		int armsright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).right;
+-		Vector arms = (Vector)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).value;
+-		int armleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left;
+-		int armright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right;
+-		JrpcgenUnionArm arm = (JrpcgenUnionArm)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).value;
++		int armsleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left;
++		int armsright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).right;
++		Vector arms = (Vector)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).value;
++		int armleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left;
++		int armright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right;
++		JrpcgenUnionArm arm = (JrpcgenUnionArm)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).value;
+ 		
+                 arms.addElement(arm);
+                 RESULT = arms;
+             
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(11/*union_cases*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(11/*union_cases*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -1242,14 +1242,14 @@
+           case 23: // union_cases ::= union_case 
+             {
+               Vector RESULT = null;
+-		int armleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left;
+-		int armright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right;
+-		JrpcgenUnionArm arm = (JrpcgenUnionArm)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).value;
++		int armleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left;
++		int armright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right;
++		JrpcgenUnionArm arm = (JrpcgenUnionArm)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).value;
+ 		
+                 RESULT = new Vector();
+                 RESULT.addElement(arm);
+             
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(11/*union_cases*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(11/*union_cases*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -1257,15 +1257,15 @@
+           case 22: // union_def ::= UNION IDENTIFIER SWITCH LPAREN declaration RPAREN LBRACE union_cases RBRACE SEMICOLON 
+             {
+               Object RESULT = null;
+-		int idleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-8)).left;
+-		int idright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-8)).right;
+-		String id = (String)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-8)).value;
+-		int descrimleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-5)).left;
+-		int descrimright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-5)).right;
+-		JrpcgenDeclaration descrim = (JrpcgenDeclaration)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-5)).value;
+-		int elementsleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).left;
+-		int elementsright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).right;
+-		Vector elements = (Vector)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).value;
++		int idleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-8)).left;
++		int idright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-8)).right;
++		String id = (String)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-8)).value;
++		int descrimleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-5)).left;
++		int descrimright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-5)).right;
++		JrpcgenDeclaration descrim = (JrpcgenDeclaration)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-5)).value;
++		int elementsleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).left;
++		int elementsright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).right;
++		Vector elements = (Vector)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).value;
+ 		
+                JrpcgenUnion uni = new JrpcgenUnion(id, descrim, elements);
+                if ( jrpcgen.globalIdentifiers.put(id, uni) != null ) {
+@@ -1275,7 +1275,7 @@
+                    uni.dump();
+                }
+             
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(10/*union_def*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-9)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(10/*union_def*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-9)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -1283,12 +1283,12 @@
+           case 21: // struct_def ::= STRUCT IDENTIFIER LBRACE declarations RBRACE SEMICOLON 
+             {
+               Object RESULT = null;
+-		int idleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-4)).left;
+-		int idright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-4)).right;
+-		String id = (String)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-4)).value;
+-		int elementsleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).left;
+-		int elementsright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).right;
+-		Vector elements = (Vector)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).value;
++		int idleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-4)).left;
++		int idright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-4)).right;
++		String id = (String)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-4)).value;
++		int elementsleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).left;
++		int elementsright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).right;
++		Vector elements = (Vector)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).value;
+ 		
+                JrpcgenStruct strct = new JrpcgenStruct(id, elements);
+                if ( jrpcgen.globalIdentifiers.put(id, strct) != null ) {
+@@ -1298,7 +1298,7 @@
+                    strct.dump();
+                }
+             
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(9/*struct_def*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-5)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(9/*struct_def*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-5)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -1306,19 +1306,19 @@
+           case 20: // enum_element ::= IDENTIFIER EQUAL value 
+             {
+               JrpcgenConst RESULT = null;
+-		int idleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).left;
+-		int idright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).right;
+-		String id = (String)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).value;
+-		int valleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left;
+-		int valright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right;
+-		String val = (String)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).value;
++		int idleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).left;
++		int idright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).right;
++		String id = (String)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).value;
++		int valleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left;
++		int valright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right;
++		String val = (String)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).value;
+ 		
+                RESULT = new JrpcgenConst(id, val);
+                if ( jrpcgen.globalIdentifiers.put(id, RESULT) != null ) {
+                    parser.report_error("identifier \"" + id + "\" already defined", idleft);
+                }
+             
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(8/*enum_element*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(8/*enum_element*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -1326,9 +1326,9 @@
+           case 19: // enum_element ::= IDENTIFIER 
+             {
+               JrpcgenConst RESULT = null;
+-		int idleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left;
+-		int idright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right;
+-		String id = (String)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).value;
++		int idleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left;
++		int idright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right;
++		String id = (String)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).value;
+ 		
+                //
+                // We don't know yet the value, so we don't specify one. The
+@@ -1340,7 +1340,7 @@
+                    parser.report_error("identifier \"" + id + "\" already defined", idleft);
+                }
+             
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(8/*enum_element*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(8/*enum_element*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -1348,12 +1348,12 @@
+           case 18: // enum_elements ::= enum_elements COMMA enum_element 
+             {
+               Vector RESULT = null;
+-		int elementsleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).left;
+-		int elementsright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).right;
+-		Vector elements = (Vector)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).value;
+-		int elleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left;
+-		int elright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right;
+-		JrpcgenConst el = (JrpcgenConst)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).value;
++		int elementsleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).left;
++		int elementsright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).right;
++		Vector elements = (Vector)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).value;
++		int elleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left;
++		int elright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right;
++		JrpcgenConst el = (JrpcgenConst)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).value;
+ 		
+                //
+                // If no specific value has been assigned to this element of
+@@ -1369,7 +1369,7 @@
+                elements.addElement(el);
+                RESULT = elements;
+             
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(7/*enum_elements*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(7/*enum_elements*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -1377,9 +1377,9 @@
+           case 17: // enum_elements ::= enum_element 
+             {
+               Vector RESULT = null;
+-		int elleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left;
+-		int elright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right;
+-		JrpcgenConst el = (JrpcgenConst)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).value;
++		int elleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left;
++		int elright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right;
++		JrpcgenConst el = (JrpcgenConst)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).value;
+ 		
+                //
+                // If no specific value has been assigned to this element of
+@@ -1391,7 +1391,7 @@
+                RESULT = new Vector();
+                RESULT.addElement(el);
+             
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(7/*enum_elements*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(7/*enum_elements*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -1399,12 +1399,12 @@
+           case 16: // enum_def ::= ENUM IDENTIFIER LBRACE enum_elements RBRACE SEMICOLON 
+             {
+               Object RESULT = null;
+-		int idleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-4)).left;
+-		int idright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-4)).right;
+-		String id = (String)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-4)).value;
+-		int elementsleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).left;
+-		int elementsright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).right;
+-		Vector elements = (Vector)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).value;
++		int idleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-4)).left;
++		int idright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-4)).right;
++		String id = (String)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-4)).value;
++		int elementsleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).left;
++		int elementsright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).right;
++		Vector elements = (Vector)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-2)).value;
+ 		
+                //
+                // Fix up enclosure of enumeration elements, so we can later
+@@ -1423,7 +1423,7 @@
+                    type.dump();
+                }
+             
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(6/*enum_def*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-5)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(6/*enum_def*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-5)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -1431,12 +1431,12 @@
+           case 15: // constant_def ::= CONST IDENTIFIER EQUAL value SEMICOLON 
+             {
+               Object RESULT = null;
+-		int idleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-3)).left;
+-		int idright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-3)).right;
+-		String id = (String)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-3)).value;
+-		int valueleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left;
+-		int valueright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).right;
+-		String value = (String)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).value;
++		int idleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-3)).left;
++		int idright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-3)).right;
++		String id = (String)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-3)).value;
++		int valueleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left;
++		int valueright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).right;
++		String value = (String)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).value;
+ 		
+                JrpcgenConst type = new JrpcgenConst(id, value, jrpcgen.baseClassname);
+                if ( jrpcgen.globalIdentifiers.put(id, type) != null ) {
+@@ -1448,7 +1448,7 @@
+                    System.out.println();
+                }
+             
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(5/*constant_def*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-4)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(5/*constant_def*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-4)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -1457,7 +1457,7 @@
+             {
+               Object RESULT = null;
+ 
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(4/*definition*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(4/*definition*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -1466,7 +1466,7 @@
+             {
+               Object RESULT = null;
+ 
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(4/*definition*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(4/*definition*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -1475,7 +1475,7 @@
+             {
+               Object RESULT = null;
+ 
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(4/*definition*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(4/*definition*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -1484,7 +1484,7 @@
+             {
+               Object RESULT = null;
+ 
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(4/*definition*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(4/*definition*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -1493,7 +1493,7 @@
+             {
+               Object RESULT = null;
+ 
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(4/*definition*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(4/*definition*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -1502,7 +1502,7 @@
+             {
+               Object RESULT = null;
+ 
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(3/*definitions*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(3/*definitions*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -1511,7 +1511,7 @@
+             {
+               Object RESULT = null;
+ 
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(3/*definitions*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(3/*definitions*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -1520,7 +1520,7 @@
+             {
+               Object RESULT = null;
+ 
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(2/*definitions_opt*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(2/*definitions_opt*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -1529,7 +1529,7 @@
+             {
+               Object RESULT = null;
+ 
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(2/*definitions_opt*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(2/*definitions_opt*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -1537,17 +1537,17 @@
+           case 5: // program_defs ::= program_defs program_def 
+             {
+               Vector RESULT = null;
+-		int progDefsleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left;
+-		int progDefsright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).right;
+-		Vector progDefs = (Vector)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).value;
+-		int progDefleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left;
+-		int progDefright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right;
+-		JrpcgenProgramInfo progDef = (JrpcgenProgramInfo)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).value;
++		int progDefsleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left;
++		int progDefsright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).right;
++		Vector progDefs = (Vector)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).value;
++		int progDefleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left;
++		int progDefright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right;
++		JrpcgenProgramInfo progDef = (JrpcgenProgramInfo)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).value;
+ 		
+                 progDefs.addElement(progDef);
+                 RESULT = progDefs;
+             
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(14/*program_defs*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(14/*program_defs*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -1555,14 +1555,14 @@
+           case 4: // program_defs ::= program_def 
+             {
+               Vector RESULT = null;
+-		int progDefleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left;
+-		int progDefright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right;
+-		JrpcgenProgramInfo progDef = (JrpcgenProgramInfo)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).value;
++		int progDefleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left;
++		int progDefright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right;
++		JrpcgenProgramInfo progDef = (JrpcgenProgramInfo)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).value;
+ 		
+                 RESULT = new Vector();
+                 RESULT.addElement(progDef);
+             
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(14/*program_defs*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(14/*program_defs*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -1570,13 +1570,13 @@
+           case 3: // program_defs_opt ::= program_defs 
+             {
+               Object RESULT = null;
+-		int progDefsleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left;
+-		int progDefsright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right;
+-		Vector progDefs = (Vector)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).value;
++		int progDefsleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left;
++		int progDefsright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right;
++		Vector progDefs = (Vector)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).value;
+ 		
+                 jrpcgen.programInfos = progDefs;
+             
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(15/*program_defs_opt*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(15/*program_defs_opt*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -1587,7 +1587,7 @@
+ 		
+ 				jrpcgen.programInfos = new Vector();
+ 			
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(15/*program_defs_opt*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(15/*program_defs_opt*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -1596,7 +1596,7 @@
+             {
+               Object RESULT = null;
+ 
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(1/*compilation_unit*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(1/*compilation_unit*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           return CUP$JrpcgenParser$result;
+ 
+@@ -1604,11 +1604,11 @@
+           case 0: // $START ::= compilation_unit EOF 
+             {
+               Object RESULT = null;
+-		int start_valleft = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left;
+-		int start_valright = ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).right;
+-		Object start_val = (Object)((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).value;
++		int start_valleft = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left;
++		int start_valright = ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).right;
++		Object start_val = (Object)((java_cup.runtime.Symbol) CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).value;
+ 		RESULT = start_val;
+-              CUP$JrpcgenParser$result = new org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol(0/*$START*/, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left, ((org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
++              CUP$JrpcgenParser$result = new java_cup.runtime.Symbol(0/*$START*/, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$JrpcgenParser$stack.elementAt(CUP$JrpcgenParser$top-0)).right, RESULT);
+             }
+           /* ACCEPT */
+           CUP$JrpcgenParser$parser.done_parsing();
+diff -Nru remotetea/src/org/acplt/oncrpc/apps/jrpcgen/JrpcgenScanner.flex remotetea-gil/src/org/acplt/oncrpc/apps/jrpcgen/JrpcgenScanner.flex
+--- remotetea/src/org/acplt/oncrpc/apps/jrpcgen/JrpcgenScanner.flex	2003-08-13 12:03:48.000000000 +0200
++++ remotetea-gil/src/org/acplt/oncrpc/apps/jrpcgen/JrpcgenScanner.flex	2013-12-10 21:31:07.954292260 +0100
+@@ -28,7 +28,7 @@
+  */
+ 
+ package org.acplt.oncrpc.apps.jrpcgen;
+-import org.acplt.oncrpc.apps.jrpcgen.cup_runtime.*;
++import java_cup.runtime.*;
+ 
+ %%
+ 
+@@ -37,9 +37,9 @@
+ // Do not use %cup directive here as this causes JFlex to create a parser
+ // class which tries to always implement java_cup.runtime.Scanner...
+ //%cup
+-%implements org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Scanner
++%implements java_cup.runtime.Scanner
+ %function next_token
+-%type org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol
++%type java_cup.runtime.Symbol
+ %eofval{
+     return new Symbol(JrpcgenSymbols.EOF);
+ %eofval}
+diff -Nru remotetea/src/org/acplt/oncrpc/apps/jrpcgen/JrpcgenScanner.java remotetea-gil/src/org/acplt/oncrpc/apps/jrpcgen/JrpcgenScanner.java
+--- remotetea/src/org/acplt/oncrpc/apps/jrpcgen/JrpcgenScanner.java	2003-08-13 12:03:48.000000000 +0200
++++ remotetea-gil/src/org/acplt/oncrpc/apps/jrpcgen/JrpcgenScanner.java	2013-12-10 21:31:07.956292141 +0100
+@@ -30,7 +30,7 @@
+  */
+ 
+ package org.acplt.oncrpc.apps.jrpcgen;
+-import org.acplt.oncrpc.apps.jrpcgen.cup_runtime.*;
++import java_cup.runtime.*;
+ 
+ 
+ /**
+@@ -39,7 +39,7 @@
+  * on 20.10.00 09:36 from the specification file
+  * <tt>file:/G:/JAVA/SRC/ORG/ACPLT/ONCRPC/APPS/JRPCGEN/JrpcgenScanner.flex</tt>
+  */
+-class JrpcgenScanner implements org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Scanner {
++class JrpcgenScanner implements java_cup.runtime.Scanner {
+ 
+   /** this character denotes the end of file */
+   final public static int YYEOF = -1;
+@@ -509,7 +509,7 @@
+    * @return      the next token
+    * @exception   IOException  if any I/O-Error occurs
+    */
+-  public org.acplt.oncrpc.apps.jrpcgen.cup_runtime.Symbol next_token() throws java.io.IOException {
++  public java_cup.runtime.Symbol next_token() throws java.io.IOException {
+     int yy_input;
+     int yy_action;
+ 
diff --git a/remotetea-jrpcgen-template.pom b/remotetea-jrpcgen-template.pom
new file mode 100644
index 0000000..c2c674d
--- /dev/null
+++ b/remotetea-jrpcgen-template.pom
@@ -0,0 +1,30 @@
+<?xml version="1.0"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.acplt</groupId>
+  <artifactId>jrpcgen</artifactId>
+  <name>jrpcgen</name>
+  <packaging>jar</packaging>
+  <version>@VERSION@</version>
+  <description>Open Network Computing Remote Procedure Call (rpcgen)</description>
+  <url>http://remotetea.sourceforge.net/</url>
+  <licenses>
+    <license>
+      <name>GNU Lesser General Public License</name>
+      <url>http://www.gnu.org/licenses/lgpl.html</url>
+      <distribution>repo</distribution>
+    </license>
+  </licenses>
+  <scm>
+    <connection>scm:cvs:pserver:remotetea.cvs.sourceforge.net:/cvsroot/remotetea</connection>
+    <developerConnection>scm:ext:remotetea.cvs.sourceforge.net:/cvsroot/remotetea</developerConnection>
+    <url>http://remotetea.cvs.sourceforge.net/viewvc/remotetea/</url>
+  </scm>
+  <developers>
+    <developer>
+      <id>haraldalbrecht</id>
+      <name>Harald Albrecht</name>
+      <email>haraldalbrecht at users.sourceforge.net</email>
+    </developer>
+  </developers>
+</project>
diff --git a/remotetea-portmap-template.pom b/remotetea-portmap-template.pom
new file mode 100644
index 0000000..39cd74b
--- /dev/null
+++ b/remotetea-portmap-template.pom
@@ -0,0 +1,30 @@
+<?xml version="1.0"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.acplt</groupId>
+  <artifactId>portmap</artifactId>
+  <name>portmap</name>
+  <packaging>jar</packaging>
+  <version>@VERSION@</version>
+  <description>Open Network Computing Remote Procedure Call (rpcbind)</description>
+  <url>http://remotetea.sourceforge.net/</url>
+  <licenses>
+    <license>
+      <name>GNU Lesser General Public License</name>
+      <url>http://www.gnu.org/licenses/lgpl.html</url>
+      <distribution>repo</distribution>
+    </license>
+  </licenses>
+  <scm>
+    <connection>scm:cvs:pserver:remotetea.cvs.sourceforge.net:/cvsroot/remotetea</connection>
+    <developerConnection>scm:ext:remotetea.cvs.sourceforge.net:/cvsroot/remotetea</developerConnection>
+    <url>http://remotetea.cvs.sourceforge.net/viewvc/remotetea/</url>
+  </scm>
+  <developers>
+    <developer>
+      <id>haraldalbrecht</id>
+      <name>Harald Albrecht</name>
+      <email>haraldalbrecht at users.sourceforge.net</email>
+    </developer>
+  </developers>
+</project>
diff --git a/remotetea.spec b/remotetea.spec
new file mode 100644
index 0000000..5bc90a7
--- /dev/null
+++ b/remotetea.spec
@@ -0,0 +1,110 @@
+Name:          remotetea
+Version:       1.0.7
+Release:       4%{?dist}
+Summary:       Java implementation of Sun's ONC/RPC Remote Procedure Protocol
+# GPL with exceptions: src/org/acplt/oncrpc/apps/jrpcgen/JrpcgenSHA.java original
+License:       LGPLv2+
+URL:           http://remotetea.sourceforge.net/
+Source0:       http://downloads.sourceforge.net/remotetea/remotetea-src-%{version}.zip
+# http://sourceforge.net/p/remotetea/code/ci/master/tree/remotetea/build.xml
+Source1:       %{name}-%{version}-build.xml
+Source2:       http://repo1.maven.org/maven2/org/acplt/oncrpc/%{version}/oncrpc-%{version}.pom
+Source3:       %{name}-jrpcgen-template.pom
+Source4:       %{name}-portmap-template.pom
+
+# Fix classpath
+Patch0:        %{name}-1.0.7-build.patch
+# Use system java_cup
+Patch1:        %{name}-1.0.7-system-java_cup.patch
+# Remove src/org/acplt/oncrpc/apps/jrpcgen/JrpcgenSHA.java references
+# gnu.java.security.provider.SHA.java, bundled libraries without FPC exception
+
+# Clean implementation of JrpcgenSHA.java that calls out to the
+# Java standard library's implementation of SHA-1.  It
+# should otherwise be interface- and implemenation-compatible with the
+# one that depended on bundled code
+
+Patch2:        %{name}-1.0.7-custom_JrpcgenSHA.patch
+
+BuildRequires: java-devel
+BuildRequires: jpackage-utils
+BuildRequires: ant
+BuildRequires: java_cup
+Requires:      java
+Requires:      java_cup
+Requires:      jpackage-utils
+BuildArch:     noarch
+
+%description
+A complete Java-based implementation of Sun's ONC/RPC
+Remote Procedure Protocol, including client and server
+functionality and some associated tools. No native
+code involved, only Java.
+
+%package javadoc
+Summary:       Javadoc for %{name}
+
+%description javadoc
+This package contains javadoc for %{name}.
+
+%prep
+%setup -q -n %{name}
+cp -p %{SOURCE1} build.xml
+
+%patch0 -p1
+cp -p %{SOURCE3} jrpcgen.pom
+%patch1 -p1
+%patch2 -p1
+
+cp -p %{SOURCE4} portmap.pom
+sed -i "s|@VERSION@|%{version}|" *.pom
+
+native2ascii -encoding UTF8 src/org/acplt/oncrpc/OncRpcUdpClient.java \
+ src/org/acplt/oncrpc/OncRpcUdpClient.java
+
+%build
+
+%ant jar javadoc jrpcgen-test
+
+%install
+
+mkdir -p %{buildroot}%{_javadir}/%{name} %{buildroot}%{_mavenpomdir}
+install -m 644 classes/oncrpc.jar %{buildroot}%{_javadir}/%{name}/
+install -pm 644 %{SOURCE2} %{buildroot}%{_mavenpomdir}/JPP.%{name}-oncrpc.pom
+%add_maven_depmap JPP.%{name}-oncrpc.pom %{name}/oncrpc.jar
+
+install -m 644 classes/jrpcgen.jar %{buildroot}%{_javadir}/%{name}/
+install -pm 644 jrpcgen.pom %{buildroot}%{_mavenpomdir}/JPP.%{name}-jrpcgen.pom
+%add_maven_depmap JPP.%{name}-jrpcgen.pom %{name}/jrpcgen.jar
+
+install -m 644 classes/portmap.jar %{buildroot}%{_javadir}/%{name}/
+install -pm 644 portmap.pom %{buildroot}%{_mavenpomdir}/JPP.%{name}-portmap.pom
+%add_maven_depmap JPP.%{name}-portmap.pom %{name}/portmap.jar
+
+mkdir -p %{buildroot}%{_javadocdir}/%{name}
+cp -pr javadoc/* %{buildroot}%{_javadocdir}/%{name}
+
+%files
+%{_javadir}/%{name}
+%{_mavenpomdir}/*
+%{_mavendepmapfragdir}/%{name}
+%doc COPYING.LIB changelog.html docstyle.css readme.html
+
+%files javadoc
+%{_javadocdir}/%{name}
+%doc COPYING.LIB
+
+%changelog
+* Wed Dec 11 2013 gil cattaneo <puntogil at libero.it> 1.0.7-4
+- use custom JrpcgenSHA, thanks to Will Benton willb at redhat.com
+- fix license field
+- cleanup spec file
+
+* Tue Dec 10 2013 gil cattaneo <puntogil at libero.it> 1.0.7-3
+- fix bundled libraries
+
+* Tue Dec 10 2013 gil cattaneo <puntogil at libero.it> 1.0.7-2
+- fix license field
+
+* Sat Aug 03 2013 gil cattaneo <puntogil at libero.it> 1.0.7-1
+- initial rpm
\ No newline at end of file
diff --git a/sources b/sources
index e69de29..6c45228 100644
--- a/sources
+++ b/sources
@@ -0,0 +1 @@
+d2f937c684c6a2d352dc1995d63aef33  remotetea-src-1.0.7.zip


More information about the scm-commits mailing list