//---------------------------------------------------- // 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"); } } }