//---------------------------------------------------- // The following code was generated by CUP v0.10k // Wed May 03 15:15:15 NZST 2006 //---------------------------------------------------- package grammar; import java.io.*; import java.util.*; import java_cup.runtime.*; import node.*; import node.declNode.*; import node.exprNode.*; import node.exprNode.binaryNode.*; import node.exprNode.binaryNode.arithNode.*; import node.exprNode.binaryNode.relationNode.*; import node.exprNode.binaryNode.boolNode.*; import node.exprNode.prefixNode.*; import node.exprNode.valueNode.*; import node.exprNode.primaryNode.*; import node.exprNode.variableNode.*; import node.stmtNode.*; import node.typeNode.*; import node.typeNode.basicTypeNode.*; import text.*; /** CUP v0.10k generated parser. * @version Wed May 03 15:15:15 NZST 2006 */ public class parser extends java_cup.runtime.lr_parser { /** Default constructor. */ public parser() {super();} /** Constructor which sets the default scanner. */ public parser(java_cup.runtime.Scanner s) {super(s);} /** Production table. */ protected static final short _production_table[][] = unpackFromStrings(new String[] { "\000\136\000\002\002\004\000\002\003\005\000\002\004" + "\006\000\002\010\004\000\002\010\002\000\002\011\004" + "\000\002\011\002\000\002\012\004\000\002\012\002\000" + "\002\013\007\000\002\013\007\000\002\013\011\000\002" + "\013\004\000\002\014\006\000\002\014\004\000\002\015" + "\006\000\002\015\007\000\002\015\004\000\002\036\003" + "\000\002\036\003\000\002\005\003\000\002\005\003\000" + "\002\005\003\000\002\005\003\000\002\005\003\000\002" + "\005\003\000\002\005\003\000\002\005\003\000\002\006" + "\005\000\002\007\006\000\002\016\004\000\002\016\002" + "\000\002\020\003\000\002\020\004\000\002\020\007\000" + "\002\020\006\000\002\020\007\000\002\020\010\000\002" + "\020\007\000\002\020\010\000\002\020\013\000\002\020" + "\004\000\002\020\005\000\002\020\004\000\002\020\004" + "\000\002\017\002\000\002\017\004\000\002\017\007\000" + "\002\024\003\000\002\025\005\000\002\025\003\000\002" + "\026\005\000\002\026\003\000\002\027\005\000\002\027" + "\003\000\002\030\005\000\002\030\005\000\002\030\005" + "\000\002\030\005\000\002\030\005\000\002\030\005\000" + "\002\030\003\000\002\031\005\000\002\031\005\000\002" + "\031\003\000\002\032\005\000\002\032\005\000\002\032" + "\003\000\002\033\004\000\002\033\004\000\002\033\004" + "\000\002\033\007\000\002\033\004\000\002\033\007\000" + "\002\033\003\000\002\034\005\000\002\034\003\000\002" + "\034\003\000\002\034\003\000\002\034\003\000\002\034" + "\003\000\002\034\003\000\002\034\006\000\002\034\006" + "\000\002\034\006\000\002\035\003\000\002\035\006\000" + "\002\035\005\000\002\023\005\000\002\023\003\000\002" + "\021\003\000\002\021\002\000\002\022\005\000\002\022" + "\003" }); /** Access to production table. */ public short[][] production_table() {return _production_table;} /** Parse-action table. */ protected static final short[][] _action_table = unpackFromStrings(new String[] { "\000\315\000\004\057\005\001\002\000\004\002\317\001" + "\002\000\014\003\ufffd\035\ufffd\041\ufffd\043\ufffd\065\ufffd" + "\001\002\000\004\052\316\001\002\000\014\003\013\035" + "\012\041\014\043\011\065\015\001\002\000\014\003\ufffe" + "\035\ufffe\041\ufffe\043\ufffe\065\ufffe\001\002\000\004\074" + "\041\001\002\000\004\074\266\001\002\000\004\014\265" + "\001\002\000\060\003\uffe2\004\uffe2\005\uffe2\006\uffe2\012" + "\uffe2\014\uffe2\020\uffe2\026\uffe2\036\uffe2\042\uffe2\044\uffe2" + "\045\uffe2\046\uffe2\051\uffe2\053\uffe2\054\uffe2\055\uffe2\056" + "\uffe2\070\uffe2\071\uffe2\072\uffe2\073\uffe2\074\uffe2\001\002" + "\000\004\074\016\001\002\000\004\023\017\001\002\000" + "\022\037\031\060\021\061\032\062\023\063\025\064\026" + "\066\024\074\022\001\002\000\004\014\052\001\002\000" + "\064\003\uffed\007\uffed\013\uffed\014\uffed\016\uffed\017\uffed" + "\020\uffed\021\uffed\022\uffed\024\uffed\025\uffed\027\uffed\030" + "\uffed\031\uffed\032\uffed\033\uffed\034\uffed\035\uffed\040\uffed" + "\041\uffed\043\uffed\045\uffed\047\uffed\050\uffed\065\uffed\001" + "\002\000\064\003\uffe8\007\uffe8\013\uffe8\014\uffe8\016\uffe8" + "\017\uffe8\020\uffe8\021\uffe8\022\uffe8\024\uffe8\025\uffe8\027" + "\uffe8\030\uffe8\031\uffe8\032\uffe8\033\uffe8\034\uffe8\035\uffe8" + "\040\uffe8\041\uffe8\043\uffe8\045\uffe8\047\uffe8\050\uffe8\065" + "\uffe8\001\002\000\064\003\uffeb\007\uffeb\013\uffeb\014\uffeb" + "\016\uffeb\017\uffeb\020\uffeb\021\uffeb\022\uffeb\024\uffeb\025" + "\uffeb\027\uffeb\030\uffeb\031\uffeb\032\uffeb\033\uffeb\034\uffeb" + "\035\uffeb\040\uffeb\041\uffeb\043\uffeb\045\uffeb\047\uffeb\050" + "\uffeb\065\uffeb\001\002\000\004\012\035\001\002\000\064" + "\003\uffea\007\uffea\013\uffea\014\uffea\016\uffea\017\uffea\020" + "\uffea\021\uffea\022\uffea\024\uffea\025\uffea\027\uffea\030\uffea" + "\031\uffea\032\uffea\033\uffea\034\uffea\035\uffea\040\uffea\041" + "\uffea\043\uffea\045\uffea\047\uffea\050\uffea\065\uffea\001\002" + "\000\064\003\uffe9\007\uffe9\013\uffe9\014\uffe9\016\uffe9\017" + "\uffe9\020\uffe9\021\uffe9\022\uffe9\024\uffe9\025\uffe9\027\uffe9" + "\030\uffe9\031\uffe9\032\uffe9\033\uffe9\034\uffe9\035\uffe9\040" + "\uffe9\041\uffe9\043\uffe9\045\uffe9\047\uffe9\050\uffe9\065\uffe9" + "\001\002\000\064\003\uffe6\007\uffe6\013\uffe6\014\uffe6\016" + "\uffe6\017\uffe6\020\uffe6\021\uffe6\022\uffe6\024\uffe6\025\uffe6" + "\027\uffe6\030\uffe6\031\uffe6\032\uffe6\033\uffe6\034\uffe6\035" + "\uffe6\040\uffe6\041\uffe6\043\uffe6\045\uffe6\047\uffe6\050\uffe6" + "\065\uffe6\001\002\000\064\003\uffe7\007\uffe7\013\uffe7\014" + "\uffe7\016\uffe7\017\uffe7\020\uffe7\021\uffe7\022\uffe7\024\uffe7" + "\025\uffe7\027\uffe7\030\uffe7\031\uffe7\032\uffe7\033\uffe7\034" + "\uffe7\035\uffe7\040\uffe7\041\uffe7\043\uffe7\045\uffe7\047\uffe7" + "\050\uffe7\065\uffe7\001\002\000\004\040\033\001\002\000" + "\064\003\uffec\007\uffec\013\uffec\014\uffec\016\uffec\017\uffec" + "\020\uffec\021\uffec\022\uffec\024\uffec\025\uffec\027\uffec\030" + "\uffec\031\uffec\032\uffec\033\uffec\034\uffec\035\uffec\040\uffec" + "\041\uffec\043\uffec\045\uffec\047\uffec\050\uffec\065\uffec\001" + "\002\000\022\037\031\060\021\061\032\062\023\063\025" + "\064\026\066\024\074\022\001\002\000\064\003\uffe5\007" + "\uffe5\013\uffe5\014\uffe5\016\uffe5\017\uffe5\020\uffe5\021\uffe5" + "\022\uffe5\024\uffe5\025\uffe5\027\uffe5\030\uffe5\031\uffe5\032" + "\uffe5\033\uffe5\034\uffe5\035\uffe5\040\uffe5\041\uffe5\043\uffe5" + "\045\uffe5\047\uffe5\050\uffe5\065\uffe5\001\002\000\010\003" + "\ufffb\013\ufffb\074\ufffb\001\002\000\010\003\037\013\040" + "\074\041\001\002\000\004\014\051\001\002\000\064\003" + "\uffe4\007\uffe4\013\uffe4\014\uffe4\016\uffe4\017\uffe4\020\uffe4" + "\021\uffe4\022\uffe4\024\uffe4\025\uffe4\027\uffe4\030\uffe4\031" + "\uffe4\032\uffe4\033\uffe4\034\uffe4\035\uffe4\040\uffe4\041\uffe4" + "\043\uffe4\045\uffe4\047\uffe4\050\uffe4\065\uffe4\001\002\000" + "\006\015\uffa8\016\uffa8\001\002\000\006\015\045\016\044" + "\001\002\000\010\003\ufffc\013\ufffc\074\ufffc\001\002\000" + "\004\074\050\001\002\000\022\037\031\060\021\061\032" + "\062\023\063\025\064\026\066\024\074\022\001\002\000" + "\004\014\047\001\002\000\010\003\ufff4\013\ufff4\074\ufff4" + "\001\002\000\006\015\uffa9\016\uffa9\001\002\000\010\003" + "\ufff3\013\ufff3\074\ufff3\001\002\000\014\003\ufff8\035\ufff8" + "\041\ufff8\043\ufff8\065\ufff8\001\002\000\060\003\105\004" + "\104\005\100\006\071\012\076\014\055\020\103\026\066" + "\036\107\042\067\044\063\045\075\046\112\051\070\053" + "\115\054\114\055\062\056\110\070\113\071\057\072\102" + "\073\060\074\056\001\002\000\024\007\uffcb\013\uffcb\014" + "\uffcb\016\uffcb\024\uffcb\025\uffcb\040\uffcb\045\uffcb\050\uffcb" + "\001\002\000\064\003\uffe1\004\uffe1\005\uffe1\006\uffe1\010" + "\uffe1\011\uffe1\012\uffe1\014\uffe1\020\uffe1\026\uffe1\036\uffe1" + "\042\uffe1\044\uffe1\045\uffe1\046\uffe1\051\uffe1\053\uffe1\054" + "\uffe1\055\uffe1\056\uffe1\070\uffe1\071\uffe1\072\uffe1\073\uffe1" + "\074\uffe1\001\002\000\060\007\uffac\012\262\013\uffac\014" + "\uffac\016\uffac\017\uffac\020\uffac\021\uffac\022\uffac\023\uffac" + "\024\uffac\025\uffac\027\uffac\030\uffac\031\uffac\032\uffac\033" + "\uffac\034\uffac\037\uffac\040\uffac\045\uffac\050\uffac\052\uffac" + "\001\002\000\054\007\uffb2\013\uffb2\014\uffb2\016\uffb2\017" + "\uffb2\020\uffb2\021\uffb2\022\uffb2\024\uffb2\025\uffb2\027\uffb2" + "\030\uffb2\031\uffb2\032\uffb2\033\uffb2\034\uffb2\037\uffb2\040" + "\uffb2\045\uffb2\050\uffb2\052\uffb2\001\002\000\054\007\uffb4" + "\013\uffb4\014\uffb4\016\uffb4\017\uffb4\020\uffb4\021\uffb4\022" + "\uffb4\024\uffb4\025\uffb4\027\uffb4\030\uffb4\031\uffb4\032\uffb4" + "\033\uffb4\034\uffb4\037\uffb4\040\uffb4\045\uffb4\050\uffb4\052" + "\uffb4\001\002\000\064\003\uffe3\004\uffe3\005\uffe3\006\uffe3" + "\010\uffe3\011\uffe3\012\uffe3\014\uffe3\020\uffe3\026\uffe3\036" + "\uffe3\042\uffe3\044\uffe3\045\uffe3\046\uffe3\051\uffe3\053\uffe3" + "\054\uffe3\055\uffe3\056\uffe3\070\uffe3\071\uffe3\072\uffe3\073" + "\uffe3\074\uffe3\001\002\000\004\012\257\001\002\000\034" + "\012\076\020\103\026\066\036\107\053\115\054\114\055" + "\062\056\110\070\113\071\057\072\102\073\060\074\056" + "\001\002\000\022\007\uffcf\013\uffcf\014\uffcf\016\uffcf\024" + "\251\040\uffcf\045\uffcf\050\uffcf\001\002\000\054\007\uffb7" + "\013\uffb7\014\uffb7\016\uffb7\017\uffb7\020\uffb7\021\uffb7\022" + "\uffb7\024\uffb7\025\uffb7\027\uffb7\030\uffb7\031\uffb7\032\uffb7" + "\033\uffb7\034\uffb7\037\244\040\uffb7\045\uffb7\050\uffb7\052" + "\245\001\002\000\034\012\076\020\103\026\066\036\107" + "\053\115\054\114\055\062\056\110\070\113\071\057\072" + "\102\073\060\074\056\001\002\000\016\003\uffff\035\uffff" + "\041\uffff\043\uffff\052\uffff\065\uffff\001\002\000\036\012" + "\076\014\240\020\103\026\066\036\107\053\115\054\114" + "\055\062\056\110\070\113\071\057\072\102\073\060\074" + "\056\001\002\000\034\012\076\020\103\026\066\036\107" + "\053\115\054\114\055\062\056\110\070\113\071\057\072" + "\102\073\060\074\056\001\002\000\004\014\223\001\002" + "\000\020\007\uffd1\013\uffd1\014\uffd1\016\uffd1\040\uffd1\045" + "\uffd1\050\uffd1\001\002\000\050\007\uffc1\013\uffc1\014\uffc1" + "\016\uffc1\017\uffc1\020\uffc1\021\203\022\202\024\uffc1\025" + "\uffc1\027\uffc1\030\uffc1\031\uffc1\032\uffc1\033\uffc1\034\uffc1" + "\040\uffc1\045\uffc1\050\uffc1\001\002\000\060\003\uffe2\004" + "\uffe2\005\uffe2\006\uffe2\012\uffe2\014\uffe2\020\uffe2\026\uffe2" + "\036\uffe2\042\uffe2\044\uffe2\045\uffe2\046\uffe2\051\uffe2\053" + "\uffe2\054\uffe2\055\uffe2\056\uffe2\070\uffe2\071\uffe2\072\uffe2" + "\073\uffe2\074\uffe2\001\002\000\034\012\076\020\103\026" + "\066\036\107\053\115\054\114\055\062\056\110\070\113" + "\071\057\072\102\073\060\074\056\001\002\000\044\007" + "\uffc4\013\uffc4\014\uffc4\016\uffc4\017\173\020\176\024\uffc4" + "\025\uffc4\027\170\030\172\031\174\032\175\033\171\034" + "\177\040\uffc4\045\uffc4\050\uffc4\001\002\000\004\012\162" + "\001\002\000\050\007\uffbe\013\uffbe\014\uffbe\016\uffbe\017" + "\uffbe\020\uffbe\021\uffbe\022\uffbe\024\uffbe\025\uffbe\027\uffbe" + "\030\uffbe\031\uffbe\032\uffbe\033\uffbe\034\uffbe\040\uffbe\045" + "\uffbe\050\uffbe\001\002\000\054\007\uffb1\013\uffb1\014\uffb1" + "\016\uffb1\017\uffb1\020\uffb1\021\uffb1\022\uffb1\024\uffb1\025" + "\uffb1\027\uffb1\030\uffb1\031\uffb1\032\uffb1\033\uffb1\034\uffb1" + "\037\uffb1\040\uffb1\045\uffb1\050\uffb1\052\uffb1\001\002\000" + "\034\012\076\020\103\026\066\036\107\053\115\054\114" + "\055\062\056\110\070\113\071\057\072\102\073\060\074" + "\056\001\002\000\004\012\155\001\002\000\006\014\153" + "\042\154\001\002\000\056\007\uffb0\013\uffb0\014\uffb0\016" + "\uffb0\017\uffb0\020\uffb0\021\uffb0\022\uffb0\023\151\024\uffb0" + "\025\uffb0\027\uffb0\030\uffb0\031\uffb0\032\uffb0\033\uffb0\034" + "\uffb0\037\uffb0\040\uffb0\045\uffb0\050\uffb0\052\uffb0\001\002" + "\000\022\037\136\060\021\061\032\062\023\063\025\064" + "\026\066\024\074\022\001\002\000\004\012\132\001\002" + "\000\024\007\uffcd\013\uffcd\014\uffcd\016\uffcd\024\uffcd\025" + "\130\040\uffcd\045\uffcd\050\uffcd\001\002\000\034\012\076" + "\020\103\026\066\036\107\053\115\054\114\055\062\056" + "\110\070\113\071\057\072\102\073\060\074\056\001\002" + "\000\054\007\uffb5\013\uffb5\014\uffb5\016\uffb5\017\uffb5\020" + "\uffb5\021\uffb5\022\uffb5\024\uffb5\025\uffb5\027\uffb5\030\uffb5" + "\031\uffb5\032\uffb5\033\uffb5\034\uffb5\037\uffb5\040\uffb5\045" + "\uffb5\050\uffb5\052\uffb5\001\002\000\054\007\uffb3\013\uffb3" + "\014\uffb3\016\uffb3\017\uffb3\020\uffb3\021\uffb3\022\uffb3\024" + "\uffb3\025\uffb3\027\uffb3\030\uffb3\031\uffb3\032\uffb3\033\uffb3" + "\034\uffb3\037\uffb3\040\uffb3\045\uffb3\050\uffb3\052\uffb3\001" + "\002\000\034\012\076\020\103\026\066\036\107\053\115" + "\054\114\055\062\056\110\070\113\071\057\072\102\073" + "\060\074\056\001\002\000\054\007\uffb0\013\uffb0\014\uffb0" + "\016\uffb0\017\uffb0\020\uffb0\021\uffb0\022\uffb0\024\uffb0\025" + "\uffb0\027\uffb0\030\uffb0\031\uffb0\032\uffb0\033\uffb0\034\uffb0" + "\037\uffb0\040\uffb0\045\uffb0\050\uffb0\052\uffb0\001\002\000" + "\050\007\uffbb\013\uffbb\014\uffbb\016\uffbb\017\uffbb\020\uffbb" + "\021\uffbb\022\uffbb\024\uffbb\025\uffbb\027\uffbb\030\uffbb\031" + "\uffbb\032\uffbb\033\uffbb\034\uffbb\040\uffbb\045\uffbb\050\uffbb" + "\001\002\000\004\014\121\001\002\000\034\012\076\020" + "\103\026\066\036\107\053\115\054\114\055\062\056\110" + "\070\113\071\057\072\102\073\060\074\056\001\002\000" + "\004\014\123\001\002\000\034\012\076\020\103\026\066" + "\036\107\053\115\054\114\055\062\056\110\070\113\071" + "\057\072\102\073\060\074\056\001\002\000\004\045\125" + "\001\002\000\060\003\uffe2\004\uffe2\005\uffe2\006\uffe2\012" + "\uffe2\014\uffe2\020\uffe2\026\uffe2\036\uffe2\042\uffe2\044\uffe2" + "\045\uffe2\046\uffe2\051\uffe2\053\uffe2\054\uffe2\055\uffe2\056" + "\uffe2\070\uffe2\071\uffe2\072\uffe2\073\uffe2\074\uffe2\001\002" + "\000\060\003\105\004\104\005\100\006\071\012\076\014" + "\055\020\103\026\066\036\107\042\127\044\063\045\075" + "\046\112\051\070\053\115\054\114\055\062\056\110\070" + "\113\071\057\072\102\073\060\074\056\001\002\000\064" + "\003\uffd9\004\uffd9\005\uffd9\006\uffd9\010\uffd9\011\uffd9\012" + "\uffd9\014\uffd9\020\uffd9\026\uffd9\036\uffd9\042\uffd9\044\uffd9" + "\045\uffd9\046\uffd9\051\uffd9\053\uffd9\054\uffd9\055\uffd9\056" + "\uffd9\070\uffd9\071\uffd9\072\uffd9\073\uffd9\074\uffd9\001\002" + "\000\034\012\076\020\103\026\066\036\107\053\115\054" + "\114\055\062\056\110\070\113\071\057\072\102\073\060" + "\074\056\001\002\000\024\007\uffcc\013\uffcc\014\uffcc\016" + "\uffcc\024\uffcc\025\uffcc\040\uffcc\045\uffcc\050\uffcc\001\002" + "\000\034\012\076\020\103\026\066\036\107\053\115\054" + "\114\055\062\056\110\070\113\071\057\072\102\073\060" + "\074\056\001\002\000\004\013\134\001\002\000\054\007" + "\uffad\013\uffad\014\uffad\016\uffad\017\uffad\020\uffad\021\uffad" + "\022\uffad\024\uffad\025\uffad\027\uffad\030\uffad\031\uffad\032" + "\uffad\033\uffad\034\uffad\037\uffad\040\uffad\045\uffad\050\uffad" + "\052\uffad\001\002\000\052\007\uffb9\013\uffb9\014\uffb9\016" + "\uffb9\017\uffb9\020\uffb9\021\uffb9\022\uffb9\024\uffb9\025\uffb9" + "\027\uffb9\030\uffb9\031\uffb9\032\uffb9\033\uffb9\034\uffb9\040" + "\uffb9\045\uffb9\047\142\050\uffb9\001\002\000\036\012\076" + "\020\103\026\066\036\107\040\033\053\115\054\114\055" + "\062\056\110\070\113\071\057\072\102\073\060\074\056" + "\001\002\000\004\040\140\001\002\000\022\037\031\060" + "\021\061\032\062\023\063\025\064\026\066\024\074\022" + "\001\002\000\050\007\uffba\013\uffba\014\uffba\016\uffba\017" + "\uffba\020\uffba\021\uffba\022\uffba\024\uffba\025\uffba\027\uffba" + "\030\uffba\031\uffba\032\uffba\033\uffba\034\uffba\040\uffba\045" + "\uffba\050\uffba\001\002\000\036\012\076\020\103\026\066" + "\036\107\050\uffa6\053\115\054\114\055\062\056\110\070" + "\113\071\057\072\102\073\060\074\056\001\002\000\004" + "\050\150\001\002\000\010\013\uffa7\016\146\050\uffa7\001" + "\002\000\010\013\uffa4\016\uffa4\050\uffa4\001\002\000\034" + "\012\076\020\103\026\066\036\107\053\115\054\114\055" + "\062\056\110\070\113\071\057\072\102\073\060\074\056" + "\001\002\000\010\013\uffa5\016\uffa5\050\uffa5\001\002\000" + "\050\007\uffb8\013\uffb8\014\uffb8\016\uffb8\017\uffb8\020\uffb8" + "\021\uffb8\022\uffb8\024\uffb8\025\uffb8\027\uffb8\030\uffb8\031" + "\uffb8\032\uffb8\033\uffb8\034\uffb8\040\uffb8\045\uffb8\050\uffb8" + "\001\002\000\034\012\076\020\103\026\066\036\107\053" + "\115\054\114\055\062\056\110\070\113\071\057\072\102" + "\073\060\074\056\001\002\000\020\007\uffd0\013\uffd0\014" + "\uffd0\016\uffd0\040\uffd0\045\uffd0\050\uffd0\001\002\000\064" + "\003\uffd6\004\uffd6\005\uffd6\006\uffd6\010\uffd6\011\uffd6\012" + "\uffd6\014\uffd6\020\uffd6\026\uffd6\036\uffd6\042\uffd6\044\uffd6" + "\045\uffd6\046\uffd6\051\uffd6\053\uffd6\054\uffd6\055\uffd6\056" + "\uffd6\070\uffd6\071\uffd6\072\uffd6\073\uffd6\074\uffd6\001\002" + "\000\064\003\uffd5\004\uffd5\005\uffd5\006\uffd5\010\uffd5\011" + "\uffd5\012\uffd5\014\uffd5\020\uffd5\026\uffd5\036\uffd5\042\uffd5" + "\044\uffd5\045\uffd5\046\uffd5\051\uffd5\053\uffd5\054\uffd5\055" + "\uffd5\056\uffd5\070\uffd5\071\uffd5\072\uffd5\073\uffd5\074\uffd5" + "\001\002\000\034\012\076\020\103\026\066\036\107\053" + "\115\054\114\055\062\056\110\070\113\071\057\072\102" + "\073\060\074\056\001\002\000\004\013\157\001\002\000" + "\004\014\160\001\002\000\064\003\uffdf\004\uffdf\005\uffdf" + "\006\uffdf\010\uffdf\011\uffdf\012\uffdf\014\uffdf\020\uffdf\026" + "\uffdf\036\uffdf\042\uffdf\044\uffdf\045\uffdf\046\uffdf\051\uffdf" + "\053\uffdf\054\uffdf\055\uffdf\056\uffdf\070\uffdf\071\uffdf\072" + "\uffdf\073\uffdf\074\uffdf\001\002\000\050\007\uffbd\013\uffbd" + "\014\uffbd\016\uffbd\017\uffbd\020\uffbd\021\uffbd\022\uffbd\024" + "\uffbd\025\uffbd\027\uffbd\030\uffbd\031\uffbd\032\uffbd\033\uffbd" + "\034\uffbd\040\uffbd\045\uffbd\050\uffbd\001\002\000\036\012" + "\076\013\164\020\103\026\066\036\107\053\115\054\114" + "\055\062\056\110\070\113\071\057\072\102\073\060\074" + "\056\001\002\000\004\013\166\001\002\000\004\014\165" + "\001\002\000\064\003\uffde\004\uffde\005\uffde\006\uffde\010" + "\uffde\011\uffde\012\uffde\014\uffde\020\uffde\026\uffde\036\uffde" + "\042\uffde\044\uffde\045\uffde\046\uffde\051\uffde\053\uffde\054" + "\uffde\055\uffde\056\uffde\070\uffde\071\uffde\072\uffde\073\uffde" + "\074\uffde\001\002\000\004\014\167\001\002\000\064\003" + "\uffdd\004\uffdd\005\uffdd\006\uffdd\010\uffdd\011\uffdd\012\uffdd" + "\014\uffdd\020\uffdd\026\uffdd\036\uffdd\042\uffdd\044\uffdd\045" + "\uffdd\046\uffdd\051\uffdd\053\uffdd\054\uffdd\055\uffdd\056\uffdd" + "\070\uffdd\071\uffdd\072\uffdd\073\uffdd\074\uffdd\001\002\000" + "\034\012\076\020\103\026\066\036\107\053\115\054\114" + "\055\062\056\110\070\113\071\057\072\102\073\060\074" + "\056\001\002\000\034\012\076\020\103\026\066\036\107" + "\053\115\054\114\055\062\056\110\070\113\071\057\072" + "\102\073\060\074\056\001\002\000\034\012\076\020\103" + "\026\066\036\107\053\115\054\114\055\062\056\110\070" + "\113\071\057\072\102\073\060\074\056\001\002\000\034" + "\012\076\020\103\026\066\036\107\053\115\054\114\055" + "\062\056\110\070\113\071\057\072\102\073\060\074\056" + "\001\002\000\034\012\076\020\103\026\066\036\107\053" + "\115\054\114\055\062\056\110\070\113\071\057\072\102" + "\073\060\074\056\001\002\000\034\012\076\020\103\026" + "\066\036\107\053\115\054\114\055\062\056\110\070\113" + "\071\057\072\102\073\060\074\056\001\002\000\034\012" + "\076\020\103\026\066\036\107\053\115\054\114\055\062" + "\056\110\070\113\071\057\072\102\073\060\074\056\001" + "\002\000\034\012\076\020\103\026\066\036\107\053\115" + "\054\114\055\062\056\110\070\113\071\057\072\102\073" + "\060\074\056\001\002\000\030\007\uffc5\013\uffc5\014\uffc5" + "\016\uffc5\017\173\020\176\024\uffc5\025\uffc5\040\uffc5\045" + "\uffc5\050\uffc5\001\002\000\050\007\uffc2\013\uffc2\014\uffc2" + "\016\uffc2\017\uffc2\020\uffc2\021\203\022\202\024\uffc2\025" + "\uffc2\027\uffc2\030\uffc2\031\uffc2\032\uffc2\033\uffc2\034\uffc2" + "\040\uffc2\045\uffc2\050\uffc2\001\002\000\034\012\076\020" + "\103\026\066\036\107\053\115\054\114\055\062\056\110" + "\070\113\071\057\072\102\073\060\074\056\001\002\000" + "\034\012\076\020\103\026\066\036\107\053\115\054\114" + "\055\062\056\110\070\113\071\057\072\102\073\060\074" + "\056\001\002\000\050\007\uffc0\013\uffc0\014\uffc0\016\uffc0" + "\017\uffc0\020\uffc0\021\uffc0\022\uffc0\024\uffc0\025\uffc0\027" + "\uffc0\030\uffc0\031\uffc0\032\uffc0\033\uffc0\034\uffc0\040\uffc0" + "\045\uffc0\050\uffc0\001\002\000\050\007\uffbf\013\uffbf\014" + "\uffbf\016\uffbf\017\uffbf\020\uffbf\021\uffbf\022\uffbf\024\uffbf" + "\025\uffbf\027\uffbf\030\uffbf\031\uffbf\032\uffbf\033\uffbf\034" + "\uffbf\040\uffbf\045\uffbf\050\uffbf\001\002\000\030\007\uffc7" + "\013\uffc7\014\uffc7\016\uffc7\017\173\020\176\024\uffc7\025" + "\uffc7\040\uffc7\045\uffc7\050\uffc7\001\002\000\030\007\uffc8" + "\013\uffc8\014\uffc8\016\uffc8\017\173\020\176\024\uffc8\025" + "\uffc8\040\uffc8\045\uffc8\050\uffc8\001\002\000\050\007\uffc3" + "\013\uffc3\014\uffc3\016\uffc3\017\uffc3\020\uffc3\021\203\022" + "\202\024\uffc3\025\uffc3\027\uffc3\030\uffc3\031\uffc3\032\uffc3" + "\033\uffc3\034\uffc3\040\uffc3\045\uffc3\050\uffc3\001\002\000" + "\030\007\uffc9\013\uffc9\014\uffc9\016\uffc9\017\173\020\176" + "\024\uffc9\025\uffc9\040\uffc9\045\uffc9\050\uffc9\001\002\000" + "\030\007\uffc6\013\uffc6\014\uffc6\016\uffc6\017\173\020\176" + "\024\uffc6\025\uffc6\040\uffc6\045\uffc6\050\uffc6\001\002\000" + "\030\007\uffca\013\uffca\014\uffca\016\uffca\017\173\020\176" + "\024\uffca\025\uffca\040\uffca\045\uffca\050\uffca\001\002\000" + "\004\013\215\001\002\000\054\007\uffb6\013\uffb6\014\uffb6" + "\016\uffb6\017\uffb6\020\uffb6\021\uffb6\022\uffb6\024\uffb6\025" + "\uffb6\027\uffb6\030\uffb6\031\uffb6\032\uffb6\033\uffb6\034\uffb6" + "\037\uffb6\040\uffb6\045\uffb6\050\uffb6\052\uffb6\001\002\000" + "\060\003\105\004\104\005\100\006\071\012\076\014\055" + "\020\103\026\066\036\107\042\217\044\063\045\075\046" + "\112\051\070\053\115\054\114\055\062\056\110\070\113" + "\071\057\072\102\073\060\074\056\001\002\000\004\044" + "\220\001\002\000\034\012\076\020\103\026\066\036\107" + "\053\115\054\114\055\062\056\110\070\113\071\057\072" + "\102\073\060\074\056\001\002\000\004\014\222\001\002" + "\000\064\003\uffda\004\uffda\005\uffda\006\uffda\010\uffda\011" + "\uffda\012\uffda\014\uffda\020\uffda\026\uffda\036\uffda\042\uffda" + "\044\uffda\045\uffda\046\uffda\051\uffda\053\uffda\054\uffda\055" + "\uffda\056\uffda\070\uffda\071\uffda\072\uffda\073\uffda\074\uffda" + "\001\002\000\064\003\uffe0\004\uffe0\005\uffe0\006\uffe0\010" + "\uffe0\011\uffe0\012\uffe0\014\uffe0\020\uffe0\026\uffe0\036\uffe0" + "\042\uffe0\044\uffe0\045\uffe0\046\uffe0\051\uffe0\053\uffe0\054" + "\uffe0\055\uffe0\056\uffe0\070\uffe0\071\uffe0\072\uffe0\073\uffe0" + "\074\uffe0\001\002\000\004\007\225\001\002\000\064\003" + "\uffe2\004\uffe2\005\uffe2\006\uffe2\010\uffe2\011\uffe2\012\uffe2" + "\014\uffe2\020\uffe2\026\uffe2\036\uffe2\042\uffe2\044\uffe2\045" + "\uffe2\046\uffe2\051\uffe2\053\uffe2\054\uffe2\055\uffe2\056\uffe2" + "\070\uffe2\071\uffe2\072\uffe2\073\uffe2\074\uffe2\001\002\000" + "\064\003\105\004\104\005\100\006\071\010\227\011\230" + "\012\076\014\055\020\103\026\066\036\107\042\uffd4\044" + "\063\045\075\046\112\051\070\053\115\054\114\055\062" + "\056\110\070\113\071\057\072\102\073\060\074\056\001" + "\002\000\060\003\uffe2\004\uffe2\005\uffe2\006\uffe2\012\uffe2" + "\014\uffe2\020\uffe2\026\uffe2\036\uffe2\042\uffe2\044\uffe2\045" + "\uffe2\046\uffe2\051\uffe2\053\uffe2\054\uffe2\055\uffe2\056\uffe2" + "\070\uffe2\071\uffe2\072\uffe2\073\uffe2\074\uffe2\001\002\000" + "\034\012\076\020\103\026\066\036\107\053\115\054\114" + "\055\062\056\110\070\113\071\057\072\102\073\060\074" + "\056\001\002\000\004\042\232\001\002\000\064\003\uffdc" + "\004\uffdc\005\uffdc\006\uffdc\010\uffdc\011\uffdc\012\uffdc\014" + "\uffdc\020\uffdc\026\uffdc\036\uffdc\042\uffdc\044\uffdc\045\uffdc" + "\046\uffdc\051\uffdc\053\uffdc\054\uffdc\055\uffdc\056\uffdc\070" + "\uffdc\071\uffdc\072\uffdc\073\uffdc\074\uffdc\001\002\000\004" + "\007\234\001\002\000\064\003\uffe2\004\uffe2\005\uffe2\006" + "\uffe2\010\uffe2\011\uffe2\012\uffe2\014\uffe2\020\uffe2\026\uffe2" + "\036\uffe2\042\uffe2\044\uffe2\045\uffe2\046\uffe2\051\uffe2\053" + "\uffe2\054\uffe2\055\uffe2\056\uffe2\070\uffe2\071\uffe2\072\uffe2" + "\073\uffe2\074\uffe2\001\002\000\064\003\105\004\104\005" + "\100\006\071\010\227\011\230\012\076\014\055\020\103" + "\026\066\036\107\042\uffd4\044\063\045\075\046\112\051" + "\070\053\115\054\114\055\062\056\110\070\113\071\057" + "\072\102\073\060\074\056\001\002\000\004\042\uffd2\001" + "\002\000\060\003\105\004\104\005\100\006\071\012\076" + "\014\055\020\103\026\066\036\107\042\uffd3\044\063\045" + "\075\046\112\051\070\053\115\054\114\055\062\056\110" + "\070\113\071\057\072\102\073\060\074\056\001\002\000" + "\064\003\uffd8\004\uffd8\005\uffd8\006\uffd8\010\uffd8\011\uffd8" + "\012\uffd8\014\uffd8\020\uffd8\026\uffd8\036\uffd8\042\uffd8\044" + "\uffd8\045\uffd8\046\uffd8\051\uffd8\053\uffd8\054\uffd8\055\uffd8" + "\056\uffd8\070\uffd8\071\uffd8\072\uffd8\073\uffd8\074\uffd8\001" + "\002\000\004\014\242\001\002\000\064\003\uffd7\004\uffd7" + "\005\uffd7\006\uffd7\010\uffd7\011\uffd7\012\uffd7\014\uffd7\020" + "\uffd7\026\uffd7\036\uffd7\042\uffd7\044\uffd7\045\uffd7\046\uffd7" + "\051\uffd7\053\uffd7\054\uffd7\055\uffd7\056\uffd7\070\uffd7\071" + "\uffd7\072\uffd7\073\uffd7\074\uffd7\001\002\000\050\007\uffbc" + "\013\uffbc\014\uffbc\016\uffbc\017\uffbc\020\uffbc\021\uffbc\022" + "\uffbc\024\uffbc\025\uffbc\027\uffbc\030\uffbc\031\uffbc\032\uffbc" + "\033\uffbc\034\uffbc\040\uffbc\045\uffbc\050\uffbc\001\002\000" + "\034\012\076\020\103\026\066\036\107\053\115\054\114" + "\055\062\056\110\070\113\071\057\072\102\073\060\074" + "\056\001\002\000\004\074\246\001\002\000\056\007\uffaa" + "\013\uffaa\014\uffaa\016\uffaa\017\uffaa\020\uffaa\021\uffaa\022" + "\uffaa\023\uffaa\024\uffaa\025\uffaa\027\uffaa\030\uffaa\031\uffaa" + "\032\uffaa\033\uffaa\034\uffaa\037\uffaa\040\uffaa\045\uffaa\050" + "\uffaa\052\uffaa\001\002\000\004\040\250\001\002\000\056" + "\007\uffab\013\uffab\014\uffab\016\uffab\017\uffab\020\uffab\021" + "\uffab\022\uffab\023\uffab\024\uffab\025\uffab\027\uffab\030\uffab" + "\031\uffab\032\uffab\033\uffab\034\uffab\037\uffab\040\uffab\045" + "\uffab\050\uffab\052\uffab\001\002\000\034\012\076\020\103" + "\026\066\036\107\053\115\054\114\055\062\056\110\070" + "\113\071\057\072\102\073\060\074\056\001\002\000\024" + "\007\uffce\013\uffce\014\uffce\016\uffce\024\uffce\025\130\040" + "\uffce\045\uffce\050\uffce\001\002\000\004\045\254\001\002" + "\000\060\003\uffe2\004\uffe2\005\uffe2\006\uffe2\012\uffe2\014" + "\uffe2\020\uffe2\026\uffe2\036\uffe2\042\uffe2\044\uffe2\045\uffe2" + "\046\uffe2\051\uffe2\053\uffe2\054\uffe2\055\uffe2\056\uffe2\070" + "\uffe2\071\uffe2\072\uffe2\073\uffe2\074\uffe2\001\002\000\060" + "\003\105\004\104\005\100\006\071\012\076\014\055\020" + "\103\026\066\036\107\042\256\044\063\045\075\046\112" + "\051\070\053\115\054\114\055\062\056\110\070\113\071" + "\057\072\102\073\060\074\056\001\002\000\064\003\uffdb" + "\004\uffdb\005\uffdb\006\uffdb\010\uffdb\011\uffdb\012\uffdb\014" + "\uffdb\020\uffdb\026\uffdb\036\uffdb\042\uffdb\044\uffdb\045\uffdb" + "\046\uffdb\051\uffdb\053\uffdb\054\uffdb\055\uffdb\056\uffdb\070" + "\uffdb\071\uffdb\072\uffdb\073\uffdb\074\uffdb\001\002\000\034" + "\012\076\020\103\026\066\036\107\053\115\054\114\055" + "\062\056\110\070\113\071\057\072\102\073\060\074\056" + "\001\002\000\004\013\261\001\002\000\054\007\uffae\013" + "\uffae\014\uffae\016\uffae\017\uffae\020\uffae\021\uffae\022\uffae" + "\024\uffae\025\uffae\027\uffae\030\uffae\031\uffae\032\uffae\033" + "\uffae\034\uffae\037\uffae\040\uffae\045\uffae\050\uffae\052\uffae" + "\001\002\000\036\012\076\013\uffa6\020\103\026\066\036" + "\107\053\115\054\114\055\062\056\110\070\113\071\057" + "\072\102\073\060\074\056\001\002\000\004\013\264\001" + "\002\000\054\007\uffaf\013\uffaf\014\uffaf\016\uffaf\017\uffaf" + "\020\uffaf\021\uffaf\022\uffaf\024\uffaf\025\uffaf\027\uffaf\030" + "\uffaf\031\uffaf\032\uffaf\033\uffaf\034\uffaf\037\uffaf\040\uffaf" + "\045\uffaf\050\uffaf\052\uffaf\001\002\000\014\003\ufff5\035" + "\ufff5\041\ufff5\043\ufff5\065\ufff5\001\002\000\004\012\267" + "\001\002\000\012\003\ufff9\013\ufff9\043\ufff9\074\ufff9\001" + "\002\000\012\003\272\013\273\043\271\074\041\001\002" + "\000\004\074\041\001\002\000\004\014\305\001\002\000" + "\024\037\031\060\021\061\032\062\023\063\025\064\026" + "\066\024\067\302\074\022\001\002\000\006\015\276\016" + "\044\001\002\000\012\003\ufffa\013\ufffa\043\ufffa\074\ufffa" + "\001\002\000\022\037\031\060\021\061\032\062\023\063" + "\025\064\026\066\024\074\022\001\002\000\004\014\300" + "\001\002\000\012\003\ufff2\013\ufff2\043\ufff2\074\ufff2\001" + "\002\000\014\003\uffef\035\uffef\041\uffef\043\uffef\065\uffef" + "\001\002\000\014\003\uffee\035\uffee\041\uffee\043\uffee\065" + "\uffee\001\002\000\014\003\ufffd\035\ufffd\041\ufffd\043\ufffd" + "\065\ufffd\001\002\000\014\003\ufff6\035\ufff6\041\ufff6\043" + "\ufff6\065\ufff6\001\002\000\012\003\ufff0\013\ufff0\043\ufff0" + "\074\ufff0\001\002\000\006\015\307\016\044\001\002\000" + "\022\037\031\060\021\061\032\062\023\063\025\064\026" + "\066\024\074\022\001\002\000\004\014\311\001\002\000" + "\012\003\ufff1\013\ufff1\043\ufff1\074\ufff1\001\002\000\006" + "\015\313\016\044\001\002\000\022\037\031\060\021\061" + "\032\062\023\063\025\064\026\066\024\074\022\001\002" + "\000\004\014\315\001\002\000\014\003\ufff7\035\ufff7\041" + "\ufff7\043\ufff7\065\ufff7\001\002\000\004\002\000\001\002" + "\000\004\002\001\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\315\000\004\003\003\001\001\000\002\001\001\000" + "\006\004\005\010\006\001\001\000\002\001\001\000\004" + "\013\007\001\001\000\002\001\001\000\004\023\311\001" + "\001\000\002\001\001\000\002\001\001\000\004\016\052" + "\001\001\000\002\001\001\000\002\001\001\000\010\005" + "\017\006\027\007\026\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\002\001\001\000" + "\010\005\033\006\027\007\026\001\001\000\002\001\001" + "\000\004\011\035\001\001\000\006\014\042\023\041\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" + "\010\005\045\006\027\007\026\001\001\000\002\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + "\002\001\001\000\030\020\060\024\071\025\072\026\063" + "\027\110\030\053\031\076\032\073\033\100\034\064\035" + "\105\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\026\024\252\025\072\026\063" + "\027\110\030\053\031\076\032\073\033\100\034\064\035" + "\105\001\001\000\002\001\001\000\002\001\001\000\010" + "\033\242\034\064\035\115\001\001\000\002\001\001\000" + "\026\024\240\025\072\026\063\027\110\030\053\031\076" + "\032\073\033\100\034\064\035\105\001\001\000\026\024" + "\223\025\072\026\063\027\110\030\053\031\076\032\073" + "\033\100\034\064\035\105\001\001\000\002\001\001\000" + "\002\001\001\000\002\001\001\000\004\016\215\001\001" + "\000\026\024\213\025\072\026\063\027\110\030\053\031" + "\076\032\073\033\100\034\064\035\105\001\001\000\002" + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + "\001\000\010\033\160\034\064\035\115\001\001\000\002" + "\001\001\000\002\001\001\000\002\001\001\000\010\005" + "\134\006\027\007\026\001\001\000\002\001\001\000\002" + "\001\001\000\026\024\117\025\072\026\063\027\110\030" + "\053\031\076\032\073\033\100\034\064\035\105\001\001" + "\000\002\001\001\000\002\001\001\000\010\033\116\034" + "\064\035\115\001\001\000\002\001\001\000\002\001\001" + "\000\002\001\001\000\026\024\121\025\072\026\063\027" + "\110\030\053\031\076\032\073\033\100\034\064\035\105" + "\001\001\000\002\001\001\000\026\024\123\025\072\026" + "\063\027\110\030\053\031\076\032\073\033\100\034\064" + "\035\105\001\001\000\002\001\001\000\004\016\125\001" + "\001\000\030\020\060\024\071\025\072\026\063\027\110" + "\030\053\031\076\032\073\033\100\034\064\035\105\001" + "\001\000\002\001\001\000\016\030\130\031\076\032\073" + "\033\100\034\064\035\115\001\001\000\002\001\001\000" + "\026\024\132\025\072\026\063\027\110\030\053\031\076" + "\032\073\033\100\034\064\035\105\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\026\024\136" + "\025\072\026\063\027\110\030\053\031\076\032\073\033" + "\100\034\064\035\105\001\001\000\002\001\001\000\010" + "\005\140\006\027\007\026\001\001\000\002\001\001\000" + "\032\021\142\022\143\024\144\025\072\026\063\027\110" + "\030\053\031\076\032\073\033\100\034\064\035\105\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + "\000\026\024\146\025\072\026\063\027\110\030\053\031" + "\076\032\073\033\100\034\064\035\105\001\001\000\002" + "\001\001\000\002\001\001\000\024\025\151\026\063\027" + "\110\030\053\031\076\032\073\033\100\034\064\035\105" + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + "\001\000\026\024\155\025\072\026\063\027\110\030\053" + "\031\076\032\073\033\100\034\064\035\105\001\001\000" + "\002\001\001\000\002\001\001\000\002\001\001\000\002" + "\001\001\000\026\024\162\025\072\026\063\027\110\030" + "\053\031\076\032\073\033\100\034\064\035\105\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + "\002\001\001\000\002\001\001\000\014\031\212\032\073" + "\033\100\034\064\035\115\001\001\000\014\031\211\032" + "\073\033\100\034\064\035\115\001\001\000\014\031\210" + "\032\073\033\100\034\064\035\115\001\001\000\012\032" + "\207\033\100\034\064\035\115\001\001\000\014\031\206" + "\032\073\033\100\034\064\035\115\001\001\000\014\031" + "\205\032\073\033\100\034\064\035\115\001\001\000\012" + "\032\200\033\100\034\064\035\115\001\001\000\014\031" + "\177\032\073\033\100\034\064\035\115\001\001\000\002" + "\001\001\000\002\001\001\000\010\033\204\034\064\035" + "\115\001\001\000\010\033\203\034\064\035\115\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\030\020\060\024\071\025\072\026\063\027\110" + "\030\053\031\076\032\073\033\100\034\064\035\105\001" + "\001\000\002\001\001\000\026\024\220\025\072\026\063" + "\027\110\030\053\031\076\032\073\033\100\034\064\035" + "\105\001\001\000\002\001\001\000\002\001\001\000\002" + "\001\001\000\002\001\001\000\004\016\225\001\001\000" + "\032\017\230\020\060\024\071\025\072\026\063\027\110" + "\030\053\031\076\032\073\033\100\034\064\035\105\001" + "\001\000\004\016\236\001\001\000\026\024\232\025\072" + "\026\063\027\110\030\053\031\076\032\073\033\100\034" + "\064\035\105\001\001\000\002\001\001\000\002\001\001" + "\000\002\001\001\000\004\016\234\001\001\000\032\017" + "\235\020\060\024\071\025\072\026\063\027\110\030\053" + "\031\076\032\073\033\100\034\064\035\105\001\001\000" + "\002\001\001\000\030\020\060\024\071\025\072\026\063" + "\027\110\030\053\031\076\032\073\033\100\034\064\035" + "\105\001\001\000\002\001\001\000\002\001\001\000\002" + "\001\001\000\002\001\001\000\026\024\246\025\072\026" + "\063\027\110\030\053\031\076\032\073\033\100\034\064" + "\035\105\001\001\000\002\001\001\000\002\001\001\000" + "\002\001\001\000\002\001\001\000\020\027\251\030\053" + "\031\076\032\073\033\100\034\064\035\115\001\001\000" + "\002\001\001\000\002\001\001\000\004\016\254\001\001" + "\000\030\020\060\024\071\025\072\026\063\027\110\030" + "\053\031\076\032\073\033\100\034\064\035\105\001\001" + "\000\002\001\001\000\026\024\257\025\072\026\063\027" + "\110\030\053\031\076\032\073\033\100\034\064\035\105" + "\001\001\000\002\001\001\000\002\001\001\000\032\021" + "\262\022\143\024\144\025\072\026\063\027\110\030\053" + "\031\076\032\073\033\100\034\064\035\105\001\001\000" + "\002\001\001\000\002\001\001\000\002\001\001\000\002" + "\001\001\000\004\012\267\001\001\000\006\015\274\023" + "\273\001\001\000\004\023\305\001\001\000\002\001\001" + "\000\012\005\300\006\027\007\026\036\302\001\001\000" + "\002\001\001\000\002\001\001\000\010\005\276\006\027" + "\007\026\001\001\000\002\001\001\000\002\001\001\000" + "\002\001\001\000\002\001\001\000\006\004\303\010\006" + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + "\001\000\010\005\307\006\027\007\026\001\001\000\002" + "\001\001\000\002\001\001\000\002\001\001\000\010\005" + "\313\006\027\007\026\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 ) { } } 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 93: // 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(16/*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 92: // 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(16/*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 91: // ExprListOpt ::= { ExprListNode RESULT = null; RESULT = new ExprListNode(); CUP$parser$result = new java_cup.runtime.Symbol(15/*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 90: // 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(15/*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 89: // IdentList ::= IDENT { IdentListNode 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; IdentListNode identList = new IdentListNode(); identList.addElement( ident ); RESULT = identList; CUP$parser$result = new java_cup.runtime.Symbol(17/*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 88: // IdentList ::= IdentList COMMA IDENT { IdentListNode 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; IdentListNode identList = (IdentListNode)((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( ident ); RESULT = identList; CUP$parser$result = new java_cup.runtime.Symbol(17/*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 87: // Variable ::= Primary DOT IDENT { VariableNode RESULT = null; int structureleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left; int structureright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right; ExprNode structure = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; int fieldleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int fieldright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; String field = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = new FieldVariableNode( structure, field ); CUP$parser$result = new java_cup.runtime.Symbol(27/*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 86: // 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 subscriptleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left; int subscriptright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right; ExprNode subscript = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; RESULT = new SubscriptVariableNode( array, subscript ); CUP$parser$result = new java_cup.runtime.Symbol(27/*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 85: // 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(27/*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 84: // Primary ::= CHR LEFT Expr RIGHT { ExprNode RESULT = null; int actualParamleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left; int actualParamright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right; ExprNode actualParam = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; RESULT = new ChrNode( actualParam ); CUP$parser$result = new java_cup.runtime.Symbol(26/*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 83: // Primary ::= ORD LEFT Expr RIGHT { ExprNode RESULT = null; int actualParamleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left; int actualParamright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right; ExprNode actualParam = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; RESULT = new OrdNode( actualParam ); CUP$parser$result = new java_cup.runtime.Symbol(26/*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 82: // Primary ::= IDENT LEFT ExprListOpt RIGHT { ExprNode RESULT = null; int identleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left; int identright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right; String ident = (String)((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( ident, actualParams ); CUP$parser$result = new java_cup.runtime.Symbol(26/*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 81: // 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 ); // RESULT = variable; CUP$parser$result = new java_cup.runtime.Symbol(26/*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 80: // Primary ::= 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(26/*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 79: // Primary ::= 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(26/*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 78: // Primary ::= NULL { ExprNode RESULT = null; RESULT = new NullValueNode(); CUP$parser$result = new java_cup.runtime.Symbol(26/*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 77: // Primary ::= REALVALUE { 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 RealValueNode( new Double( value ) ); CUP$parser$result = new java_cup.runtime.Symbol(26/*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 76: // Primary ::= 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(26/*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 75: // 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(26/*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 74: // PrefixExpr ::= 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(25/*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 73: // PrefixExpr ::= NEW Type LEFTCURLY ExprListOpt RIGHTCURLY { ExprNode RESULT = null; int typeleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left; int typeright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right; TypeNode type = (TypeNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value; int exprListOptleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left; int exprListOptright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right; ExprListNode exprListOpt = (ExprListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; RESULT = new MultipleNode( type, exprListOpt ); CUP$parser$result = new java_cup.runtime.Symbol(25/*PrefixExpr*/, ((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 72: // PrefixExpr ::= NEW Type { ExprNode 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 CreationNode( type ); CUP$parser$result = new java_cup.runtime.Symbol(25/*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 71: // PrefixExpr ::= NEW LEFTSQ Expr RIGHTSQ Type { ExprNode RESULT = null; int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left; int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right; ExprNode expr = (ExprNode)((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 ArrayCreationNode( expr, type ); CUP$parser$result = new java_cup.runtime.Symbol(25/*PrefixExpr*/, ((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 70: // PrefixExpr ::= SIZE 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 SizeNode( expr ); CUP$parser$result = new java_cup.runtime.Symbol(25/*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 69: // 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(25/*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 68: // 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(25/*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 67: // 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(24/*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 66: // 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(24/*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 65: // 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(24/*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 64: // 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(23/*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 63: // 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(23/*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 62: // 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(23/*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 61: // 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(22/*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 60: // 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(22/*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 59: // 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(22/*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 58: // 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(22/*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 57: // 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(22/*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 56: // 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(22/*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 55: // 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(22/*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 54: // 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(21/*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 53: // 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(21/*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 52: // 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(20/*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 51: // 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(20/*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 50: // 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(19/*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 49: // AssignExpr ::= Variable ASSIGN AssignExpr { 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 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 AssignNode( variable, expr2 ); CUP$parser$result = new java_cup.runtime.Symbol(19/*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 48: // 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(18/*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 47: // 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; StmtListNode stmtList = (StmtListNode)((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(13/*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 46: // 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; StmtListNode stmtList = (StmtListNode)((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(13/*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 45: // ElseOpt ::= { ElseOptNode RESULT = null; RESULT = new ElseOpt0Node(); CUP$parser$result = new java_cup.runtime.Symbol(13/*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 44: // Stmt ::= error END { StmtNode RESULT = null; RESULT = new ErrorStmtNode(); CUP$parser$result = new java_cup.runtime.Symbol(14/*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 43: // Stmt ::= error SEMICOLON { StmtNode RESULT = null; RESULT = new ErrorStmtNode(); CUP$parser$result = new java_cup.runtime.Symbol(14/*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 42: // Stmt ::= RETURN Expr SEMICOLON { StmtNode 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(14/*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 41: // Stmt ::= RETURN SEMICOLON { StmtNode RESULT = null; RESULT = new ReturnStmtNode(); CUP$parser$result = new java_cup.runtime.Symbol(14/*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 40: // Stmt ::= FOR Expr SEMICOLON Expr SEMICOLON Expr DO StmtList END { StmtNode 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; StmtListNode stmtList = (StmtListNode)((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(14/*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 39: // Stmt ::= DO StmtList END WHILE Expr SEMICOLON { StmtNode 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; StmtListNode stmtList = (StmtListNode)((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(14/*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 38: // Stmt ::= WHILE Expr DO StmtList END { StmtNode 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; StmtListNode stmtList = (StmtListNode)((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(14/*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 37: // Stmt ::= IF Expr THEN StmtList ElseOpt END { StmtNode 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; StmtListNode stmtList = (StmtListNode)((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(14/*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 36: // Stmt ::= PRINTLN LEFT Expr RIGHT SEMICOLON { StmtNode RESULT = null; int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left; int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right; ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; RESULT = new Println1StmtNode( expr ); CUP$parser$result = new java_cup.runtime.Symbol(14/*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 35: // Stmt ::= PRINTLN LEFT RIGHT SEMICOLON { StmtNode RESULT = null; RESULT = new Println0StmtNode(); CUP$parser$result = new java_cup.runtime.Symbol(14/*Stmt*/, ((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 34: // Stmt ::= PRINT LEFT Expr RIGHT SEMICOLON { StmtNode RESULT = null; int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left; int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right; ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; RESULT = new PrintStmtNode( expr ); CUP$parser$result = new java_cup.runtime.Symbol(14/*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 33: // Stmt ::= Expr SEMICOLON { StmtNode 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(14/*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 32: // Stmt ::= SEMICOLON { StmtNode RESULT = null; RESULT = new NullStmtNode(); CUP$parser$result = new java_cup.runtime.Symbol(14/*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 31: // StmtList ::= { StmtListNode RESULT = null; RESULT = new StmtListNode(); 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 30: // StmtList ::= StmtList Stmt { StmtListNode 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; StmtListNode stmtList = (StmtListNode)((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; StmtNode stmt = (StmtNode)((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 29: // StructType ::= STRUCT LEFT FieldDeclList RIGHT { StructTypeNode 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; DeclListNode declList = (DeclListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; RESULT = new StructTypeNode( declList ); CUP$parser$result = new java_cup.runtime.Symbol(5/*StructType*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 28: // ArrayType ::= LEFTSQ RIGHTSQ Type { ArrayTypeNode 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 ArrayTypeNode( type ); CUP$parser$result = new java_cup.runtime.Symbol(4/*ArrayType*/, ((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: // Type ::= StructType { 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; StructTypeNode type = (StructTypeNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = type; CUP$parser$result = new java_cup.runtime.Symbol(3/*Type*/, ((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: // Type ::= 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; ArrayTypeNode type = (ArrayTypeNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = type; CUP$parser$result = new java_cup.runtime.Symbol(3/*Type*/, ((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 25: // Type ::= 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/*Type*/, ((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 24: // Type ::= REAL { TypeNode RESULT = null; RESULT = new RealTypeNode(); CUP$parser$result = new java_cup.runtime.Symbol(3/*Type*/, ((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 23: // Type ::= STRING { TypeNode RESULT = null; RESULT = new StringTypeNode(); CUP$parser$result = new java_cup.runtime.Symbol(3/*Type*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 22: // Type ::= BOOL { TypeNode RESULT = null; RESULT = new BoolTypeNode(); CUP$parser$result = new java_cup.runtime.Symbol(3/*Type*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 21: // Type ::= CHAR { TypeNode RESULT = null; RESULT = new CharTypeNode(); CUP$parser$result = new java_cup.runtime.Symbol(3/*Type*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 20: // Type ::= INT { TypeNode RESULT = null; RESULT = new IntTypeNode(); CUP$parser$result = new java_cup.runtime.Symbol(3/*Type*/, ((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: // ReturnType ::= VOID { TypeNode RESULT = null; RESULT = new VoidTypeNode(); CUP$parser$result = new java_cup.runtime.Symbol(28/*ReturnType*/, ((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: // ReturnType ::= Type { 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(28/*ReturnType*/, ((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: // FormalParamDecl ::= error SEMICOLON { DeclNode RESULT = null; RESULT = new ErrorDeclNode(); CUP$parser$result = new java_cup.runtime.Symbol(11/*FormalParamDecl*/, ((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 16: // FormalParamDecl ::= VAR IdentList COLON Type SEMICOLON { DeclNode RESULT = null; int identListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left; int identListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right; IdentListNode identList = (IdentListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value; int typeleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left; int typeright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right; TypeNode type = (TypeNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; RESULT = new VarParamDeclNode( identList, type ); CUP$parser$result = new java_cup.runtime.Symbol(11/*FormalParamDecl*/, ((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 15: // FormalParamDecl ::= IdentList COLON Type SEMICOLON { DeclNode RESULT = null; int identListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left; int identListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right; IdentListNode identList = (IdentListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value; int typeleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left; int typeright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right; TypeNode type = (TypeNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; RESULT = new ValueParamDeclNode( identList, type ); CUP$parser$result = new java_cup.runtime.Symbol(11/*FormalParamDecl*/, ((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 14: // FieldDecl ::= error SEMICOLON { DeclNode RESULT = null; RESULT = new ErrorDeclNode(); CUP$parser$result = new java_cup.runtime.Symbol(10/*FieldDecl*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 13: // FieldDecl ::= IdentList COLON Type SEMICOLON { DeclNode RESULT = null; int identListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left; int identListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right; IdentListNode identList = (IdentListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value; int typeleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left; int typeright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right; TypeNode type = (TypeNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; RESULT = new FieldDeclNode( identList, type ); CUP$parser$result = new java_cup.runtime.Symbol(10/*FieldDecl*/, ((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 12: // LocalDecl ::= error SEMICOLON { DeclNode RESULT = null; RESULT = new ErrorDeclNode(); CUP$parser$result = new java_cup.runtime.Symbol(9/*LocalDecl*/, ((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 11: // LocalDecl ::= FUNCT IDENT LEFT FormalParamDeclList RIGHT ReturnType Block { DeclNode RESULT = null; int identleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)).left; int identright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)).right; String ident = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-5)).value; int formalParamsleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left; int formalParamsright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right; DeclListNode formalParams = (DeclListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value; int returnTypeleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left; int returnTyperight = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right; TypeNode returnType = (TypeNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; int blockleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int blockright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; BlockNode block = (BlockNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = new FunctionDeclNode( ident, formalParams, returnType, block ); CUP$parser$result = new java_cup.runtime.Symbol(9/*LocalDecl*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-6)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 10: // LocalDecl ::= VAR IdentList COLON Type SEMICOLON { DeclNode RESULT = null; int identListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left; int identListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right; IdentListNode identList = (IdentListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value; int typeleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left; int typeright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right; TypeNode type = (TypeNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; RESULT = new VarDeclNode( identList, type ); CUP$parser$result = new java_cup.runtime.Symbol(9/*LocalDecl*/, ((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 9: // LocalDecl ::= TYPE IDENT ASSIGN Type SEMICOLON { DeclNode RESULT = null; int identleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left; int identright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right; String ident = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value; int typeleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left; int typeright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right; TypeNode type = (TypeNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; RESULT = new TypeDeclNode( ident, type ); CUP$parser$result = new java_cup.runtime.Symbol(9/*LocalDecl*/, ((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 8: // FormalParamDeclList ::= { DeclListNode RESULT = null; RESULT = new DeclListNode(); CUP$parser$result = new java_cup.runtime.Symbol(8/*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 7: // FormalParamDeclList ::= FormalParamDeclList FormalParamDecl { DeclListNode 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; DeclListNode declList = (DeclListNode)((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; DeclNode decl = (DeclNode)((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(8/*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: // FieldDeclList ::= { DeclListNode RESULT = null; RESULT = new DeclListNode(); CUP$parser$result = new java_cup.runtime.Symbol(7/*FieldDeclList*/, ((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: // FieldDeclList ::= FieldDeclList FieldDecl { DeclListNode 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; DeclListNode declList = (DeclListNode)((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; DeclNode decl = (DeclNode)((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(7/*FieldDeclList*/, ((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: // LocalDeclList ::= { DeclListNode RESULT = null; RESULT = new DeclListNode(); CUP$parser$result = new java_cup.runtime.Symbol(6/*LocalDeclList*/, ((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: // LocalDeclList ::= LocalDeclList LocalDecl { DeclListNode 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; DeclListNode declList = (DeclListNode)((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; DeclNode decl = (DeclNode)((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(6/*LocalDeclList*/, ((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: // Block ::= LocalDeclList BEGIN StmtList END { BlockNode RESULT = null; int localDeclListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left; int localDeclListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right; DeclListNode localDeclList = (DeclListNode)((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; StmtListNode stmtList = (StmtListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; RESULT = new BlockNode( localDeclList, stmtList ); CUP$parser$result = new java_cup.runtime.Symbol(2/*Block*/, ((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 1: // Program ::= PROGRAM Block DOT { ProgramNode RESULT = null; int blockleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left; int blockright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right; BlockNode block = (BlockNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; RESULT = new ProgramNode( block ); CUP$parser$result = new java_cup.runtime.Symbol(1/*Program*/, ((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 0: // $START ::= Program 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; ProgramNode start_val = (ProgramNode)((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"); } } }