From a84fe18a5c27c6a624fc91c3a38f3236c4c0eb12 Mon Sep 17 00:00:00 2001 From: jackie_wu Date: Tue, 1 Sep 2020 11:25:46 +0800 Subject: [PATCH] package init --- remotetea-1.1.2-custom_JrpcgenSHA.patch | 326 +++ remotetea-1.1.2-system-java_cup.patch | 3277 +++++++++++++++++++++++ remotetea-1.1.3.tar.xz | Bin 0 -> 168696 bytes remotetea.spec | 81 + remotetea.yaml | 4 + 5 files changed, 3688 insertions(+) create mode 100644 remotetea-1.1.2-custom_JrpcgenSHA.patch create mode 100644 remotetea-1.1.2-system-java_cup.patch create mode 100644 remotetea-1.1.3.tar.xz create mode 100644 remotetea.spec create mode 100644 remotetea.yaml diff --git a/remotetea-1.1.2-custom_JrpcgenSHA.patch b/remotetea-1.1.2-custom_JrpcgenSHA.patch new file mode 100644 index 0000000..855f5b1 --- /dev/null +++ b/remotetea-1.1.2-custom_JrpcgenSHA.patch @@ -0,0 +1,326 @@ +--- remotetea-1.1.2/jrpcgen/src/main/java/org/acplt/oncrpc/apps/jrpcgen/JrpcgenSHA.java 2015-02-18 08:43:01.000000000 +0100 ++++ remotetea-1.1.2/jrpcgen/src/main/java/org/acplt/oncrpc/apps/jrpcgen/JrpcgenSHA.java.custom_JrpcgenSHA 2015-05-24 16:32:44.167105839 +0200 +@@ -1,281 +1,74 @@ +-/* 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. +- +-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. */ +- + /* +- * $Header: /home/harald/repos/remotetea.sf.net/remotetea/src/org/acplt/oncrpc/apps/jrpcgen/JrpcgenSHA.java,v 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 $ $Date: 2003/08/13 12:03:47 $ $State: Exp $ $Locker: $ +- * @author GNU Classpath +- */ ++ JpcgenSHA.java -- implementation of the JrpcgenSHA interface that ++ calls out to the Java standard library instead of to bundled code ++ ++ 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 . ++ ++ @author William Benton ++*/ ++ + 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.1.2-system-java_cup.patch b/remotetea-1.1.2-system-java_cup.patch new file mode 100644 index 0000000..5dcc4d4 --- /dev/null +++ b/remotetea-1.1.2-system-java_cup.patch @@ -0,0 +1,3277 @@ +diff -Nru remotetea-1.1.2/jrpcgen/pom.xml remotetea-1.1.2.java_cup/jrpcgen/pom.xml +--- remotetea-1.1.2/jrpcgen/pom.xml 2015-02-18 08:43:01.000000000 +0100 ++++ remotetea-1.1.2.java_cup/jrpcgen/pom.xml 2015-05-24 16:07:36.727756889 +0200 +@@ -14,6 +14,11 @@ + ant + 1.9.4 + ++ ++ java_cup ++ java_cup ++ 0.11a ++ + + The source generator for ONC/RPC programs analogous to 'rpcgen' of Sun. + +diff -Nru remotetea-1.1.2/jrpcgen/src/main/java/org/acplt/oncrpc/apps/jrpcgen/cup_runtime/lr_parser.java remotetea-1.1.2.java_cup/jrpcgen/src/main/java/org/acplt/oncrpc/apps/jrpcgen/cup_runtime/lr_parser.java +--- remotetea-1.1.2/jrpcgen/src/main/java/org/acplt/oncrpc/apps/jrpcgen/cup_runtime/lr_parser.java 2015-02-18 08:43:01.000000000 +0100 ++++ remotetea-1.1.2.java_cup/jrpcgen/src/main/java/org/acplt/oncrpc/apps/jrpcgen/cup_runtime/lr_parser.java 1970-01-01 01:00:00.000000000 +0100 +@@ -1,1321 +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.

+- * +- * 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.

+- * +- * 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.

+- * +- * 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: +- *

