//---------------------------------------------------- // The following code was generated by CUP v0.10k // Wed Nov 01 09:43:09 NZDT 2006 //---------------------------------------------------- package grammar; import java.io.*; import java.util.*; import java_cup.runtime.*; import type.*; import node.*; import node.stmtNode.*; import node.typeNode.*; import node.typeNode.basicTypeNode.*; import node.declNode.*; import node.declNode.declaratorNode.*; import node.exprNode.*; import node.exprNode.prefixNode.*; import node.exprNode.postfixNode.*; import node.exprNode.valueNode.*; import node.exprNode.binaryNode.*; import node.exprNode.binaryNode.arithNode.*; import node.exprNode.binaryNode.relationNode.*; import node.exprNode.binaryNode.boolNode.*; import node.exprNode.primaryNode.*; import node.exprNode.variableNode.*; import text.*; import env.*; /** CUP v0.10k generated parser. * @version Wed Nov 01 09:43:09 NZDT 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\163\000\002\002\004\000\002\004\004\000\002\004" + "\002\000\002\010\010\000\002\010\012\000\002\010\012" + "\000\002\010\003\000\002\005\004\000\002\005\002\000" + "\002\011\003\000\002\011\003\000\002\007\004\000\002" + "\007\002\000\002\012\005\000\002\012\006\000\002\012" + "\004\000\002\006\004\000\002\006\002\000\002\013\005" + "\000\002\013\004\000\002\014\005\000\002\003\003\000" + "\002\003\003\000\002\003\003\000\002\003\003\000\002" + "\003\003\000\002\003\005\000\002\024\005\000\002\024" + "\003\000\002\023\005\000\002\023\003\000\002\025\003" + "\000\002\025\005\000\002\016\003\000\002\016\004\000" + "\002\016\005\000\002\016\007\000\002\016\011\000\002" + "\016\007\000\002\016\011\000\002\016\012\000\002\016" + "\004\000\002\016\005\000\002\016\005\000\002\016\005" + "\000\002\016\004\000\002\016\004\000\002\016\006\000" + "\002\016\004\000\002\016\004\000\002\015\004\000\002" + "\015\003\000\002\015\003\000\002\026\003\000\002\026" + "\002\000\002\021\003\000\002\021\002\000\002\022\005" + "\000\002\022\003\000\002\030\005\000\002\030\004\000" + "\002\030\004\000\002\030\004\000\002\030\004\000\002" + "\030\006\000\002\017\003\000\002\017\002\000\002\020" + "\005\000\002\020\003\000\002\027\003\000\002\031\005" + "\000\002\031\003\000\002\032\005\000\002\032\003\000" + "\002\033\005\000\002\033\005\000\002\033\005\000\002" + "\033\005\000\002\033\005\000\002\033\005\000\002\033" + "\003\000\002\034\005\000\002\034\005\000\002\034\003" + "\000\002\035\005\000\002\035\005\000\002\035\005\000" + "\002\035\003\000\002\036\004\000\002\036\004\000\002" + "\036\004\000\002\036\004\000\002\036\004\000\002\036" + "\003\000\002\037\004\000\002\037\004\000\002\037\003" + "\000\002\040\005\000\002\040\003\000\002\040\003\000" + "\002\040\010\000\002\040\006\000\002\040\007\000\002" + "\040\004\000\002\040\007\000\002\041\003\000\002\041" + "\003\000\002\041\003\000\002\041\003\000\002\041\003" + "\000\002\041\003\000\002\041\003\000\002\042\003\000" + "\002\042\006\000\002\042\005" }); /** Access to production table. */ public short[][] production_table() {return _production_table;} /** Parse-action table. */ protected static final short[][] _action_table = unpackFromStrings(new String[] { "\000\344\000\102\002\uffff\003\uffff\004\uffff\006\uffff\010" + "\uffff\012\uffff\017\uffff\040\uffff\041\uffff\042\uffff\043\uffff" + "\044\uffff\045\uffff\046\uffff\050\uffff\051\uffff\052\uffff\053" + "\uffff\054\uffff\055\uffff\057\uffff\061\uffff\062\uffff\063\uffff" + "\064\uffff\065\uffff\066\uffff\067\uffff\070\uffff\071\uffff\072" + "\uffff\073\uffff\001\002\000\102\002\030\003\035\004\027" + "\006\047\010\024\012\015\017\021\040\022\041\053\042" + "\052\043\034\044\037\045\033\046\054\050\012\051\006" + "\052\017\053\044\054\043\055\026\057\045\061\055\062" + "\014\063\032\064\025\065\041\066\010\067\007\070\036" + "\071\005\072\040\073\042\001\002\000\054\005\uff92\007" + "\uff92\010\uff92\011\uff92\012\uff92\013\uff92\015\uff92\016\uff92" + "\021\uff92\022\uff92\023\uff92\024\uff92\025\uff92\026\uff92\027" + "\uff92\030\uff92\031\uff92\032\uff92\033\uff92\034\uff92\035\uff92" + "\001\002\000\060\005\uffeb\006\uffeb\007\uffeb\010\uffeb\011" + "\uffeb\012\uffeb\013\uffeb\015\uffeb\016\uffeb\021\uffeb\022\uffeb" + "\023\uffeb\024\uffeb\025\uffeb\026\uffeb\027\uffeb\030\uffeb\031" + "\uffeb\032\uffeb\033\uffeb\034\uffeb\035\uffeb\073\uffeb\001\002" + "\000\054\005\uff98\007\uff98\010\uff98\011\uff98\012\uff98\013" + "\uff98\015\uff98\016\uff98\021\uff98\022\uff98\023\uff98\024\uff98" + "\025\uff98\026\uff98\027\uff98\030\uff98\031\uff98\032\uff98\033" + "\uff98\034\uff98\035\uff98\001\002\000\004\012\346\001\002" + "\000\102\002\000\003\000\004\000\006\000\010\000\012" + "\000\017\000\040\000\041\000\042\000\043\000\044\000" + "\045\000\046\000\050\000\051\000\052\000\053\000\054" + "\000\055\000\057\000\061\000\062\000\063\000\064\000" + "\065\000\066\000\067\000\070\000\071\000\072\000\073" + "\000\001\002\000\060\005\uffec\006\uffec\007\uffec\010\uffec" + "\011\uffec\012\uffec\013\uffec\015\uffec\016\uffec\021\uffec\022" + "\uffec\023\uffec\024\uffec\025\uffec\026\uffec\027\uffec\030\uffec" + "\031\uffec\032\uffec\033\uffec\034\uffec\035\uffec\073\uffec\001" + "\002\000\014\010\uff9e\016\uff9e\020\344\040\342\041\343" + "\001\002\000\004\004\320\001\002\000\110\002\uffe0\003" + "\uffe0\004\uffe0\006\uffe0\007\uffe0\010\uffe0\012\uffe0\017\uffe0" + "\040\uffe0\041\uffe0\042\uffe0\043\uffe0\044\uffe0\045\uffe0\046" + "\uffe0\050\uffe0\051\uffe0\052\uffe0\053\uffe0\054\uffe0\055\uffe0" + "\056\uffe0\057\uffe0\060\uffe0\061\uffe0\062\uffe0\063\uffe0\064" + "\uffe0\065\uffe0\066\uffe0\067\uffe0\070\uffe0\071\uffe0\072\uffe0" + "\073\uffe0\001\002\000\006\010\142\016\143\001\002\000" + "\060\005\uffea\006\uffea\007\uffea\010\uffea\011\uffea\012\uffea" + "\013\uffea\015\uffea\016\uffea\021\uffea\022\uffea\023\uffea\024" + "\uffea\025\uffea\026\uffea\027\uffea\030\uffea\031\uffea\032\uffea" + "\033\uffea\034\uffea\035\uffea\073\uffea\001\002\000\054\005" + "\uff9f\007\uff9f\010\uff9f\011\uff9f\012\uff9f\013\uff9f\015\uff9f" + "\016\uff9f\021\uff9f\022\uff9f\023\uff9f\024\uff9f\025\uff9f\026" + "\uff9f\027\uff9f\030\uff9f\031\uff9f\032\uff9f\033\uff9f\034\uff9f" + "\035\uff9f\001\002\000\004\073\305\001\002\000\026\004" + "\027\043\034\044\037\045\033\046\054\067\007\070\036" + "\071\005\072\040\073\063\001\002\000\102\002\ufffb\003" + "\ufffb\004\ufffb\006\ufffb\010\ufffb\012\ufffb\017\ufffb\040\ufffb" + "\041\ufffb\042\ufffb\043\ufffb\044\ufffb\045\ufffb\046\ufffb\050" + "\ufffb\051\ufffb\052\ufffb\053\ufffb\054\ufffb\055\ufffb\057\ufffb" + "\061\ufffb\062\ufffb\063\ufffb\064\ufffb\065\ufffb\066\ufffb\067" + "\ufffb\070\ufffb\071\ufffb\072\ufffb\073\ufffb\001\002\000\004" + "\011\257\001\002\000\004\073\302\001\002\000\004\004" + "\274\001\002\000\040\004\027\032\076\036\101\037\065" + "\040\072\041\075\043\034\044\037\045\033\046\054\067" + "\007\070\036\071\005\072\040\073\063\001\002\000\004" + "\002\001\001\002\000\004\012\271\001\002\000\042\004" + "\027\012\266\032\076\036\101\037\065\040\072\041\075" + "\043\034\044\037\045\033\046\054\067\007\070\036\071" + "\005\072\040\073\063\001\002\000\054\005\uff95\007\uff95" + "\010\uff95\011\uff95\012\uff95\013\uff95\015\uff95\016\uff95\021" + "\uff95\022\uff95\023\uff95\024\uff95\025\uff95\026\uff95\027\uff95" + "\030\uff95\031\uff95\032\uff95\033\uff95\034\uff95\035\uff95\001" + "\002\000\016\010\255\050\012\051\006\052\017\053\044" + "\073\211\001\002\000\006\007\253\012\252\001\002\000" + "\054\005\uff93\007\uff93\010\uff93\011\uff93\012\uff93\013\uff93" + "\015\uff93\016\uff93\021\uff93\022\uff93\023\uff93\024\uff93\025" + "\uff93\026\uff93\027\uff93\030\uff93\031\uff93\032\uff93\033\uff93" + "\034\uff93\035\uff93\001\002\000\054\005\uff96\007\uff96\010" + "\uff96\011\uff96\012\uff96\013\uff96\015\uff96\016\uff96\021\uff96" + "\022\uff96\023\uff96\024\uff96\025\uff96\026\uff96\027\uff96\030" + "\uff96\031\uff96\032\uff96\033\uff96\034\uff96\035\uff96\001\002" + "\000\054\005\uff97\007\uff97\010\uff97\011\uff97\012\uff97\013" + "\uff97\015\uff97\016\uff97\021\uff97\022\uff97\023\uff97\024\uff97" + "\025\uff97\026\uff97\027\uff97\030\uff97\031\uff97\032\uff97\033" + "\uff97\034\uff97\035\uff97\001\002\000\004\012\251\001\002" + "\000\022\004\164\010\uff91\014\165\016\uff91\020\uff91\040" + "\uff91\041\uff91\073\uffe8\001\002\000\004\073\242\001\002" + "\000\060\005\uffe9\006\uffe9\007\uffe9\010\uffe9\011\uffe9\012" + "\uffe9\013\uffe9\015\uffe9\016\uffe9\021\uffe9\022\uffe9\023\uffe9" + "\024\uffe9\025\uffe9\026\uffe9\027\uffe9\030\uffe9\031\uffe9\032" + "\uffe9\033\uffe9\034\uffe9\035\uffe9\073\uffe9\001\002\000\004" + "\004\236\001\002\000\104\002\ufff8\003\ufff8\004\ufff8\006" + "\ufff8\007\ufff8\010\ufff8\012\ufff8\017\ufff8\040\ufff8\041\ufff8" + "\042\ufff8\043\ufff8\044\ufff8\045\ufff8\046\ufff8\050\ufff8\051" + "\ufff8\052\ufff8\053\ufff8\054\ufff8\055\ufff8\057\ufff8\061\ufff8" + "\062\ufff8\063\ufff8\064\ufff8\065\ufff8\066\ufff8\067\ufff8\070" + "\ufff8\071\ufff8\072\ufff8\073\ufff8\001\002\000\076\003\ufff9" + "\004\ufff9\006\ufff9\007\ufff9\010\ufff9\012\ufff9\040\ufff9\041" + "\ufff9\042\ufff9\043\ufff9\044\ufff9\045\ufff9\046\ufff9\050\ufff9" + "\051\ufff9\052\ufff9\053\ufff9\055\ufff9\057\ufff9\061\ufff9\062" + "\ufff9\063\ufff9\064\ufff9\065\ufff9\066\ufff9\067\ufff9\070\ufff9" + "\071\ufff9\072\ufff9\073\ufff9\001\002\000\104\002\ufff7\003" + "\ufff7\004\ufff7\006\ufff7\007\ufff7\010\ufff7\012\ufff7\017\ufff7" + "\040\ufff7\041\ufff7\042\ufff7\043\ufff7\044\ufff7\045\ufff7\046" + "\ufff7\050\ufff7\051\ufff7\052\ufff7\053\ufff7\054\ufff7\055\ufff7" + "\057\ufff7\061\ufff7\062\ufff7\063\ufff7\064\ufff7\065\ufff7\066" + "\ufff7\067\ufff7\070\ufff7\071\ufff7\072\ufff7\073\ufff7\001\002" + "\000\004\073\175\001\002\000\004\004\172\001\002\000" + "\026\004\027\043\034\044\037\045\033\046\054\067\007" + "\070\036\071\005\072\040\073\063\001\002\000\054\005" + "\uff94\007\uff94\010\uff94\011\uff94\012\uff94\013\uff94\015\uff94" + "\016\uff94\021\uff94\022\uff94\023\uff94\024\uff94\025\uff94\026" + "\uff94\027\uff94\030\uff94\031\uff94\032\uff94\033\uff94\034\uff94" + "\035\uff94\001\002\000\062\003\035\004\027\006\047\012" + "\015\040\022\041\053\042\052\043\034\044\037\045\033" + "\046\054\055\026\057\045\061\055\062\014\063\032\064" + "\025\065\041\066\010\067\007\070\036\071\005\072\040" + "\073\056\001\002\000\020\004\164\010\uff91\014\165\016" + "\uff91\020\uff91\040\uff91\041\uff91\001\002\000\004\060\060" + "\001\002\000\004\004\061\001\002\000\040\004\027\032" + "\076\036\101\037\065\040\072\041\075\043\034\044\037" + "\045\033\046\054\067\007\070\036\071\005\072\040\073" + "\063\001\002\000\022\005\uffb8\007\uffb8\011\uffb8\012\uffb8" + "\013\uffb8\015\uffb8\021\uffb8\022\uffb8\001\002\000\062\004" + "\155\005\uff91\007\uff91\010\uff91\011\uff91\012\uff91\013\uff91" + "\015\uff91\016\uff91\021\uff91\022\uff91\023\uff91\024\uff91\025" + "\uff91\026\uff91\027\uff91\030\uff91\031\uff91\032\uff91\033\uff91" + "\034\uff91\035\uff91\040\uff91\041\uff91\001\002\000\020\005" + "\uffbc\007\uffbc\011\uffbc\012\uffbc\013\uffbc\015\uffbc\021\153" + "\001\002\000\040\004\027\032\076\036\101\037\065\040" + "\072\041\075\043\034\044\037\045\033\046\054\067\007" + "\070\036\071\005\072\040\073\063\001\002\000\054\005" + "\uffa1\007\uffa1\010\142\011\uffa1\012\uffa1\013\uffa1\015\uffa1" + "\016\143\021\uffa1\022\uffa1\023\uffa1\024\uffa1\025\uffa1\026" + "\uffa1\027\uffa1\030\uffa1\031\uffa1\032\uffa1\033\uffa1\034\uffa1" + "\035\uffa1\001\002\000\004\005\140\001\002\000\050\005" + "\uffae\007\uffae\011\uffae\012\uffae\013\uffae\015\uffae\021\uffae" + "\022\uffae\023\uffae\024\uffae\025\uffae\026\uffae\027\uffae\030" + "\uffae\031\uffae\032\uffae\033\126\034\125\035\124\001\002" + "\000\050\005\uffa4\007\uffa4\011\uffa4\012\uffa4\013\uffa4\015" + "\uffa4\021\uffa4\022\uffa4\023\uffa4\024\uffa4\025\uffa4\026\uffa4" + "\027\uffa4\030\uffa4\031\uffa4\032\uffa4\033\uffa4\034\uffa4\035" + "\uffa4\001\002\000\026\004\027\043\034\044\037\045\033" + "\046\054\067\007\070\036\071\005\072\040\073\063\001" + "\002\000\042\005\uffb1\007\uffb1\011\uffb1\012\uffb1\013\uffb1" + "\015\uffb1\021\uffb1\022\uffb1\023\112\024\113\025\115\026" + "\117\027\111\030\120\031\114\032\116\001\002\000\050" + "\005\uffaa\007\uffaa\011\uffaa\012\uffaa\013\uffaa\015\uffaa\021" + "\uffaa\022\uffaa\023\uffaa\024\uffaa\025\uffaa\026\uffaa\027\uffaa" + "\030\uffaa\031\uffaa\032\uffaa\033\uffaa\034\uffaa\035\uffaa\001" + "\002\000\026\004\027\043\034\044\037\045\033\046\054" + "\067\007\070\036\071\005\072\040\073\063\001\002\000" + "\040\004\027\032\076\036\101\037\065\040\072\041\075" + "\043\034\044\037\045\033\046\054\067\007\070\036\071" + "\005\072\040\073\063\001\002\000\060\005\uff9e\007\uff9e" + "\010\uff9e\011\uff9e\012\uff9e\013\uff9e\015\uff9e\016\uff9e\021" + "\uff9e\022\uff9e\023\uff9e\024\uff9e\025\uff9e\026\uff9e\027\uff9e" + "\030\uff9e\031\uff9e\032\uff9e\033\uff9e\034\uff9e\035\uff9e\040" + "\105\041\106\001\002\000\022\005\uffba\007\uffba\011\uffba" + "\012\uffba\013\uffba\015\uffba\021\uffba\022\103\001\002\000" + "\040\004\027\032\076\036\101\037\065\040\072\041\075" + "\043\034\044\037\045\033\046\054\067\007\070\036\071" + "\005\072\040\073\063\001\002\000\050\005\uffa7\007\uffa7" + "\011\uffa7\012\uffa7\013\uffa7\015\uffa7\021\uffa7\022\uffa7\023" + "\uffa7\024\uffa7\025\uffa7\026\uffa7\027\uffa7\030\uffa7\031\uffa7" + "\032\uffa7\033\uffa7\034\uffa7\035\uffa7\001\002\000\040\004" + "\027\032\076\036\101\037\065\040\072\041\075\043\034" + "\044\037\045\033\046\054\067\007\070\036\071\005\072" + "\040\073\063\001\002\000\022\005\uffb9\007\uffb9\011\uffb9" + "\012\uffb9\013\uffb9\015\uffb9\021\uffb9\022\uffb9\001\002\000" + "\050\005\uffa3\007\uffa3\011\uffa3\012\uffa3\013\uffa3\015\uffa3" + "\021\uffa3\022\uffa3\023\uffa3\024\uffa3\025\uffa3\026\uffa3\027" + "\uffa3\030\uffa3\031\uffa3\032\uffa3\033\uffa3\034\uffa3\035\uffa3" + "\001\002\000\050\005\uffa2\007\uffa2\011\uffa2\012\uffa2\013" + "\uffa2\015\uffa2\021\uffa2\022\uffa2\023\uffa2\024\uffa2\025\uffa2" + "\026\uffa2\027\uffa2\030\uffa2\031\uffa2\032\uffa2\033\uffa2\034" + "\uffa2\035\uffa2\001\002\000\050\005\uffa9\007\uffa9\011\uffa9" + "\012\uffa9\013\uffa9\015\uffa9\021\uffa9\022\uffa9\023\uffa9\024" + "\uffa9\025\uffa9\026\uffa9\027\uffa9\030\uffa9\031\uffa9\032\uffa9" + "\033\uffa9\034\uffa9\035\uffa9\001\002\000\054\005\uffa5\007" + "\uffa5\010\uff9e\011\uffa5\012\uffa5\013\uffa5\015\uffa5\016\uff9e" + "\021\uffa5\022\uffa5\023\uffa5\024\uffa5\025\uffa5\026\uffa5\027" + "\uffa5\030\uffa5\031\uffa5\032\uffa5\033\uffa5\034\uffa5\035\uffa5" + "\001\002\000\040\004\027\032\076\036\101\037\065\040" + "\072\041\075\043\034\044\037\045\033\046\054\067\007" + "\070\036\071\005\072\040\073\063\001\002\000\040\004" + "\027\032\076\036\101\037\065\040\072\041\075\043\034" + "\044\037\045\033\046\054\067\007\070\036\071\005\072" + "\040\073\063\001\002\000\040\004\027\032\076\036\101" + "\037\065\040\072\041\075\043\034\044\037\045\033\046" + "\054\067\007\070\036\071\005\072\040\073\063\001\002" + "\000\040\004\027\032\076\036\101\037\065\040\072\041" + "\075\043\034\044\037\045\033\046\054\067\007\070\036" + "\071\005\072\040\073\063\001\002\000\040\004\027\032" + "\076\036\101\037\065\040\072\041\075\043\034\044\037" + "\045\033\046\054\067\007\070\036\071\005\072\040\073" + "\063\001\002\000\040\004\027\032\076\036\101\037\065" + "\040\072\041\075\043\034\044\037\045\033\046\054\067" + "\007\070\036\071\005\072\040\073\063\001\002\000\040" + "\004\027\032\076\036\101\037\065\040\072\041\075\043" + "\034\044\037\045\033\046\054\067\007\070\036\071\005" + "\072\040\073\063\001\002\000\040\004\027\032\076\036" + "\101\037\065\040\072\041\075\043\034\044\037\045\033" + "\046\054\067\007\070\036\071\005\072\040\073\063\001" + "\002\000\026\005\uffb2\007\uffb2\011\uffb2\012\uffb2\013\uffb2" + "\015\uffb2\021\uffb2\022\uffb2\031\114\032\116\001\002\000" + "\026\005\uffb4\007\uffb4\011\uffb4\012\uffb4\013\uffb4\015\uffb4" + "\021\uffb4\022\uffb4\031\114\032\116\001\002\000\050\005" + "\uffaf\007\uffaf\011\uffaf\012\uffaf\013\uffaf\015\uffaf\021\uffaf" + "\022\uffaf\023\uffaf\024\uffaf\025\uffaf\026\uffaf\027\uffaf\030" + "\uffaf\031\uffaf\032\uffaf\033\126\034\125\035\124\001\002" + "\000\040\004\027\032\076\036\101\037\065\040\072\041" + "\075\043\034\044\037\045\033\046\054\067\007\070\036" + "\071\005\072\040\073\063\001\002\000\040\004\027\032" + "\076\036\101\037\065\040\072\041\075\043\034\044\037" + "\045\033\046\054\067\007\070\036\071\005\072\040\073" + "\063\001\002\000\040\004\027\032\076\036\101\037\065" + "\040\072\041\075\043\034\044\037\045\033\046\054\067" + "\007\070\036\071\005\072\040\073\063\001\002\000\050" + "\005\uffad\007\uffad\011\uffad\012\uffad\013\uffad\015\uffad\021" + "\uffad\022\uffad\023\uffad\024\uffad\025\uffad\026\uffad\027\uffad" + "\030\uffad\031\uffad\032\uffad\033\uffad\034\uffad\035\uffad\001" + "\002\000\050\005\uffac\007\uffac\011\uffac\012\uffac\013\uffac" + "\015\uffac\021\uffac\022\uffac\023\uffac\024\uffac\025\uffac\026" + "\uffac\027\uffac\030\uffac\031\uffac\032\uffac\033\uffac\034\uffac" + "\035\uffac\001\002\000\050\005\uffab\007\uffab\011\uffab\012" + "\uffab\013\uffab\015\uffab\021\uffab\022\uffab\023\uffab\024\uffab" + "\025\uffab\026\uffab\027\uffab\030\uffab\031\uffab\032\uffab\033" + "\uffab\034\uffab\035\uffab\001\002\000\026\005\uffb5\007\uffb5" + "\011\uffb5\012\uffb5\013\uffb5\015\uffb5\021\uffb5\022\uffb5\031" + "\114\032\116\001\002\000\050\005\uffb0\007\uffb0\011\uffb0" + "\012\uffb0\013\uffb0\015\uffb0\021\uffb0\022\uffb0\023\uffb0\024" + "\uffb0\025\uffb0\026\uffb0\027\uffb0\030\uffb0\031\uffb0\032\uffb0" + "\033\126\034\125\035\124\001\002\000\026\005\uffb6\007" + "\uffb6\011\uffb6\012\uffb6\013\uffb6\015\uffb6\021\uffb6\022\uffb6" + "\031\114\032\116\001\002\000\026\005\uffb7\007\uffb7\011" + "\uffb7\012\uffb7\013\uffb7\015\uffb7\021\uffb7\022\uffb7\031\114" + "\032\116\001\002\000\026\005\uffb3\007\uffb3\011\uffb3\012" + "\uffb3\013\uffb3\015\uffb3\021\uffb3\022\uffb3\031\114\032\116" + "\001\002\000\054\005\uffa6\007\uffa6\010\uff9e\011\uffa6\012" + "\uffa6\013\uffa6\015\uffa6\016\uff9e\021\uffa6\022\uffa6\023\uffa6" + "\024\uffa6\025\uffa6\026\uffa6\027\uffa6\030\uffa6\031\uffa6\032" + "\uffa6\033\uffa6\034\uffa6\035\uffa6\001\002\000\004\012\141" + "\001\002\000\110\002\uffda\003\uffda\004\uffda\006\uffda\007" + "\uffda\010\uffda\012\uffda\017\uffda\040\uffda\041\uffda\042\uffda" + "\043\uffda\044\uffda\045\uffda\046\uffda\050\uffda\051\uffda\052" + "\uffda\053\uffda\054\uffda\055\uffda\056\uffda\057\uffda\060\uffda" + "\061\uffda\062\uffda\063\uffda\064\uffda\065\uffda\066\uffda\067" + "\uffda\070\uffda\071\uffda\072\uffda\073\uffda\001\002\000\040" + "\004\027\032\076\036\101\037\065\040\072\041\075\043" + "\034\044\037\045\033\046\054\067\007\070\036\071\005" + "\072\040\073\063\001\002\000\004\073\144\001\002\000" + "\062\005\uff8f\007\uff8f\010\uff8f\011\uff8f\012\uff8f\013\uff8f" + "\015\uff8f\016\uff8f\020\uff8f\021\uff8f\022\uff8f\023\uff8f\024" + "\uff8f\025\uff8f\026\uff8f\027\uff8f\030\uff8f\031\uff8f\032\uff8f" + "\033\uff8f\034\uff8f\035\uff8f\040\uff8f\041\uff8f\001\002\000" + "\006\011\146\015\147\001\002\000\062\005\uff90\007\uff90" + "\010\uff90\011\uff90\012\uff90\013\uff90\015\uff90\016\uff90\020" + "\uff90\021\uff90\022\uff90\023\uff90\024\uff90\025\uff90\026\uff90" + "\027\uff90\030\uff90\031\uff90\032\uff90\033\uff90\034\uff90\035" + "\uff90\040\uff90\041\uff90\001\002\000\040\004\027\032\076" + "\036\101\037\065\040\072\041\075\043\034\044\037\045" + "\033\046\054\067\007\070\036\071\005\072\040\073\063" + "\001\002\000\004\011\151\001\002\000\054\005\uff9d\007" + "\uff9d\010\uff9d\011\uff9d\012\uff9d\013\uff9d\015\uff9d\016\uff9d" + "\021\uff9d\022\uff9d\023\uff9d\024\uff9d\025\uff9d\026\uff9d\027" + "\uff9d\030\uff9d\031\uff9d\032\uff9d\033\uff9d\034\uff9d\035\uff9d" + "\001\002\000\050\005\uffa8\007\uffa8\011\uffa8\012\uffa8\013" + "\uffa8\015\uffa8\021\uffa8\022\uffa8\023\uffa8\024\uffa8\025\uffa8" + "\026\uffa8\027\uffa8\030\uffa8\031\uffa8\032\uffa8\033\uffa8\034" + "\uffa8\035\uffa8\001\002\000\040\004\027\032\076\036\101" + "\037\065\040\072\041\075\043\034\044\037\045\033\046" + "\054\067\007\070\036\071\005\072\040\073\063\001\002" + "\000\022\005\uffbb\007\uffbb\011\uffbb\012\uffbb\013\uffbb\015" + "\uffbb\021\uffbb\022\103\001\002\000\042\004\027\005\uffbf" + "\032\076\036\101\037\065\040\072\041\075\043\034\044" + "\037\045\033\046\054\067\007\070\036\071\005\072\040" + "\073\063\001\002\000\004\005\163\001\002\000\006\005" + "\uffc0\013\161\001\002\000\010\005\uffbd\007\uffbd\013\uffbd" + "\001\002\000\040\004\027\032\076\036\101\037\065\040" + "\072\041\075\043\034\044\037\045\033\046\054\067\007" + "\070\036\071\005\072\040\073\063\001\002\000\010\005" + "\uffbe\007\uffbe\013\uffbe\001\002\000\054\005\uff9c\007\uff9c" + "\010\uff9c\011\uff9c\012\uff9c\013\uff9c\015\uff9c\016\uff9c\021" + "\uff9c\022\uff9c\023\uff9c\024\uff9c\025\uff9c\026\uff9c\027\uff9c" + "\030\uff9c\031\uff9c\032\uff9c\033\uff9c\034\uff9c\035\uff9c\001" + "\002\000\042\004\027\005\uffbf\032\076\036\101\037\065" + "\040\072\041\075\043\034\044\037\045\033\046\054\067" + "\007\070\036\071\005\072\040\073\063\001\002\000\062" + "\003\035\004\027\006\047\012\015\040\022\041\053\042" + "\052\043\034\044\037\045\033\046\054\055\026\057\045" + "\061\055\062\014\063\032\064\025\065\041\066\010\067" + "\007\070\036\071\005\072\040\073\056\001\002\000\110" + "\002\uffd6\003\uffd6\004\uffd6\006\uffd6\007\uffd6\010\uffd6\012" + "\uffd6\017\uffd6\040\uffd6\041\uffd6\042\uffd6\043\uffd6\044\uffd6" + "\045\uffd6\046\uffd6\050\uffd6\051\uffd6\052\uffd6\053\uffd6\054" + "\uffd6\055\uffd6\056\uffd6\057\uffd6\060\uffd6\061\uffd6\062\uffd6" + "\063\uffd6\064\uffd6\065\uffd6\066\uffd6\067\uffd6\070\uffd6\071" + "\uffd6\072\uffd6\073\uffd6\001\002\000\004\005\170\001\002" + "\000\014\005\uffc1\010\uff9c\012\uffc1\013\uffc1\016\uff9c\001" + "\002\000\014\005\uffc4\010\uff9e\012\uffc4\013\uffc4\016\uff9e" + "\001\002\000\042\004\027\005\uffbf\032\076\036\101\037" + "\065\040\072\041\075\043\034\044\037\045\033\046\054" + "\067\007\070\036\071\005\072\040\073\063\001\002\000" + "\004\005\174\001\002\000\110\002\uffd2\003\uffd2\004\uffd2" + "\006\uffd2\007\uffd2\010\uffd2\012\uffd2\017\uffd2\040\uffd2\041" + "\uffd2\042\uffd2\043\uffd2\044\uffd2\045\uffd2\046\uffd2\050\uffd2" + "\051\uffd2\052\uffd2\053\uffd2\054\uffd2\055\uffd2\056\uffd2\057" + "\uffd2\060\uffd2\061\uffd2\062\uffd2\063\uffd2\064\uffd2\065\uffd2" + "\066\uffd2\067\uffd2\070\uffd2\071\uffd2\072\uffd2\073\uffd2\001" + "\002\000\012\004\206\012\uffe2\013\uffe2\020\204\001\002" + "\000\006\012\uffe5\013\uffe5\001\002\000\006\012\201\013" + "\200\001\002\000\004\073\202\001\002\000\112\002\uffed" + "\003\uffed\004\uffed\006\uffed\007\uffed\010\uffed\012\uffed\017" + "\uffed\032\uffed\036\uffed\037\uffed\040\uffed\041\uffed\042\uffed" + "\043\uffed\044\uffed\045\uffed\046\uffed\050\uffed\051\uffed\052" + "\uffed\053\uffed\054\uffed\055\uffed\057\uffed\061\uffed\062\uffed" + "\063\uffed\064\uffed\065\uffed\066\uffed\067\uffed\070\uffed\071" + "\uffed\072\uffed\073\uffed\001\002\000\010\012\uffe2\013\uffe2" + "\020\204\001\002\000\006\012\uffe6\013\uffe6\001\002\000" + "\040\004\027\032\076\036\101\037\065\040\072\041\075" + "\043\034\044\037\045\033\046\054\067\007\070\036\071" + "\005\072\040\073\063\001\002\000\006\012\uffe1\013\uffe1" + "\001\002\000\024\003\ufff5\005\ufff5\010\ufff5\047\ufff5\050" + "\ufff5\051\ufff5\052\ufff5\053\ufff5\073\ufff5\001\002\000\024" + "\003\215\005\214\010\024\047\213\050\012\051\006\052" + "\017\053\044\073\211\001\002\000\004\073\225\001\002" + "\000\060\005\uffe8\006\uffe8\007\uffe8\010\uffe8\011\uffe8\012" + "\uffe8\013\uffe8\015\uffe8\016\uffe8\021\uffe8\022\uffe8\023\uffe8" + "\024\uffe8\025\uffe8\026\uffe8\027\uffe8\030\uffe8\031\uffe8\032" + "\uffe8\033\uffe8\034\uffe8\035\uffe8\073\uffe8\001\002\000\024" + "\003\ufff6\005\ufff6\010\ufff6\047\ufff6\050\ufff6\051\ufff6\052" + "\ufff6\053\ufff6\073\ufff6\001\002\000\016\010\024\050\012" + "\051\006\052\017\053\044\073\211\001\002\000\004\006" + "\217\001\002\000\004\012\216\001\002\000\024\003\ufff2" + "\005\ufff2\010\ufff2\047\ufff2\050\ufff2\051\ufff2\052\ufff2\053" + "\ufff2\073\ufff2\001\002\000\076\003\ufff9\004\ufff9\006\ufff9" + "\007\ufff9\010\ufff9\012\ufff9\040\ufff9\041\ufff9\042\ufff9\043" + "\ufff9\044\ufff9\045\ufff9\046\ufff9\050\ufff9\051\ufff9\052\ufff9" + "\053\ufff9\055\ufff9\057\ufff9\061\ufff9\062\ufff9\063\ufff9\064" + "\ufff9\065\ufff9\066\ufff9\067\ufff9\070\ufff9\071\ufff9\072\ufff9" + "\073\ufff9\001\002\000\076\003\035\004\027\006\047\007" + "\222\010\024\012\015\040\022\041\053\042\052\043\034" + "\044\037\045\033\046\054\050\012\051\006\052\017\053" + "\044\055\026\057\045\061\055\062\014\063\032\064\025" + "\065\041\066\010\067\007\070\036\071\005\072\040\073" + "\042\001\002\000\076\003\ufffa\004\ufffa\006\ufffa\007\ufffa" + "\010\ufffa\012\ufffa\040\ufffa\041\ufffa\042\ufffa\043\ufffa\044" + "\ufffa\045\ufffa\046\ufffa\050\ufffa\051\ufffa\052\ufffa\053\ufffa" + "\055\ufffa\057\ufffa\061\ufffa\062\ufffa\063\ufffa\064\ufffa\065" + "\ufffa\066\ufffa\067\ufffa\070\ufffa\071\ufffa\072\ufffa\073\ufffa" + "\001\002\000\102\002\ufffd\003\ufffd\004\ufffd\006\ufffd\010" + "\ufffd\012\ufffd\017\ufffd\040\ufffd\041\ufffd\042\ufffd\043\ufffd" + "\044\ufffd\045\ufffd\046\ufffd\050\ufffd\051\ufffd\052\ufffd\053" + "\ufffd\054\ufffd\055\ufffd\057\ufffd\061\ufffd\062\ufffd\063\ufffd" + "\064\ufffd\065\ufffd\066\ufffd\067\ufffd\070\ufffd\071\ufffd\072" + "\ufffd\073\ufffd\001\002\000\004\073\202\001\002\000\004" + "\073\225\001\002\000\006\012\uffe3\013\uffe3\001\002\000" + "\006\012\230\013\227\001\002\000\004\073\231\001\002" + "\000\024\003\ufff3\005\ufff3\010\ufff3\047\ufff3\050\ufff3\051" + "\ufff3\052\ufff3\053\ufff3\073\ufff3\001\002\000\006\012\uffe4" + "\013\uffe4\001\002\000\006\012\233\013\227\001\002\000" + "\024\003\ufff4\005\ufff4\010\ufff4\047\ufff4\050\ufff4\051\ufff4" + "\052\ufff4\053\ufff4\073\ufff4\001\002\000\076\003\035\004" + "\027\006\047\007\235\010\024\012\015\040\022\041\053" + "\042\052\043\034\044\037\045\033\046\054\050\012\051" + "\006\052\017\053\044\055\026\057\045\061\055\062\014" + "\063\032\064\025\065\041\066\010\067\007\070\036\071" + "\005\072\040\073\042\001\002\000\110\002\uffde\003\uffde" + "\004\uffde\006\uffde\007\uffde\010\uffde\012\uffde\017\uffde\040" + "\uffde\041\uffde\042\uffde\043\uffde\044\uffde\045\uffde\046\uffde" + "\050\uffde\051\uffde\052\uffde\053\uffde\054\uffde\055\uffde\056" + "\uffde\057\uffde\060\uffde\061\uffde\062\uffde\063\uffde\064\uffde" + "\065\uffde\066\uffde\067\uffde\070\uffde\071\uffde\072\uffde\073" + "\uffde\001\002\000\040\004\027\032\076\036\101\037\065" + "\040\072\041\075\043\034\044\037\045\033\046\054\067" + "\007\070\036\071\005\072\040\073\063\001\002\000\004" + "\005\240\001\002\000\062\003\035\004\027\006\047\012" + "\015\040\022\041\053\042\052\043\034\044\037\045\033" + "\046\054\055\026\057\045\061\055\062\014\063\032\064" + "\025\065\041\066\010\067\007\070\036\071\005\072\040" + "\073\056\001\002\000\110\002\uffdb\003\uffdb\004\uffdb\006" + "\uffdb\007\uffdb\010\uffdb\012\uffdb\017\uffdb\040\uffdb\041\uffdb" + "\042\uffdb\043\uffdb\044\uffdb\045\uffdb\046\uffdb\050\uffdb\051" + "\uffdb\052\uffdb\053\uffdb\054\uffdb\055\uffdb\056\uffdb\057\uffdb" + "\060\uffdb\061\uffdb\062\uffdb\063\uffdb\064\uffdb\065\uffdb\066" + "\uffdb\067\uffdb\070\uffdb\071\uffdb\072\uffdb\073\uffdb\001\002" + "\000\004\004\243\001\002\000\024\003\ufff5\005\ufff5\010" + "\ufff5\047\ufff5\050\ufff5\051\ufff5\052\ufff5\053\ufff5\073\ufff5" + "\001\002\000\024\003\215\005\245\010\024\047\213\050" + "\012\051\006\052\017\053\044\073\211\001\002\000\004" + "\006\246\001\002\000\076\003\ufff9\004\ufff9\006\ufff9\007" + "\ufff9\010\ufff9\012\ufff9\040\ufff9\041\ufff9\042\ufff9\043\ufff9" + "\044\ufff9\045\ufff9\046\ufff9\050\ufff9\051\ufff9\052\ufff9\053" + "\ufff9\055\ufff9\057\ufff9\061\ufff9\062\ufff9\063\ufff9\064\ufff9" + "\065\ufff9\066\ufff9\067\ufff9\070\ufff9\071\ufff9\072\ufff9\073" + "\ufff9\001\002\000\076\003\035\004\027\006\047\007\250" + "\010\024\012\015\040\022\041\053\042\052\043\034\044" + "\037\045\033\046\054\050\012\051\006\052\017\053\044" + "\055\026\057\045\061\055\062\014\063\032\064\025\065" + "\041\066\010\067\007\070\036\071\005\072\040\073\042" + "\001\002\000\102\002\ufffc\003\ufffc\004\ufffc\006\ufffc\010" + "\ufffc\012\ufffc\017\ufffc\040\ufffc\041\ufffc\042\ufffc\043\ufffc" + "\044\ufffc\045\ufffc\046\ufffc\050\ufffc\051\ufffc\052\ufffc\053" + "\ufffc\054\ufffc\055\ufffc\057\ufffc\061\ufffc\062\ufffc\063\ufffc" + "\064\ufffc\065\ufffc\066\ufffc\067\ufffc\070\ufffc\071\ufffc\072" + "\ufffc\073\ufffc\001\002\000\110\002\uffd4\003\uffd4\004\uffd4" + "\006\uffd4\007\uffd4\010\uffd4\012\uffd4\017\uffd4\040\uffd4\041" + "\uffd4\042\uffd4\043\uffd4\044\uffd4\045\uffd4\046\uffd4\050\uffd4" + "\051\uffd4\052\uffd4\053\uffd4\054\uffd4\055\uffd4\056\uffd4\057" + "\uffd4\060\uffd4\061\uffd4\062\uffd4\063\uffd4\064\uffd4\065\uffd4" + "\066\uffd4\067\uffd4\070\uffd4\071\uffd4\072\uffd4\073\uffd4\001" + "\002\000\110\002\uffd1\003\uffd1\004\uffd1\006\uffd1\007\uffd1" + "\010\uffd1\012\uffd1\017\uffd1\040\uffd1\041\uffd1\042\uffd1\043" + "\uffd1\044\uffd1\045\uffd1\046\uffd1\050\uffd1\051\uffd1\052\uffd1" + "\053\uffd1\054\uffd1\055\uffd1\056\uffd1\057\uffd1\060\uffd1\061" + "\uffd1\062\uffd1\063\uffd1\064\uffd1\065\uffd1\066\uffd1\067\uffd1" + "\070\uffd1\071\uffd1\072\uffd1\073\uffd1\001\002\000\110\002" + "\uffd0\003\uffd0\004\uffd0\006\uffd0\007\uffd0\010\uffd0\012\uffd0" + "\017\uffd0\040\uffd0\041\uffd0\042\uffd0\043\uffd0\044\uffd0\045" + "\uffd0\046\uffd0\050\uffd0\051\uffd0\052\uffd0\053\uffd0\054\uffd0" + "\055\uffd0\056\uffd0\057\uffd0\060\uffd0\061\uffd0\062\uffd0\063" + "\uffd0\064\uffd0\065\uffd0\066\uffd0\067\uffd0\070\uffd0\071\uffd0" + "\072\uffd0\073\uffd0\001\002\000\056\005\uff9a\006\263\007" + "\uff9a\010\uff9a\011\uff9a\012\uff9a\013\uff9a\015\uff9a\016\uff9a" + "\021\uff9a\022\uff9a\023\uff9a\024\uff9a\025\uff9a\026\uff9a\027" + "\uff9a\030\uff9a\031\uff9a\032\uff9a\033\uff9a\034\uff9a\035\uff9a" + "\001\002\000\042\004\027\011\257\032\076\036\101\037" + "\065\040\072\041\075\043\034\044\037\045\033\046\054" + "\067\007\070\036\071\005\072\040\073\063\001\002\000" + "\004\011\261\001\002\000\016\010\024\050\012\051\006" + "\052\017\053\044\073\211\001\002\000\060\005\uffe7\006" + "\uffe7\007\uffe7\010\uffe7\011\uffe7\012\uffe7\013\uffe7\015\uffe7" + "\016\uffe7\021\uffe7\022\uffe7\023\uffe7\024\uffe7\025\uffe7\026" + "\uffe7\027\uffe7\030\uffe7\031\uffe7\032\uffe7\033\uffe7\034\uffe7" + "\035\uffe7\073\uffe7\001\002\000\016\010\024\050\012\051" + "\006\052\017\053\044\073\211\001\002\000\054\005\uff9b" + "\007\uff9b\010\uff9b\011\uff9b\012\uff9b\013\uff9b\015\uff9b\016" + "\uff9b\021\uff9b\022\uff9b\023\uff9b\024\uff9b\025\uff9b\026\uff9b" + "\027\uff9b\030\uff9b\031\uff9b\032\uff9b\033\uff9b\034\uff9b\035" + "\uff9b\001\002\000\040\004\027\032\076\036\101\037\065" + "\040\072\041\075\043\034\044\037\045\033\046\054\067" + "\007\070\036\071\005\072\040\073\063\001\002\000\006" + "\007\265\013\161\001\002\000\054\005\uff99\007\uff99\010" + "\uff99\011\uff99\012\uff99\013\uff99\015\uff99\016\uff99\021\uff99" + "\022\uff99\023\uff99\024\uff99\025\uff99\026\uff99\027\uff99\030" + "\uff99\031\uff99\032\uff99\033\uff99\034\uff99\035\uff99\001\002" + "\000\110\002\uffd8\003\uffd8\004\uffd8\006\uffd8\007\uffd8\010" + "\uffd8\012\uffd8\017\uffd8\040\uffd8\041\uffd8\042\uffd8\043\uffd8" + "\044\uffd8\045\uffd8\046\uffd8\050\uffd8\051\uffd8\052\uffd8\053" + "\uffd8\054\uffd8\055\uffd8\056\uffd8\057\uffd8\060\uffd8\061\uffd8" + "\062\uffd8\063\uffd8\064\uffd8\065\uffd8\066\uffd8\067\uffd8\070" + "\uffd8\071\uffd8\072\uffd8\073\uffd8\001\002\000\004\012\270" + "\001\002\000\110\002\uffd7\003\uffd7\004\uffd7\006\uffd7\007" + "\uffd7\010\uffd7\012\uffd7\017\uffd7\040\uffd7\041\uffd7\042\uffd7" + "\043\uffd7\044\uffd7\045\uffd7\046\uffd7\050\uffd7\051\uffd7\052" + "\uffd7\053\uffd7\054\uffd7\055\uffd7\056\uffd7\057\uffd7\060\uffd7" + "\061\uffd7\062\uffd7\063\uffd7\064\uffd7\065\uffd7\066\uffd7\067" + "\uffd7\070\uffd7\071\uffd7\072\uffd7\073\uffd7\001\002\000\110" + "\002\uffdf\003\uffdf\004\uffdf\006\uffdf\007\uffdf\010\uffdf\012" + "\uffdf\017\uffdf\040\uffdf\041\uffdf\042\uffdf\043\uffdf\044\uffdf" + "\045\uffdf\046\uffdf\050\uffdf\051\uffdf\052\uffdf\053\uffdf\054" + "\uffdf\055\uffdf\056\uffdf\057\uffdf\060\uffdf\061\uffdf\062\uffdf" + "\063\uffdf\064\uffdf\065\uffdf\066\uffdf\067\uffdf\070\uffdf\071" + "\uffdf\072\uffdf\073\uffdf\001\002\000\004\005\273\001\002" + "\000\054\005\uffa0\007\uffa0\010\uffa0\011\uffa0\012\uffa0\013" + "\uffa0\015\uffa0\016\uffa0\021\uffa0\022\uffa0\023\uffa0\024\uffa0" + "\025\uffa0\026\uffa0\027\uffa0\030\uffa0\031\uffa0\032\uffa0\033" + "\uffa0\034\uffa0\035\uffa0\001\002\000\040\004\027\032\076" + "\036\101\037\065\040\072\041\075\043\034\044\037\045" + "\033\046\054\067\007\070\036\071\005\072\040\073\063" + "\001\002\000\004\005\276\001\002\000\062\003\035\004" + "\027\006\047\012\015\040\022\041\053\042\052\043\034" + "\044\037\045\033\046\054\055\026\057\045\061\055\062" + "\014\063\032\064\025\065\041\066\010\067\007\070\036" + "\071\005\072\040\073\056\001\002\000\110\002\uffdd\003" + "\uffdd\004\uffdd\006\uffdd\007\uffdd\010\uffdd\012\uffdd\017\uffdd" + "\040\uffdd\041\uffdd\042\uffdd\043\uffdd\044\uffdd\045\uffdd\046" + "\uffdd\050\uffdd\051\uffdd\052\uffdd\053\uffdd\054\uffdd\055\uffdd" + "\056\300\057\uffdd\060\uffdd\061\uffdd\062\uffdd\063\uffdd\064" + "\uffdd\065\uffdd\066\uffdd\067\uffdd\070\uffdd\071\uffdd\072\uffdd" + "\073\uffdd\001\002\000\062\003\035\004\027\006\047\012" + "\015\040\022\041\053\042\052\043\034\044\037\045\033" + "\046\054\055\026\057\045\061\055\062\014\063\032\064" + "\025\065\041\066\010\067\007\070\036\071\005\072\040" + "\073\056\001\002\000\110\002\uffdc\003\uffdc\004\uffdc\006" + "\uffdc\007\uffdc\010\uffdc\012\uffdc\017\uffdc\040\uffdc\041\uffdc" + "\042\uffdc\043\uffdc\044\uffdc\045\uffdc\046\uffdc\050\uffdc\051" + "\uffdc\052\uffdc\053\uffdc\054\uffdc\055\uffdc\056\uffdc\057\uffdc" + "\060\uffdc\061\uffdc\062\uffdc\063\uffdc\064\uffdc\065\uffdc\066" + "\uffdc\067\uffdc\070\uffdc\071\uffdc\072\uffdc\073\uffdc\001\002" + "\000\004\012\303\001\002\000\110\002\uffd5\003\uffd5\004" + "\uffd5\006\uffd5\007\uffd5\010\uffd5\012\uffd5\017\uffd5\040\uffd5" + "\041\uffd5\042\uffd5\043\uffd5\044\uffd5\045\uffd5\046\uffd5\050" + "\uffd5\051\uffd5\052\uffd5\053\uffd5\054\uffd5\055\uffd5\056\uffd5" + "\057\uffd5\060\uffd5\061\uffd5\062\uffd5\063\uffd5\064\uffd5\065" + "\uffd5\066\uffd5\067\uffd5\070\uffd5\071\uffd5\072\uffd5\073\uffd5" + "\001\002\000\014\005\uffc5\010\uff9e\012\uffc5\013\uffc5\016" + "\uff9e\001\002\000\004\004\306\001\002\000\022\003\ufff0" + "\005\ufff0\010\ufff0\050\ufff0\051\ufff0\052\ufff0\053\ufff0\073" + "\ufff0\001\002\000\022\003\312\005\311\010\024\050\012" + "\051\006\052\017\053\044\073\211\001\002\000\004\073" + "\225\001\002\000\004\012\315\001\002\000\004\012\314" + "\001\002\000\022\003\ufff1\005\ufff1\010\ufff1\050\ufff1\051" + "\ufff1\052\ufff1\053\ufff1\073\ufff1\001\002\000\022\003\uffee" + "\005\uffee\010\uffee\050\uffee\051\uffee\052\uffee\053\uffee\073" + "\uffee\001\002\000\102\002\ufffe\003\ufffe\004\ufffe\006\ufffe" + "\010\ufffe\012\ufffe\017\ufffe\040\ufffe\041\ufffe\042\ufffe\043" + "\ufffe\044\ufffe\045\ufffe\046\ufffe\050\ufffe\051\ufffe\052\ufffe" + "\053\ufffe\054\ufffe\055\ufffe\057\ufffe\061\ufffe\062\ufffe\063" + "\ufffe\064\ufffe\065\ufffe\066\ufffe\067\ufffe\070\ufffe\071\ufffe" + "\072\ufffe\073\ufffe\001\002\000\006\012\317\013\227\001" + "\002\000\022\003\uffef\005\uffef\010\uffef\050\uffef\051\uffef" + "\052\uffef\053\uffef\073\uffef\001\002\000\046\004\027\010" + "\024\012\321\040\022\041\053\043\034\044\037\045\033" + "\046\054\050\012\051\006\052\017\053\044\067\007\070" + "\036\071\005\072\040\073\322\001\002\000\042\004\uffcd" + "\012\uffcd\032\uffcd\036\uffcd\037\uffcd\040\uffcd\041\uffcd\043" + "\uffcd\044\uffcd\045\uffcd\046\uffcd\067\uffcd\070\uffcd\071\uffcd" + "\072\uffcd\073\uffcd\001\002\000\020\004\164\010\uff91\016" + "\uff91\020\uff91\040\uff91\041\uff91\073\uffe8\001\002\000\006" + "\012\341\013\335\001\002\000\010\005\uffc7\012\uffc7\013" + "\uffc7\001\002\000\042\004\027\012\uffcb\032\076\036\101" + "\037\065\040\072\041\075\043\034\044\037\045\033\046" + "\054\067\007\070\036\071\005\072\040\073\063\001\002" + "\000\042\004\uffce\012\uffce\032\uffce\036\uffce\037\uffce\040" + "\uffce\041\uffce\043\uffce\044\uffce\045\uffce\046\uffce\067\uffce" + "\070\uffce\071\uffce\072\uffce\073\uffce\001\002\000\004\012" + "\331\001\002\000\004\012\uffcc\001\002\000\034\004\027" + "\005\uffc9\040\022\041\053\043\034\044\037\045\033\046" + "\054\067\007\070\036\071\005\072\040\073\333\001\002" + "\000\004\005\337\001\002\000\016\004\164\010\uff91\016" + "\uff91\020\uff91\040\uff91\041\uff91\001\002\000\006\005\uffca" + "\013\335\001\002\000\032\004\027\040\022\041\053\043" + "\034\044\037\045\033\046\054\067\007\070\036\071\005" + "\072\040\073\333\001\002\000\010\005\uffc8\012\uffc8\013" + "\uffc8\001\002\000\062\003\035\004\027\006\047\012\015" + "\040\022\041\053\042\052\043\034\044\037\045\033\046" + "\054\055\026\057\045\061\055\062\014\063\032\064\025" + "\065\041\066\010\067\007\070\036\071\005\072\040\073" + "\056\001\002\000\110\002\uffd9\003\uffd9\004\uffd9\006\uffd9" + "\007\uffd9\010\uffd9\012\uffd9\017\uffd9\040\uffd9\041\uffd9\042" + "\uffd9\043\uffd9\044\uffd9\045\uffd9\046\uffd9\050\uffd9\051\uffd9" + "\052\uffd9\053\uffd9\054\uffd9\055\uffd9\056\uffd9\057\uffd9\060" + "\uffd9\061\uffd9\062\uffd9\063\uffd9\064\uffd9\065\uffd9\066\uffd9" + "\067\uffd9\070\uffd9\071\uffd9\072\uffd9\073\uffd9\001\002\000" + "\042\004\uffcf\012\uffcf\032\uffcf\036\uffcf\037\uffcf\040\uffcf" + "\041\uffcf\043\uffcf\044\uffcf\045\uffcf\046\uffcf\067\uffcf\070" + "\uffcf\071\uffcf\072\uffcf\073\uffcf\001\002\000\010\005\uffc3" + "\012\uffc3\013\uffc3\001\002\000\010\005\uffc2\012\uffc2\013" + "\uffc2\001\002\000\040\004\027\032\076\036\101\037\065" + "\040\072\041\075\043\034\044\037\045\033\046\054\067" + "\007\070\036\071\005\072\040\073\063\001\002\000\012" + "\005\uffc6\012\uffc6\013\uffc6\021\153\001\002\000\110\002" + "\uffd3\003\uffd3\004\uffd3\006\uffd3\007\uffd3\010\uffd3\012\uffd3" + "\017\uffd3\040\uffd3\041\uffd3\042\uffd3\043\uffd3\044\uffd3\045" + "\uffd3\046\uffd3\050\uffd3\051\uffd3\052\uffd3\053\uffd3\054\uffd3" + "\055\uffd3\056\uffd3\057\uffd3\060\uffd3\061\uffd3\062\uffd3\063" + "\uffd3\064\uffd3\065\uffd3\066\uffd3\067\uffd3\070\uffd3\071\uffd3" + "\072\uffd3\073\uffd3\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\344\000\004\004\003\001\001\000\024\003\050\010" + "\010\011\022\014\045\016\047\030\030\040\015\041\017" + "\042\012\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\002\001\001" + "\000\002\001\001\000\010\040\015\041\017\042\303\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + "\000\002\001\001\000\030\027\271\031\063\032\077\033" + "\061\034\072\035\067\036\073\037\070\040\065\041\017" + "\042\076\001\001\000\002\001\001\000\002\001\001\000" + "\030\027\266\031\063\032\077\033\061\034\072\035\067" + "\036\073\037\070\040\065\041\017\042\076\001\001\000" + "\002\001\001\000\004\003\253\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\004\005" + "\233\001\001\000\002\001\001\000\006\024\176\025\175" + "\001\001\000\002\001\001\000\010\040\015\041\017\042" + "\170\001\001\000\002\001\001\000\014\016\056\030\030" + "\040\015\041\017\042\012\001\001\000\002\001\001\000" + "\002\001\001\000\002\001\001\000\030\027\066\031\063" + "\032\077\033\061\034\072\035\067\036\073\037\070\040" + "\065\041\017\042\076\001\001\000\002\001\001\000\002" + "\001\001\000\002\001\001\000\014\036\151\037\070\040" + "\065\041\017\042\076\001\001\000\002\001\001\000\002" + "\001\001\000\002\001\001\000\002\001\001\000\010\040" + "\015\041\017\042\136\001\001\000\002\001\001\000\002" + "\001\001\000\010\040\015\041\017\042\107\001\001\000" + "\014\036\106\037\070\040\065\041\017\042\076\001\001" + "\000\002\001\001\000\002\001\001\000\014\036\101\037" + "\070\040\065\041\017\042\076\001\001\000\002\001\001" + "\000\022\033\103\034\072\035\067\036\073\037\070\040" + "\065\041\017\042\076\001\001\000\002\001\001\000\002" + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + "\001\000\020\034\135\035\067\036\073\037\070\040\065" + "\041\017\042\076\001\001\000\020\034\134\035\067\036" + "\073\037\070\040\065\041\017\042\076\001\001\000\020" + "\034\133\035\067\036\073\037\070\040\065\041\017\042" + "\076\001\001\000\016\035\132\036\073\037\070\040\065" + "\041\017\042\076\001\001\000\020\034\131\035\067\036" + "\073\037\070\040\065\041\017\042\076\001\001\000\016" + "\035\122\036\073\037\070\040\065\041\017\042\076\001" + "\001\000\020\034\121\035\067\036\073\037\070\040\065" + "\041\017\042\076\001\001\000\020\034\120\035\067\036" + "\073\037\070\040\065\041\017\042\076\001\001\000\002" + "\001\001\000\002\001\001\000\002\001\001\000\014\036" + "\130\037\070\040\065\041\017\042\076\001\001\000\014" + "\036\127\037\070\040\065\041\017\042\076\001\001\000" + "\014\036\126\037\070\040\065\041\017\042\076\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\030\027\144\031\063\032\077" + "\033\061\034\072\035\067\036\073\037\070\040\065\041" + "\017\042\076\001\001\000\002\001\001\000\002\001\001" + "\000\002\001\001\000\002\001\001\000\030\027\147\031" + "\063\032\077\033\061\034\072\035\067\036\073\037\070" + "\040\065\041\017\042\076\001\001\000\002\001\001\000" + "\002\001\001\000\002\001\001\000\024\032\153\033\061" + "\034\072\035\067\036\073\037\070\040\065\041\017\042" + "\076\001\001\000\002\001\001\000\034\017\155\020\156" + "\027\157\031\063\032\077\033\061\034\072\035\067\036" + "\073\037\070\040\065\041\017\042\076\001\001\000\002" + "\001\001\000\002\001\001\000\002\001\001\000\030\027" + "\161\031\063\032\077\033\061\034\072\035\067\036\073" + "\037\070\040\065\041\017\042\076\001\001\000\002\001" + "\001\000\002\001\001\000\034\017\166\020\156\027\157" + "\031\063\032\077\033\061\034\072\035\067\036\073\037" + "\070\040\065\041\017\042\076\001\001\000\014\016\165" + "\030\030\040\015\041\017\042\012\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + "\000\034\017\172\020\156\027\157\031\063\032\077\033" + "\061\034\072\035\067\036\073\037\070\040\065\041\017" + "\042\076\001\001\000\002\001\001\000\002\001\001\000" + "\002\001\001\000\002\001\001\000\002\001\001\000\004" + "\025\202\001\001\000\002\001\001\000\002\001\001\000" + "\002\001\001\000\030\027\204\031\063\032\077\033\061" + "\034\072\035\067\036\073\037\070\040\065\041\017\042" + "\076\001\001\000\002\001\001\000\004\007\206\001\001" + "\000\006\003\207\012\211\001\001\000\004\023\231\001" + "\001\000\002\001\001\000\002\001\001\000\004\003\223" + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + "\001\000\004\005\217\001\001\000\022\003\222\011\220" + "\014\045\016\047\030\030\040\015\041\017\042\012\001" + "\001\000\002\001\001\000\002\001\001\000\006\024\176" + "\025\175\001\001\000\004\023\225\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" + "\022\003\222\011\220\014\045\016\047\030\030\040\015" + "\041\017\042\012\001\001\000\002\001\001\000\030\027" + "\236\031\063\032\077\033\061\034\072\035\067\036\073" + "\037\070\040\065\041\017\042\076\001\001\000\002\001" + "\001\000\014\016\240\030\030\040\015\041\017\042\012" + "\001\001\000\002\001\001\000\002\001\001\000\004\007" + "\243\001\001\000\006\003\207\012\211\001\001\000\002" + "\001\001\000\004\005\246\001\001\000\022\003\222\011" + "\220\014\045\016\047\030\030\040\015\041\017\042\012" + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\030\027\255" + "\031\063\032\077\033\061\034\072\035\067\036\073\037" + "\070\040\065\041\017\042\076\001\001\000\002\001\001" + "\000\004\003\257\001\001\000\002\001\001\000\004\003" + "\261\001\001\000\002\001\001\000\032\020\263\027\157" + "\031\063\032\077\033\061\034\072\035\067\036\073\037" + "\070\040\065\041\017\042\076\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\027\274\031\063\032\077\033\061\034" + "\072\035\067\036\073\037\070\040\065\041\017\042\076" + "\001\001\000\002\001\001\000\014\016\276\030\030\040" + "\015\041\017\042\012\001\001\000\002\001\001\000\014" + "\016\300\030\030\040\015\041\017\042\012\001\001\000" + "\002\001\001\000\002\001\001\000\002\001\001\000\002" + "\001\001\000\002\001\001\000\004\006\306\001\001\000" + "\006\003\307\013\312\001\001\000\004\023\315\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\022\003\222\014\325\015\324\022\322\030" + "\323\040\015\041\017\042\012\001\001\000\002\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + "\032\026\326\027\327\031\063\032\077\033\061\034\072" + "\035\067\036\073\037\070\040\065\041\017\042\076\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + "\000\016\021\331\022\333\030\323\040\015\041\017\042" + "\012\001\001\000\002\001\001\000\002\001\001\000\002" + "\001\001\000\012\030\335\040\015\041\017\042\012\001" + "\001\000\002\001\001\000\014\016\337\030\030\040\015" + "\041\017\042\012\001\001\000\002\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\026\031\344" + "\032\077\033\061\034\072\035\067\036\073\037\070\040" + "\065\041\017\042\076\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 114: // Variable ::= Primary DOT IDENT { VariableNode RESULT = null; int primaryleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left; int primaryright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right; ExprNode primary = (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( primary, field ); CUP$parser$result = new java_cup.runtime.Symbol(32/*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 113: // Variable ::= Primary LEFTSQ Expr RIGHTSQ { VariableNode RESULT = null; int arrayleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left; int arrayright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right; ExprNode array = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value; int indexleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left; int indexright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right; ExprNode index = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; RESULT = new IndexVariableNode( array, index ); CUP$parser$result = new java_cup.runtime.Symbol(32/*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 112: // 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(32/*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 111: // LiteralValue ::= STRINGVALUE { ExprNode RESULT = null; int valueleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int valueright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; String value = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = new StringValueNode( Convert.parseString( value.substring( 1, value.length() - 1 ) ) ); CUP$parser$result = new java_cup.runtime.Symbol(31/*LiteralValue*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 110: // LiteralValue ::= CHARVALUE { ExprNode RESULT = null; int valueleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int valueright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; String value = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = new CharValueNode( Convert.parseChar( value.substring( 1, value.length() - 1 ) ) ); CUP$parser$result = new java_cup.runtime.Symbol(31/*LiteralValue*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 109: // LiteralValue ::= FALSE { ExprNode RESULT = null; RESULT = new BoolValueNode( new Boolean( false ) ); CUP$parser$result = new java_cup.runtime.Symbol(31/*LiteralValue*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 108: // LiteralValue ::= TRUE { ExprNode RESULT = null; RESULT = new BoolValueNode( new Boolean( true ) ); CUP$parser$result = new java_cup.runtime.Symbol(31/*LiteralValue*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 107: // LiteralValue ::= NULL { ExprNode RESULT = null; RESULT = new NullValueNode(); CUP$parser$result = new java_cup.runtime.Symbol(31/*LiteralValue*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 106: // LiteralValue ::= 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(31/*LiteralValue*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 105: // LiteralValue ::= INTVALUE { ExprNode RESULT = null; int valueleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int valueright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; String value = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = new IntValueNode( new Integer( value ) ); CUP$parser$result = new java_cup.runtime.Symbol(31/*LiteralValue*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 104: // Primary ::= NEW Type LEFTBRACE ExprList RIGHTBRACE { 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 exprListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left; int exprListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right; ExprListNode exprList = (ExprListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; RESULT = new MultipleNode( type, exprList ); CUP$parser$result = new java_cup.runtime.Symbol(30/*Primary*/, ((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 103: // Primary ::= 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(30/*Primary*/, ((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 102: // Primary ::= 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(30/*Primary*/, ((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 101: // 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(30/*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 100: // Primary ::= Primary LEFTSQ Expr DOTDOT Expr RIGHTSQ { ExprNode RESULT = null; int arrayleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)).left; int arrayright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)).right; ExprNode array = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-5)).value; int lowExprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left; int lowExprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right; ExprNode lowExpr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value; int highExprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left; int highExprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right; ExprNode highExpr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; RESULT = new SubArrayNode( array, lowExpr, highExpr ); CUP$parser$result = new java_cup.runtime.Symbol(30/*Primary*/, ((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 99: // Primary ::= Variable { ExprNode RESULT = null; int variableleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int variableright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; VariableNode variable = (VariableNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = new VarExprNode( variable ); CUP$parser$result = new java_cup.runtime.Symbol(30/*Primary*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 98: // Primary ::= LiteralValue { ExprNode RESULT = null; int valueleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int valueright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; ExprNode value = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = value; CUP$parser$result = new java_cup.runtime.Symbol(30/*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 97: // 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(30/*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 96: // PostfixExpr ::= Primary { ExprNode RESULT = null; int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = expr; CUP$parser$result = new java_cup.runtime.Symbol(29/*PostfixExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 95: // PostfixExpr ::= Variable DEC { ExprNode RESULT = null; int variableleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left; int variableright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right; VariableNode variable = (VariableNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; RESULT = new PostDecNode( variable ); CUP$parser$result = new java_cup.runtime.Symbol(29/*PostfixExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 94: // PostfixExpr ::= Variable INC { ExprNode RESULT = null; int variableleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left; int variableright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right; VariableNode variable = (VariableNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; RESULT = new PostIncNode( variable ); CUP$parser$result = new java_cup.runtime.Symbol(29/*PostfixExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 93: // PrefixExpr ::= PostfixExpr { ExprNode RESULT = null; int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = expr; CUP$parser$result = new java_cup.runtime.Symbol(28/*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 92: // PrefixExpr ::= DEC Variable { ExprNode RESULT = null; int variableleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int variableright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; VariableNode variable = (VariableNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = new PreDecNode( variable ); CUP$parser$result = new java_cup.runtime.Symbol(28/*PrefixExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 91: // PrefixExpr ::= INC Variable { ExprNode RESULT = null; int variableleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int variableright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; VariableNode variable = (VariableNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = new PreIncNode( variable ); CUP$parser$result = new java_cup.runtime.Symbol(28/*PrefixExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 90: // PrefixExpr ::= 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(28/*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 89: // PrefixExpr ::= NOT PrefixExpr { ExprNode RESULT = null; int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = new NotNode( expr ); CUP$parser$result = new java_cup.runtime.Symbol(28/*PrefixExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 88: // PrefixExpr ::= MINUS PrefixExpr { ExprNode RESULT = null; int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = new NegateNode( expr ); CUP$parser$result = new java_cup.runtime.Symbol(28/*PrefixExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 87: // MulExpr ::= PrefixExpr { ExprNode RESULT = null; int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = expr; CUP$parser$result = new java_cup.runtime.Symbol(27/*MulExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 86: // MulExpr ::= MulExpr MOD PrefixExpr { ExprNode RESULT = null; int expr1left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left; int expr1right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right; ExprNode expr1 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; int expr2left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int expr2right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; ExprNode expr2 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = new ModNode( expr1, expr2 ); CUP$parser$result = new java_cup.runtime.Symbol(27/*MulExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 85: // MulExpr ::= MulExpr DIVIDE PrefixExpr { ExprNode RESULT = null; int expr1left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left; int expr1right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right; ExprNode expr1 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; int expr2left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int expr2right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; ExprNode expr2 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = new DivideNode( expr1, expr2 ); CUP$parser$result = new java_cup.runtime.Symbol(27/*MulExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 84: // MulExpr ::= MulExpr TIMES PrefixExpr { ExprNode RESULT = null; int expr1left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left; int expr1right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right; ExprNode expr1 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; int expr2left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int expr2right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; ExprNode expr2 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = new TimesNode( expr1, expr2 ); CUP$parser$result = new java_cup.runtime.Symbol(27/*MulExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 83: // AddExpr ::= MulExpr { ExprNode RESULT = null; int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = expr; CUP$parser$result = new java_cup.runtime.Symbol(26/*AddExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 82: // AddExpr ::= AddExpr MINUS MulExpr { ExprNode RESULT = null; int expr1left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left; int expr1right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right; ExprNode expr1 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; int expr2left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int expr2right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; ExprNode expr2 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = new MinusNode( expr1, expr2 ); CUP$parser$result = new java_cup.runtime.Symbol(26/*AddExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 81: // AddExpr ::= AddExpr PLUS MulExpr { ExprNode RESULT = null; int expr1left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left; int expr1right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right; ExprNode expr1 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; int expr2left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int expr2right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; ExprNode expr2 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = new PlusNode( expr1, expr2 ); CUP$parser$result = new java_cup.runtime.Symbol(26/*AddExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 80: // RelExpr ::= AddExpr { ExprNode RESULT = null; int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = expr; CUP$parser$result = new java_cup.runtime.Symbol(25/*RelExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 79: // RelExpr ::= AddExpr NE AddExpr { ExprNode RESULT = null; int expr1left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left; int expr1right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right; ExprNode expr1 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; int expr2left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int expr2right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; ExprNode expr2 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = new NotEqualNode( expr1, expr2 ); CUP$parser$result = new java_cup.runtime.Symbol(25/*RelExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 78: // RelExpr ::= AddExpr EQ AddExpr { ExprNode RESULT = null; int expr1left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left; int expr1right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right; ExprNode expr1 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; int expr2left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int expr2right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; ExprNode expr2 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = new EqualNode( expr1, expr2 ); CUP$parser$result = new java_cup.runtime.Symbol(25/*RelExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 77: // RelExpr ::= AddExpr GE AddExpr { ExprNode RESULT = null; int expr1left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left; int expr1right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right; ExprNode expr1 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; int expr2left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int expr2right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; ExprNode expr2 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = new GreaterEqualNode( expr1, expr2 ); CUP$parser$result = new java_cup.runtime.Symbol(25/*RelExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 76: // RelExpr ::= AddExpr LE AddExpr { ExprNode RESULT = null; int expr1left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left; int expr1right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right; ExprNode expr1 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; int expr2left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int expr2right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; ExprNode expr2 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = new LessEqualNode( expr1, expr2 ); CUP$parser$result = new java_cup.runtime.Symbol(25/*RelExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 75: // RelExpr ::= AddExpr GT AddExpr { ExprNode RESULT = null; int expr1left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left; int expr1right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right; ExprNode expr1 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; int expr2left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int expr2right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; ExprNode expr2 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = new GreaterThanNode( expr1, expr2 ); CUP$parser$result = new java_cup.runtime.Symbol(25/*RelExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 74: // RelExpr ::= AddExpr LT AddExpr { ExprNode RESULT = null; int expr1left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left; int expr1right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right; ExprNode expr1 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; int expr2left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int expr2right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; ExprNode expr2 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = new LessThanNode( expr1, expr2 ); CUP$parser$result = new java_cup.runtime.Symbol(25/*RelExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 73: // AndExpr ::= RelExpr { ExprNode RESULT = null; int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = expr; CUP$parser$result = new java_cup.runtime.Symbol(24/*AndExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 72: // AndExpr ::= AndExpr AND RelExpr { ExprNode RESULT = null; int expr1left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left; int expr1right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right; ExprNode expr1 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; int expr2left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int expr2right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; ExprNode expr2 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = new AndNode( expr1, expr2 ); CUP$parser$result = new java_cup.runtime.Symbol(24/*AndExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 71: // OrExpr ::= AndExpr { ExprNode RESULT = null; int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = expr; CUP$parser$result = new java_cup.runtime.Symbol(23/*OrExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 70: // OrExpr ::= OrExpr OR AndExpr { ExprNode RESULT = null; int expr1left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left; int expr1right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right; ExprNode expr1 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; int expr2left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int expr2right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; ExprNode expr2 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = new OrNode( expr1, expr2 ); CUP$parser$result = new java_cup.runtime.Symbol(23/*OrExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 69: // Expr ::= 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(21/*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 68: // 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(14/*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 67: // 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(14/*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 66: // ExprListOpt ::= { ExprListNode RESULT = null; RESULT = new ExprListNode(); CUP$parser$result = new java_cup.runtime.Symbol(13/*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 65: // 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(13/*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 64: // AssignExpr ::= 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(22/*AssignExpr*/, ((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 63: // AssignExpr ::= Variable DEC { ExprNode RESULT = null; int variableleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left; int variableright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right; VariableNode variable = (VariableNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; RESULT = new PostDecNode( variable ); CUP$parser$result = new java_cup.runtime.Symbol(22/*AssignExpr*/, ((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 62: // AssignExpr ::= Variable INC { ExprNode RESULT = null; int variableleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left; int variableright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right; VariableNode variable = (VariableNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; RESULT = new PostIncNode( variable ); CUP$parser$result = new java_cup.runtime.Symbol(22/*AssignExpr*/, ((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 61: // AssignExpr ::= DEC Variable { ExprNode RESULT = null; int variableleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int variableright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; VariableNode variable = (VariableNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = new PreDecNode( variable ); CUP$parser$result = new java_cup.runtime.Symbol(22/*AssignExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 60: // AssignExpr ::= INC Variable { ExprNode RESULT = null; int variableleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int variableright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; VariableNode variable = (VariableNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = new PreIncNode( variable ); CUP$parser$result = new java_cup.runtime.Symbol(22/*AssignExpr*/, ((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 59: // AssignExpr ::= Variable ASSIGN OrExpr { ExprNode RESULT = null; int variableleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left; int variableright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right; VariableNode variable = (VariableNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = new AssignNode( variable, expr ); CUP$parser$result = new java_cup.runtime.Symbol(22/*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 58: // AssignExprList ::= AssignExpr { 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/*AssignExprList*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 57: // AssignExprList ::= AssignExprList COMMA AssignExpr { 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/*AssignExprList*/, ((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: // AssignExprListOpt ::= { ExprListNode RESULT = null; RESULT = new ExprListNode(); CUP$parser$result = new java_cup.runtime.Symbol(15/*AssignExprListOpt*/, ((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 55: // AssignExprListOpt ::= AssignExprList { 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/*AssignExprListOpt*/, ((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 54: // ExprOpt ::= { ExprNode RESULT = null; RESULT = new NullExprNode(); CUP$parser$result = new java_cup.runtime.Symbol(20/*ExprOpt*/, ((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 53: // ExprOpt ::= Expr { 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/*ExprOpt*/, ((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 52: // DeclExprStmtOpt ::= SEMICOLON { DeclStmtNode RESULT = null; RESULT = new NullStmtNode(); CUP$parser$result = new java_cup.runtime.Symbol(11/*DeclExprStmtOpt*/, ((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: // DeclExprStmtOpt ::= VariableDecl { DeclStmtNode RESULT = null; int declleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int declright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; DeclStmtNode decl = (DeclStmtNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = decl; CUP$parser$result = new java_cup.runtime.Symbol(11/*DeclExprStmtOpt*/, ((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 50: // DeclExprStmtOpt ::= AssignExprList SEMICOLON { DeclStmtNode RESULT = null; int exprListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left; int exprListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right; ExprListNode exprList = (ExprListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; RESULT = new ExprListStmtNode( exprList ); CUP$parser$result = new java_cup.runtime.Symbol(11/*DeclExprStmtOpt*/, ((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 49: // Stmt ::= error RIGHTBRACE { StmtNode RESULT = null; RESULT = new ErrorStmtNode(); CUP$parser$result = new java_cup.runtime.Symbol(12/*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 48: // Stmt ::= error SEMICOLON { StmtNode RESULT = null; RESULT = new ErrorStmtNode(); CUP$parser$result = new java_cup.runtime.Symbol(12/*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 47: // Stmt ::= BUILTIN LEFT ExprListOpt RIGHT { StmtNode RESULT = null; 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 BuiltinNode( actualParams ); CUP$parser$result = new java_cup.runtime.Symbol(12/*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 46: // Stmt ::= CONTINUE SEMICOLON { StmtNode RESULT = null; RESULT = new ContinueStmtNode(); CUP$parser$result = new java_cup.runtime.Symbol(12/*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 45: // Stmt ::= BREAK SEMICOLON { StmtNode RESULT = null; RESULT = new BreakStmtNode(); CUP$parser$result = new java_cup.runtime.Symbol(12/*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 44: // Stmt ::= EXIT IDENT SEMICOLON { StmtNode RESULT = null; int identleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left; int identright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right; String ident = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; RESULT = new ExitStmtNode( ident ); CUP$parser$result = new java_cup.runtime.Symbol(12/*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 43: // Stmt ::= IDENT COLON Stmt { StmtNode RESULT = null; int identleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left; int identright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right; String ident = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; int 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; RESULT = new LabelledStmtNode( ident, stmt ); CUP$parser$result = new java_cup.runtime.Symbol(12/*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 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(12/*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(12/*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 LEFT DeclExprStmtOpt ExprOpt SEMICOLON AssignExprListOpt RIGHT Stmt { StmtNode RESULT = null; int initialleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)).left; int initialright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)).right; DeclStmtNode initial = (DeclStmtNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-5)).value; int condleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left; int condright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).right; ExprNode cond = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-4)).value; int incrementleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left; int incrementright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right; ExprListNode increment = (ExprListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).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; RESULT = new ForStmtNode( initial, cond, increment, stmt ); CUP$parser$result = new java_cup.runtime.Symbol(12/*Stmt*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-7)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 39: // Stmt ::= DO Stmt UNTIL LEFT Expr RIGHT SEMICOLON { StmtNode RESULT = null; int stmtleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)).left; int stmtright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)).right; StmtNode stmt = (StmtNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-5)).value; 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 DoStmtNode( stmt, expr ); CUP$parser$result = new java_cup.runtime.Symbol(12/*Stmt*/, ((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 38: // Stmt ::= WHILE LEFT Expr RIGHT Stmt { 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; 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; RESULT = new WhileStmtNode( expr, stmt ); CUP$parser$result = new java_cup.runtime.Symbol(12/*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 LEFT Expr RIGHT Stmt ELSE Stmt { 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 stmt1left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left; int stmt1right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right; StmtNode stmt1 = (StmtNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; int stmt2left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int stmt2right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; StmtNode stmt2 = (StmtNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = new IfElseStmtNode( expr, stmt1, stmt2 ); CUP$parser$result = new java_cup.runtime.Symbol(12/*Stmt*/, ((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 36: // Stmt ::= IF LEFT Expr RIGHT Stmt { 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; 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; RESULT = new IfStmtNode( expr, stmt ); CUP$parser$result = new java_cup.runtime.Symbol(12/*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 ::= LEFTBRACE LocalDeclStmtList RIGHTBRACE { StmtNode RESULT = null; int stmtListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left; int stmtListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right; DeclStmtListNode stmtList = (DeclStmtListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; RESULT = new CompoundStmtNode( stmtList ); CUP$parser$result = new java_cup.runtime.Symbol(12/*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 34: // Stmt ::= AssignExpr 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(12/*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 33: // Stmt ::= SEMICOLON { StmtNode RESULT = null; RESULT = new NullStmtNode(); CUP$parser$result = new java_cup.runtime.Symbol(12/*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 32: // Declarator ::= IDENT ASSIGN Expr { DeclaratorNode RESULT = null; int identleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left; int identright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right; String ident = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = new InitDeclaratorNode( ident, expr ); CUP$parser$result = new java_cup.runtime.Symbol(19/*Declarator*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 31: // Declarator ::= IDENT { DeclaratorNode RESULT = null; int identleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int identright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; String ident = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = new UninitDeclaratorNode( ident ); CUP$parser$result = new java_cup.runtime.Symbol(19/*Declarator*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 30: // IdentList ::= IDENT { DeclaratorListNode RESULT = null; int identleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int identright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; String ident = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; DeclaratorListNode identList = new DeclaratorListNode(); identList.addElement( new UninitDeclaratorNode( 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 29: // IdentList ::= IdentList COMMA IDENT { DeclaratorListNode RESULT = null; int identListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left; int identListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right; DeclaratorListNode identList = (DeclaratorListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; int identleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int identright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; String ident = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; identList.addElement( new UninitDeclaratorNode( ident ) ); RESULT = identList; CUP$parser$result = new java_cup.runtime.Symbol(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 28: // DeclaratorList ::= Declarator { DeclaratorListNode RESULT = null; int declaratorleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int declaratorright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; DeclaratorNode declarator = (DeclaratorNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; DeclaratorListNode declaratorList = new DeclaratorListNode(); declaratorList.addElement( declarator ); RESULT = declaratorList; CUP$parser$result = new java_cup.runtime.Symbol(18/*DeclaratorList*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 27: // DeclaratorList ::= DeclaratorList COMMA Declarator { DeclaratorListNode RESULT = null; int declaratorListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left; int declaratorListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right; DeclaratorListNode declaratorList = (DeclaratorListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; int declaratorleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int declaratorright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; DeclaratorNode declarator = (DeclaratorNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; declaratorList.addElement( declarator ); RESULT = declaratorList; CUP$parser$result = new java_cup.runtime.Symbol(18/*DeclaratorList*/, ((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 26: // Type ::= LEFTSQ RIGHTSQ 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 = new ArrayTypeNode( type ); CUP$parser$result = new java_cup.runtime.Symbol(1/*Type*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 25: // 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(1/*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(1/*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 ::= BOOL { TypeNode RESULT = null; RESULT = new BoolTypeNode(); CUP$parser$result = new java_cup.runtime.Symbol(1/*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 ::= CHAR { TypeNode RESULT = null; RESULT = new CharTypeNode(); CUP$parser$result = new java_cup.runtime.Symbol(1/*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 ::= INT { TypeNode RESULT = null; RESULT = new IntTypeNode(); CUP$parser$result = new java_cup.runtime.Symbol(1/*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: // VariableDecl ::= Type DeclaratorList SEMICOLON { DeclStmtNode RESULT = null; int typeleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left; int typeright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right; TypeNode type = (TypeNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; int declaratorListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left; int declaratorListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right; DeclaratorListNode declaratorList = (DeclaratorListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; RESULT = new VariableDeclNode( type, declaratorList ); CUP$parser$result = new java_cup.runtime.Symbol(10/*VariableDecl*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 19: // FieldDecl ::= error SEMICOLON { DeclStmtNode RESULT = null; RESULT = new ErrorDeclNode(); CUP$parser$result = new java_cup.runtime.Symbol(9/*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 18: // FieldDecl ::= Type IdentList SEMICOLON { DeclStmtNode RESULT = null; int typeleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left; int typeright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right; TypeNode type = (TypeNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; int identListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left; int identListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right; DeclaratorListNode identList = (DeclaratorListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; RESULT = new FieldDeclNode( type, identList ); CUP$parser$result = new java_cup.runtime.Symbol(9/*FieldDecl*/, ((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 17: // FieldDeclList ::= { DeclStmtListNode RESULT = null; RESULT = new DeclStmtListNode(); CUP$parser$result = new java_cup.runtime.Symbol(4/*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 16: // FieldDeclList ::= FieldDeclList FieldDecl { DeclStmtListNode RESULT = null; int declListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left; int declListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right; DeclStmtListNode declList = (DeclStmtListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; int declleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int declright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; DeclStmtNode decl = (DeclStmtNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; declList.addElement( decl ); RESULT = declList; CUP$parser$result = new java_cup.runtime.Symbol(4/*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 15: // FormalParamDecl ::= error SEMICOLON { DeclStmtNode RESULT = null; RESULT = new ErrorDeclNode(); CUP$parser$result = new java_cup.runtime.Symbol(8/*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 14: // FormalParamDecl ::= VAR Type IdentList SEMICOLON { DeclStmtNode RESULT = null; int typeleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left; int typeright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right; TypeNode type = (TypeNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; int identListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left; int identListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right; DeclaratorListNode identList = (DeclaratorListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; RESULT = new VarParamDeclNode( type, identList ); CUP$parser$result = new java_cup.runtime.Symbol(8/*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 13: // FormalParamDecl ::= Type IdentList SEMICOLON { DeclStmtNode RESULT = null; int typeleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left; int typeright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right; TypeNode type = (TypeNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; int identListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left; int identListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right; DeclaratorListNode identList = (DeclaratorListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; RESULT = new ValueParamDeclNode( type, identList ); CUP$parser$result = new java_cup.runtime.Symbol(8/*FormalParamDecl*/, ((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 12: // FormalParamDeclList ::= { DeclStmtListNode RESULT = null; RESULT = new DeclStmtListNode(); CUP$parser$result = new java_cup.runtime.Symbol(5/*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 11: // FormalParamDeclList ::= FormalParamDeclList FormalParamDecl { DeclStmtListNode RESULT = null; int declListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left; int declListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right; DeclStmtListNode declList = (DeclStmtListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; int declleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int declright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; DeclStmtNode decl = (DeclStmtNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; declList.addElement( decl ); RESULT = declList; CUP$parser$result = new java_cup.runtime.Symbol(5/*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 10: // LocalDeclStmt ::= Stmt { DeclStmtNode RESULT = null; int stmtleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int stmtright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; StmtNode stmt = (StmtNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = stmt; CUP$parser$result = new java_cup.runtime.Symbol(7/*LocalDeclStmt*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 9: // LocalDeclStmt ::= VariableDecl { DeclStmtNode RESULT = null; int declleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int declright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; DeclStmtNode decl = (DeclStmtNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = decl; CUP$parser$result = new java_cup.runtime.Symbol(7/*LocalDeclStmt*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 8: // LocalDeclStmtList ::= { DeclStmtListNode RESULT = null; RESULT = new DeclStmtListNode(); CUP$parser$result = new java_cup.runtime.Symbol(3/*LocalDeclStmtList*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 7: // LocalDeclStmtList ::= LocalDeclStmtList LocalDeclStmt { DeclStmtListNode RESULT = null; int declStmtListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left; int declStmtListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right; DeclStmtListNode declStmtList = (DeclStmtListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; int declStmtleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int declStmtright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; DeclStmtNode declStmt = (DeclStmtNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; declStmtList.addElement( declStmt ); RESULT = declStmtList; CUP$parser$result = new java_cup.runtime.Symbol(3/*LocalDeclStmtList*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 6: // GlobalDeclStmt ::= LocalDeclStmt { DeclStmtNode RESULT = null; int declStmtleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int declStmtright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; DeclStmtNode declStmt = (DeclStmtNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = declStmt; CUP$parser$result = new java_cup.runtime.Symbol(6/*GlobalDeclStmt*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 5: // GlobalDeclStmt ::= VOID IDENT LEFT FormalParamDeclList RIGHT LEFTBRACE LocalDeclStmtList RIGHTBRACE { DeclStmtNode RESULT = null; int identleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-6)).left; int identright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-6)).right; String ident = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-6)).value; int formalParamsleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left; int formalParamsright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).right; DeclStmtListNode formalParams = (DeclStmtListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-4)).value; int declStmtListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left; int declStmtListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right; DeclStmtListNode declStmtList = (DeclStmtListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; RESULT = new MethodDeclNode( new VoidTypeNode(), ident, formalParams, declStmtList ); CUP$parser$result = new java_cup.runtime.Symbol(6/*GlobalDeclStmt*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-7)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 4: // GlobalDeclStmt ::= Type IDENT LEFT FormalParamDeclList RIGHT LEFTBRACE LocalDeclStmtList RIGHTBRACE { DeclStmtNode RESULT = null; int returnTypeleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-7)).left; int returnTyperight = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-7)).right; TypeNode returnType = (TypeNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-7)).value; int identleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-6)).left; int identright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-6)).right; String ident = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-6)).value; int formalParamsleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left; int formalParamsright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).right; DeclStmtListNode formalParams = (DeclStmtListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-4)).value; int declStmtListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left; int declStmtListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right; DeclStmtListNode declStmtList = (DeclStmtListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; RESULT = new MethodDeclNode( returnType, ident, formalParams, declStmtList ); CUP$parser$result = new java_cup.runtime.Symbol(6/*GlobalDeclStmt*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-7)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 3: // GlobalDeclStmt ::= CLASS IDENT LEFT FieldDeclList RIGHT SEMICOLON { DeclStmtNode RESULT = null; int identleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left; int identright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).right; String ident = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-4)).value; int declListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left; int declListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right; DeclStmtListNode declList = (DeclStmtListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; RESULT = new ClassDeclNode( ident, declList ); CUP$parser$result = new java_cup.runtime.Symbol(6/*GlobalDeclStmt*/, ((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 2: // GlobalDeclStmtList ::= { DeclStmtListNode RESULT = null; RESULT = new DeclStmtListNode(); CUP$parser$result = new java_cup.runtime.Symbol(2/*GlobalDeclStmtList*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 1: // GlobalDeclStmtList ::= GlobalDeclStmtList GlobalDeclStmt { DeclStmtListNode RESULT = null; int declStmtListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left; int declStmtListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right; DeclStmtListNode declStmtList = (DeclStmtListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; int declStmtleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int declStmtright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; DeclStmtNode declStmt = (DeclStmtNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; declStmtList.addElement( declStmt ); RESULT = declStmtList; CUP$parser$result = new java_cup.runtime.Symbol(2/*GlobalDeclStmtList*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 0: // $START ::= GlobalDeclStmtList EOF { Object RESULT = null; int start_valleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left; int start_valright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right; DeclStmtListNode start_val = (DeclStmtListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; RESULT = start_val; CUP$parser$result = new java_cup.runtime.Symbol(0/*$START*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } /* ACCEPT */ CUP$parser$parser.done_parsing(); return CUP$parser$result; /* . . . . . .*/ default: throw new Exception( "Invalid action number found in internal parse table"); } } }