//----------------------------------------------------
// The following code was generated by CUP v0.10k
// Tue Dec 12 22:27:24 EST 2006
//----------------------------------------------------
package ppg.parse;
import java.io.*;
import java.util.*;
import java_cup.runtime.Symbol;
import ppg.*;
import ppg.atoms.*;
import ppg.cmds.*;
import ppg.code.*;
import ppg.lex.*;
import ppg.spec.*;
/** CUP v0.10k generated parser.
* @version Tue Dec 12 22:27:24 EST 2006
*/
public class Parser
extends java_cup.runtime.lr_parser
{
/** Default constructor. */
public Parser() {super();}
/** Constructor which sets the default scanner. */
public Parser(java_cup.runtime.Scanner s) {super(s);}
/** Production table. */
protected static final short _production_table[][] =
unpackFromStrings(new String[] {
"\000\147\000\002\002\004\000\002\016\003\000\002\016" +
"\003\000\002\017\012\000\002\022\004\000\002\064\003" +
"\000\002\064\002\000\002\031\003\000\002\031\004\000" +
"\002\032\006\000\002\032\003\000\002\034\004\000\002" +
"\034\003\000\002\033\007\000\002\025\004\000\002\025" +
"\002\000\002\036\004\000\002\036\006\000\002\036\006" +
"\000\002\036\005\000\002\035\005\000\002\035\003\000" +
"\002\003\003\000\002\003\003\000\002\003\002\000\002" +
"\030\010\000\002\030\007\000\002\040\004\000\002\040" +
"\003\000\002\037\006\000\002\041\003\000\002\042\003" +
"\000\002\027\005\000\002\027\003\000\002\005\005\000" +
"\002\005\003\000\002\026\004\000\002\026\002\000\002" +
"\004\004\000\002\004\003\000\002\044\004\000\002\044" +
"\002\000\002\043\003\000\002\047\003\000\002\011\004" +
"\000\002\011\003\000\002\006\003\000\002\006\002\000" +
"\002\020\011\000\002\050\005\000\002\050\002\000\002" +
"\061\004\000\002\061\002\000\002\052\005\000\002\065" +
"\004\000\002\065\002\000\002\010\003\000\002\010\003" +
"\000\002\010\003\000\002\010\003\000\002\007\006\000" +
"\002\012\006\000\002\012\007\000\002\023\002\000\002" +
"\023\005\000\002\023\005\000\002\013\006\000\002\014" +
"\006\000\002\063\004\000\002\063\003\000\002\073\005" +
"\000\002\073\004\000\002\073\005\000\002\073\004\000" +
"\002\071\004\000\002\072\004\000\002\062\005\000\002" +
"\062\003\000\002\060\005\000\002\060\003\000\002\070" +
"\003\000\002\070\002\000\002\067\004\000\002\067\003" +
"\000\002\015\006\000\002\015\006\000\002\015\006\000" +
"\002\066\005\000\002\066\003\000\002\045\003\000\002" +
"\046\003\000\002\054\006\000\002\054\002\000\002\053" +
"\005\000\002\053\003\000\002\051\005\000\002\051\003" +
"\000\002\055\003\000\002\055\005\000\002\057\003\000" +
"\002\056\003\000\002\021\003\000\002\024\003" });
/** Access to production table. */
public short[][] production_table() {return _production_table;}
/** Parse-action table. */
protected static final short[][] _action_table =
unpackFromStrings(new String[] {
"\000\271\000\026\004\010\021\uffcf\022\uffcf\027\006\030" +
"\uffcf\032\uffcf\033\uffcf\034\uffcf\035\uffcf\036\uffcf\001\002" +
"\000\004\002\273\001\002\000\022\021\uffcd\022\uffcd\030" +
"\uffcd\032\uffcd\033\uffcd\034\uffcd\035\uffcd\036\uffcd\001\002" +
"\000\004\047\052\001\002\000\004\002\000\001\002\000" +
"\004\046\254\001\002\000\004\002\uffff\001\002\000\030" +
"\021\uffcf\022\uffcf\027\006\030\uffcf\032\uffcf\033\uffcf\034" +
"\uffcf\035\uffcf\036\uffcf\040\uffcf\042\uffcf\001\002\000\026" +
"\021\uffcd\022\uffcd\030\uffcd\032\uffcd\033\uffcd\034\uffcd\035" +
"\uffcd\036\uffcd\040\uffcd\042\uffcd\001\002\000\026\021\uffca" +
"\022\uffca\030\016\032\uffca\033\uffca\034\uffca\035\uffca\036" +
"\uffca\040\uffca\042\uffca\001\002\000\026\021\uffce\022\uffce" +
"\030\uffce\032\uffce\033\uffce\034\uffce\035\uffce\036\uffce\040" +
"\uffce\042\uffce\001\002\000\004\047\052\001\002\000\024" +
"\021\031\022\030\032\022\033\021\034\023\035\034\036" +
"\035\040\ufffb\042\ufffb\001\002\000\024\021\uffcb\022\uffcb" +
"\032\uffcb\033\uffcb\034\uffcb\035\uffcb\036\uffcb\040\uffcb\042" +
"\uffcb\001\002\000\006\031\234\047\052\001\002\000\004" +
"\031\231\001\002\000\004\021\230\001\002\000\024\021" +
"\uffc8\022\uffc8\032\uffc8\033\uffc8\034\uffc8\035\uffc8\036\uffc8" +
"\040\uffc8\042\uffc8\001\002\000\004\047\052\001\002\000" +
"\016\021\uffbc\022\uffbc\034\uffbc\040\uffbc\042\uffbc\047\uffbc" +
"\001\002\000\024\021\uffc6\022\uffc6\032\uffc6\033\uffc6\034" +
"\uffc6\035\uffc6\036\uffc6\040\uffc6\042\uffc6\001\002\000\004" +
"\047\uffd4\001\002\000\004\047\052\001\002\000\024\021" +
"\uffc9\022\uffc9\032\uffc9\033\uffc9\034\uffc9\035\uffc9\036\uffc9" +
"\040\uffc9\042\uffc9\001\002\000\014\021\031\022\030\034" +
"\023\040\ufffc\042\ufffc\001\002\000\004\037\172\001\002" +
"\000\004\037\166\001\002\000\006\040\uffb0\042\042\001" +
"\002\000\024\021\uffc7\022\uffc7\032\uffc7\033\uffc7\034\uffc7" +
"\035\uffc7\036\uffc7\040\uffc7\042\uffc7\001\002\000\004\040" +
"\ufffa\001\002\000\004\040\073\001\002\000\012\015\067" +
"\043\047\044\050\045\051\001\002\000\010\040\uffb1\042" +
"\045\047\uffb1\001\002\000\010\040\uffae\042\uffae\047\uffae" +
"\001\002\000\010\043\047\044\050\045\051\001\002\000" +
"\010\040\uffaf\042\uffaf\047\uffaf\001\002\000\004\047\052" +
"\001\002\000\004\047\052\001\002\000\004\047\052\001" +
"\002\000\040\005\uff9c\010\uff9c\011\uff9c\012\uff9c\013\uff9c" +
"\014\uff9c\015\uff9c\016\uff9c\017\uff9c\020\uff9c\023\uff9c\024" +
"\uff9c\025\uff9c\047\uff9c\050\uff9c\001\002\000\012\011\uffa7" +
"\014\uffa7\015\uffa7\020\uffa7\001\002\000\006\014\uffa8\015" +
"\uffa8\001\002\000\006\014\uffa9\015\uffa9\001\002\000\006" +
"\014\060\015\061\001\002\000\022\011\uffe2\014\uffe2\015" +
"\uffe2\016\uffe2\020\uffe2\023\uffe2\047\uffe2\050\uffe2\001\002" +
"\000\004\047\052\001\002\000\010\040\uffab\042\uffab\047" +
"\uffab\001\002\000\006\014\uffaa\015\uffaa\001\002\000\006" +
"\014\060\015\064\001\002\000\010\040\uffac\042\uffac\047" +
"\uffac\001\002\000\006\014\060\015\066\001\002\000\010" +
"\040\uffad\042\uffad\047\uffad\001\002\000\004\040\ufff9\001" +
"\002\000\020\002\ufff5\006\ufff5\007\ufff5\040\ufff5\047\ufff5" +
"\051\ufff5\052\ufff5\001\002\000\016\002\ufff2\006\ufff2\007" +
"\ufff2\047\ufff2\051\ufff2\052\ufff2\001\002\000\020\002\ufff7" +
"\006\ufff7\007\ufff7\040\103\047\ufff7\051\ufff7\052\ufff7\001" +
"\002\000\004\037\074\001\002\000\004\047\052\001\002" +
"\000\004\015\101\001\002\000\006\015\uffe3\047\052\001" +
"\002\000\004\015\100\001\002\000\020\002\ufff4\006\ufff4" +
"\007\ufff4\040\ufff4\047\ufff4\051\ufff4\052\ufff4\001\002\000" +
"\016\002\ufff8\006\ufff8\007\ufff8\047\ufff8\051\ufff8\052\ufff8" +
"\001\002\000\020\002\ufff6\006\ufff6\007\ufff6\040\ufff6\047" +
"\ufff6\051\ufff6\052\ufff6\001\002\000\004\037\104\001\002" +
"\000\004\047\052\001\002\000\004\047\052\001\002\000" +
"\016\002\ufffe\006\111\007\112\047\uffe9\051\110\052\107" +
"\001\002\000\004\047\uffea\001\002\000\004\047\uffeb\001" +
"\002\000\004\010\156\001\002\000\004\047\052\001\002" +
"\000\016\002\ufff3\006\ufff3\007\ufff3\047\ufff3\051\ufff3\052" +
"\ufff3\001\002\000\004\047\052\001\002\000\004\017\120" +
"\001\002\000\016\002\ufff1\006\ufff1\007\ufff1\047\ufff1\051" +
"\ufff1\052\ufff1\001\002\000\016\005\uffe3\010\uffe3\011\uffe3" +
"\014\uffe3\015\uffe3\017\uffe3\001\002\000\014\015\uffdc\020" +
"\uffdc\023\uffdc\047\uffdc\050\uffdc\001\002\000\006\015\140" +
"\020\137\001\002\000\010\011\uffe0\015\uffe0\020\uffe0\001" +
"\002\000\016\011\uffde\015\uffde\020\uffde\023\127\047\052" +
"\050\124\001\002\000\040\011\uff9b\015\uff9b\020\uff9b\021" +
"\uff9b\022\uff9b\023\uff9b\032\uff9b\033\uff9b\034\uff9b\035\uff9b" +
"\036\uff9b\040\uff9b\042\uff9b\047\uff9b\050\uff9b\001\002\000" +
"\016\011\uffda\015\uffda\020\uffda\023\uffda\047\uffda\050\uffda" +
"\001\002\000\020\011\uffd8\015\uffd8\016\132\020\uffd8\023" +
"\uffd8\047\uffd8\050\uffd8\001\002\000\004\047\052\001\002" +
"\000\016\011\uffdd\015\uffdd\020\uffdd\023\uffdd\047\uffdd\050" +
"\uffdd\001\002\000\010\011\uffdf\015\uffdf\020\uffdf\001\002" +
"\000\004\047\052\001\002\000\016\011\uffdb\015\uffdb\020" +
"\uffdb\023\uffdb\047\uffdb\050\uffdb\001\002\000\016\011\uffd7" +
"\015\uffd7\020\uffd7\023\uffd7\047\uffd7\050\uffd7\001\002\000" +
"\016\011\uffd9\015\uffd9\020\uffd9\023\uffd9\047\uffd9\050\uffd9" +
"\001\002\000\026\011\uffd6\012\uffd6\013\uffd6\015\uffd6\020" +
"\uffd6\023\uffd6\024\uffd6\025\uffd6\047\uffd6\050\uffd6\001\002" +
"\000\016\011\uffdc\015\uffdc\020\uffdc\023\uffdc\047\uffdc\050" +
"\uffdc\001\002\000\020\002\uffe4\006\uffe4\007\uffe4\011\uffe4" +
"\047\uffe4\051\uffe4\052\uffe4\001\002\000\010\011\uffe1\015" +
"\uffe1\020\uffe1\001\002\000\004\005\143\001\002\000\004" +
"\047\052\001\002\000\020\002\uffee\005\145\006\uffee\007" +
"\uffee\047\uffee\051\uffee\052\uffee\001\002\000\004\047\052" +
"\001\002\000\004\010\147\001\002\000\014\011\uffdc\020" +
"\uffdc\023\uffdc\047\uffdc\050\uffdc\001\002\000\006\011\151" +
"\020\137\001\002\000\020\002\uffe8\005\uffe8\006\uffe8\007" +
"\uffe8\047\uffe8\051\uffe8\052\uffe8\001\002\000\004\010\153" +
"\001\002\000\014\011\uffdc\020\uffdc\023\uffdc\047\uffdc\050" +
"\uffdc\001\002\000\006\011\155\020\137\001\002\000\020" +
"\002\uffe7\005\uffe7\006\uffe7\007\uffe7\047\uffe7\051\uffe7\052" +
"\uffe7\001\002\000\004\047\052\001\002\000\006\011\164" +
"\014\163\001\002\000\010\011\uffec\014\uffec\017\120\001" +
"\002\000\004\011\162\001\002\000\016\002\ufff0\006\ufff0" +
"\007\ufff0\047\ufff0\051\ufff0\052\ufff0\001\002\000\004\047" +
"\052\001\002\000\016\002\uffef\006\uffef\007\uffef\047\uffef" +
"\051\uffef\052\uffef\001\002\000\006\011\uffed\014\uffed\001" +
"\002\000\004\050\124\001\002\000\026\015\171\021\uffd2" +
"\022\uffd2\032\uffd2\033\uffd2\034\uffd2\035\uffd2\036\uffd2\040" +
"\uffd2\042\uffd2\001\002\000\024\021\uffbe\022\uffbe\032\uffbe" +
"\033\uffbe\034\uffbe\035\uffbe\036\uffbe\040\uffbe\042\uffbe\001" +
"\002\000\024\021\uffd3\022\uffd3\032\uffd3\033\uffd3\034\uffd3" +
"\035\uffd3\036\uffd3\040\uffd3\042\uffd3\001\002\000\004\050" +
"\124\001\002\000\026\015\171\021\uffd2\022\uffd2\032\uffd2" +
"\033\uffd2\034\uffd2\035\uffd2\036\uffd2\040\uffd2\042\uffd2\001" +
"\002\000\024\021\uffbf\022\uffbf\032\uffbf\033\uffbf\034\uffbf" +
"\035\uffbf\036\uffbf\040\uffbf\042\uffbf\001\002\000\016\021" +
"\uffbd\022\uffbd\034\uffbd\040\uffbd\042\uffbd\047\uffbd\001\002" +
"\000\020\012\uffa3\013\uffa3\015\uffa3\024\uffa3\025\uffa3\047" +
"\uffa3\050\uffa3\001\002\000\010\024\214\025\uffa0\047\uffa0" +
"\001\002\000\006\014\uffb4\015\uffb4\001\002\000\006\014" +
"\211\015\212\001\002\000\016\021\uffba\022\uffba\034\uffba" +
"\040\uffba\042\uffba\047\uffba\001\002\000\006\025\205\047" +
"\052\001\002\000\014\014\uff9e\015\uff9e\024\uffd6\025\uffd6" +
"\047\uffd6\001\002\000\004\026\210\001\002\000\016\021" +
"\uffbb\022\uffbb\034\uffbb\040\uffbb\042\uffbb\047\uffbb\001\002" +
"\000\006\014\uff9e\015\uff9e\001\002\000\006\025\uff9f\047" +
"\uff9f\001\002\000\004\047\052\001\002\000\016\021\uffb7" +
"\022\uffb7\034\uffb7\040\uffb7\042\uffb7\047\uffb7\001\002\000" +
"\006\014\uffb5\015\uffb5\001\002\000\004\047\052\001\002" +
"\000\020\012\uffa4\013\uffa4\015\uffa4\024\uffa4\025\uffa4\047" +
"\uffa4\050\uffa4\001\002\000\016\021\uffb8\022\uffb8\034\uffb8" +
"\040\uffb8\042\uffb8\047\uffb8\001\002\000\006\014\225\015" +
"\226\001\002\000\006\014\uffb2\015\uffb2\001\002\000\006" +
"\025\205\047\052\001\002\000\014\014\uff9d\015\uff9d\024" +
"\uffd6\025\uffd6\047\uffd6\001\002\000\016\021\uffb9\022\uffb9" +
"\034\uffb9\040\uffb9\042\uffb9\047\uffb9\001\002\000\006\014" +
"\uff9d\015\uff9d\001\002\000\004\047\052\001\002\000\016" +
"\021\uffb6\022\uffb6\034\uffb6\040\uffb6\042\uffb6\047\uffb6\001" +
"\002\000\006\014\uffb3\015\uffb3\001\002\000\004\047\uffd5" +
"\001\002\000\004\050\124\001\002\000\026\015\171\021" +
"\uffd2\022\uffd2\032\uffd2\033\uffd2\034\uffd2\035\uffd2\036\uffd2" +
"\040\uffd2\042\uffd2\001\002\000\024\021\uffc5\022\uffc5\032" +
"\uffc5\033\uffc5\034\uffc5\035\uffc5\036\uffc5\040\uffc5\042\uffc5" +
"\001\002\000\004\050\124\001\002\000\010\012\uffc2\013" +
"\uffc2\050\uffc2\001\002\000\010\012\237\013\241\050\124" +
"\001\002\000\004\047\052\001\002\000\026\015\171\021" +
"\uffd2\022\uffd2\032\uffd2\033\uffd2\034\uffd2\035\uffd2\036\uffd2" +
"\040\uffd2\042\uffd2\001\002\000\004\047\052\001\002\000" +
"\012\012\uffc0\013\uffc0\024\214\050\uffc0\001\002\000\024" +
"\021\uffc3\022\uffc3\032\uffc3\033\uffc3\034\uffc3\035\uffc3\036" +
"\uffc3\040\uffc3\042\uffc3\001\002\000\012\012\uffc1\013\uffc1" +
"\024\214\050\uffc1\001\002\000\026\015\171\021\uffd2\022" +
"\uffd2\032\uffd2\033\uffd2\034\uffd2\035\uffd2\036\uffd2\040\uffd2" +
"\042\uffd2\001\002\000\024\021\uffc4\022\uffc4\032\uffc4\033" +
"\uffc4\034\uffc4\035\uffc4\036\uffc4\040\uffc4\042\uffc4\001\002" +
"\000\006\015\uffa1\024\252\001\002\000\004\015\251\001" +
"\002\000\026\021\uffcc\022\uffcc\030\uffcc\032\uffcc\033\uffcc" +
"\034\uffcc\035\uffcc\036\uffcc\040\uffcc\042\uffcc\001\002\000" +
"\006\041\253\047\052\001\002\000\004\015\uffa2\001\002" +
"\000\030\021\ufffd\022\ufffd\027\ufffd\030\ufffd\032\ufffd\033" +
"\ufffd\034\ufffd\035\ufffd\036\ufffd\040\ufffd\042\ufffd\001\002" +
"\000\006\015\256\024\214\001\002\000\026\021\uffd0\022" +
"\uffd0\030\uffd0\032\uffd0\033\uffd0\034\uffd0\035\uffd0\036\uffd0" +
"\040\uffd0\042\uffd0\001\002\000\022\021\uffca\022\uffca\030" +
"\016\032\uffca\033\uffca\034\uffca\035\uffca\036\uffca\001\002" +
"\000\020\021\031\022\030\032\022\033\021\034\023\035" +
"\034\036\035\001\002\000\016\021\031\022\030\034\023" +
"\040\uffb0\042\045\047\uffb0\001\002\000\006\040\264\047" +
"\uffa5\001\002\000\004\047\052\001\002\000\004\037\265" +
"\001\002\000\004\047\052\001\002\000\004\015\267\001" +
"\002\000\004\047\uffa6\001\002\000\006\002\uffe5\047\uffe5" +
"\001\002\000\006\002\uffd1\047\052\001\002\000\006\002" +
"\uffe6\047\uffe6\001\002\000\004\002\001\001\002" });
/** Access to parse-action table. */
public short[][] action_table() {return _action_table;}
/** <code>reduce_goto</code> table. */
protected static final short[][] _reduce_table =
unpackFromStrings(new String[] {
"\000\271\000\014\016\003\017\006\020\010\022\011\050" +
"\004\001\001\000\002\001\001\000\004\061\256\001\001" +
"\000\010\021\135\047\175\053\254\001\001\000\002\001" +
"\001\000\002\001\001\000\002\001\001\000\004\050\012" +
"\001\001\000\004\061\013\001\001\000\006\052\014\065" +
"\016\001\001\000\002\001\001\000\012\021\135\047\175" +
"\051\247\053\246\001\001\000\024\007\031\010\017\011" +
"\024\012\023\013\036\014\026\063\032\064\035\073\025" +
"\001\001\000\002\001\001\000\004\021\234\001\001\000" +
"\002\001\001\000\002\001\001\000\002\001\001\000\020" +
"\021\221\047\175\053\176\055\220\056\217\060\216\072" +
"\215\001\001\000\002\001\001\000\002\001\001\000\002" +
"\001\001\000\020\021\203\047\175\053\176\055\202\057" +
"\177\062\200\071\201\001\001\000\002\001\001\000\006" +
"\011\024\073\174\001\001\000\002\001\001\000\002\001" +
"\001\000\012\015\043\031\040\067\042\070\037\001\001" +
"\000\002\001\001\000\002\001\001\000\010\032\070\033" +
"\067\034\071\001\001\000\002\001\001\000\004\015\045" +
"\001\001\000\002\001\001\000\002\001\001\000\002\001" +
"\001\000\014\021\056\042\052\045\054\046\053\066\064" +
"\001\001\000\014\021\056\042\052\045\054\046\053\066" +
"\062\001\001\000\014\021\056\042\052\045\054\046\053" +
"\066\055\001\001\000\002\001\001\000\002\001\001\000" +
"\002\001\001\000\002\001\001\000\002\001\001\000\002" +
"\001\001\000\012\021\056\042\052\045\061\046\053\001" +
"\001\000\002\001\001\000\002\001\001\000\002\001\001" +
"\000\002\001\001\000\002\001\001\000\002\001\001\000" +
"\002\001\001\000\002\001\001\000\004\025\105\001\001" +
"\000\004\033\101\001\001\000\002\001\001\000\006\021" +
"\075\041\074\001\001\000\002\001\001\000\004\021\076" +
"\001\001\000\002\001\001\000\002\001\001\000\002\001" +
"\001\000\002\001\001\000\002\001\001\000\004\021\104" +
"\001\001\000\004\021\076\001\001\000\006\003\113\036" +
"\112\001\001\000\002\001\001\000\002\001\001\000\002" +
"\001\001\000\006\021\116\041\141\001\001\000\002\001" +
"\001\000\010\021\116\037\115\041\114\001\001\000\002" +
"\001\001\000\002\001\001\000\002\001\001\000\010\005" +
"\121\026\122\027\120\001\001\000\002\001\001\000\002" +
"\001\001\000\012\004\127\021\056\024\124\042\125\001" +
"\001\000\002\001\001\000\002\001\001\000\004\044\132" +
"\001\001\000\010\021\056\042\052\046\130\001\001\000" +
"\002\001\001\000\002\001\001\000\010\021\135\043\134" +
"\047\133\001\001\000\002\001\001\000\002\001\001\000" +
"\002\001\001\000\002\001\001\000\006\005\140\026\122" +
"\001\001\000\002\001\001\000\002\001\001\000\004\030" +
"\143\001\001\000\006\021\116\041\151\001\001\000\002" +
"\001\001\000\006\021\116\041\145\001\001\000\002\001" +
"\001\000\010\005\121\026\122\027\147\001\001\000\002" +
"\001\001\000\002\001\001\000\002\001\001\000\010\005" +
"\121\026\122\027\153\001\001\000\002\001\001\000\002" +
"\001\001\000\012\021\116\035\156\037\160\041\157\001" +
"\001\000\002\001\001\000\002\001\001\000\002\001\001" +
"\000\002\001\001\000\006\021\116\041\164\001\001\000" +
"\002\001\001\000\002\001\001\000\004\024\166\001\001" +
"\000\004\006\167\001\001\000\002\001\001\000\002\001" +
"\001\000\004\024\172\001\001\000\004\006\173\001\001" +
"\000\002\001\001\000\002\001\001\000\002\001\001\000" +
"\002\001\001\000\002\001\001\000\002\001\001\000\002" +
"\001\001\000\012\021\206\057\177\062\200\071\205\001" +
"\001\000\002\001\001\000\002\001\001\000\002\001\001" +
"\000\002\001\001\000\002\001\001\000\006\021\206\057" +
"\212\001\001\000\002\001\001\000\002\001\001\000\006" +
"\021\135\047\214\001\001\000\002\001\001\000\002\001" +
"\001\000\002\001\001\000\002\001\001\000\012\021\223" +
"\056\217\060\216\072\222\001\001\000\002\001\001\000" +
"\002\001\001\000\002\001\001\000\006\021\223\056\226" +
"\001\001\000\002\001\001\000\002\001\001\000\002\001" +
"\001\000\004\024\231\001\001\000\004\006\232\001\001" +
"\000\002\001\001\000\004\024\244\001\001\000\004\023" +
"\235\001\001\000\004\024\237\001\001\000\010\021\135" +
"\047\175\053\243\001\001\000\004\006\242\001\001\000" +
"\010\021\135\047\175\053\241\001\001\000\002\001\001" +
"\000\002\001\001\000\002\001\001\000\004\006\245\001" +
"\001\000\002\001\001\000\002\001\001\000\002\001\001" +
"\000\002\001\001\000\006\021\135\047\214\001\001\000" +
"\002\001\001\000\002\001\001\000\002\001\001\000\002" +
"\001\001\000\006\052\014\065\257\001\001\000\022\007" +
"\031\010\017\011\024\012\023\013\036\014\026\063\260" +
"\073\025\001\001\000\014\011\024\015\043\067\042\070" +
"\261\073\174\001\001\000\004\054\262\001\001\000\012" +
"\021\116\037\267\040\270\041\114\001\001\000\002\001" +
"\001\000\006\021\116\041\265\001\001\000\002\001\001" +
"\000\002\001\001\000\002\001\001\000\010\021\116\037" +
"\271\041\114\001\001\000\002\001\001\000\002\001\001" +
"" });
/** Access to <code>reduce_goto</code> table. */
public short[][] reduce_table() {return _reduce_table;}
/** Instance of action encapsulation class. */
protected CUP$Parser$actions action_obj;
/** Action encapsulation object initializer. */
protected void init_actions()
{
action_obj = new CUP$Parser$actions(this);
}
/** Invoke a user supplied parse action. */
public java_cup.runtime.Symbol do_action(
int act_num,
java_cup.runtime.lr_parser parser,
java.util.Stack stack,
int top)
throws java.lang.Exception
{
/* call code in generated class */
return action_obj.CUP$Parser$do_action(act_num, parser, stack, top);
}
/** Indicates start state. */
public int start_state() {return 0;}
/** Indicates start production. */
public int start_production() {return 0;}
/** <code>EOF</code> Symbol index. */
public int EOF_sym() {return 0;}
/** <code>error</code> Symbol index. */
public int error_sym() {return 1;}
/** Scan to get the next Symbol. */
public java_cup.runtime.Symbol scan()
throws java.lang.Exception
{
return lexer.getToken().getSymbol();
}
private Lexer lexer;
private static String filename;
public static String getFilename() { return filename; }
public Parser (String fname, Lexer lex) {
this();
filename = fname;
lexer = lex;
}
public void syntax_error (Symbol cur_token)
{
Token tok = (Token) cur_token.value;
report_error (tok.getFilename () + ":" +
tok.getLineno () + ": syntax error: \"" +
tok.getValue () + "\" (" +
tok.getID () + ")", null);
System.exit (1);
}
public void report_fatal_error (String message, Object info) {
// stop parsing
done_parsing();
// use the normal error message reporting to put out the message
report_error(message, info);
System.exit(1);
}
private static Object program;
public static Object getProgramNode() { return program; }
public static void setProgramNode(Object n) { program = n; }
}
/** Cup generated class to encapsulate user supplied action code.*/
class CUP$Parser$actions {
private final Parser parser;
/** Constructor */
CUP$Parser$actions(Parser parser) {
this.parser = parser;
}
/** Method with the actual generated action code. */
public final java_cup.runtime.Symbol CUP$Parser$do_action(
int CUP$Parser$act_num,
java_cup.runtime.lr_parser CUP$Parser$parser,
java.util.Stack CUP$Parser$stack,
int CUP$Parser$top)
throws java.lang.Exception
{
/* Symbol object for return from actions */
java_cup.runtime.Symbol CUP$Parser$result;
/* select the action based on the action number */
switch (CUP$Parser$act_num)
{
/*. . . . . . . . . . . . . . . . . . . .*/
case 102: // code_str ::= CODE_STR
{
String RESULT = null;
int cleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
int cright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
Token c = (Token)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
RESULT = (String) c.getValue();
CUP$Parser$result = new java_cup.runtime.Symbol(18/*code_str*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 101: // id ::= ID
{
String RESULT = null;
int idleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
int idright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
Token id = (Token)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
RESULT = (String)id.getValue();
CUP$Parser$result = new java_cup.runtime.Symbol(15/*id*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 100: // new_non_term_id ::= id
{
String RESULT = null;
int idleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
int idright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
String id = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
RESULT = id;
CUP$Parser$result = new java_cup.runtime.Symbol(44/*new_non_term_id*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 99: // new_term_id ::= id
{
String RESULT = null;
int idleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
int idright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
String id = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
RESULT = id;
CUP$Parser$result = new java_cup.runtime.Symbol(45/*new_term_id*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 98: // type_id ::= type_id LBRACK RBRACK
{
String RESULT = null;
int t_idleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left;
int t_idright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right;
String t_id = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value;
RESULT = t_id + "[]";
CUP$Parser$result = new java_cup.runtime.Symbol(43/*type_id*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 97: // type_id ::= multipart_id
{
String RESULT = null;
int m_idleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
int m_idright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
String m_id = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
RESULT = m_id;
CUP$Parser$result = new java_cup.runtime.Symbol(43/*type_id*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 96: // import_id ::= multipart_id
{
String RESULT = null;
int m_idleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
int m_idright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
String m_id = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
RESULT = m_id;
CUP$Parser$result = new java_cup.runtime.Symbol(39/*import_id*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 95: // import_id ::= multipart_id DOT STAR
{
String RESULT = null;
int m_idleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left;
int m_idright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right;
String m_id = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value;
RESULT = m_id + ".*";
CUP$Parser$result = new java_cup.runtime.Symbol(39/*import_id*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 94: // multipart_id ::= robust_id
{
String RESULT = null;
int r_idleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
int r_idright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
String r_id = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
RESULT = r_id;
CUP$Parser$result = new java_cup.runtime.Symbol(41/*multipart_id*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 93: // multipart_id ::= multipart_id DOT robust_id
{
String RESULT = null;
int m_idleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left;
int m_idright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right;
String m_id = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value;
int r_idleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
int r_idright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
String r_id = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
RESULT = m_id + "." + r_id;
CUP$Parser$result = new java_cup.runtime.Symbol(41/*multipart_id*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 92: // start_spec ::=
{
String RESULT = null;
RESULT = null;
CUP$Parser$result = new java_cup.runtime.Symbol(42/*start_spec*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 91: // start_spec ::= START WITH nt_id SEMI
{
String RESULT = null;
int start_nameleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
int start_nameright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
String start_name = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
RESULT = start_name;
CUP$Parser$result = new java_cup.runtime.Symbol(42/*start_spec*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 90: // term_id ::= symbol_id
{
String RESULT = null;
int symleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
int symright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
String sym = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
RESULT = sym;
CUP$Parser$result = new java_cup.runtime.Symbol(36/*term_id*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 89: // terminal_id ::= term_id
{
String RESULT = null;
int symleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
int symright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
String sym = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
RESULT = sym;
CUP$Parser$result = new java_cup.runtime.Symbol(35/*terminal_id*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 88: // terminal_list ::= terminal_id
{
Vector RESULT = null;
int tleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
int tright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
String t = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
Vector t_list = new Vector();
t_list.addElement(t);
RESULT = t_list;
CUP$Parser$result = new java_cup.runtime.Symbol(52/*terminal_list*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 87: // terminal_list ::= terminal_list COMMA terminal_id
{
Vector RESULT = null;
int t_listleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left;
int t_listright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right;
Vector t_list = (Vector)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value;
int tleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
int tright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
String t = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
t_list.addElement(t);
RESULT = t_list;
CUP$Parser$result = new java_cup.runtime.Symbol(52/*terminal_list*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 86: // preced ::= PRECEDENCE NONASSOC terminal_list SEMI
{
Object RESULT = null;
int t_listleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
int t_listright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
Vector t_list = (Vector)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
RESULT = new Precedence(Precedence.NONASSOC, t_list);
CUP$Parser$result = new java_cup.runtime.Symbol(11/*preced*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 85: // preced ::= PRECEDENCE RIGHT terminal_list SEMI
{
Object RESULT = null;
int t_listleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
int t_listright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
Vector t_list = (Vector)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
RESULT = new Precedence(Precedence.RIGHT, t_list);
CUP$Parser$result = new java_cup.runtime.Symbol(11/*preced*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 84: // preced ::= PRECEDENCE LEFT terminal_list SEMI
{
Object RESULT = null;
int t_listleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
int t_listright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
Vector t_list = (Vector)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
RESULT = new Precedence(Precedence.LEFT, t_list);
CUP$Parser$result = new java_cup.runtime.Symbol(11/*preced*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 83: // precedence_l ::= preced
{
Vector RESULT = null;
int pleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
int pright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
Object p = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
Vector p_l = new Vector();
p_l.addElement(p);
RESULT = p_l;
CUP$Parser$result = new java_cup.runtime.Symbol(53/*precedence_l*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 82: // precedence_l ::= precedence_l preced
{
Vector RESULT = null;
int p_lleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
int p_lright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
Vector p_l = (Vector)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
int pleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
int pright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
Object p = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
p_l.addElement(p);
RESULT = p_l;
CUP$Parser$result = new java_cup.runtime.Symbol(53/*precedence_l*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 81: // precedence_list ::=
{
Vector RESULT = null;
RESULT = new Vector();
CUP$Parser$result = new java_cup.runtime.Symbol(54/*precedence_list*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 80: // precedence_list ::= precedence_l
{
Vector RESULT = null;
int p_lleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
int p_lright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
Vector p_l = (Vector)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
RESULT = p_l;
CUP$Parser$result = new java_cup.runtime.Symbol(54/*precedence_list*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 79: // non_term_name_list ::= new_non_term_id
{
Vector RESULT = null;
int n_idleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
int n_idright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
String n_id = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
Vector nnt_list = new Vector();
nnt_list.addElement(n_id);
RESULT = nnt_list;
CUP$Parser$result = new java_cup.runtime.Symbol(46/*non_term_name_list*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 78: // non_term_name_list ::= non_term_name_list COMMA new_non_term_id
{
Vector RESULT = null;
int ntn_listleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left;
int ntn_listright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right;
Vector ntn_list = (Vector)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value;
int n_idleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
int n_idright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
String n_id = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
ntn_list.addElement(n_id);
RESULT = ntn_list;
CUP$Parser$result = new java_cup.runtime.Symbol(46/*non_term_name_list*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 77: // term_name_list ::= new_term_id
{
Vector RESULT = null;
int n_idleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
int n_idright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
String n_id = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
Vector tn_list = new Vector();
tn_list.addElement(n_id);
RESULT = tn_list;
CUP$Parser$result = new java_cup.runtime.Symbol(48/*term_name_list*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 76: // term_name_list ::= term_name_list COMMA new_term_id
{
Vector RESULT = null;
int tn_listleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left;
int tn_listright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right;
Vector tn_list = (Vector)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value;
int n_idleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
int n_idright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
String n_id = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
tn_list.addElement(n_id);
RESULT = tn_list;
CUP$Parser$result = new java_cup.runtime.Symbol(48/*term_name_list*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 75: // declares_non_term ::= non_term_name_list SEMI
{
Vector RESULT = null;
int ntn_listleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
int ntn_listright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
Vector ntn_list = (Vector)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
RESULT = ntn_list;
CUP$Parser$result = new java_cup.runtime.Symbol(56/*declares_non_term*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 74: // declares_term ::= term_name_list SEMI
{
Vector RESULT = null;
int tn_listleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
int tn_listright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
Vector tn_list = (Vector)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
RESULT = tn_list;
CUP$Parser$result = new java_cup.runtime.Symbol(55/*declares_term*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 73: // symbol ::= non_terminal declares_non_term
{
SymbolList RESULT = null;
int non_termleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
int non_termright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
Vector non_term = (Vector)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
RESULT = new SymbolList(SymbolList.NONTERMINAL, null, non_term);
CUP$Parser$result = new java_cup.runtime.Symbol(57/*symbol*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 72: // symbol ::= non_terminal type_id declares_non_term
{
SymbolList RESULT = null;
int typeleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
int typeright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
String type = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
int non_termleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
int non_termright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
Vector non_term = (Vector)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
RESULT = new SymbolList(SymbolList.NONTERMINAL, type, non_term);
CUP$Parser$result = new java_cup.runtime.Symbol(57/*symbol*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 71: // symbol ::= TERMINAL declares_term
{
SymbolList RESULT = null;
int termleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
int termright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
Vector term = (Vector)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
RESULT = new SymbolList(SymbolList.TERMINAL, null, term);
CUP$Parser$result = new java_cup.runtime.Symbol(57/*symbol*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 70: // symbol ::= TERMINAL type_id declares_term
{
SymbolList RESULT = null;
int typeleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
int typeright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
String type = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
int termleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
int termright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
Vector term = (Vector)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
RESULT = new SymbolList(SymbolList.TERMINAL, type, term);
CUP$Parser$result = new java_cup.runtime.Symbol(57/*symbol*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 69: // symbol_list ::= symbol
{
Vector RESULT = null;
int sleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
int sright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
SymbolList s = (SymbolList)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
Vector s_list = new Vector();
s_list.addElement(s);
RESULT = s_list;
CUP$Parser$result = new java_cup.runtime.Symbol(49/*symbol_list*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 68: // symbol_list ::= symbol_list symbol
{
Vector RESULT = null;
int s_listleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
int s_listright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
Vector s_list = (Vector)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
int sleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
int sright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
SymbolList s = (SymbolList)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
s_list.addElement(s);
RESULT = s_list;
CUP$Parser$result = new java_cup.runtime.Symbol(49/*symbol_list*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 67: // scan_code ::= SCAN WITH code_str opt_semi
{
Object RESULT = null;
int user_codeleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
int user_coderight = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
String user_code = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
RESULT = new ScanCode(user_code);
CUP$Parser$result = new java_cup.runtime.Symbol(10/*scan_code*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 66: // init_code ::= INIT WITH code_str opt_semi
{
Object RESULT = null;
int user_codeleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
int user_coderight = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
String user_code = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
RESULT = new InitCode(user_code);
CUP$Parser$result = new java_cup.runtime.Symbol(9/*init_code*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 65: // extendsimpls ::= extendsimpls IMPLEMENTS multipart_id
{
String RESULT = null;
int eleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left;
int eright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right;
String e = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value;
int qidleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
int qidright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
String qid = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
RESULT = e + " implements " + qid;
CUP$Parser$result = new java_cup.runtime.Symbol(17/*extendsimpls*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 64: // extendsimpls ::= extendsimpls EXTENDS multipart_id
{
String RESULT = null;
int eleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left;
int eright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right;
String e = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value;
int qidleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
int qidright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
String qid = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
RESULT = e + " extends " + qid;
CUP$Parser$result = new java_cup.runtime.Symbol(17/*extendsimpls*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 63: // extendsimpls ::=
{
String RESULT = null;
RESULT = "";
CUP$Parser$result = new java_cup.runtime.Symbol(17/*extendsimpls*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 62: // parser_code_part ::= PARSER id extendsimpls code_str opt_semi
{
Object RESULT = null;
int classnameleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).left;
int classnameright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).right;
String classname = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-3)).value;
int eileft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left;
int eiright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right;
String ei = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value;
int user_codeleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
int user_coderight = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
String user_code = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
RESULT = new ParserCode(classname, ei, user_code);
CUP$Parser$result = new java_cup.runtime.Symbol(8/*parser_code_part*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-4)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 61: // parser_code_part ::= PARSER CODE code_str opt_semi
{
Object RESULT = null;
int user_codeleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
int user_coderight = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
String user_code = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
RESULT = new ParserCode(null, "", user_code);
CUP$Parser$result = new java_cup.runtime.Symbol(8/*parser_code_part*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 60: // action_code_part ::= ACTION CODE code_str opt_semi
{
Object RESULT = null;
int user_codeleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
int user_coderight = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
String user_code = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
RESULT = new ActionCode(user_code);
CUP$Parser$result = new java_cup.runtime.Symbol(5/*action_code_part*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 59: // code_part ::= scan_code
{
Object RESULT = null;
int sleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
int sright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
Object s = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
RESULT = s;
CUP$Parser$result = new java_cup.runtime.Symbol(6/*code_part*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 58: // code_part ::= init_code
{
Object RESULT = null;
int ileft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
int iright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
Object i = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
RESULT = i;
CUP$Parser$result = new java_cup.runtime.Symbol(6/*code_part*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 57: // code_part ::= parser_code_part
{
Object RESULT = null;
int pleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
int pright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
Object p = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
RESULT = p;
CUP$Parser$result = new java_cup.runtime.Symbol(6/*code_part*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 56: // code_part ::= action_code_part
{
Object RESULT = null;
int aleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
int aright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
Object a = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
RESULT = a;
CUP$Parser$result = new java_cup.runtime.Symbol(6/*code_part*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 55: // code_parts ::=
{
Vector RESULT = null;
RESULT = new Vector();
CUP$Parser$result = new java_cup.runtime.Symbol(51/*code_parts*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 54: // code_parts ::= code_parts code_part
{
Vector RESULT = null;
int c_partsleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
int c_partsright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
Vector c_parts = (Vector)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
int cleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
int cright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
Object c = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
c_parts.addElement(c);
RESULT = c_parts;
CUP$Parser$result = new java_cup.runtime.Symbol(51/*code_parts*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 53: // import_spec ::= IMPORT import_id SEMI
{
String RESULT = null;
int ileft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
int iright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
String i = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
RESULT = i;
CUP$Parser$result = new java_cup.runtime.Symbol(40/*import_spec*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 52: // import_list ::=
{
Vector RESULT = null;
RESULT = new Vector();
CUP$Parser$result = new java_cup.runtime.Symbol(47/*import_list*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 51: // import_list ::= import_list import_spec
{
Vector RESULT = null;
int i_listleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
int i_listright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
Vector i_list = (Vector)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
int ileft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
int iright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
String i = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
i_list.addElement(i);
RESULT = i_list;
CUP$Parser$result = new java_cup.runtime.Symbol(47/*import_list*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 50: // package_spec ::=
{
String RESULT = null;
RESULT = null;
CUP$Parser$result = new java_cup.runtime.Symbol(38/*package_spec*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 49: // package_spec ::= PACKAGE multipart_id SEMI
{
String RESULT = null;
int m_idleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
int m_idright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
String m_id = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
RESULT = m_id;
CUP$Parser$result = new java_cup.runtime.Symbol(38/*package_spec*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 48: // cup_spec ::= package_spec import_list code_parts symbol_list precedence_list start_spec production_list
{
Spec RESULT = null;
int pkgleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-6)).left;
int pkgright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-6)).right;
String pkg = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-6)).value;
int impleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-5)).left;
int impright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-5)).right;
Vector imp = (Vector)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-5)).value;
int codeleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-4)).left;
int coderight = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-4)).right;
Vector code = (Vector)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-4)).value;
int sym_listleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).left;
int sym_listright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).right;
Vector sym_list = (Vector)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-3)).value;
int prec_listleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left;
int prec_listright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right;
Vector prec_list = (Vector)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value;
int startleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
int startright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
String start = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
int prod_listleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
int prod_listright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
Vector prod_list = (Vector)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
RESULT = new CUPSpec(pkg, imp, code, sym_list, prec_list, start, prod_list);
CUP$Parser$result = new java_cup.runtime.Symbol(14/*cup_spec*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-6)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 47: // opt_semi ::=
{
Object RESULT = null;
CUP$Parser$result = new java_cup.runtime.Symbol(4/*opt_semi*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 46: // opt_semi ::= SEMI
{
Object RESULT = null;
CUP$Parser$result = new java_cup.runtime.Symbol(4/*opt_semi*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 45: // non_terminal ::= NONTERMINAL
{
Object RESULT = null;
CUP$Parser$result = new java_cup.runtime.Symbol(7/*non_terminal*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 44: // non_terminal ::= NON TERMINAL
{
Object RESULT = null;
CUP$Parser$result = new java_cup.runtime.Symbol(7/*non_terminal*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 43: // robust_id ::= id
{
String RESULT = null;
int idleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
int idright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
String id = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
RESULT = id;
CUP$Parser$result = new java_cup.runtime.Symbol(37/*robust_id*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 42: // label_id ::= robust_id
{
String RESULT = null;
int the_idleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
int the_idright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
String the_id = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
RESULT = the_id;
CUP$Parser$result = new java_cup.runtime.Symbol(33/*label_id*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 41: // opt_label ::=
{
String RESULT = null;
RESULT = null;
CUP$Parser$result = new java_cup.runtime.Symbol(34/*opt_label*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 40: // opt_label ::= COLON label_id
{
String RESULT = null;
int labidleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
int labidright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
String labid = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
RESULT = labid;
CUP$Parser$result = new java_cup.runtime.Symbol(34/*opt_label*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 39: // prod_part ::= code_str
{
Object RESULT = null;
int code_strleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
int code_strright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
String code_str = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
RESULT = new SemanticAction(code_str);
CUP$Parser$result = new java_cup.runtime.Symbol(2/*prod_part*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 38: // prod_part ::= symbol_id opt_label
{
Object RESULT = null;
int symidleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
int symidright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
String symid = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
int labidleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
int labidright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
String labid = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
RESULT = new Nonterminal(symid, labid);
CUP$Parser$result = new java_cup.runtime.Symbol(2/*prod_part*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 37: // prod_part_list ::=
{
Vector RESULT = null;
RESULT = new Vector();
CUP$Parser$result = new java_cup.runtime.Symbol(20/*prod_part_list*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 36: // prod_part_list ::= prod_part_list prod_part
{
Vector RESULT = null;
int aleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
int aright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
Vector a = (Vector)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
int bleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
int bright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
Object b = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
/* Vector a, (non)terminal/code b */
a.addElement(b); RESULT = a;
CUP$Parser$result = new java_cup.runtime.Symbol(20/*prod_part_list*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 35: // rhs ::= prod_part_list
{
Object RESULT = null;
int pleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
int pright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
Vector p = (Vector)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
RESULT = p;
CUP$Parser$result = new java_cup.runtime.Symbol(3/*rhs*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 34: // rhs ::= prod_part_list PERCENT_PREC term_id
{
Object RESULT = null;
int pleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left;
int pright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right;
Vector p = (Vector)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value;
int term_nameleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
int term_nameright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
String term_name = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
p.add(new PrecedenceModifier(term_name));
RESULT = p;
CUP$Parser$result = new java_cup.runtime.Symbol(3/*rhs*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 33: // rhs_list ::= rhs
{
Vector RESULT = null;
int rleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
int rright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
Object r = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
Vector r_list = new Vector();
r_list.addElement(r);
RESULT = r_list;
CUP$Parser$result = new java_cup.runtime.Symbol(21/*rhs_list*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 32: // rhs_list ::= rhs_list BAR rhs
{
Vector RESULT = null;
int r_listleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left;
int r_listright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right;
Vector r_list = (Vector)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value;
int rleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
int rright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
Object r = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
r_list.addElement(r);
RESULT = r_list;
CUP$Parser$result = new java_cup.runtime.Symbol(21/*rhs_list*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 31: // symbol_id ::= id
{
String RESULT = null;
int idleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
int idright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
String id = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
RESULT = id;
CUP$Parser$result = new java_cup.runtime.Symbol(32/*symbol_id*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 30: // nt_id ::= id
{
String RESULT = null;
int idleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
int idright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
String id = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
RESULT = id;
CUP$Parser$result = new java_cup.runtime.Symbol(31/*nt_id*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 29: // production ::= nt_id COLON_COLON_EQUALS rhs_list SEMI
{
Production RESULT = null;
int lhs_idleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).left;
int lhs_idright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).right;
String lhs_id = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-3)).value;
int rhsleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
int rhsright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
Vector rhs = (Vector)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
RESULT = new Production(new Nonterminal(lhs_id), rhs);
CUP$Parser$result = new java_cup.runtime.Symbol(29/*production*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 28: // production_list ::= production
{
Vector RESULT = null;
int pleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
int pright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
Production p = (Production)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
Vector p_list = new Vector();
p_list.addElement(p);
RESULT = p_list;
CUP$Parser$result = new java_cup.runtime.Symbol(30/*production_list*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 27: // production_list ::= production_list production
{
Vector RESULT = null;
int p_listleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
int p_listright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
Vector p_list = (Vector)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
int pleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
int pright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
Production p = (Production)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
p_list.addElement(p);
RESULT = p_list;
CUP$Parser$result = new java_cup.runtime.Symbol(30/*production_list*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 26: // transfer_list ::= TO nt_id LBRACE rhs_list RBRACE
{
Vector RESULT = null;
int ntleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).left;
int ntright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).right;
String nt = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-3)).value;
int rhsleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
int rhsright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
Vector rhs = (Vector)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
Vector v = new Vector();
Production p = new Production(new Nonterminal(nt), rhs);
v.addElement(p);
RESULT = v;
CUP$Parser$result = new java_cup.runtime.Symbol(22/*transfer_list*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-4)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 25: // transfer_list ::= transfer_list TO nt_id LBRACE rhs_list RBRACE
{
Vector RESULT = null;
int tlleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-5)).left;
int tlright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-5)).right;
Vector tl = (Vector)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-5)).value;
int ntleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).left;
int ntright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).right;
String nt = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-3)).value;
int rhsleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
int rhsright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
Vector rhs = (Vector)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
Production p = new Production(new Nonterminal(nt), rhs);
tl.addElement(p);
RESULT = tl;
CUP$Parser$result = new java_cup.runtime.Symbol(22/*transfer_list*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-5)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 24: // prod_modifier_opt ::=
{
Object RESULT = null;
RESULT = null;
CUP$Parser$result = new java_cup.runtime.Symbol(1/*prod_modifier_opt*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 23: // prod_modifier_opt ::= OVERRIDE
{
Object RESULT = null;
int aleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
int aright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
Token a = (Token)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
RESULT = (String)a.getValue();
CUP$Parser$result = new java_cup.runtime.Symbol(1/*prod_modifier_opt*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 22: // prod_modifier_opt ::= EXTEND
{
Object RESULT = null;
int aleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
int aright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
Token a = (Token)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
RESULT = (String)a.getValue();
CUP$Parser$result = new java_cup.runtime.Symbol(1/*prod_modifier_opt*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 21: // nt_id_list ::= nt_id
{
Vector RESULT = null;
int idleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
int idright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
String id = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
Vector list = new Vector();
list.addElement(id);
RESULT = list;
CUP$Parser$result = new java_cup.runtime.Symbol(27/*nt_id_list*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 20: // nt_id_list ::= nt_id_list COMMA nt_id
{
Vector RESULT = null;
int listleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left;
int listright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right;
Vector list = (Vector)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value;
int idleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
int idright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
String id = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
list.addElement(id);
RESULT = list;
CUP$Parser$result = new java_cup.runtime.Symbol(27/*nt_id_list*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 19: // command ::= TRANSFER nt_id transfer_list
{
Command RESULT = null;
int ntleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
int ntright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
String nt = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
int tlistleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
int tlistright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
Vector tlist = (Vector)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
RESULT = new TransferCmd(nt, tlist);
CUP$Parser$result = new java_cup.runtime.Symbol(28/*command*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 18: // command ::= DROP LBRACE nt_id_list RBRACE
{
Command RESULT = null;
int nt_listleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
int nt_listright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
Vector nt_list = (Vector)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
RESULT = new DropCmd(nt_list);
CUP$Parser$result = new java_cup.runtime.Symbol(28/*command*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 17: // command ::= DROP LBRACE production RBRACE
{
Command RESULT = null;
int pleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
int pright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
Production p = (Production)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
RESULT = new DropCmd(p);
CUP$Parser$result = new java_cup.runtime.Symbol(28/*command*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 16: // command ::= prod_modifier_opt production
{
Command RESULT = null;
int modleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
int modright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
Object mod = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
int pleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
int pright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
Production p = (Production)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
if (mod == null) {
/* no modifier, new command */
RESULT = new NewProdCmd(p);
} else if (mod.equals("extend")) {
RESULT = new ExtendCmd(p);
} else /* if (mod.equals("override")) */ {
RESULT = new OverrideCmd(p);
}
CUP$Parser$result = new java_cup.runtime.Symbol(28/*command*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 15: // command_list_opt ::=
{
Vector RESULT = null;
RESULT = new Vector();
CUP$Parser$result = new java_cup.runtime.Symbol(19/*command_list_opt*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 14: // command_list_opt ::= command_list_opt command
{
Vector RESULT = null;
int bleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
int bright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
Vector b = (Vector)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
int aleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
int aright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
Command a = (Command)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
/* b = Vector, a = command; */
b.addElement(a);
RESULT = b;
CUP$Parser$result = new java_cup.runtime.Symbol(19/*command_list_opt*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 13: // ppg_start_spec_elt ::= START WITH id id SEMI
{
Vector RESULT = null;
int startleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left;
int startright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right;
String start = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value;
int methodleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
int methodright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
String method = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
Vector m = new Vector();
m.addElement(start);
m.addElement(method);
RESULT = m;
CUP$Parser$result = new java_cup.runtime.Symbol(25/*ppg_start_spec_elt*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-4)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 12: // ppg_start_spec_list ::= ppg_start_spec_elt
{
Vector RESULT = null;
int eltleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
int eltright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
Vector elt = (Vector)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
RESULT = elt;
CUP$Parser$result = new java_cup.runtime.Symbol(26/*ppg_start_spec_list*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 11: // ppg_start_spec_list ::= ppg_start_spec_list ppg_start_spec_elt
{
Vector RESULT = null;
int listleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
int listright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
Vector list = (Vector)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
int eltleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
int eltright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
Vector elt = (Vector)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
list.addAll(elt);
RESULT = list;
CUP$Parser$result = new java_cup.runtime.Symbol(26/*ppg_start_spec_list*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 10: // ppg_start_spec ::= ppg_start_spec_list
{
Vector RESULT = null;
int mleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
int mright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
Vector m = (Vector)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
RESULT = m;
CUP$Parser$result = new java_cup.runtime.Symbol(24/*ppg_start_spec*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 9: // ppg_start_spec ::= START WITH nt_id SEMI
{
Vector RESULT = null;
int startleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
int startright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
String start = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
Vector v = new Vector();
v.addElement(start);
RESULT = v;
CUP$Parser$result = new java_cup.runtime.Symbol(24/*ppg_start_spec*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 8: // ppg_precedence_list ::= PRECEDENCE SEMI
{
Vector RESULT = null;
RESULT = null;
CUP$Parser$result = new java_cup.runtime.Symbol(23/*ppg_precedence_list*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 7: // ppg_precedence_list ::= precedence_list
{
Vector RESULT = null;
int p_lleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
int p_lright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
Vector p_l = (Vector)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
RESULT = p_l;
CUP$Parser$result = new java_cup.runtime.Symbol(23/*ppg_precedence_list*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 6: // symbol_list_opt ::=
{
Vector RESULT = null;
RESULT = null;
CUP$Parser$result = new java_cup.runtime.Symbol(50/*symbol_list_opt*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 5: // symbol_list_opt ::= symbol_list
{
Vector RESULT = null;
int sym_listleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
int sym_listright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
Vector sym_list = (Vector)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
RESULT = sym_list;
CUP$Parser$result = new java_cup.runtime.Symbol(50/*symbol_list_opt*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 4: // include_spec ::= INCLUDE STRING_CONST
{
String RESULT = null;
int aleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
int aright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
Token a = (Token)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
RESULT = (String)a.getValue();
CUP$Parser$result = new java_cup.runtime.Symbol(16/*include_spec*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 3: // ppg_spec ::= include_spec package_spec import_list code_parts symbol_list_opt ppg_precedence_list ppg_start_spec command_list_opt
{
Spec RESULT = null;
int incleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-7)).left;
int incright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-7)).right;
String inc = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-7)).value;
int pkgleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-6)).left;
int pkgright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-6)).right;
String pkg = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-6)).value;
int impleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-5)).left;
int impright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-5)).right;
Vector imp = (Vector)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-5)).value;
int codeleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-4)).left;
int coderight = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-4)).right;
Vector code = (Vector)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-4)).value;
int sym_listleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).left;
int sym_listright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).right;
Vector sym_list = (Vector)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-3)).value;
int prec_listleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left;
int prec_listright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right;
Vector prec_list = (Vector)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value;
int startleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
int startright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
Vector start = (Vector)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
int cmd_listleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
int cmd_listright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
Vector cmd_list = (Vector)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
RESULT = new PPGSpec(inc, pkg, imp, code, sym_list,
prec_list, start, cmd_list);
CUP$Parser$result = new java_cup.runtime.Symbol(13/*ppg_spec*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-7)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 2: // spec ::= cup_spec
{
Spec RESULT = null;
int sleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
int sright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
Spec s = (Spec)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
Parser.setProgramNode(s);
CUP$Parser$result = new java_cup.runtime.Symbol(12/*spec*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 1: // spec ::= ppg_spec
{
Spec RESULT = null;
int sleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
int sright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
Spec s = (Spec)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
Parser.setProgramNode(s);
CUP$Parser$result = new java_cup.runtime.Symbol(12/*spec*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 0: // $START ::= spec EOF
{
Object RESULT = null;
int start_valleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
int start_valright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
Spec start_val = (Spec)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
RESULT = start_val;
CUP$Parser$result = new java_cup.runtime.Symbol(0/*$START*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
}
/* ACCEPT */
CUP$Parser$parser.done_parsing();
return CUP$Parser$result;
default:
{
throw new Exception(
"Invalid action number found in internal parse table");
}
}
}
}