+- *
short[][] production_table() +- *
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). +- *
short[][] action_table() +- *
Provides a reference to the parse action table. +- *
short[][] reduce_table() +- *
Provides a reference to the reduce-goto table. +- *
int start_state() +- *
Indicates the index of the start state. +- *
int start_production() +- *
Indicates the index of the starting production. +- *
int EOF_sym() +- *
Indicates the index of the EOF Symbol. +- *
int error_sym() +- *
Indicates the index of the error Symbol. +- *
Symbol do_action() +- *
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. +- *
void init_actions() +- *
Code to initialize a special object that encapsulates user supplied +- * actions (this object is used by do_action() to actually carry out the +- * actions). +- *
+- * +- * In addition to these routines that must be supplied by the +- * generated subclass there are also a series of routines that may +- * be supplied. These include: +- *
+- *
Symbol scan() +- *
Used to get the next input Symbol from the scanner. +- *
Scanner getScanner() +- *
Used to provide a scanner for the default implementation of +- * scan(). +- *
int error_sync_size() +- *
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. +- *
void report_error(String message, Object info) +- *
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. +- *
void report_fatal_error(String message, Object info) +- *
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. +- *
void syntax_error(Symbol cur_token) +- *
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); +- *
void unrecovered_syntax_error(Symbol cur_token) +- *
This method is called if syntax error recovery fails. In the default +- * implementation it invokes:
+- * report_fatal_error("Couldn't repair and continue parse", null); +- *
+- * +- * @see Symbol +- * @see Symbol +- * @see 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] +- * +- * @param s The default scanner for the new parser instance. +- */ +- 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. +- * +- * @return The number of symbols after an error. +- */ +- 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. +- * +- * @return The production table. +- */ +- 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 lr_parser#get_action(int, int) +- * +- * @return The action table. +- */ +- 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 lr_parser#get_reduce(int, int) +- * +- * @return The reduce table. +- */ +- public abstract short[][] reduce_table(); +- +- /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/ +- +- /** The index of the start state (supplied by generated subclass). +- * +- * @return The start state. +- */ +- public abstract int start_state(); +- +- /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/ +- +- /** The index of the start production (supplied by generated subclass). +- * +- * @return The index of the start production +- */ +- public abstract int start_production(); +- +- /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/ +- +- /** The index of the end of file terminal Symbol (supplied by generated +- * subclass). +- * +- * @return The index of the end of file terminal Symbol +- */ +- public abstract int EOF_sym(); +- +- /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/ +- +- /** The index of the special error Symbol (supplied by generated subclass). +- * +- * @return The index of the special error Symbol +- */ +- 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. +- * +- * @param s The default scanner to set. +- */ +- public void setScanner(Scanner s) { _scanner = s; } +- +- /** +- * Simple accessor method to get the default scanner. +- * +- * @return 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. +- * +- * @return The parsed symbol +- * +- * @throws Exception if any error occurs. +- */ +- 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. +- * +- * @throws Exception if any error occurs. +- */ +- 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. +- * +- * @throws Exception if any error occurs. +- */ +- 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. +- * +- * @return The scanned symbol. +- * +- * @throws Exception if any error occurs. +- */ +- 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. +- * +- * @throws Exception if any error occurs. +- */ +- 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. +- * +- * @throws Exception if any error occurs. +- */ +- 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. +- * +- * @return The index of the action identified by the passed state and symbol. +- */ +- 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. +- * +- * @return The associated index in the reduce table to the given pair of +- * state and symbol. +- */ +- 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. +- * +- * @return The parsed symbol. +- * +- * @throws Exception if any error occurs. +- */ +- 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"); +- 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. +- * +- * @return The parsed symbol. +- * +- * @throws Exception if any error occurs. +- */ +- 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. +- * +- * @return True on success, false otherwise. +- * +- * @throws Exception if any error occurs. +- */ +- 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. +- * +- * @return True if we can shift under the special error symbol, +- * false otherwise. +- */ +- 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. +- * +- * @return True if a suitable state exists, false otherwise. +- */ +- 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. +- * +- * @throws Exception if any error occurs. +- */ +- 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. +- * +- * @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). +- * +- * @throws Exception if any error occurs. +- */ +- 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. +- * +- * @return True on success, false otherwise. +- * +- * @throws Exception if any error occurs. +- */ +- 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. +- * +- * @throws Exception if any error occurs. +- */ +- 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 : +- // 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 +- * +- * @param sa A string array containing the parse tables. +- * +- * @return The unpacked table. +- */ +- protected static short[][] unpackFromStrings(String[] sa) +- { +- // Concatanate initialization strings. +- StringBuffer sb = new StringBuffer(sa[0]); +- for (int i=1; ilr_parser.scan(). Integration +- * of scanners implementing Scanner is facilitated. +- * +- * @version last updated 23-Jul-1999 +- * @author David MacMahon {@literal } +- */ +- +-/* ************************************************* +- 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 +- new Symbol(lr_parser.EOF_sym()) or +- null. +- ***************************************************/ +-public interface Scanner { +- /** +- * Delivers the next token. +- * +- * @return The next token, or null on end-of-file. +- * +- * @throws Exception if any error occurs. +- */ +- public Symbol next_token() throws java.lang.Exception; +-} +diff -Nru remotetea-1.1.2/jrpcgen/src/main/java/org/acplt/oncrpc/apps/jrpcgen/cup_runtime/Symbol.java remotetea-1.1.2.java_cup/jrpcgen/src/main/java/org/acplt/oncrpc/apps/jrpcgen/cup_runtime/Symbol.java +--- remotetea-1.1.2/jrpcgen/src/main/java/org/acplt/oncrpc/apps/jrpcgen/cup_runtime/Symbol.java 2015-02-18 08:43:01.000000000 +0100 ++++ remotetea-1.1.2.java_cup/jrpcgen/src/main/java/org/acplt/oncrpc/apps/jrpcgen/cup_runtime/Symbol.java 1970-01-01 01:00:00.000000000 +0100 +@@ -1,136 +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 +- *******************************/ +- +- /** +- * +- * @param id Id of the symbol type +- * @param l Left position of the symbol in the original input file +- * @param r Right position of the symbol in the original input file +- * @param o Lexical value of the symbol +- */ +- public Symbol(int id, int l, int r, Object o) { +- this(id); +- left = l; +- right = r; +- value = o; +- } +- +-/******************************* +- Constructor for no l,r values +-********************************/ +- +- /** +- * +- * @param id Id of the symbol type +- * @param o Lexical value of the symbol +- */ +- public Symbol(int id, Object o) { +- this(id, -1, -1, o); +- } +- +-/***************************** +- Constructor for no value +- ***************************/ +- +- /** +- * +- * @param id Id of the symbool type +- * @param l Left position of the symbol in the original input file +- * @param r Right position of the symbol in the original input file +- */ +- public Symbol(int id, int l, int r) { +- this(id, l, r, null); +- } +- +-/*********************************** +- Constructor for no value or l,r +-***********************************/ +- +- /** +- * +- * @param sym_num Number (aka Id) of the symbol type +- */ +- public Symbol(int sym_num) { +- this(sym_num, -1); +- left = -1; +- right = -1; +- value = null; +- } +- +-/*********************************** +- Constructor to give a start state +-***********************************/ +- /** +- * +- * @param sym_num Number (aka id) of the symbol type +- * @param state Initial 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). +- ****************************/ +- +- /** +- * @return The string representation of the symbol. +- */ +- public String toString() { return "#"+sym; } +-} +- +- +- +- +- +- +diff -Nru remotetea-1.1.2/jrpcgen/src/main/java/org/acplt/oncrpc/apps/jrpcgen/cup_runtime/virtual_parse_stack.java remotetea-1.1.2.java_cup/jrpcgen/src/main/java/org/acplt/oncrpc/apps/jrpcgen/cup_runtime/virtual_parse_stack.java +--- remotetea-1.1.2/jrpcgen/src/main/java/org/acplt/oncrpc/apps/jrpcgen/cup_runtime/virtual_parse_stack.java 2015-02-18 08:43:01.000000000 +0100 ++++ remotetea-1.1.2.java_cup/jrpcgen/src/main/java/org/acplt/oncrpc/apps/jrpcgen/cup_runtime/virtual_parse_stack.java 1970-01-01 01:00:00.000000000 +0100 +@@ -1,164 +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 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. +- * +- * @param shadowing_stack The real stack. +- * +- * @throws Exception if any error occurs. +- */ +- 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. +- * +- * @return True if the stack is empty, false otherwise. +- */ +- 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). +- * +- * @return The value on the top of the stack. +- * +- * @throws Exception if this method has been called on an empty stack. +- */ +- 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. +- * +- * @throws Exception if the stack is empty. +- */ +- 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. +- * +- * @param state_num The state that shall e pushed on the stack. +- */ +- public void push(int state_num) +- { +- vstack.push(new Integer(state_num)); +- } +- +- /*-----------------------------------------------------------*/ +- +-} +diff -Nru remotetea-1.1.2/jrpcgen/src/main/java/org/acplt/oncrpc/apps/jrpcgen/jrpcgen.java remotetea-1.1.2.java_cup/jrpcgen/src/main/java/org/acplt/oncrpc/apps/jrpcgen/jrpcgen.java +--- remotetea-1.1.2/jrpcgen/src/main/java/org/acplt/oncrpc/apps/jrpcgen/jrpcgen.java 2015-02-18 08:43:01.000000000 +0100 ++++ remotetea-1.1.2.java_cup/jrpcgen/src/main/java/org/acplt/oncrpc/apps/jrpcgen/jrpcgen.java 2015-05-24 16:06:10.994393992 +0200 +@@ -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-1.1.2/jrpcgen/src/main/java/org/acplt/oncrpc/apps/jrpcgen/JrpcgenParser.cup remotetea-1.1.2.java_cup/jrpcgen/src/main/java/org/acplt/oncrpc/apps/jrpcgen/JrpcgenParser.cup +--- remotetea-1.1.2/jrpcgen/src/main/java/org/acplt/oncrpc/apps/jrpcgen/JrpcgenParser.cup 2015-02-18 08:43:01.000000000 +0100 ++++ remotetea-1.1.2.java_cup/jrpcgen/src/main/java/org/acplt/oncrpc/apps/jrpcgen/JrpcgenParser.cup 2015-05-24 16:06:11.011393076 +0200 +@@ -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-1.1.2/jrpcgen/src/main/java/org/acplt/oncrpc/apps/jrpcgen/JrpcgenParser.java remotetea-1.1.2.java_cup/jrpcgen/src/main/java/org/acplt/oncrpc/apps/jrpcgen/JrpcgenParser.java +--- remotetea-1.1.2/jrpcgen/src/main/java/org/acplt/oncrpc/apps/jrpcgen/JrpcgenParser.java 2015-02-18 08:43:01.000000000 +0100 ++++ remotetea-1.1.2.java_cup/jrpcgen/src/main/java/org/acplt/oncrpc/apps/jrpcgen/JrpcgenParser.java 2015-05-24 16:06:11.018392699 +0200 +@@ -6,13 +6,13 @@ + + 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();} +@@ -21,7 +21,7 @@ + * + * @param s An instance of the jrpcgen cup runtime scanner implementation. + */ +- 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[][] = +@@ -285,9 +285,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 +@@ -370,15 +370,15 @@ + * + * @throws Exception if any kind of error occurs. + */ +- 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) +@@ -387,11 +387,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; + +@@ -399,11 +399,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; + +@@ -412,7 +412,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; + +@@ -421,7 +421,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; + +@@ -430,7 +430,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; + +@@ -439,7 +439,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; + +@@ -448,7 +448,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; + +@@ -457,7 +457,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; + +@@ -466,7 +466,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; + +@@ -475,7 +475,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; + +@@ -486,7 +486,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; + +@@ -494,17 +494,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; + +@@ -512,17 +512,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; + +@@ -530,20 +530,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; + +@@ -551,20 +551,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; + +@@ -572,16 +572,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; + +@@ -589,14 +589,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; + +@@ -604,17 +604,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; + +@@ -622,16 +622,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; + +@@ -639,19 +639,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; + +@@ -659,19 +659,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; + +@@ -679,17 +679,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; + +@@ -697,14 +697,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; + +@@ -712,11 +712,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; + +@@ -724,11 +724,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; + +@@ -736,11 +736,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; + +@@ -749,7 +749,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; + +@@ -758,7 +758,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; + +@@ -767,7 +767,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; + +@@ -776,7 +776,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; + +@@ -784,11 +784,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; + +@@ -796,11 +796,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; + +@@ -809,7 +809,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; + +@@ -817,11 +817,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; + +@@ -829,11 +829,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; + +@@ -842,7 +842,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; + +@@ -850,11 +850,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; + +@@ -863,7 +863,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; + +@@ -871,20 +871,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; + +@@ -892,17 +892,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; + +@@ -910,17 +910,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; + +@@ -928,14 +928,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; + +@@ -943,9 +943,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(); +@@ -961,7 +961,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; + +@@ -972,7 +972,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; + +@@ -980,18 +980,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); + // +@@ -1001,7 +1001,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; + +@@ -1009,17 +1009,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; + +@@ -1027,14 +1027,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; + +@@ -1042,15 +1042,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); +@@ -1107,7 +1107,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; + +@@ -1115,17 +1115,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; + +@@ -1133,14 +1133,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; + +@@ -1148,15 +1148,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); +@@ -1167,7 +1167,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; + +@@ -1175,9 +1175,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); +@@ -1187,7 +1187,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; + +@@ -1195,13 +1195,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; + +@@ -1209,16 +1209,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; + +@@ -1226,13 +1226,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; + +@@ -1240,17 +1240,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; + +@@ -1258,14 +1258,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; + +@@ -1273,15 +1273,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 ) { +@@ -1291,7 +1291,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; + +@@ -1299,12 +1299,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 ) { +@@ -1314,7 +1314,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; + +@@ -1322,19 +1322,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; + +@@ -1342,9 +1342,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 +@@ -1356,7 +1356,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; + +@@ -1364,12 +1364,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 +@@ -1385,7 +1385,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; + +@@ -1393,9 +1393,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 +@@ -1407,7 +1407,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; + +@@ -1415,12 +1415,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 +@@ -1439,7 +1439,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; + +@@ -1447,12 +1447,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 ) { +@@ -1464,7 +1464,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; + +@@ -1473,7 +1473,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; + +@@ -1482,7 +1482,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; + +@@ -1491,7 +1491,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; + +@@ -1500,7 +1500,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; + +@@ -1509,7 +1509,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; + +@@ -1518,7 +1518,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; + +@@ -1527,7 +1527,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; + +@@ -1536,7 +1536,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; + +@@ -1545,7 +1545,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; + +@@ -1553,17 +1553,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; + +@@ -1571,14 +1571,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; + +@@ -1586,13 +1586,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; + +@@ -1603,7 +1603,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; + +@@ -1612,7 +1612,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; + +@@ -1620,11 +1620,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-1.1.2/jrpcgen/src/main/java/org/acplt/oncrpc/apps/jrpcgen/JrpcgenScanner.flex remotetea-1.1.2.java_cup/jrpcgen/src/main/java/org/acplt/oncrpc/apps/jrpcgen/JrpcgenScanner.flex +--- remotetea-1.1.2/jrpcgen/src/main/java/org/acplt/oncrpc/apps/jrpcgen/JrpcgenScanner.flex 2015-02-18 08:43:01.000000000 +0100 ++++ remotetea-1.1.2.java_cup/jrpcgen/src/main/java/org/acplt/oncrpc/apps/jrpcgen/JrpcgenScanner.flex 2015-05-24 16:06:11.009393184 +0200 +@@ -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-1.1.2/jrpcgen/src/main/java/org/acplt/oncrpc/apps/jrpcgen/JrpcgenScanner.java remotetea-1.1.2.java_cup/jrpcgen/src/main/java/org/acplt/oncrpc/apps/jrpcgen/JrpcgenScanner.java +--- remotetea-1.1.2/jrpcgen/src/main/java/org/acplt/oncrpc/apps/jrpcgen/JrpcgenScanner.java 2015-02-18 08:43:01.000000000 +0100 ++++ remotetea-1.1.2.java_cup/jrpcgen/src/main/java/org/acplt/oncrpc/apps/jrpcgen/JrpcgenScanner.java 2015-05-24 16:06:11.021392537 +0200 +@@ -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 + * file:/G:/JAVA/SRC/ORG/ACPLT/ONCRPC/APPS/JRPCGEN/JrpcgenScanner.flex + */ +-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; +@@ -513,7 +513,7 @@ + * @return the next token + * @throws java.io.IOException if any kind of 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-1.1.3.tar.xz b/remotetea-1.1.3.tar.xz new file mode 100644 index 0000000000000000000000000000000000000000..6a387b2aef609ae9f8f0ac77ee74939148a46a86 GIT binary patch literal 168696 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 z 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 Q1F^(s`vL#}000D8TDw)o&;S4c literal 0 HcmV?d00001 diff --git a/remotetea.spec b/remotetea.spec new file mode 100644 index 0000000..2bda575 --- /dev/null +++ b/remotetea.spec @@ -0,0 +1,81 @@ +Name: remotetea +Version: 1.1.3 +Release: 1 +Summary: Java implementation of Sun's ONC/RPC Remote Procedure Protocol +# GPL with exceptions: src/org/acplt/oncrpc/apps/jrpcgen/JrpcgenSHA.java original +# Incorrect Free Software Foundation address https://github.com/remotetea/remotetea/issues/2 +License: LGPLv2+ +URL: http://remotetea.sourceforge.net/ +# git clone git://git.code.sf.net/p/remotetea/code remotetea +# (cd remotetea/remotetea/ && git archive --format=tar --prefix=remotetea-1.1.3/ 1.1.3 | xz > ../../remotetea-1.1.3.tar.xz) +Source0: remotetea-1.1.3.tar.xz +# Use system java_cup +Patch0: remotetea-1.1.2-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 +# https://github.com/remotetea/remotetea/issues/1 +Patch1: remotetea-1.1.2-custom_JrpcgenSHA.patch +BuildRequires: maven-local mvn(java_cup:java_cup) mvn(org.apache.ant:ant) +BuildRequires: mvn(org.apache.felix:maven-bundle-plugin) +BuildRequires: mvn(org.apache.maven:maven-plugin-api) +BuildRequires: mvn(org.apache.maven.plugins:maven-plugin-plugin) +BuildRequires: mvn(org.apache.maven.plugins:maven-remote-resources-plugin) +BuildRequires: mvn(org.apache.maven.plugin-tools:maven-plugin-annotations) +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 maven-plugin +Summary: Remote Tea : ONC/RPC Maven plugin +%description maven-plugin +A Maven Plugin providing access to the +source generator (jrpcgen) in the +Maven life cycle phase 'generate-sources'. + +%package javadoc +Summary: Javadoc for %{name} +%description javadoc +This package contains javadoc for %{name}. + +%prep +%setup -q -n %{name}-%{version} +%patch0 -p1 +rm -rf jrpcgen/src/main/java/org/acplt/oncrpc/apps/jrpcgen/cup_runtime +%patch1 -p1 +native2ascii -encoding UTF8 oncrpc/src/main/java/org/acplt/oncrpc/OncRpcUdpClient.java \ + oncrpc/src/main/java/org/acplt/oncrpc/OncRpcUdpClient.java +cp -p information/src/main/resources/META-INF/changelog.html . +cp -p information/src/main/resources/META-INF/docstyle.css . +cp -p information/src/main/resources/META-INF/LICENSE.txt . +cp -p information/src/main/resources/META-INF/readme.html . +%mvn_package :remotetea-maven-plugin maven-plugin +%mvn_alias :remotetea-jportmap org.acplt:portmap +%mvn_alias :remotetea-jrpcgen org.acplt:jrpcgen +%mvn_alias :remotetea-oncrpc org.acplt:oncrpc + +%build +%mvn_build -- -Dproject.build.sourceEncoding=UTF-8 + +%install +%mvn_install + +%files -f .mfiles +%doc changelog.html docstyle.css readme.html +%license LICENSE.txt + +%files maven-plugin -f .mfiles-maven-plugin +%license LICENSE.txt + +%files javadoc -f .mfiles-javadoc +%license LICENSE.txt + +%changelog +* Tue Sep 1 2020 wutao - 1.1.3-1 +- package init diff --git a/remotetea.yaml b/remotetea.yaml new file mode 100644 index 0000000..3623270 --- /dev/null +++ b/remotetea.yaml @@ -0,0 +1,4 @@ +version_control: git +src_repo: https://git.code.sf.net/p/remotetea/code +tag_prefix: "^" +seperator: "."