//----------------------------------------------------
// The following code was generated by CUP v0.10k
// Tue May 01 09:07:24 NZST 2007
//----------------------------------------------------
package grammar;
import java.io.*;
import java.util.*;
import java_cup.runtime.*;
import type.*;
import node.*;
import node.stmtNode.*;
import node.stmtNode.elseOptNode.*;
import node.typeNode.*;
import node.typeNode.basicTypeNode.*;
import node.declNode.*;
import node.declNode.declaratorNode.*;
import node.exprNode.*;
import node.exprNode.castNode.*;
import node.exprNode.prefixNode.*;
import node.exprNode.postfixNode.*;
import node.exprNode.valueNode.*;
import node.exprNode.primaryNode.*;
import node.exprNode.binaryNode.*;
import node.exprNode.binaryNode.arithNode.*;
import node.exprNode.binaryNode.relationNode.*;
import node.exprNode.binaryNode.boolNode.*;
import node.exprNode.variableNode.*;
import node.exprNode.methodNameNode.*;
import text.*;
import env.*;
/** CUP v0.10k generated parser.
* @version Tue May 01 09:07:24 NZST 2007
*/
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\161\000\002\002\004\000\002\012\004\000\002\012" +
"\002\000\002\014\004\000\002\014\002\000\002\013\004" +
"\000\002\013\002\000\002\015\004\000\002\015\003\000" +
"\002\015\002\000\002\016\004\000\002\016\002\000\002" +
"\017\003\000\002\017\003\000\002\017\003\000\002\021" +
"\003\000\002\021\003\000\002\020\003\000\002\020\003" +
"\000\002\020\003\000\002\020\003\000\002\022\010\000" +
"\002\031\004\000\002\031\002\000\002\023\010\000\002" +
"\023\010\000\002\011\005\000\002\011\003\000\002\024" +
"\005\000\002\025\005\000\002\026\005\000\002\027\005" +
"\000\002\003\003\000\002\003\003\000\002\003\003\000" +
"\002\003\003\000\002\004\003\000\002\004\003\000\002" +
"\005\003\000\002\006\006\000\002\007\004\000\002\010" +
"\003\000\002\010\003\000\002\010\003\000\002\032\005" +
"\000\002\032\003\000\002\033\005\000\002\033\003\000" +
"\002\034\003\000\002\034\005\000\002\030\003\000\002" +
"\030\004\000\002\030\010\000\002\030\007\000\002\030" +
"\010\000\002\030\013\000\002\030\004\000\002\030\005" +
"\000\002\030\004\000\002\030\004\000\002\035\002\000" +
"\002\035\004\000\002\035\007\000\002\036\003\000\002" +
"\036\002\000\002\037\005\000\002\037\003\000\002\040" +
"\003\000\002\041\005\000\002\041\003\000\002\042\005" +
"\000\002\042\003\000\002\043\005\000\002\043\003\000" +
"\002\044\005\000\002\044\005\000\002\044\005\000\002" +
"\044\005\000\002\044\005\000\002\044\005\000\002\044" +
"\003\000\002\045\005\000\002\045\005\000\002\045\003" +
"\000\002\046\005\000\002\046\005\000\002\046\005\000" +
"\002\046\003\000\002\047\004\000\002\047\004\000\002" +
"\047\006\000\002\047\004\000\002\047\004\000\002\047" +
"\004\000\002\047\003\000\002\050\004\000\002\050\004" +
"\000\002\050\003\000\002\051\005\000\002\051\003\000" +
"\002\051\003\000\002\051\003\000\002\051\006\000\002" +
"\053\003\000\002\053\005\000\002\052\003\000\002\052" +
"\003\000\002\052\003\000\002\052\003\000\002\054\003" +
"\000\002\054\006\000\002\054\005\000\002\054\004" });
/** Access to production table. */
public short[][] production_table() {return _production_table;}
/** Parse-action table. */
protected static final short[][] _action_table =
unpackFromStrings(new String[] {
"\000\314\000\070\002\uffff\003\uffff\004\uffff\010\uffff\012" +
"\uffff\015\uffff\024\uffff\033\uffff\034\uffff\035\uffff\036\uffff" +
"\037\uffff\043\uffff\044\uffff\045\uffff\046\uffff\050\uffff\051" +
"\uffff\052\uffff\053\uffff\054\uffff\055\uffff\057\uffff\061\uffff" +
"\062\uffff\063\uffff\064\uffff\001\002\000\070\002\047\003" +
"\052\004\041\010\046\012\023\015\021\024\024\033\034" +
"\034\066\035\042\036\044\037\037\043\063\044\071\045" +
"\017\046\051\050\054\051\015\052\007\053\027\054\056" +
"\055\032\057\043\061\011\062\053\063\006\064\055\001" +
"\002\000\070\002\ufff4\003\ufff4\004\ufff4\010\ufff4\012\ufff4" +
"\015\ufff4\024\ufff4\033\ufff4\034\ufff4\035\ufff4\036\ufff4\037" +
"\ufff4\043\ufff4\044\ufff4\045\ufff4\046\ufff4\050\ufff4\051\ufff4" +
"\052\ufff4\053\ufff4\054\ufff4\055\ufff4\057\ufff4\061\ufff4\062" +
"\ufff4\063\ufff4\064\ufff4\001\002\000\056\005\uff96\011\uff96" +
"\012\uff96\013\uff96\014\uff96\015\uff96\016\uff96\017\uff96\020" +
"\uff96\022\uff96\023\uff96\025\uff96\026\uff96\027\uff96\030\uff96" +
"\031\uff96\032\uff96\036\uff96\037\uff96\040\uff96\044\uff96\047" +
"\uff96\001\002\000\006\011\uffd7\064\uffd7\001\002\000\042" +
"\005\uffb1\011\uffb1\012\uffb1\013\uffb1\014\302\015\304\022" +
"\uffb1\023\uffb1\025\300\026\301\027\303\030\305\031\277" +
"\032\306\040\uffb1\044\uffb1\001\002\000\056\005\uff98\011" +
"\uff98\012\uff98\013\uff98\014\uff98\015\uff98\016\uff98\017\uff98" +
"\020\uff98\022\uff98\023\uff98\025\uff98\026\uff98\027\uff98\030" +
"\uff98\031\uff98\032\uff98\036\uff98\037\uff98\040\uff98\044\uff98" +
"\047\uff98\001\002\000\072\002\uffef\003\uffef\004\uffef\010" +
"\uffef\012\uffef\015\uffef\024\uffef\033\uffef\034\uffef\035\uffef" +
"\036\uffef\037\uffef\042\uffef\043\uffef\044\uffef\045\uffef\046" +
"\uffef\050\uffef\051\uffef\052\uffef\053\uffef\054\uffef\055\uffef" +
"\057\uffef\061\uffef\062\uffef\063\uffef\064\uffef\001\002\000" +
"\070\002\000\003\000\004\000\010\000\012\000\015\000" +
"\024\000\033\000\034\000\035\000\036\000\037\000\043" +
"\000\044\000\045\000\046\000\050\000\051\000\052\000" +
"\053\000\054\000\055\000\057\000\061\000\062\000\063" +
"\000\064\000\001\002\000\070\002\ufff5\003\ufff5\004\ufff5" +
"\010\ufff5\012\ufff5\015\ufff5\024\ufff5\033\ufff5\034\ufff5\035" +
"\ufff5\036\ufff5\037\ufff5\043\ufff5\044\ufff5\045\ufff5\046\ufff5" +
"\050\ufff5\051\ufff5\052\ufff5\053\ufff5\054\ufff5\055\ufff5\057" +
"\ufff5\061\ufff5\062\ufff5\063\ufff5\064\ufff5\001\002\000\006" +
"\011\uffd8\064\uffd8\001\002\000\064\005\uff9c\011\uff9c\012" +
"\uff9c\013\uff9c\014\uff9c\015\uff9c\016\uff9c\017\uff9c\020\uff9c" +
"\021\275\022\uff9c\023\uff9c\025\uff9c\026\uff9c\027\uff9c\030" +
"\uff9c\031\uff9c\032\uff9c\033\134\034\135\036\uff9c\037\uff9c" +
"\040\uff9c\044\uff9c\047\uff9c\001\002\000\032\010\046\015" +
"\021\024\024\033\034\034\066\035\042\050\054\057\043" +
"\061\011\062\053\063\006\064\073\001\002\000\022\005" +
"\uffba\011\uffba\012\uffba\013\uffba\022\uffba\023\262\040\uffba" +
"\044\uffba\001\002\000\032\010\046\015\021\024\024\033" +
"\034\034\066\035\042\050\054\057\043\061\011\062\053" +
"\063\006\064\073\001\002\000\020\005\uffbc\011\uffbc\012" +
"\uffbc\013\uffbc\022\260\040\uffbc\044\uffbc\001\002\000\076" +
"\002\uffcf\003\uffcf\004\uffcf\006\uffcf\007\uffcf\010\uffcf\012" +
"\uffcf\015\uffcf\024\uffcf\033\uffcf\034\uffcf\035\uffcf\036\uffcf" +
"\037\uffcf\042\uffcf\043\uffcf\044\uffcf\045\uffcf\046\uffcf\050" +
"\uffcf\051\uffcf\052\uffcf\053\uffcf\054\uffcf\055\uffcf\057\uffcf" +
"\061\uffcf\062\uffcf\063\uffcf\064\uffcf\001\002\000\032\010" +
"\046\015\021\024\024\033\034\034\066\035\042\050\054" +
"\057\043\061\011\062\053\063\006\064\073\001\002\000" +
"\050\005\uffa3\011\uffa3\012\uffa3\013\uffa3\014\uffa3\015\uffa3" +
"\016\uffa3\017\uffa3\020\uffa3\022\uffa3\023\uffa3\025\uffa3\026" +
"\uffa3\027\uffa3\030\uffa3\031\uffa3\032\uffa3\040\uffa3\044\uffa3" +
"\001\002\000\056\005\uffa0\011\uffa0\012\uffa0\013\uffa0\014" +
"\uffa0\015\uffa0\016\uffa0\017\uffa0\020\uffa0\022\uffa0\023\uffa0" +
"\025\uffa0\026\uffa0\027\uffa0\030\uffa0\031\uffa0\032\uffa0\036" +
"\111\037\112\040\uffa0\044\uffa0\047\113\001\002\000\006" +
"\011\uffd6\064\uffd6\001\002\000\056\005\uff9e\011\uff9e\012" +
"\uff9e\013\uff9e\014\uff9e\015\uff9e\016\uff9e\017\uff9e\020\uff9e" +
"\022\uff9e\023\uff9e\025\uff9e\026\uff9e\027\uff9e\030\uff9e\031" +
"\uff9e\032\uff9e\036\uff9e\037\uff9e\040\uff9e\044\uff9e\047\uff9e" +
"\001\002\000\050\005\uffaa\011\uffaa\012\uffaa\013\uffaa\014" +
"\uffaa\015\uffaa\016\uffaa\017\uffaa\020\uffaa\022\uffaa\023\uffaa" +
"\025\uffaa\026\uffaa\027\uffaa\030\uffaa\031\uffaa\032\uffaa\040" +
"\uffaa\044\uffaa\001\002\000\004\064\245\001\002\000\072" +
"\002\ufff0\003\ufff0\004\ufff0\010\ufff0\012\ufff0\015\ufff0\024" +
"\ufff0\033\ufff0\034\ufff0\035\ufff0\036\ufff0\037\ufff0\042\ufff0" +
"\043\ufff0\044\ufff0\045\ufff0\046\ufff0\050\ufff0\051\ufff0\052" +
"\ufff0\053\ufff0\054\ufff0\055\ufff0\057\ufff0\061\ufff0\062\ufff0" +
"\063\ufff0\064\ufff0\001\002\000\020\010\107\050\054\057" +
"\043\061\011\062\053\063\006\064\073\001\002\000\004" +
"\064\237\001\002\000\070\002\ufff3\003\ufff3\004\ufff3\010" +
"\ufff3\012\ufff3\015\ufff3\024\ufff3\033\ufff3\034\ufff3\035\ufff3" +
"\036\ufff3\037\ufff3\043\ufff3\044\ufff3\045\ufff3\046\ufff3\050" +
"\ufff3\051\ufff3\052\ufff3\053\ufff3\054\ufff3\055\ufff3\057\ufff3" +
"\061\ufff3\062\ufff3\063\ufff3\064\ufff3\001\002\000\004\061" +
"\234\001\002\000\004\010\225\001\002\000\032\010\046" +
"\015\021\024\024\033\034\034\066\035\042\050\054\057" +
"\043\061\011\062\053\063\006\064\073\001\002\000\020" +
"\010\107\050\054\057\043\061\011\062\053\063\006\064" +
"\073\001\002\000\056\005\uff9d\011\uff9d\012\uff9d\013\uff9d" +
"\014\uff9d\015\uff9d\016\uff9d\017\uff9d\020\uff9d\022\uff9d\023" +
"\uff9d\025\uff9d\026\uff9d\027\uff9d\030\uff9d\031\uff9d\032\uff9d" +
"\036\uff9d\037\uff9d\040\uff9d\044\uff9d\047\uff9d\001\002\000" +
"\016\036\044\037\037\051\015\052\007\053\027\064\203" +
"\001\002\000\022\005\uffb8\011\uffb8\012\uffb8\013\uffb8\022" +
"\uffb8\023\uffb8\040\uffb8\044\uffb8\001\002\000\042\010\046" +
"\015\021\024\024\033\034\034\066\035\042\036\044\050" +
"\054\051\015\052\007\053\027\057\043\061\011\062\053" +
"\063\006\064\073\001\002\000\004\002\001\001\002\000" +
"\016\005\uffbe\011\uffbe\012\uffbe\013\uffbe\040\uffbe\044\uffbe" +
"\001\002\000\034\010\046\012\174\015\021\024\024\033" +
"\034\034\066\035\042\050\054\057\043\061\011\062\053" +
"\063\006\064\073\001\002\000\006\012\172\042\173\001" +
"\002\000\056\005\uff97\011\uff97\012\uff97\013\uff97\014\uff97" +
"\015\uff97\016\uff97\017\uff97\020\uff97\022\uff97\023\uff97\025" +
"\uff97\026\uff97\027\uff97\030\uff97\031\uff97\032\uff97\036\uff97" +
"\037\uff97\040\uff97\044\uff97\047\uff97\001\002\000\056\005" +
"\uff95\011\uff95\012\uff95\013\uff95\014\uff95\015\uff95\016\uff95" +
"\017\uff95\020\uff95\022\uff95\023\uff95\025\uff95\026\uff95\027" +
"\uff95\030\uff95\031\uff95\032\uff95\036\uff95\037\uff95\040\uff95" +
"\044\uff95\047\uff95\001\002\000\056\010\uff9a\012\uff94\014" +
"\uff94\015\uff94\016\uff94\017\uff94\020\uff94\021\uff94\022\uff94" +
"\023\uff94\025\uff94\026\uff94\027\uff94\030\uff94\031\uff94\032" +
"\uff94\033\uff94\034\uff94\036\uff94\037\uff94\047\uff94\064\uffdb" +
"\001\002\000\004\064\141\001\002\000\004\012\140\001" +
"\002\000\050\005\uffae\011\uffae\012\uffae\013\uffae\014\uffae" +
"\015\uffae\016\131\017\130\020\127\022\uffae\023\uffae\025" +
"\uffae\026\uffae\027\uffae\030\uffae\031\uffae\032\uffae\040\uffae" +
"\044\uffae\001\002\000\004\064\101\001\002\000\006\011" +
"\uffdc\064\uffdc\001\002\000\032\010\046\015\021\024\024" +
"\033\034\034\066\035\042\050\054\057\043\061\011\062" +
"\053\063\006\064\073\001\002\000\072\002\uffee\003\uffee" +
"\004\uffee\010\uffee\012\uffee\015\uffee\024\uffee\033\uffee\034" +
"\uffee\035\uffee\036\uffee\037\uffee\042\uffee\043\uffee\044\uffee" +
"\045\uffee\046\uffee\050\uffee\051\uffee\052\uffee\053\uffee\054" +
"\uffee\055\uffee\057\uffee\061\uffee\062\uffee\063\uffee\064\uffee" +
"\001\002\000\072\002\uffed\003\uffed\004\uffed\010\uffed\012" +
"\uffed\015\uffed\024\uffed\033\uffed\034\uffed\035\uffed\036\uffed" +
"\037\uffed\042\uffed\043\uffed\044\uffed\045\uffed\046\uffed\050" +
"\uffed\051\uffed\052\uffed\053\uffed\054\uffed\055\uffed\057\uffed" +
"\061\uffed\062\uffed\063\uffed\064\uffed\001\002\000\020\010" +
"\107\050\054\057\043\061\011\062\053\063\006\064\073" +
"\001\002\000\004\064\101\001\002\000\006\011\uffdd\064" +
"\uffdd\001\002\000\052\003\ufff6\004\ufff6\010\ufff6\012\ufff6" +
"\015\ufff6\024\ufff6\033\ufff6\034\ufff6\035\ufff6\042\ufff6\043" +
"\ufff6\044\ufff6\045\ufff6\046\ufff6\050\ufff6\057\ufff6\061\ufff6" +
"\062\ufff6\063\ufff6\064\ufff6\001\002\000\052\003\052\004" +
"\041\010\046\012\023\015\021\024\024\033\034\034\066" +
"\035\042\042\075\043\063\044\071\045\017\046\051\050" +
"\054\057\043\061\011\062\053\063\006\064\073\001\002" +
"\000\066\005\uff94\010\uff9a\011\uff94\012\uff94\013\uff94\014" +
"\uff94\015\uff94\016\uff94\017\uff94\020\uff94\021\uff94\022\uff94" +
"\023\uff94\025\uff94\026\uff94\027\uff94\030\uff94\031\uff94\032" +
"\uff94\033\uff94\034\uff94\036\uff94\037\uff94\040\uff94\044\uff94" +
"\047\uff94\001\002\000\056\003\ufff7\004\ufff7\006\ufff7\007" +
"\ufff7\010\ufff7\012\ufff7\015\ufff7\024\ufff7\033\ufff7\034\ufff7" +
"\035\ufff7\042\ufff7\043\ufff7\044\ufff7\045\ufff7\046\ufff7\050" +
"\ufff7\057\ufff7\061\ufff7\062\ufff7\063\ufff7\064\ufff7\001\002" +
"\000\004\043\076\001\002\000\032\010\046\015\021\024" +
"\024\033\034\034\066\035\042\050\054\057\043\061\011" +
"\062\053\063\006\064\073\001\002\000\004\012\100\001" +
"\002\000\076\002\uffcb\003\uffcb\004\uffcb\006\uffcb\007\uffcb" +
"\010\uffcb\012\uffcb\015\uffcb\024\uffcb\033\uffcb\034\uffcb\035" +
"\uffcb\036\uffcb\037\uffcb\042\uffcb\043\uffcb\044\uffcb\045\uffcb" +
"\046\uffcb\050\uffcb\051\uffcb\052\uffcb\053\uffcb\054\uffcb\055" +
"\uffcb\057\uffcb\061\uffcb\062\uffcb\063\uffcb\064\uffcb\001\002" +
"\000\006\012\uffd4\013\uffd4\001\002\000\006\012\104\013" +
"\103\001\002\000\004\064\105\001\002\000\072\002\uffe3" +
"\003\uffe3\004\uffe3\010\uffe3\012\uffe3\015\uffe3\024\uffe3\033" +
"\uffe3\034\uffe3\035\uffe3\036\uffe3\037\uffe3\042\uffe3\043\uffe3" +
"\044\uffe3\045\uffe3\046\uffe3\050\uffe3\051\uffe3\052\uffe3\053" +
"\uffe3\054\uffe3\055\uffe3\057\uffe3\061\uffe3\062\uffe3\063\uffe3" +
"\064\uffe3\001\002\000\006\012\uffd5\013\uffd5\001\002\000" +
"\056\005\uffa5\011\uffa5\012\uffa5\013\uffa5\014\uffa5\015\uffa5" +
"\016\uffa5\017\uffa5\020\uffa5\022\uffa5\023\uffa5\025\uffa5\026" +
"\uffa5\027\uffa5\030\uffa5\031\uffa5\032\uffa5\036\uff9c\037\uff9c" +
"\040\uffa5\044\uffa5\047\uff9c\001\002\000\032\010\046\015" +
"\021\024\024\033\034\034\066\035\042\050\054\057\043" +
"\061\011\062\053\063\006\064\073\001\002\000\010\036" +
"\111\037\112\047\113\001\002\000\064\005\uff91\011\uff91" +
"\012\uff91\013\uff91\014\uff91\015\uff91\016\uff91\017\uff91\020" +
"\uff91\021\uff91\022\uff91\023\uff91\025\uff91\026\uff91\027\uff91" +
"\030\uff91\031\uff91\032\uff91\033\uff91\034\uff91\036\uff91\037" +
"\uff91\040\uff91\044\uff91\047\uff91\001\002\000\032\010\046" +
"\015\021\024\024\033\034\034\066\035\042\050\054\057" +
"\043\061\011\062\053\063\006\064\073\001\002\000\004" +
"\064\114\001\002\000\066\005\uff92\010\uff99\011\uff92\012" +
"\uff92\013\uff92\014\uff92\015\uff92\016\uff92\017\uff92\020\uff92" +
"\021\uff92\022\uff92\023\uff92\025\uff92\026\uff92\027\uff92\030" +
"\uff92\031\uff92\032\uff92\033\uff92\034\uff92\036\uff92\037\uff92" +
"\040\uff92\044\uff92\047\uff92\001\002\000\004\040\116\001" +
"\002\000\064\005\uff93\011\uff93\012\uff93\013\uff93\014\uff93" +
"\015\uff93\016\uff93\017\uff93\020\uff93\021\uff93\022\uff93\023" +
"\uff93\025\uff93\026\uff93\027\uff93\030\uff93\031\uff93\032\uff93" +
"\033\uff93\034\uff93\036\uff93\037\uff93\040\uff93\044\uff93\047" +
"\uff93\001\002\000\004\011\120\001\002\000\056\005\uff9f" +
"\011\uff9f\012\uff9f\013\uff9f\014\uff9f\015\uff9f\016\uff9f\017" +
"\uff9f\020\uff9f\022\uff9f\023\uff9f\025\uff9f\026\uff9f\027\uff9f" +
"\030\uff9f\031\uff9f\032\uff9f\036\uff9f\037\uff9f\040\uff9f\044" +
"\uff9f\047\uff9f\001\002\000\004\044\122\001\002\000\052" +
"\003\ufff6\004\ufff6\010\ufff6\012\ufff6\015\ufff6\024\ufff6\033" +
"\ufff6\034\ufff6\035\ufff6\042\ufff6\043\ufff6\044\ufff6\045\ufff6" +
"\046\ufff6\050\ufff6\057\ufff6\061\ufff6\062\ufff6\063\ufff6\064" +
"\ufff6\001\002\000\052\003\052\004\041\010\046\012\023" +
"\015\021\024\024\033\034\034\066\035\042\042\124\043" +
"\063\044\071\045\017\046\051\050\054\057\043\061\011" +
"\062\053\063\006\064\073\001\002\000\076\002\uffcc\003" +
"\uffcc\004\uffcc\006\uffcc\007\uffcc\010\uffcc\012\uffcc\015\uffcc" +
"\024\uffcc\033\uffcc\034\uffcc\035\uffcc\036\uffcc\037\uffcc\042" +
"\uffcc\043\uffcc\044\uffcc\045\uffcc\046\uffcc\050\uffcc\051\uffcc" +
"\052\uffcc\053\uffcc\054\uffcc\055\uffcc\057\uffcc\061\uffcc\062" +
"\uffcc\063\uffcc\064\uffcc\001\002\000\006\012\126\013\103" +
"\001\002\000\072\002\uffe2\003\uffe2\004\uffe2\010\uffe2\012" +
"\uffe2\015\uffe2\024\uffe2\033\uffe2\034\uffe2\035\uffe2\036\uffe2" +
"\037\uffe2\042\uffe2\043\uffe2\044\uffe2\045\uffe2\046\uffe2\050" +
"\uffe2\051\uffe2\052\uffe2\053\uffe2\054\uffe2\055\uffe2\057\uffe2" +
"\061\uffe2\062\uffe2\063\uffe2\064\uffe2\001\002\000\032\010" +
"\046\015\021\024\024\033\034\034\066\035\042\050\054" +
"\057\043\061\011\062\053\063\006\064\073\001\002\000" +
"\032\010\046\015\021\024\024\033\034\034\066\035\042" +
"\050\054\057\043\061\011\062\053\063\006\064\073\001" +
"\002\000\032\010\046\015\021\024\024\033\034\034\066" +
"\035\042\050\054\057\043\061\011\062\053\063\006\064" +
"\073\001\002\000\050\005\uffad\011\uffad\012\uffad\013\uffad" +
"\014\uffad\015\uffad\016\uffad\017\uffad\020\uffad\022\uffad\023" +
"\uffad\025\uffad\026\uffad\027\uffad\030\uffad\031\uffad\032\uffad" +
"\040\uffad\044\uffad\001\002\000\062\005\uff9c\011\uff9c\012" +
"\uff9c\013\uff9c\014\uff9c\015\uff9c\016\uff9c\017\uff9c\020\uff9c" +
"\022\uff9c\023\uff9c\025\uff9c\026\uff9c\027\uff9c\030\uff9c\031" +
"\uff9c\032\uff9c\033\134\034\135\036\uff9c\037\uff9c\040\uff9c" +
"\044\uff9c\047\uff9c\001\002\000\050\005\uffa2\011\uffa2\012" +
"\uffa2\013\uffa2\014\uffa2\015\uffa2\016\uffa2\017\uffa2\020\uffa2" +
"\022\uffa2\023\uffa2\025\uffa2\026\uffa2\027\uffa2\030\uffa2\031" +
"\uffa2\032\uffa2\040\uffa2\044\uffa2\001\002\000\050\005\uffa1" +
"\011\uffa1\012\uffa1\013\uffa1\014\uffa1\015\uffa1\016\uffa1\017" +
"\uffa1\020\uffa1\022\uffa1\023\uffa1\025\uffa1\026\uffa1\027\uffa1" +
"\030\uffa1\031\uffa1\032\uffa1\040\uffa1\044\uffa1\001\002\000" +
"\050\005\uffac\011\uffac\012\uffac\013\uffac\014\uffac\015\uffac" +
"\016\uffac\017\uffac\020\uffac\022\uffac\023\uffac\025\uffac\026" +
"\uffac\027\uffac\030\uffac\031\uffac\032\uffac\040\uffac\044\uffac" +
"\001\002\000\050\005\uffab\011\uffab\012\uffab\013\uffab\014" +
"\uffab\015\uffab\016\uffab\017\uffab\020\uffab\022\uffab\023\uffab" +
"\025\uffab\026\uffab\027\uffab\030\uffab\031\uffab\032\uffab\040" +
"\uffab\044\uffab\001\002\000\076\002\uffce\003\uffce\004\uffce" +
"\006\uffce\007\uffce\010\uffce\012\uffce\015\uffce\024\uffce\033" +
"\uffce\034\uffce\035\uffce\036\uffce\037\uffce\042\uffce\043\uffce" +
"\044\uffce\045\uffce\046\uffce\050\uffce\051\uffce\052\uffce\053" +
"\uffce\054\uffce\055\uffce\057\uffce\061\uffce\062\uffce\063\uffce" +
"\064\uffce\001\002\000\004\010\142\001\002\000\016\011" +
"\ufff8\036\044\051\015\052\007\053\027\056\145\001\002" +
"\000\016\011\ufff8\036\044\051\015\052\007\053\027\056" +
"\145\001\002\000\004\011\151\001\002\000\004\011\ufff9" +
"\001\002\000\004\064\101\001\002\000\006\012\150\013" +
"\103\001\002\000\016\011\uffe5\036\uffe5\051\uffe5\052\uffe5" +
"\053\uffe5\056\uffe5\001\002\000\006\012\152\041\153\001" +
"\002\000\072\002\uffe6\003\uffe6\004\uffe6\010\uffe6\012\uffe6" +
"\015\uffe6\024\uffe6\033\uffe6\034\uffe6\035\uffe6\036\uffe6\037" +
"\uffe6\042\uffe6\043\uffe6\044\uffe6\045\uffe6\046\uffe6\050\uffe6" +
"\051\uffe6\052\uffe6\053\uffe6\054\uffe6\055\uffe6\057\uffe6\061" +
"\uffe6\062\uffe6\063\uffe6\064\uffe6\001\002\000\064\003\ufffb" +
"\004\ufffb\010\ufffb\012\ufffb\015\ufffb\024\ufffb\033\ufffb\034" +
"\ufffb\035\ufffb\036\ufffb\037\ufffb\042\ufffb\043\ufffb\044\ufffb" +
"\045\ufffb\046\ufffb\050\ufffb\051\ufffb\052\ufffb\053\ufffb\057" +
"\ufffb\061\ufffb\062\ufffb\063\ufffb\064\ufffb\001\002\000\072" +
"\002\uffe8\003\uffe8\004\uffe8\010\uffe8\012\uffe8\015\uffe8\024" +
"\uffe8\033\uffe8\034\uffe8\035\uffe8\036\uffe8\037\uffe8\042\uffe8" +
"\043\uffe8\044\uffe8\045\uffe8\046\uffe8\050\uffe8\051\uffe8\052" +
"\uffe8\053\uffe8\054\uffe8\055\uffe8\057\uffe8\061\uffe8\062\uffe8" +
"\063\uffe8\064\uffe8\001\002\000\064\003\052\004\041\010" +
"\046\012\023\015\021\024\024\033\034\034\066\035\042" +
"\036\044\037\037\042\160\043\063\044\071\045\017\046" +
"\051\050\054\051\015\052\007\053\027\057\043\061\011" +
"\062\053\063\006\064\055\001\002\000\004\064\163\001" +
"\002\000\064\003\ufffc\004\ufffc\010\ufffc\012\ufffc\015\ufffc" +
"\024\ufffc\033\ufffc\034\ufffc\035\ufffc\036\ufffc\037\ufffc\042" +
"\ufffc\043\ufffc\044\ufffc\045\ufffc\046\ufffc\050\ufffc\051\ufffc" +
"\052\ufffc\053\ufffc\057\ufffc\061\ufffc\062\ufffc\063\ufffc\064" +
"\ufffc\001\002\000\072\002\uffe7\003\uffe7\004\uffe7\010\uffe7" +
"\012\uffe7\015\uffe7\024\uffe7\033\uffe7\034\uffe7\035\uffe7\036" +
"\uffe7\037\uffe7\042\uffe7\043\uffe7\044\uffe7\045\uffe7\046\uffe7" +
"\050\uffe7\051\uffe7\052\uffe7\053\uffe7\054\uffe7\055\uffe7\057" +
"\uffe7\061\uffe7\062\uffe7\063\uffe7\064\uffe7\001\002\000\006" +
"\012\uffd2\013\uffd2\001\002\000\006\012\167\013\166\001" +
"\002\000\010\012\uffd1\013\uffd1\021\164\001\002\000\032" +
"\010\046\015\021\024\024\033\034\034\066\035\042\050" +
"\054\057\043\061\011\062\053\063\006\064\073\001\002" +
"\000\006\012\uffd0\013\uffd0\001\002\000\004\064\163\001" +
"\002\000\072\002\uffe4\003\uffe4\004\uffe4\010\uffe4\012\uffe4" +
"\015\uffe4\024\uffe4\033\uffe4\034\uffe4\035\uffe4\036\uffe4\037" +
"\uffe4\042\uffe4\043\uffe4\044\uffe4\045\uffe4\046\uffe4\050\uffe4" +
"\051\uffe4\052\uffe4\053\uffe4\054\uffe4\055\uffe4\057\uffe4\061" +
"\uffe4\062\uffe4\063\uffe4\064\uffe4\001\002\000\006\012\uffd3" +
"\013\uffd3\001\002\000\004\011\ufffa\001\002\000\076\002" +
"\uffc6\003\uffc6\004\uffc6\006\uffc6\007\uffc6\010\uffc6\012\uffc6" +
"\015\uffc6\024\uffc6\033\uffc6\034\uffc6\035\uffc6\036\uffc6\037" +
"\uffc6\042\uffc6\043\uffc6\044\uffc6\045\uffc6\046\uffc6\050\uffc6" +
"\051\uffc6\052\uffc6\053\uffc6\054\uffc6\055\uffc6\057\uffc6\061" +
"\uffc6\062\uffc6\063\uffc6\064\uffc6\001\002\000\076\002\uffc7" +
"\003\uffc7\004\uffc7\006\uffc7\007\uffc7\010\uffc7\012\uffc7\015" +
"\uffc7\024\uffc7\033\uffc7\034\uffc7\035\uffc7\036\uffc7\037\uffc7" +
"\042\uffc7\043\uffc7\044\uffc7\045\uffc7\046\uffc7\050\uffc7\051" +
"\uffc7\052\uffc7\053\uffc7\054\uffc7\055\uffc7\057\uffc7\061\uffc7" +
"\062\uffc7\063\uffc7\064\uffc7\001\002\000\076\002\uffc9\003" +
"\uffc9\004\uffc9\006\uffc9\007\uffc9\010\uffc9\012\uffc9\015\uffc9" +
"\024\uffc9\033\uffc9\034\uffc9\035\uffc9\036\uffc9\037\uffc9\042" +
"\uffc9\043\uffc9\044\uffc9\045\uffc9\046\uffc9\050\uffc9\051\uffc9" +
"\052\uffc9\053\uffc9\054\uffc9\055\uffc9\057\uffc9\061\uffc9\062" +
"\uffc9\063\uffc9\064\uffc9\001\002\000\004\012\176\001\002" +
"\000\076\002\uffc8\003\uffc8\004\uffc8\006\uffc8\007\uffc8\010" +
"\uffc8\012\uffc8\015\uffc8\024\uffc8\033\uffc8\034\uffc8\035\uffc8" +
"\036\uffc8\037\uffc8\042\uffc8\043\uffc8\044\uffc8\045\uffc8\046" +
"\uffc8\050\uffc8\051\uffc8\052\uffc8\053\uffc8\054\uffc8\055\uffc8" +
"\057\uffc8\061\uffc8\062\uffc8\063\uffc8\064\uffc8\001\002\000" +
"\004\011\200\001\002\000\032\010\046\015\021\024\024" +
"\033\034\034\066\035\042\050\054\057\043\061\011\062" +
"\053\063\006\064\073\001\002\000\050\005\uffa7\011\uffa7" +
"\012\uffa7\013\uffa7\014\uffa7\015\uffa7\016\uffa7\017\uffa7\020" +
"\uffa7\022\uffa7\023\uffa7\025\uffa7\026\uffa7\027\uffa7\030\uffa7" +
"\031\uffa7\032\uffa7\040\uffa7\044\uffa7\001\002\000\006\011" +
"\uffe0\064\uffe0\001\002\000\006\011\uffdb\064\uffdb\001\002" +
"\000\006\011\uffe1\064\uffe1\001\002\000\006\011\uffdf\064" +
"\uffdf\001\002\000\006\011\uffd9\064\uffd9\001\002\000\006" +
"\011\uffde\064\uffde\001\002\000\056\005\uffa4\011\uffa4\012" +
"\uffa4\013\uffa4\014\uffa4\015\uffa4\016\uffa4\017\uffa4\020\uffa4" +
"\022\uffa4\023\uffa4\025\uffa4\026\uffa4\027\uffa4\030\uffa4\031" +
"\uffa4\032\uffa4\036\uff9c\037\uff9c\040\uffa4\044\uffa4\047\uff9c" +
"\001\002\000\004\005\212\001\002\000\056\003\ufff6\004" +
"\ufff6\006\ufff6\007\ufff6\010\ufff6\012\ufff6\015\ufff6\024\ufff6" +
"\033\ufff6\034\ufff6\035\ufff6\042\ufff6\043\ufff6\044\ufff6\045" +
"\ufff6\046\ufff6\050\ufff6\057\ufff6\061\ufff6\062\ufff6\063\ufff6" +
"\064\ufff6\001\002\000\056\003\052\004\041\006\214\007" +
"\215\010\046\012\023\015\021\024\024\033\034\034\066" +
"\035\042\042\uffc5\043\063\044\071\045\017\046\051\050" +
"\054\057\043\061\011\062\053\063\006\064\073\001\002" +
"\000\052\003\ufff6\004\ufff6\010\ufff6\012\ufff6\015\ufff6\024" +
"\ufff6\033\ufff6\034\ufff6\035\ufff6\042\ufff6\043\ufff6\044\ufff6" +
"\045\ufff6\046\ufff6\050\ufff6\057\ufff6\061\ufff6\062\ufff6\063" +
"\ufff6\064\ufff6\001\002\000\032\010\046\015\021\024\024" +
"\033\034\034\066\035\042\050\054\057\043\061\011\062" +
"\053\063\006\064\073\001\002\000\004\042\217\001\002" +
"\000\076\002\uffcd\003\uffcd\004\uffcd\006\uffcd\007\uffcd\010" +
"\uffcd\012\uffcd\015\uffcd\024\uffcd\033\uffcd\034\uffcd\035\uffcd" +
"\036\uffcd\037\uffcd\042\uffcd\043\uffcd\044\uffcd\045\uffcd\046" +
"\uffcd\050\uffcd\051\uffcd\052\uffcd\053\uffcd\054\uffcd\055\uffcd" +
"\057\uffcd\061\uffcd\062\uffcd\063\uffcd\064\uffcd\001\002\000" +
"\004\005\221\001\002\000\056\003\ufff6\004\ufff6\006\ufff6" +
"\007\ufff6\010\ufff6\012\ufff6\015\ufff6\024\ufff6\033\ufff6\034" +
"\ufff6\035\ufff6\042\ufff6\043\ufff6\044\ufff6\045\ufff6\046\ufff6" +
"\050\ufff6\057\ufff6\061\ufff6\062\ufff6\063\ufff6\064\ufff6\001" +
"\002\000\056\003\052\004\041\006\214\007\215\010\046" +
"\012\023\015\021\024\024\033\034\034\066\035\042\042" +
"\uffc5\043\063\044\071\045\017\046\051\050\054\057\043" +
"\061\011\062\053\063\006\064\073\001\002\000\004\042" +
"\uffc3\001\002\000\052\003\052\004\041\010\046\012\023" +
"\015\021\024\024\033\034\034\066\035\042\042\uffc4\043" +
"\063\044\071\045\017\046\051\050\054\057\043\061\011" +
"\062\053\063\006\064\073\001\002\000\034\010\046\011" +
"\uffc1\015\021\024\024\033\034\034\066\035\042\050\054" +
"\057\043\061\011\062\053\063\006\064\073\001\002\000" +
"\004\011\233\001\002\000\006\011\uffbf\013\uffbf\001\002" +
"\000\006\011\uffc2\013\231\001\002\000\032\010\046\015" +
"\021\024\024\033\034\034\066\035\042\050\054\057\043" +
"\061\011\062\053\063\006\064\073\001\002\000\006\011" +
"\uffc0\013\uffc0\001\002\000\056\005\uff9b\011\uff9b\012\uff9b" +
"\013\uff9b\014\uff9b\015\uff9b\016\uff9b\017\uff9b\020\uff9b\022" +
"\uff9b\023\uff9b\025\uff9b\026\uff9b\027\uff9b\030\uff9b\031\uff9b" +
"\032\uff9b\036\uff9b\037\uff9b\040\uff9b\044\uff9b\047\uff9b\001" +
"\002\000\004\040\235\001\002\000\016\036\044\037\037" +
"\051\015\052\007\053\027\064\203\001\002\000\006\011" +
"\uffda\064\uffda\001\002\000\012\010\240\012\uffd1\013\uffd1" +
"\021\164\001\002\000\016\011\ufff8\036\044\051\015\052" +
"\007\053\027\056\145\001\002\000\004\011\242\001\002" +
"\000\006\012\152\041\153\001\002\000\072\002\uffe9\003" +
"\uffe9\004\uffe9\010\uffe9\012\uffe9\015\uffe9\024\uffe9\033\uffe9" +
"\034\uffe9\035\uffe9\036\uffe9\037\uffe9\042\uffe9\043\uffe9\044" +
"\uffe9\045\uffe9\046\uffe9\050\uffe9\051\uffe9\052\uffe9\053\uffe9" +
"\054\uffe9\055\uffe9\057\uffe9\061\uffe9\062\uffe9\063\uffe9\064" +
"\uffe9\001\002\000\056\005\uffa6\011\uffa6\012\uffa6\013\uffa6" +
"\014\uffa6\015\uffa6\016\uffa6\017\uffa6\020\uffa6\022\uffa6\023" +
"\uffa6\025\uffa6\026\uffa6\027\uffa6\030\uffa6\031\uffa6\032\uffa6" +
"\036\uff9c\037\uff9c\040\uffa6\044\uffa6\047\uff9c\001\002\000" +
"\006\041\uffea\060\247\001\002\000\004\041\251\001\002" +
"\000\004\064\250\001\002\000\004\041\uffeb\001\002\000" +
"\066\003\ufffd\004\ufffd\010\ufffd\012\ufffd\015\ufffd\024\ufffd" +
"\033\ufffd\034\ufffd\035\ufffd\036\ufffd\037\ufffd\042\ufffd\043" +
"\ufffd\044\ufffd\045\ufffd\046\ufffd\050\ufffd\051\ufffd\052\ufffd" +
"\053\ufffd\054\ufffd\057\ufffd\061\ufffd\062\ufffd\063\ufffd\064" +
"\ufffd\001\002\000\066\003\052\004\041\010\046\012\023" +
"\015\021\024\024\033\034\034\066\035\042\036\044\037" +
"\037\042\256\043\063\044\071\045\017\046\051\050\054" +
"\051\015\052\007\053\027\054\056\057\043\061\011\062" +
"\053\063\006\064\055\001\002\000\066\003\ufff2\004\ufff2" +
"\010\ufff2\012\ufff2\015\ufff2\024\ufff2\033\ufff2\034\ufff2\035" +
"\ufff2\036\ufff2\037\ufff2\042\ufff2\043\ufff2\044\ufff2\045\ufff2" +
"\046\ufff2\050\ufff2\051\ufff2\052\ufff2\053\ufff2\054\ufff2\057" +
"\ufff2\061\ufff2\062\ufff2\063\ufff2\064\ufff2\001\002\000\066" +
"\003\ufff1\004\ufff1\010\ufff1\012\ufff1\015\ufff1\024\ufff1\033" +
"\ufff1\034\ufff1\035\ufff1\036\ufff1\037\ufff1\042\ufff1\043\ufff1" +
"\044\ufff1\045\ufff1\046\ufff1\050\ufff1\051\ufff1\052\ufff1\053" +
"\ufff1\054\ufff1\057\ufff1\061\ufff1\062\ufff1\063\ufff1\064\ufff1" +
"\001\002\000\066\003\ufffe\004\ufffe\010\ufffe\012\ufffe\015" +
"\ufffe\024\ufffe\033\ufffe\034\ufffe\035\ufffe\036\ufffe\037\ufffe" +
"\042\ufffe\043\ufffe\044\ufffe\045\ufffe\046\ufffe\050\ufffe\051" +
"\ufffe\052\ufffe\053\ufffe\054\ufffe\057\ufffe\061\ufffe\062\ufffe" +
"\063\ufffe\064\ufffe\001\002\000\070\002\uffec\003\uffec\004" +
"\uffec\010\uffec\012\uffec\015\uffec\024\uffec\033\uffec\034\uffec" +
"\035\uffec\036\uffec\037\uffec\043\uffec\044\uffec\045\uffec\046" +
"\uffec\050\uffec\051\uffec\052\uffec\053\uffec\054\uffec\055\uffec" +
"\057\uffec\061\uffec\062\uffec\063\uffec\064\uffec\001\002\000" +
"\050\005\uffa8\011\uffa8\012\uffa8\013\uffa8\014\uffa8\015\uffa8" +
"\016\uffa8\017\uffa8\020\uffa8\022\uffa8\023\uffa8\025\uffa8\026" +
"\uffa8\027\uffa8\030\uffa8\031\uffa8\032\uffa8\040\uffa8\044\uffa8" +
"\001\002\000\032\010\046\015\021\024\024\033\034\034" +
"\066\035\042\050\054\057\043\061\011\062\053\063\006" +
"\064\073\001\002\000\022\005\uffbb\011\uffbb\012\uffbb\013" +
"\uffbb\022\uffbb\023\262\040\uffbb\044\uffbb\001\002\000\032" +
"\010\046\015\021\024\024\033\034\034\066\035\042\050" +
"\054\057\043\061\011\062\053\063\006\064\073\001\002" +
"\000\022\005\uffb9\011\uffb9\012\uffb9\013\uffb9\022\uffb9\023" +
"\uffb9\040\uffb9\044\uffb9\001\002\000\050\005\uffa9\011\uffa9" +
"\012\uffa9\013\uffa9\014\uffa9\015\uffa9\016\uffa9\017\uffa9\020" +
"\uffa9\022\uffa9\023\uffa9\025\uffa9\026\uffa9\027\uffa9\030\uffa9" +
"\031\uffa9\032\uffa9\040\uffa9\044\uffa9\001\002\000\004\012" +
"\266\001\002\000\032\010\046\015\021\024\024\033\034" +
"\034\066\035\042\050\054\057\043\061\011\062\053\063" +
"\006\064\073\001\002\000\004\012\270\001\002\000\032" +
"\010\046\015\021\024\024\033\034\034\066\035\042\050" +
"\054\057\043\061\011\062\053\063\006\064\073\001\002" +
"\000\004\044\272\001\002\000\052\003\ufff6\004\ufff6\010" +
"\ufff6\012\ufff6\015\ufff6\024\ufff6\033\ufff6\034\ufff6\035\ufff6" +
"\042\ufff6\043\ufff6\044\ufff6\045\ufff6\046\ufff6\050\ufff6\057" +
"\ufff6\061\ufff6\062\ufff6\063\ufff6\064\ufff6\001\002\000\052" +
"\003\052\004\041\010\046\012\023\015\021\024\024\033" +
"\034\034\066\035\042\042\274\043\063\044\071\045\017" +
"\046\051\050\054\057\043\061\011\062\053\063\006\064" +
"\073\001\002\000\076\002\uffca\003\uffca\004\uffca\006\uffca" +
"\007\uffca\010\uffca\012\uffca\015\uffca\024\uffca\033\uffca\034" +
"\uffca\035\uffca\036\uffca\037\uffca\042\uffca\043\uffca\044\uffca" +
"\045\uffca\046\uffca\050\uffca\051\uffca\052\uffca\053\uffca\054" +
"\uffca\055\uffca\057\uffca\061\uffca\062\uffca\063\uffca\064\uffca" +
"\001\002\000\032\010\046\015\021\024\024\033\034\034" +
"\066\035\042\050\054\057\043\061\011\062\053\063\006" +
"\064\073\001\002\000\020\005\uffbd\011\uffbd\012\uffbd\013" +
"\uffbd\022\260\040\uffbd\044\uffbd\001\002\000\032\010\046" +
"\015\021\024\024\033\034\034\066\035\042\050\054\057" +
"\043\061\011\062\053\063\006\064\073\001\002\000\032" +
"\010\046\015\021\024\024\033\034\034\066\035\042\050" +
"\054\057\043\061\011\062\053\063\006\064\073\001\002" +
"\000\032\010\046\015\021\024\024\033\034\034\066\035" +
"\042\050\054\057\043\061\011\062\053\063\006\064\073" +
"\001\002\000\032\010\046\015\021\024\024\033\034\034" +
"\066\035\042\050\054\057\043\061\011\062\053\063\006" +
"\064\073\001\002\000\032\010\046\015\021\024\024\033" +
"\034\034\066\035\042\050\054\057\043\061\011\062\053" +
"\063\006\064\073\001\002\000\032\010\046\015\021\024" +
"\024\033\034\034\066\035\042\050\054\057\043\061\011" +
"\062\053\063\006\064\073\001\002\000\032\010\046\015" +
"\021\024\024\033\034\034\066\035\042\050\054\057\043" +
"\061\011\062\053\063\006\064\073\001\002\000\032\010" +
"\046\015\021\024\024\033\034\034\066\035\042\050\054" +
"\057\043\061\011\062\053\063\006\064\073\001\002\000" +
"\026\005\uffb2\011\uffb2\012\uffb2\013\uffb2\014\302\015\304" +
"\022\uffb2\023\uffb2\040\uffb2\044\uffb2\001\002\000\026\005" +
"\uffb4\011\uffb4\012\uffb4\013\uffb4\014\302\015\304\022\uffb4" +
"\023\uffb4\040\uffb4\044\uffb4\001\002\000\050\005\uffaf\011" +
"\uffaf\012\uffaf\013\uffaf\014\uffaf\015\uffaf\016\131\017\130" +
"\020\127\022\uffaf\023\uffaf\025\uffaf\026\uffaf\027\uffaf\030" +
"\uffaf\031\uffaf\032\uffaf\040\uffaf\044\uffaf\001\002\000\026" +
"\005\uffb5\011\uffb5\012\uffb5\013\uffb5\014\302\015\304\022" +
"\uffb5\023\uffb5\040\uffb5\044\uffb5\001\002\000\050\005\uffb0" +
"\011\uffb0\012\uffb0\013\uffb0\014\uffb0\015\uffb0\016\131\017" +
"\130\020\127\022\uffb0\023\uffb0\025\uffb0\026\uffb0\027\uffb0" +
"\030\uffb0\031\uffb0\032\uffb0\040\uffb0\044\uffb0\001\002\000" +
"\026\005\uffb6\011\uffb6\012\uffb6\013\uffb6\014\302\015\304" +
"\022\uffb6\023\uffb6\040\uffb6\044\uffb6\001\002\000\026\005" +
"\uffb7\011\uffb7\012\uffb7\013\uffb7\014\302\015\304\022\uffb7" +
"\023\uffb7\040\uffb7\044\uffb7\001\002\000\026\005\uffb3\011" +
"\uffb3\012\uffb3\013\uffb3\014\302\015\304\022\uffb3\023\uffb3" +
"\040\uffb3\044\uffb3\001\002" });
/** Access to parse-action table. */
public short[][] action_table() {return _action_table;}
/** reduce_goto
table. */
protected static final short[][] _reduce_table =
unpackFromStrings(new String[] {
"\000\314\000\004\012\003\001\001\000\066\004\034\005" +
"\066\006\060\007\061\010\067\017\012\020\035\022\013" +
"\023\004\025\032\026\011\027\063\030\064\040\056\041" +
"\047\042\021\043\017\044\044\045\007\046\057\047\030" +
"\050\024\051\025\052\027\053\037\054\015\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\002\001\001\000\002\001\001" +
"\000\034\040\264\041\047\042\021\043\017\044\044\045" +
"\007\046\057\047\030\050\024\051\025\052\027\053\037" +
"\054\015\001\001\000\002\001\001\000\016\047\263\050" +
"\024\051\025\052\027\053\037\054\132\001\001\000\002" +
"\001\001\000\002\001\001\000\016\047\256\050\024\051" +
"\025\052\027\053\037\054\132\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" +
"\051\107\052\027\053\037\054\243\001\001\000\006\033" +
"\161\034\160\001\001\000\002\001\001\000\002\001\001" +
"\000\002\001\001\000\034\040\210\041\047\042\021\043" +
"\017\044\044\045\007\046\057\047\030\050\024\051\025" +
"\052\027\053\037\054\015\001\001\000\012\051\107\052" +
"\027\053\037\054\207\001\001\000\002\001\001\000\014" +
"\003\205\005\204\006\206\007\201\010\203\001\001\000" +
"\002\001\001\000\042\004\176\007\061\010\067\040\116" +
"\041\047\042\021\043\017\044\044\045\007\046\057\047" +
"\030\050\024\051\025\052\027\053\037\054\015\001\001" +
"\000\002\001\001\000\002\001\001\000\034\040\174\041" +
"\047\042\021\043\017\044\044\045\007\046\057\047\030" +
"\050\024\051\025\052\027\053\037\054\015\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\032\124\001\001\000\002\001\001\000\034" +
"\040\120\041\047\042\021\043\017\044\044\045\007\046" +
"\057\047\030\050\024\051\025\052\027\053\037\054\015" +
"\001\001\000\002\001\001\000\002\001\001\000\012\051" +
"\107\052\027\053\037\054\105\001\001\000\004\032\101" +
"\001\001\000\002\001\001\000\004\016\071\001\001\000" +
"\036\030\073\040\056\041\047\042\021\043\017\044\044" +
"\045\007\046\057\047\030\050\024\051\025\052\027\053" +
"\037\054\015\001\001\000\002\001\001\000\002\001\001" +
"\000\002\001\001\000\034\040\076\041\047\042\021\043" +
"\017\044\044\045\007\046\057\047\030\050\024\051\025" +
"\052\027\053\037\054\015\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\034\040\116\041\047\042\021\043\017\044\044" +
"\045\007\046\057\047\030\050\024\051\025\052\027\053" +
"\037\054\015\001\001\000\002\001\001\000\002\001\001" +
"\000\034\040\114\041\047\042\021\043\017\044\044\045" +
"\007\046\057\047\030\050\024\051\025\052\027\053\037" +
"\054\015\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\016\122\001\001\000" +
"\036\030\073\040\056\041\047\042\021\043\017\044\044" +
"\045\007\046\057\047\030\050\024\051\025\052\027\053" +
"\037\054\015\001\001\000\002\001\001\000\002\001\001" +
"\000\002\001\001\000\016\047\136\050\024\051\025\052" +
"\027\053\037\054\132\001\001\000\016\047\135\050\024" +
"\051\025\052\027\053\037\054\132\001\001\000\016\047" +
"\131\050\024\051\025\052\027\053\037\054\132\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\014\004\145\007\061\010" +
"\067\015\143\024\142\001\001\000\014\004\145\007\061" +
"\010\067\015\170\024\142\001\001\000\002\001\001\000" +
"\002\001\001\000\004\032\146\001\001\000\002\001\001" +
"\000\002\001\001\000\004\011\153\001\001\000\002\001" +
"\001\000\004\013\154\001\001\000\002\001\001\000\060" +
"\004\155\005\066\006\060\007\061\010\067\020\156\025" +
"\032\026\011\027\063\030\064\040\056\041\047\042\021" +
"\043\017\044\044\045\007\046\057\047\030\050\024\051" +
"\025\052\027\053\037\054\015\001\001\000\006\033\161" +
"\034\160\001\001\000\002\001\001\000\002\001\001\000" +
"\002\001\001\000\002\001\001\000\002\001\001\000\034" +
"\040\164\041\047\042\021\043\017\044\044\045\007\046" +
"\057\047\030\050\024\051\025\052\027\053\037\054\015" +
"\001\001\000\002\001\001\000\004\034\167\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\002\001\001\000\016\047\200" +
"\050\024\051\025\052\027\053\037\054\132\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\002\001\001\000\004\016\212" +
"\001\001\000\040\030\073\035\215\040\056\041\047\042" +
"\021\043\017\044\044\045\007\046\057\047\030\050\024" +
"\051\025\052\027\053\037\054\015\001\001\000\004\016" +
"\223\001\001\000\034\040\217\041\047\042\021\043\017" +
"\044\044\045\007\046\057\047\030\050\024\051\025\052" +
"\027\053\037\054\015\001\001\000\002\001\001\000\002" +
"\001\001\000\002\001\001\000\004\016\221\001\001\000" +
"\040\030\073\035\222\040\056\041\047\042\021\043\017" +
"\044\044\045\007\046\057\047\030\050\024\051\025\052" +
"\027\053\037\054\015\001\001\000\002\001\001\000\036" +
"\030\073\040\056\041\047\042\021\043\017\044\044\045" +
"\007\046\057\047\030\050\024\051\025\052\027\053\037" +
"\054\015\001\001\000\040\036\225\037\227\040\226\041" +
"\047\042\021\043\017\044\044\045\007\046\057\047\030" +
"\050\024\051\025\052\027\053\037\054\015\001\001\000" +
"\002\001\001\000\002\001\001\000\002\001\001\000\034" +
"\040\231\041\047\042\021\043\017\044\044\045\007\046" +
"\057\047\030\050\024\051\025\052\027\053\037\054\015" +
"\001\001\000\002\001\001\000\002\001\001\000\002\001" +
"\001\000\014\003\235\005\204\006\206\007\201\010\203" +
"\001\001\000\002\001\001\000\002\001\001\000\014\004" +
"\145\007\061\010\067\015\240\024\142\001\001\000\002" +
"\001\001\000\004\011\242\001\001\000\002\001\001\000" +
"\002\001\001\000\004\031\245\001\001\000\002\001\001" +
"\000\002\001\001\000\002\001\001\000\004\014\251\001" +
"\001\000\064\004\034\005\066\006\060\007\061\010\067" +
"\020\253\021\254\023\252\025\032\026\011\027\063\030" +
"\064\040\056\041\047\042\021\043\017\044\044\045\007" +
"\046\057\047\030\050\024\051\025\052\027\053\037\054" +
"\015\001\001\000\002\001\001\000\002\001\001\000\002" +
"\001\001\000\002\001\001\000\002\001\001\000\026\043" +
"\260\044\044\045\007\046\057\047\030\050\024\051\025" +
"\052\027\053\037\054\132\001\001\000\002\001\001\000" +
"\024\044\262\045\007\046\057\047\030\050\024\051\025" +
"\052\027\053\037\054\132\001\001\000\002\001\001\000" +
"\002\001\001\000\002\001\001\000\034\040\266\041\047" +
"\042\021\043\017\044\044\045\007\046\057\047\030\050" +
"\024\051\025\052\027\053\037\054\015\001\001\000\002" +
"\001\001\000\034\040\270\041\047\042\021\043\017\044" +
"\044\045\007\046\057\047\030\050\024\051\025\052\027" +
"\053\037\054\015\001\001\000\002\001\001\000\004\016" +
"\272\001\001\000\036\030\073\040\056\041\047\042\021" +
"\043\017\044\044\045\007\046\057\047\030\050\024\051" +
"\025\052\027\053\037\054\015\001\001\000\002\001\001" +
"\000\030\042\275\043\017\044\044\045\007\046\057\047" +
"\030\050\024\051\025\052\027\053\037\054\132\001\001" +
"\000\002\001\001\000\022\045\315\046\057\047\030\050" +
"\024\051\025\052\027\053\037\054\132\001\001\000\022" +
"\045\314\046\057\047\030\050\024\051\025\052\027\053" +
"\037\054\132\001\001\000\022\045\313\046\057\047\030" +
"\050\024\051\025\052\027\053\037\054\132\001\001\000" +
"\020\046\312\047\030\050\024\051\025\052\027\053\037" +
"\054\132\001\001\000\022\045\311\046\057\047\030\050" +
"\024\051\025\052\027\053\037\054\132\001\001\000\020" +
"\046\310\047\030\050\024\051\025\052\027\053\037\054" +
"\132\001\001\000\022\045\307\046\057\047\030\050\024" +
"\051\025\052\027\053\037\054\132\001\001\000\022\045" +
"\306\046\057\047\030\050\024\051\025\052\027\053\037" +
"\054\132\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" });
/** Access to reduce_goto
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;}
/** EOF
Symbol index. */
public int EOF_sym() {return 0;}
/** error
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.yylex();
}
private Yylex lexer;
private File file;
public parser( File file ) {
this();
this.file = file;
try {
lexer = new Yylex( new FileReader( file ) );
}
catch ( IOException exception ) {
throw new Error( "Unable to open file \"" + file + "\"" );
}
}
public String terminal_name( int id ) {
return sym.terminal_name( id );
}
public String non_terminal_name( int id ) {
return sym.non_terminal_name( id );
}
public String rule_name( int id ) {
return sym.rule_name( id );
}
public void report_error( String message, Object info ) {
Print.error().println( file + " ( " + lexer.lineNumber() + " ): " + message );
try {
if ( info instanceof Symbol ) {
Symbol symbol = ( Symbol ) info;
printText( symbol.left, symbol.right );
}
}
catch ( IOException e ) {
System.err.println( message );
}
}
private void printText( int left, int right ) throws IOException {
Reader sourceReader = new FileReader( file );
int veryLeft = Math.max( left - 50, 0 ),
veryRight = Math.min( right + 20,
( int ) file.length() );
char[] text = new char[ veryRight - veryLeft ];
char[] underline = new char[ veryRight - veryLeft ];
sourceReader.skip( veryLeft );
sourceReader.read( text );
for ( int i = 0; i < text.length; i++ ) {
if ( text[ i ] < ' ' ) {
text[ i ] = '|';
underline[ i ] = '|';
}
else
underline[ i ] = ' ';
if ( left <= veryLeft + i && veryLeft + i < right )
underline[ i ] = '^';
}
printLine( text );
printLine( underline );
}
private static void printLine( char[] text ) {
for ( int i = 0; i < text.length; i++ )
Print.error().print( text[ i ] );
Print.error().println();
}
public void syntax_error( Symbol currToken ) {
report_error( "Syntax Error", currToken );
}
}
/** 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 112: // Variable ::= Primary PTR
{
VariableNode RESULT = null;
int objectleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
int objectright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
ExprNode object = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
RESULT = new IndirectVariableNode( object );
CUP$parser$result = new java_cup.runtime.Symbol(42/*Variable*/, ((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 111: // Variable ::= Primary DOT IDENT
{
VariableNode RESULT = null;
int objectleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
int objectright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
ExprNode object = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
int memberleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int memberright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
String member = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new MemberVariableNode( object, member );
CUP$parser$result = new java_cup.runtime.Symbol(42/*Variable*/, ((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 110: // Variable ::= Primary LEFTSQ Expr RIGHTSQ
{
VariableNode RESULT = null;
int arrayleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left;
int arrayright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right;
ExprNode array = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value;
int indexleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
int indexright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
ExprNode index = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
RESULT = new IndexVariableNode( array, index );
CUP$parser$result = new java_cup.runtime.Symbol(42/*Variable*/, ((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 109: // Variable ::= IDENT
{
VariableNode RESULT = null;
int identleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int identright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
String ident = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new IdentVariableNode( ident );
CUP$parser$result = new java_cup.runtime.Symbol(42/*Variable*/, ((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 108: // LiteralValue ::= NULL
{
ExprNode RESULT = null;
RESULT = new NullValueNode();
CUP$parser$result = new java_cup.runtime.Symbol(40/*LiteralValue*/, ((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 107: // LiteralValue ::= STRINGVALUE
{
ExprNode RESULT = null;
int valueleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int valueright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
String value = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new StringValueNode(
Convert.parseString( value.substring( 1, value.length() - 1 ) ) );
CUP$parser$result = new java_cup.runtime.Symbol(40/*LiteralValue*/, ((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 106: // LiteralValue ::= CHARVALUE
{
ExprNode RESULT = null;
int valueleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int valueright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
String value = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new CharValueNode(
Convert.parseChar( value.substring( 1, value.length() - 1 ) ) );
CUP$parser$result = new java_cup.runtime.Symbol(40/*LiteralValue*/, ((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 105: // LiteralValue ::= INTVALUE
{
ExprNode RESULT = null;
int valueleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int valueright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
String value = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new IntValueNode( new Integer( value ) );
CUP$parser$result = new java_cup.runtime.Symbol(40/*LiteralValue*/, ((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 104: // MethodName ::= Primary DOT IDENT
{
MethodNameNode RESULT = null;
int objectleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
int objectright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
ExprNode object = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
int memberleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int memberright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
String member = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new MemberMethodNameNode( object, member );
CUP$parser$result = new java_cup.runtime.Symbol(41/*MethodName*/, ((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 103: // MethodName ::= IDENT
{
MethodNameNode RESULT = null;
int identleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int identright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
String ident = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new IdentMethodNameNode( ident );
CUP$parser$result = new java_cup.runtime.Symbol(41/*MethodName*/, ((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 102: // Primary ::= MethodName LEFT ExprListOpt RIGHT
{
ExprNode RESULT = null;
int methodNameleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left;
int methodNameright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right;
MethodNameNode methodName = (MethodNameNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value;
int actualParamsleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
int actualParamsright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
ExprListNode actualParams = (ExprListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
RESULT = new InvocationNode( methodName, actualParams );
CUP$parser$result = new java_cup.runtime.Symbol(39/*Primary*/, ((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 101: // Primary ::= Variable
{
ExprNode RESULT = null;
int variableleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int variableright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
VariableNode variable = (VariableNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new VarExprNode( variable );
CUP$parser$result = new java_cup.runtime.Symbol(39/*Primary*/, ((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: // Primary ::= THIS
{
ExprNode RESULT = null;
RESULT = new ThisNode();
CUP$parser$result = new java_cup.runtime.Symbol(39/*Primary*/, ((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: // Primary ::= LiteralValue
{
ExprNode RESULT = null;
int valueleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int valueright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
ExprNode value = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = value;
CUP$parser$result = new java_cup.runtime.Symbol(39/*Primary*/, ((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: // Primary ::= LEFT Expr RIGHT
{
ExprNode RESULT = null;
int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
RESULT = expr;
CUP$parser$result = new java_cup.runtime.Symbol(39/*Primary*/, ((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: // PostfixExpr ::= Primary
{
ExprNode RESULT = null;
int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = expr;
CUP$parser$result = new java_cup.runtime.Symbol(38/*PostfixExpr*/, ((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: // PostfixExpr ::= Variable DEC
{
ExprNode RESULT = null;
int variableleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
int variableright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
VariableNode variable = (VariableNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
RESULT = new PostDecNode( variable );
CUP$parser$result = new java_cup.runtime.Symbol(38/*PostfixExpr*/, ((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 95: // PostfixExpr ::= Variable INC
{
ExprNode RESULT = null;
int variableleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
int variableright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
VariableNode variable = (VariableNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
RESULT = new PostIncNode( variable );
CUP$parser$result = new java_cup.runtime.Symbol(38/*PostfixExpr*/, ((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 94: // PrefixExpr ::= PostfixExpr
{
ExprNode RESULT = null;
int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = expr;
CUP$parser$result = new java_cup.runtime.Symbol(37/*PrefixExpr*/, ((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: // PrefixExpr ::= AMPERSAND Variable
{
ExprNode RESULT = null;
int variableleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int variableright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
VariableNode variable = (VariableNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new AddressNode( variable );
CUP$parser$result = new java_cup.runtime.Symbol(37/*PrefixExpr*/, ((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 92: // PrefixExpr ::= DEC Variable
{
ExprNode RESULT = null;
int variableleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int variableright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
VariableNode variable = (VariableNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new PreDecNode( variable );
CUP$parser$result = new java_cup.runtime.Symbol(37/*PrefixExpr*/, ((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 91: // PrefixExpr ::= INC Variable
{
ExprNode RESULT = null;
int variableleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int variableright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
VariableNode variable = (VariableNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new PreIncNode( variable );
CUP$parser$result = new java_cup.runtime.Symbol(37/*PrefixExpr*/, ((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 90: // PrefixExpr ::= LEFT FormalType RIGHT PrefixExpr
{
ExprNode RESULT = null;
int typeleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
int typeright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
TypeNode type = (TypeNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new ExplicitCastNode( type, expr );
CUP$parser$result = new java_cup.runtime.Symbol(37/*PrefixExpr*/, ((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 89: // PrefixExpr ::= NOT PrefixExpr
{
ExprNode RESULT = null;
int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new NotNode( expr );
CUP$parser$result = new java_cup.runtime.Symbol(37/*PrefixExpr*/, ((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 88: // PrefixExpr ::= MINUS PrefixExpr
{
ExprNode RESULT = null;
int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new NegateNode( expr );
CUP$parser$result = new java_cup.runtime.Symbol(37/*PrefixExpr*/, ((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 87: // MulExpr ::= PrefixExpr
{
ExprNode RESULT = null;
int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = expr;
CUP$parser$result = new java_cup.runtime.Symbol(36/*MulExpr*/, ((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 86: // MulExpr ::= MulExpr MOD PrefixExpr
{
ExprNode RESULT = null;
int expr1left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
int expr1right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
ExprNode expr1 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
int expr2left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int expr2right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
ExprNode expr2 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new ModNode( expr1, expr2 );
CUP$parser$result = new java_cup.runtime.Symbol(36/*MulExpr*/, ((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 85: // MulExpr ::= MulExpr DIVIDE PrefixExpr
{
ExprNode RESULT = null;
int expr1left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
int expr1right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
ExprNode expr1 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
int expr2left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int expr2right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
ExprNode expr2 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new DivideNode( expr1, expr2 );
CUP$parser$result = new java_cup.runtime.Symbol(36/*MulExpr*/, ((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 84: // MulExpr ::= MulExpr TIMES PrefixExpr
{
ExprNode RESULT = null;
int expr1left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
int expr1right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
ExprNode expr1 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
int expr2left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int expr2right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
ExprNode expr2 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new TimesNode( expr1, expr2 );
CUP$parser$result = new java_cup.runtime.Symbol(36/*MulExpr*/, ((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 83: // AddExpr ::= MulExpr
{
ExprNode RESULT = null;
int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = expr;
CUP$parser$result = new java_cup.runtime.Symbol(35/*AddExpr*/, ((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: // AddExpr ::= AddExpr MINUS MulExpr
{
ExprNode RESULT = null;
int expr1left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
int expr1right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
ExprNode expr1 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
int expr2left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int expr2right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
ExprNode expr2 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new MinusNode( expr1, expr2 );
CUP$parser$result = new java_cup.runtime.Symbol(35/*AddExpr*/, ((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 81: // AddExpr ::= AddExpr PLUS MulExpr
{
ExprNode RESULT = null;
int expr1left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
int expr1right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
ExprNode expr1 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
int expr2left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int expr2right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
ExprNode expr2 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new PlusNode( expr1, expr2 );
CUP$parser$result = new java_cup.runtime.Symbol(35/*AddExpr*/, ((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 80: // RelExpr ::= AddExpr
{
ExprNode RESULT = null;
int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = expr;
CUP$parser$result = new java_cup.runtime.Symbol(34/*RelExpr*/, ((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: // RelExpr ::= AddExpr NE AddExpr
{
ExprNode RESULT = null;
int expr1left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
int expr1right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
ExprNode expr1 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
int expr2left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int expr2right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
ExprNode expr2 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new NotEqualNode( expr1, expr2 );
CUP$parser$result = new java_cup.runtime.Symbol(34/*RelExpr*/, ((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 78: // RelExpr ::= AddExpr EQ AddExpr
{
ExprNode RESULT = null;
int expr1left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
int expr1right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
ExprNode expr1 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
int expr2left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int expr2right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
ExprNode expr2 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new EqualNode( expr1, expr2 );
CUP$parser$result = new java_cup.runtime.Symbol(34/*RelExpr*/, ((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: // RelExpr ::= AddExpr GE AddExpr
{
ExprNode RESULT = null;
int expr1left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
int expr1right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
ExprNode expr1 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
int expr2left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int expr2right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
ExprNode expr2 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new GreaterEqualNode( expr1, expr2 );
CUP$parser$result = new java_cup.runtime.Symbol(34/*RelExpr*/, ((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 76: // RelExpr ::= AddExpr LE AddExpr
{
ExprNode RESULT = null;
int expr1left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
int expr1right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
ExprNode expr1 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
int expr2left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int expr2right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
ExprNode expr2 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new LessEqualNode( expr1, expr2 );
CUP$parser$result = new java_cup.runtime.Symbol(34/*RelExpr*/, ((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: // RelExpr ::= AddExpr GT AddExpr
{
ExprNode RESULT = null;
int expr1left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
int expr1right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
ExprNode expr1 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
int expr2left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int expr2right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
ExprNode expr2 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new GreaterThanNode( expr1, expr2 );
CUP$parser$result = new java_cup.runtime.Symbol(34/*RelExpr*/, ((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 74: // RelExpr ::= AddExpr LT AddExpr
{
ExprNode RESULT = null;
int expr1left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
int expr1right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
ExprNode expr1 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
int expr2left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int expr2right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
ExprNode expr2 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new LessThanNode( expr1, expr2 );
CUP$parser$result = new java_cup.runtime.Symbol(34/*RelExpr*/, ((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 73: // AndExpr ::= RelExpr
{
ExprNode RESULT = null;
int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = expr;
CUP$parser$result = new java_cup.runtime.Symbol(33/*AndExpr*/, ((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 72: // AndExpr ::= AndExpr AND RelExpr
{
ExprNode RESULT = null;
int expr1left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
int expr1right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
ExprNode expr1 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
int expr2left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int expr2right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
ExprNode expr2 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new AndNode( expr1, expr2 );
CUP$parser$result = new java_cup.runtime.Symbol(33/*AndExpr*/, ((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: // OrExpr ::= AndExpr
{
ExprNode RESULT = null;
int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = expr;
CUP$parser$result = new java_cup.runtime.Symbol(32/*OrExpr*/, ((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 70: // OrExpr ::= OrExpr OR AndExpr
{
ExprNode RESULT = null;
int expr1left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
int expr1right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
ExprNode expr1 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
int expr2left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int expr2right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
ExprNode expr2 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new OrNode( expr1, expr2 );
CUP$parser$result = new java_cup.runtime.Symbol(32/*OrExpr*/, ((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: // AssignExpr ::= OrExpr
{
ExprNode RESULT = null;
int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = expr;
CUP$parser$result = new java_cup.runtime.Symbol(31/*AssignExpr*/, ((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: // AssignExpr ::= Variable ASSIGN OrExpr
{
ExprNode RESULT = null;
int variableleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
int variableright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
VariableNode variable = (VariableNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new AssignNode( variable, expr );
CUP$parser$result = new java_cup.runtime.Symbol(31/*AssignExpr*/, ((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 67: // Expr ::= AssignExpr
{
ExprNode RESULT = null;
int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = expr;
CUP$parser$result = new java_cup.runtime.Symbol(30/*Expr*/, ((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 66: // ExprList ::= Expr
{
ExprListNode RESULT = null;
int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
ExprListNode exprList = new ExprListNode();
exprList.addElement( expr );
RESULT = exprList;
CUP$parser$result = new java_cup.runtime.Symbol(29/*ExprList*/, ((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 65: // ExprList ::= ExprList COMMA Expr
{
ExprListNode RESULT = null;
int exprListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
int exprListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
ExprListNode exprList = (ExprListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
exprList.addElement( expr );
RESULT = exprList;
CUP$parser$result = new java_cup.runtime.Symbol(29/*ExprList*/, ((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: // ExprListOpt ::=
{
ExprListNode RESULT = null;
RESULT = new ExprListNode();
CUP$parser$result = new java_cup.runtime.Symbol(28/*ExprListOpt*/, ((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 63: // ExprListOpt ::= ExprList
{
ExprListNode RESULT = null;
int exprListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int exprListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
ExprListNode exprList = (ExprListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = exprList;
CUP$parser$result = new java_cup.runtime.Symbol(28/*ExprListOpt*/, ((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 62: // ElseOpt ::= ELIF Expr THEN StmtList ElseOpt
{
ElseOptNode RESULT = null;
int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left;
int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right;
ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value;
int stmtListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
int stmtListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
DeclStmtListNode stmtList = (DeclStmtListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
int elseOptleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int elseOptright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
ElseOptNode elseOpt = (ElseOptNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new ElseOpt2Node( expr, stmtList, elseOpt );
CUP$parser$result = new java_cup.runtime.Symbol(27/*ElseOpt*/, ((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: // ElseOpt ::= ELSE StmtList
{
ElseOptNode RESULT = null;
int stmtListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int stmtListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
DeclStmtListNode stmtList = (DeclStmtListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new ElseOpt1Node( stmtList );
CUP$parser$result = new java_cup.runtime.Symbol(27/*ElseOpt*/, ((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 60: // ElseOpt ::=
{
ElseOptNode RESULT = null;
RESULT = new ElseOpt0Node();
CUP$parser$result = new java_cup.runtime.Symbol(27/*ElseOpt*/, ((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 59: // Stmt ::= error SEMICOLON
{
DeclStmtNode RESULT = null;
RESULT = new ErrorDeclStmtNode();
CUP$parser$result = new java_cup.runtime.Symbol(22/*Stmt*/, ((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 58: // Stmt ::= error END
{
DeclStmtNode RESULT = null;
RESULT = new ErrorDeclStmtNode();
CUP$parser$result = new java_cup.runtime.Symbol(22/*Stmt*/, ((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 57: // Stmt ::= RETURN Expr SEMICOLON
{
DeclStmtNode RESULT = null;
int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
RESULT = new ReturnExprStmtNode( expr );
CUP$parser$result = new java_cup.runtime.Symbol(22/*Stmt*/, ((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 56: // Stmt ::= RETURN SEMICOLON
{
DeclStmtNode RESULT = null;
RESULT = new ReturnStmtNode();
CUP$parser$result = new java_cup.runtime.Symbol(22/*Stmt*/, ((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 55: // Stmt ::= FOR Expr SEMICOLON Expr SEMICOLON Expr DO StmtList END
{
DeclStmtNode RESULT = null;
int initialleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-7)).left;
int initialright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-7)).right;
ExprNode initial = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-7)).value;
int condleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)).left;
int condright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)).right;
ExprNode cond = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-5)).value;
int incrementleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left;
int incrementright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right;
ExprNode increment = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value;
int stmtListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
int stmtListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
DeclStmtListNode stmtList = (DeclStmtListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
RESULT = new ForStmtNode( initial, cond, increment, stmtList );
CUP$parser$result = new java_cup.runtime.Symbol(22/*Stmt*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-8)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 54: // Stmt ::= DO StmtList END WHILE Expr SEMICOLON
{
DeclStmtNode RESULT = null;
int stmtListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left;
int stmtListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).right;
DeclStmtListNode stmtList = (DeclStmtListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-4)).value;
int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
RESULT = new DoStmtNode( stmtList, expr );
CUP$parser$result = new java_cup.runtime.Symbol(22/*Stmt*/, ((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 53: // Stmt ::= WHILE Expr DO StmtList END
{
DeclStmtNode RESULT = null;
int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left;
int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right;
ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value;
int stmtListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
int stmtListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
DeclStmtListNode stmtList = (DeclStmtListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
RESULT = new WhileStmtNode( expr, stmtList );
CUP$parser$result = new java_cup.runtime.Symbol(22/*Stmt*/, ((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 52: // Stmt ::= IF Expr THEN StmtList ElseOpt END
{
DeclStmtNode RESULT = null;
int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left;
int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).right;
ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-4)).value;
int stmtListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
int stmtListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
DeclStmtListNode stmtList = (DeclStmtListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
int elseOptleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
int elseOptright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
ElseOptNode elseOpt = (ElseOptNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
RESULT = new IfStmtNode( expr, stmtList, elseOpt );
CUP$parser$result = new java_cup.runtime.Symbol(22/*Stmt*/, ((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 51: // Stmt ::= Expr SEMICOLON
{
DeclStmtNode RESULT = null;
int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
RESULT = new ExprStmtNode( expr );
CUP$parser$result = new java_cup.runtime.Symbol(22/*Stmt*/, ((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: // Stmt ::= SEMICOLON
{
DeclStmtNode RESULT = null;
RESULT = new NullStmtNode();
CUP$parser$result = new java_cup.runtime.Symbol(22/*Stmt*/, ((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 49: // LocalVar ::= IDENT ASSIGN Expr
{
DeclaratorNode RESULT = null;
int identleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
int identright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
String ident = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new InitDeclaratorNode( ident, expr );
CUP$parser$result = new java_cup.runtime.Symbol(26/*LocalVar*/, ((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: // LocalVar ::= IDENT
{
DeclaratorNode RESULT = null;
int identleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int identright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
String ident = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new UninitDeclaratorNode( ident );
CUP$parser$result = new java_cup.runtime.Symbol(26/*LocalVar*/, ((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 47: // LocalVarList ::= LocalVar
{
DeclaratorListNode RESULT = null;
int localVarleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int localVarright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
DeclaratorNode localVar = (DeclaratorNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
DeclaratorListNode localVarList = new DeclaratorListNode( localVar );
RESULT = localVarList;
CUP$parser$result = new java_cup.runtime.Symbol(25/*LocalVarList*/, ((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 46: // LocalVarList ::= LocalVarList COMMA LocalVar
{
DeclaratorListNode RESULT = null;
int localVarListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
int localVarListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
DeclaratorListNode localVarList = (DeclaratorListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
int localVarleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int localVarright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
DeclaratorNode localVar = (DeclaratorNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
localVarList.addElement( localVar );
RESULT = localVarList;
CUP$parser$result = new java_cup.runtime.Symbol(25/*LocalVarList*/, ((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 45: // IdentList ::= IDENT
{
DeclaratorListNode RESULT = null;
int identleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int identright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
String ident = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new DeclaratorListNode( new UninitDeclaratorNode( ident ) );
CUP$parser$result = new java_cup.runtime.Symbol(24/*IdentList*/, ((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: // IdentList ::= IdentList COMMA IDENT
{
DeclaratorListNode RESULT = null;
int identListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
int identListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
DeclaratorListNode identList = (DeclaratorListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
int identleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int identright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
String ident = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
identList.addElement( new UninitDeclaratorNode( ident ) );
RESULT = identList;
CUP$parser$result = new java_cup.runtime.Symbol(24/*IdentList*/, ((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 43: // BasicType ::= BOOL
{
TypeNode RESULT = null;
RESULT = new BoolTypeNode();
CUP$parser$result = new java_cup.runtime.Symbol(6/*BasicType*/, ((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: // BasicType ::= CHAR
{
TypeNode RESULT = null;
RESULT = new CharTypeNode();
CUP$parser$result = new java_cup.runtime.Symbol(6/*BasicType*/, ((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: // BasicType ::= INT
{
TypeNode RESULT = null;
RESULT = new IntTypeNode();
CUP$parser$result = new java_cup.runtime.Symbol(6/*BasicType*/, ((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 40: // PtrType ::= PTR ActualType
{
TypeNode RESULT = null;
int typeleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int typeright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
TypeNode type = (TypeNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new PtrTypeNode( type );
CUP$parser$result = new java_cup.runtime.Symbol(5/*PtrType*/, ((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: // ArrayType ::= LEFTSQ INTVALUE RIGHTSQ ActualType
{
TypeNode RESULT = null;
int sizeleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
int sizeright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
String size = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
int typeleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int typeright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
TypeNode type = (TypeNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new ArrayTypeNode( Integer.parseInt( size ), type );
CUP$parser$result = new java_cup.runtime.Symbol(4/*ArrayType*/, ((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 38: // ClassType ::= IDENT
{
TypeNode RESULT = null;
int identleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int identright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
String ident = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new TypeIdentNode( ident );
CUP$parser$result = new java_cup.runtime.Symbol(3/*ClassType*/, ((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 37: // FormalType ::= PtrType
{
TypeNode RESULT = null;
int typeleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int typeright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
TypeNode type = (TypeNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = type;
CUP$parser$result = new java_cup.runtime.Symbol(2/*FormalType*/, ((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 36: // FormalType ::= BasicType
{
TypeNode RESULT = null;
int typeleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int typeright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
TypeNode type = (TypeNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = type;
CUP$parser$result = new java_cup.runtime.Symbol(2/*FormalType*/, ((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 35: // ActualType ::= ArrayType
{
TypeNode RESULT = null;
int typeleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int typeright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
TypeNode type = (TypeNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = type;
CUP$parser$result = new java_cup.runtime.Symbol(1/*ActualType*/, ((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: // ActualType ::= ClassType
{
TypeNode RESULT = null;
int typeleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int typeright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
TypeNode type = (TypeNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = type;
CUP$parser$result = new java_cup.runtime.Symbol(1/*ActualType*/, ((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 33: // ActualType ::= PtrType
{
TypeNode RESULT = null;
int typeleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int typeright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
TypeNode type = (TypeNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = type;
CUP$parser$result = new java_cup.runtime.Symbol(1/*ActualType*/, ((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: // ActualType ::= BasicType
{
TypeNode RESULT = null;
int typeleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int typeright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
TypeNode type = (TypeNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = type;
CUP$parser$result = new java_cup.runtime.Symbol(1/*ActualType*/, ((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 31: // ArrayInstanceDecl ::= ArrayType IdentList SEMICOLON
{
DeclStmtNode RESULT = null;
int typeleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
int typeright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
TypeNode type = (TypeNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
int identListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
int identListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
DeclaratorListNode identList = (DeclaratorListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
RESULT = new VarDeclNode( type, identList );
CUP$parser$result = new java_cup.runtime.Symbol(21/*ArrayInstanceDecl*/, ((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 30: // ClassInstanceDecl ::= ClassType IdentList SEMICOLON
{
DeclStmtNode RESULT = null;
int typeleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
int typeright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
TypeNode type = (TypeNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
int identListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
int identListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
DeclaratorListNode identList = (DeclaratorListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
RESULT = new VarDeclNode( type, identList );
CUP$parser$result = new java_cup.runtime.Symbol(20/*ClassInstanceDecl*/, ((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 29: // InitVarDecl ::= FormalType LocalVarList SEMICOLON
{
DeclStmtNode RESULT = null;
int typeleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
int typeright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
TypeNode type = (TypeNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
int localVarListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
int localVarListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
DeclaratorListNode localVarList = (DeclaratorListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
RESULT = new VarDeclNode( type, localVarList );
CUP$parser$result = new java_cup.runtime.Symbol(19/*InitVarDecl*/, ((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 28: // VarDecl ::= FormalType IdentList SEMICOLON
{
DeclStmtNode RESULT = null;
int typeleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
int typeright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
TypeNode type = (TypeNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
int identListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
int identListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
DeclaratorListNode identList = (DeclaratorListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
RESULT = new VarDeclNode( type, identList );
CUP$parser$result = new java_cup.runtime.Symbol(18/*VarDecl*/, ((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 27: // MethodDeclBody ::= SEMICOLON
{
DeclStmtListNode RESULT = null;
RESULT = null;
CUP$parser$result = new java_cup.runtime.Symbol(7/*MethodDeclBody*/, ((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 26: // MethodDeclBody ::= BEGIN LocalDeclStmtList END
{
DeclStmtListNode RESULT = null;
int localDeclStmtListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
int localDeclStmtListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
DeclStmtListNode localDeclStmtList = (DeclStmtListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
RESULT = localDeclStmtList;
CUP$parser$result = new java_cup.runtime.Symbol(7/*MethodDeclBody*/, ((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 25: // MethodDecl ::= VOID IDENT LEFT FormalParamDeclList RIGHT MethodDeclBody
{
DeclStmtNode RESULT = null;
int identleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left;
int identright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).right;
String ident = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-4)).value;
int formalParamsleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
int formalParamsright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
DeclStmtListNode formalParams = (DeclStmtListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
int methodDeclBodyleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int methodDeclBodyright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
DeclStmtListNode methodDeclBody = (DeclStmtListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT =
new MethodDeclNode( new VoidTypeNode(), ident,
formalParams, methodDeclBody );
CUP$parser$result = new java_cup.runtime.Symbol(17/*MethodDecl*/, ((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: // MethodDecl ::= FormalType IDENT LEFT FormalParamDeclList RIGHT MethodDeclBody
{
DeclStmtNode RESULT = null;
int returnTypeleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)).left;
int returnTyperight = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)).right;
TypeNode returnType = (TypeNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-5)).value;
int identleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left;
int identright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).right;
String ident = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-4)).value;
int formalParamsleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
int formalParamsright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
DeclStmtListNode formalParams = (DeclStmtListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
int methodDeclBodyleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int methodDeclBodyright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
DeclStmtListNode methodDeclBody = (DeclStmtListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT =
new MethodDeclNode( returnType, ident,
formalParams, methodDeclBody );
CUP$parser$result = new java_cup.runtime.Symbol(17/*MethodDecl*/, ((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 23: // ExtendsOpt ::=
{
String RESULT = null;
RESULT = null;
CUP$parser$result = new java_cup.runtime.Symbol(23/*ExtendsOpt*/, ((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 22: // ExtendsOpt ::= EXTENDS IDENT
{
String RESULT = null;
int superClassleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int superClassright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
String superClass = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = superClass;
CUP$parser$result = new java_cup.runtime.Symbol(23/*ExtendsOpt*/, ((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 21: // ClassTypeDecl ::= CLASS IDENT ExtendsOpt BEGIN MemberDeclList END
{
DeclStmtNode RESULT = null;
int identleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left;
int identright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).right;
String ident = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-4)).value;
int extendsIdentleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left;
int extendsIdentright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right;
String extendsIdent = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value;
int memberDeclsleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
int memberDeclsright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
DeclStmtListNode memberDecls = (DeclStmtListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
RESULT = new ClassDeclNode( ident, extendsIdent, memberDecls );
CUP$parser$result = new java_cup.runtime.Symbol(16/*ClassTypeDecl*/, ((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 20: // LocalDeclStmt ::= Stmt
{
DeclStmtNode RESULT = null;
int stmtleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int stmtright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
DeclStmtNode stmt = (DeclStmtNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = stmt;
CUP$parser$result = new java_cup.runtime.Symbol(14/*LocalDeclStmt*/, ((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 19: // LocalDeclStmt ::= ArrayInstanceDecl
{
DeclStmtNode RESULT = null;
int declleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int declright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
DeclStmtNode decl = (DeclStmtNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = decl;
CUP$parser$result = new java_cup.runtime.Symbol(14/*LocalDeclStmt*/, ((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 18: // LocalDeclStmt ::= ClassInstanceDecl
{
DeclStmtNode RESULT = null;
int declleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int declright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
DeclStmtNode decl = (DeclStmtNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = decl;
CUP$parser$result = new java_cup.runtime.Symbol(14/*LocalDeclStmt*/, ((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 17: // LocalDeclStmt ::= InitVarDecl
{
DeclStmtNode RESULT = null;
int declleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int declright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
DeclStmtNode decl = (DeclStmtNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = decl;
CUP$parser$result = new java_cup.runtime.Symbol(14/*LocalDeclStmt*/, ((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 16: // MemberDecl ::= LocalDeclStmt
{
DeclStmtNode RESULT = null;
int declStmtleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int declStmtright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
DeclStmtNode declStmt = (DeclStmtNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = declStmt;
CUP$parser$result = new java_cup.runtime.Symbol(15/*MemberDecl*/, ((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 15: // MemberDecl ::= MethodDecl
{
DeclStmtNode RESULT = null;
int declleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int declright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
DeclStmtNode decl = (DeclStmtNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = decl;
CUP$parser$result = new java_cup.runtime.Symbol(15/*MemberDecl*/, ((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 14: // GlobalDeclStmt ::= LocalDeclStmt
{
DeclStmtNode RESULT = null;
int declStmtleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int declStmtright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
DeclStmtNode declStmt = (DeclStmtNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = declStmt;
CUP$parser$result = new java_cup.runtime.Symbol(13/*GlobalDeclStmt*/, ((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 13: // GlobalDeclStmt ::= MethodDecl
{
DeclStmtNode RESULT = null;
int declleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int declright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
DeclStmtNode decl = (DeclStmtNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = decl;
CUP$parser$result = new java_cup.runtime.Symbol(13/*GlobalDeclStmt*/, ((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 12: // GlobalDeclStmt ::= ClassTypeDecl
{
DeclStmtNode RESULT = null;
int declleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int declright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
DeclStmtNode decl = (DeclStmtNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = decl;
CUP$parser$result = new java_cup.runtime.Symbol(13/*GlobalDeclStmt*/, ((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: // StmtList ::=
{
DeclStmtListNode RESULT = null;
RESULT = new DeclStmtListNode();
CUP$parser$result = new java_cup.runtime.Symbol(12/*StmtList*/, ((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 10: // StmtList ::= StmtList Stmt
{
DeclStmtListNode RESULT = null;
int stmtListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
int stmtListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
DeclStmtListNode stmtList = (DeclStmtListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
int stmtleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int stmtright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
DeclStmtNode stmt = (DeclStmtNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
stmtList.addElement( stmt );
RESULT = stmtList;
CUP$parser$result = new java_cup.runtime.Symbol(12/*StmtList*/, ((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 9: // FormalParamDeclList ::=
{
DeclStmtListNode RESULT = null;
RESULT = new DeclStmtListNode();
CUP$parser$result = new java_cup.runtime.Symbol(11/*FormalParamDeclList*/, ((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 8: // FormalParamDeclList ::= ETC
{
DeclStmtListNode RESULT = null;
RESULT = new DeclStmtListNode( new EtcDeclNode() );
CUP$parser$result = new java_cup.runtime.Symbol(11/*FormalParamDeclList*/, ((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 7: // FormalParamDeclList ::= VarDecl FormalParamDeclList
{
DeclStmtListNode RESULT = null;
int declleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
int declright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
DeclStmtNode decl = (DeclStmtNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
int declListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int declListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
DeclStmtListNode declList = (DeclStmtListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
declList.prependElement( decl );
RESULT = declList;
CUP$parser$result = new java_cup.runtime.Symbol(11/*FormalParamDeclList*/, ((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 6: // LocalDeclStmtList ::=
{
DeclStmtListNode RESULT = null;
RESULT = new DeclStmtListNode();
CUP$parser$result = new java_cup.runtime.Symbol(9/*LocalDeclStmtList*/, ((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: // LocalDeclStmtList ::= LocalDeclStmtList LocalDeclStmt
{
DeclStmtListNode RESULT = null;
int declStmtListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
int declStmtListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
DeclStmtListNode declStmtList = (DeclStmtListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
int declStmtleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int declStmtright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
DeclStmtNode declStmt = (DeclStmtNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
declStmtList.addElement( declStmt );
RESULT = declStmtList;
CUP$parser$result = new java_cup.runtime.Symbol(9/*LocalDeclStmtList*/, ((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 4: // MemberDeclList ::=
{
DeclStmtListNode RESULT = null;
RESULT = new DeclStmtListNode();
CUP$parser$result = new java_cup.runtime.Symbol(10/*MemberDeclList*/, ((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 3: // MemberDeclList ::= MemberDeclList MemberDecl
{
DeclStmtListNode RESULT = null;
int declListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
int declListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
DeclStmtListNode declList = (DeclStmtListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
int declleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int declright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
DeclStmtNode decl = (DeclStmtNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
declList.addElement( decl );
RESULT = declList;
CUP$parser$result = new java_cup.runtime.Symbol(10/*MemberDeclList*/, ((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 2: // GlobalDeclStmtList ::=
{
DeclStmtListNode RESULT = null;
RESULT = new DeclStmtListNode();
CUP$parser$result = new java_cup.runtime.Symbol(8/*GlobalDeclStmtList*/, ((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 1: // GlobalDeclStmtList ::= GlobalDeclStmtList GlobalDeclStmt
{
DeclStmtListNode RESULT = null;
int globalDeclListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
int globalDeclListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
DeclStmtListNode globalDeclList = (DeclStmtListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
int globalDeclleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int globalDeclright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
DeclStmtNode globalDecl = (DeclStmtNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
globalDeclList.addElement( globalDecl );
RESULT = globalDeclList;
CUP$parser$result = new java_cup.runtime.Symbol(8/*GlobalDeclStmtList*/, ((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 0: // $START ::= GlobalDeclStmtList 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;
DeclStmtListNode start_val = (DeclStmtListNode)((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");
}
}
}