//---------------------------------------------------- // The following code was generated by CUP v0.10k // Wed May 03 15:45:42 NZST 2006 //---------------------------------------------------- package grammar; import java.io.*; import java.util.*; import java_cup.runtime.*; import type.*; import node.*; import node.stmtNode.*; import node.stmtNode.elseOptNode.*; import node.typeNode.*; import node.typeNode.basicTypeNode.*; import node.declNode.*; import node.declNode.declaratorNode.*; import node.declNode.extendsOptNode.*; import node.declNode.sectionOptNode.*; import node.exprNode.*; import node.exprNode.prefixNode.*; import node.exprNode.postfixNode.*; import node.exprNode.valueNode.*; import node.exprNode.primaryNode.*; import node.exprNode.binaryNode.*; import node.exprNode.binaryNode.arithNode.*; import node.exprNode.binaryNode.relationNode.*; import node.exprNode.binaryNode.boolNode.*; import node.exprNode.methodNameNode.*; import node.exprNode.variableNode.*; import text.*; import env.*; import template.*; /** CUP v0.10k generated parser. * @version Wed May 03 15:45:42 NZST 2006 */ public class parser extends java_cup.runtime.lr_parser { /** Default constructor. */ public parser() {super();} /** Constructor which sets the default scanner. */ public parser(java_cup.runtime.Scanner s) {super(s);} /** Production table. */ protected static final short _production_table[][] = unpackFromStrings(new String[] { "\000\155\000\002\002\004\000\002\003\003\000\002\005" + "\004\000\002\005\002\000\002\012\011\000\002\012\003" + "\000\002\043\004\000\002\043\002\000\002\044\004\000" + "\002\044\002\000\002\042\004\000\002\042\002\000\002" + "\006\004\000\002\006\002\000\002\013\012\000\002\013" + "\012\000\002\013\003\000\002\011\004\000\002\011\002" + "\000\002\014\005\000\002\014\006\000\002\014\004\000" + "\002\022\005\000\002\022\003\000\002\004\003\000\002" + "\004\003\000\002\004\003\000\002\004\003\000\002\004" + "\003\000\002\004\005\000\002\007\004\000\002\007\002" + "\000\002\015\005\000\002\015\003\000\002\023\005\000" + "\002\023\003\000\002\024\003\000\002\024\005\000\002" + "\010\004\000\002\010\002\000\002\016\003\000\002\016" + "\004\000\002\016\007\000\002\016\006\000\002\016\007" + "\000\002\016\010\000\002\016\007\000\002\016\010\000" + "\002\016\013\000\002\016\004\000\002\016\005\000\002" + "\016\004\000\002\016\004\000\002\017\002\000\002\017" + "\004\000\002\017\007\000\002\020\003\000\002\020\002" + "\000\002\021\005\000\002\021\003\000\002\025\003\000" + "\002\026\005\000\002\026\003\000\002\027\005\000\002" + "\027\003\000\002\030\005\000\002\030\003\000\002\031" + "\005\000\002\031\005\000\002\031\005\000\002\031\005" + "\000\002\031\005\000\002\031\005\000\002\031\003\000" + "\002\032\005\000\002\032\005\000\002\032\003\000\002" + "\033\005\000\002\033\005\000\002\033\005\000\002\033" + "\003\000\002\034\004\000\002\034\004\000\002\034\004" + "\000\002\034\004\000\002\034\004\000\002\034\003\000" + "\002\035\004\000\002\035\004\000\002\035\003\000\002" + "\036\005\000\002\036\003\000\002\036\003\000\002\036" + "\010\000\002\036\006\000\002\036\004\000\002\036\007" + "\000\002\036\011\000\002\040\003\000\002\040\005\000" + "\002\037\003\000\002\037\003\000\002\037\003\000\002" + "\037\003\000\002\037\003\000\002\037\003\000\002\041" + "\003\000\002\041\006\000\002\041\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\330\000\100\002\ufffe\003\ufffe\004\ufffe\005\ufffe\006" + "\ufffe\012\ufffe\014\ufffe\020\ufffe\026\ufffe\035\ufffe\036\ufffe" + "\037\ufffe\040\ufffe\045\ufffe\046\ufffe\047\ufffe\050\ufffe\052" + "\ufffe\053\ufffe\054\ufffe\055\ufffe\056\ufffe\057\ufffe\060\ufffe" + "\061\ufffe\062\ufffe\071\ufffe\072\ufffe\073\ufffe\074\ufffe\075" + "\ufffe\001\002\000\004\002\332\001\002\000\100\002\000" + "\003\045\004\064\005\014\006\036\012\041\014\023\020" + "\020\026\022\035\032\036\063\037\046\040\034\045\060" + "\046\065\047\016\050\043\052\044\053\037\054\050\055" + "\013\056\007\057\026\060\054\061\053\062\031\071\011" + "\072\047\073\006\074\051\075\052\001\002\000\060\007" + "\uff98\013\uff98\014\uff98\015\uff98\016\uff98\017\uff98\020\uff98" + "\021\uff98\022\uff98\024\uff98\025\uff98\027\uff98\030\uff98\031" + "\uff98\032\uff98\033\uff98\034\uff98\040\uff98\041\uff98\046\uff98" + "\051\uff98\065\uff98\070\uff98\001\002\000\064\007\uffe8\013" + "\uffe8\014\uffe8\015\uffe8\016\uffe8\017\uffe8\020\uffe8\021\uffe8" + "\022\uffe8\024\uffe8\025\uffe8\027\uffe8\030\uffe8\031\uffe8\032" + "\uffe8\033\uffe8\034\uffe8\040\uffe8\041\uffe8\046\uffe8\051\uffe8" + "\065\uffe8\067\uffe8\070\uffe8\075\uffe8\001\002\000\046\007" + "\uffb8\013\uffb8\014\uffb8\015\uffb8\016\uffb8\017\315\020\317" + "\024\uffb8\025\uffb8\027\312\030\314\031\316\032\320\033" + "\313\034\321\041\uffb8\046\uffb8\070\uffb8\001\002\000\060" + "\007\uff9d\013\uff9d\014\uff9d\015\uff9d\016\uff9d\017\uff9d\020" + "\uff9d\021\uff9d\022\uff9d\024\uff9d\025\uff9d\027\uff9d\030\uff9d" + "\031\uff9d\032\uff9d\033\uff9d\034\uff9d\040\uff9d\041\uff9d\046" + "\uff9d\051\uff9d\065\uff9d\070\uff9d\001\002\000\100\002\uffff" + "\003\uffff\004\uffff\005\uffff\006\uffff\012\uffff\014\uffff\020" + "\uffff\026\uffff\035\uffff\036\uffff\037\uffff\040\uffff\045\uffff" + "\046\uffff\047\uffff\050\uffff\052\uffff\053\uffff\054\uffff\055" + "\uffff\056\uffff\057\uffff\060\uffff\061\uffff\062\uffff\071\uffff" + "\072\uffff\073\uffff\074\uffff\075\uffff\001\002\000\064\007" + "\uffe9\013\uffe9\014\uffe9\015\uffe9\016\uffe9\017\uffe9\020\uffe9" + "\021\uffe9\022\uffe9\024\uffe9\025\uffe9\027\uffe9\030\uffe9\031" + "\uffe9\032\uffe9\033\uffe9\034\uffe9\040\uffe9\041\uffe9\046\uffe9" + "\051\uffe9\065\uffe9\067\uffe9\070\uffe9\075\uffe9\001\002\000" + "\004\012\304\001\002\000\066\007\uffa5\013\uffa5\014\uffa5" + "\015\uffa5\016\uffa5\017\uffa5\020\uffa5\021\uffa5\022\uffa5\023" + "\302\024\uffa5\025\uffa5\027\uffa5\030\uffa5\031\uffa5\032\uffa5" + "\033\uffa5\034\uffa5\035\163\036\164\040\uffa5\041\uffa5\046" + "\uffa5\051\uffa5\065\uffa5\070\uffa5\001\002\000\036\012\041" + "\020\020\026\022\035\032\036\063\037\046\052\044\053" + "\037\054\050\071\011\072\047\073\006\074\051\075\067" + "\001\002\000\026\007\uffc1\013\uffc1\014\uffc1\015\uffc1\016" + "\uffc1\024\uffc1\025\267\041\uffc1\046\uffc1\070\uffc1\001\002" + "\000\036\012\041\020\020\026\022\035\032\036\063\037" + "\046\052\044\053\037\054\050\071\011\072\047\073\006" + "\074\051\075\067\001\002\000\024\007\uffc3\013\uffc3\014" + "\uffc3\015\uffc3\016\uffc3\024\265\041\uffc3\046\uffc3\070\uffc3" + "\001\002\000\036\012\041\020\020\026\022\035\032\036" + "\063\037\046\052\044\053\037\054\050\071\011\072\047" + "\073\006\074\051\075\067\001\002\000\110\002\uffd9\003" + "\uffd9\004\uffd9\005\uffd9\006\uffd9\010\uffd9\011\uffd9\012\uffd9" + "\014\uffd9\020\uffd9\026\uffd9\035\uffd9\036\uffd9\037\uffd9\040" + "\uffd9\043\uffd9\045\uffd9\046\uffd9\047\uffd9\050\uffd9\052\uffd9" + "\053\uffd9\054\uffd9\055\uffd9\056\uffd9\057\uffd9\060\uffd9\061" + "\uffd9\062\uffd9\064\uffd9\071\uffd9\072\uffd9\073\uffd9\074\uffd9" + "\075\uffd9\001\002\000\054\007\uffab\013\uffab\014\uffab\015" + "\uffab\016\uffab\017\uffab\020\uffab\021\uffab\022\uffab\024\uffab" + "\025\uffab\027\uffab\030\uffab\031\uffab\032\uffab\033\uffab\034" + "\uffab\041\uffab\046\uffab\065\uffab\070\uffab\001\002\000\060" + "\007\uffa8\013\uffa8\014\uffa8\015\uffa8\016\uffa8\017\uffa8\020" + "\uffa8\021\uffa8\022\uffa8\024\uffa8\025\uffa8\027\uffa8\030\uffa8" + "\031\uffa8\032\uffa8\033\uffa8\034\uffa8\040\104\041\uffa8\046" + "\uffa8\051\103\065\uffa8\070\uffa8\001\002\000\064\007\uffe7" + "\013\uffe7\014\uffe7\015\uffe7\016\uffe7\017\uffe7\020\uffe7\021" + "\uffe7\022\uffe7\024\uffe7\025\uffe7\027\uffe7\030\uffe7\031\uffe7" + "\032\uffe7\033\uffe7\034\uffe7\040\uffe7\041\uffe7\046\uffe7\051" + "\uffe7\065\uffe7\067\uffe7\070\uffe7\075\uffe7\001\002\000\060" + "\007\uffa6\013\uffa6\014\uffa6\015\uffa6\016\uffa6\017\uffa6\020" + "\uffa6\021\uffa6\022\uffa6\024\uffa6\025\uffa6\027\uffa6\030\uffa6" + "\031\uffa6\032\uffa6\033\uffa6\034\uffa6\040\uffa6\041\uffa6\046" + "\uffa6\051\uffa6\065\uffa6\070\uffa6\001\002\000\054\007\uffb1" + "\013\uffb1\014\uffb1\015\uffb1\016\uffb1\017\uffb1\020\uffb1\021" + "\uffb1\022\uffb1\024\uffb1\025\uffb1\027\uffb1\030\uffb1\031\uffb1" + "\032\uffb1\033\uffb1\034\uffb1\041\uffb1\046\uffb1\065\uffb1\070" + "\uffb1\001\002\000\004\075\247\001\002\000\024\012\041" + "\037\046\053\037\054\050\071\011\072\047\073\006\074" + "\051\075\067\001\002\000\104\002\ufff1\003\ufff1\004\ufff1" + "\005\ufff1\006\ufff1\012\ufff1\014\ufff1\020\ufff1\026\ufff1\035" + "\ufff1\036\ufff1\037\ufff1\040\ufff1\043\ufff1\045\ufff1\046\ufff1" + "\047\ufff1\050\ufff1\052\ufff1\053\ufff1\054\ufff1\055\ufff1\056" + "\ufff1\057\ufff1\060\ufff1\061\ufff1\062\ufff1\064\ufff1\071\ufff1" + "\072\ufff1\073\ufff1\074\ufff1\075\ufff1\001\002\000\004\041" + "\244\001\002\000\004\012\240\001\002\000\036\012\041" + "\020\020\026\022\035\032\036\063\037\046\052\044\053" + "\037\054\050\071\011\072\047\073\006\074\051\075\067" + "\001\002\000\060\007\uff9b\013\uff9b\014\uff9b\015\uff9b\016" + "\uff9b\017\uff9b\020\uff9b\021\uff9b\022\uff9b\024\uff9b\025\uff9b" + "\027\uff9b\030\uff9b\031\uff9b\032\uff9b\033\uff9b\034\uff9b\040" + "\uff9b\041\uff9b\046\uff9b\051\uff9b\065\uff9b\070\uff9b\001\002" + "\000\026\007\uffbf\013\uffbf\014\uffbf\015\uffbf\016\uffbf\024" + "\uffbf\025\uffbf\041\uffbf\046\uffbf\070\uffbf\001\002\000\036" + "\012\041\020\020\026\022\035\032\036\063\037\046\052" + "\044\053\037\054\050\071\011\072\047\073\006\074\051" + "\075\067\001\002\000\022\007\uffc5\013\uffc5\014\uffc5\015" + "\uffc5\016\uffc5\041\uffc5\046\uffc5\070\uffc5\001\002\000\040" + "\012\041\014\217\020\020\026\022\035\032\036\063\037" + "\046\052\044\053\037\054\050\071\011\072\047\073\006" + "\074\051\075\067\001\002\000\036\012\041\020\020\026" + "\022\035\032\036\063\037\046\052\044\053\037\054\050" + "\071\011\072\047\073\006\074\051\075\067\001\002\000" + "\006\014\214\043\215\001\002\000\006\040\200\075\177" + "\001\002\000\060\007\uff99\013\uff99\014\uff99\015\uff99\016" + "\uff99\017\uff99\020\uff99\021\uff99\022\uff99\024\uff99\025\uff99" + "\027\uff99\030\uff99\031\uff99\032\uff99\033\uff99\034\uff99\040" + "\uff99\041\uff99\046\uff99\051\uff99\065\uff99\070\uff99\001\002" + "\000\060\007\uff9a\013\uff9a\014\uff9a\015\uff9a\016\uff9a\017" + "\uff9a\020\uff9a\021\uff9a\022\uff9a\024\uff9a\025\uff9a\027\uff9a" + "\030\uff9a\031\uff9a\032\uff9a\033\uff9a\034\uff9a\040\uff9a\041" + "\uff9a\046\uff9a\051\uff9a\065\uff9a\070\uff9a\001\002\000\060" + "\007\uff9c\013\uff9c\014\uff9c\015\uff9c\016\uff9c\017\uff9c\020" + "\uff9c\021\uff9c\022\uff9c\024\uff9c\025\uff9c\027\uff9c\030\uff9c" + "\031\uff9c\032\uff9c\033\uff9c\034\uff9c\040\uff9c\041\uff9c\046" + "\uff9c\051\uff9c\065\uff9c\070\uff9c\001\002\000\054\012\uff9f" + "\014\uff97\017\uff97\020\uff97\021\uff97\022\uff97\023\uff97\024" + "\uff97\025\uff97\027\uff97\030\uff97\031\uff97\032\uff97\033\uff97" + "\034\uff97\035\uff97\036\uff97\040\uff97\051\uff97\065\uff97\075" + "\uffe5\001\002\000\004\075\170\001\002\000\064\007\uffe6" + "\013\uffe6\014\uffe6\015\uffe6\016\uffe6\017\uffe6\020\uffe6\021" + "\uffe6\022\uffe6\024\uffe6\025\uffe6\027\uffe6\030\uffe6\031\uffe6" + "\032\uffe6\033\uffe6\034\uffe6\040\uffe6\041\uffe6\046\uffe6\051" + "\uffe6\065\uffe6\067\uffe6\070\uffe6\075\uffe6\001\002\000\004" + "\014\167\001\002\000\054\007\uffb5\013\uffb5\014\uffb5\015" + "\uffb5\016\uffb5\017\uffb5\020\uffb5\021\160\022\157\024\uffb5" + "\025\uffb5\027\uffb5\030\uffb5\031\uffb5\032\uffb5\033\uffb5\034" + "\uffb5\041\uffb5\046\uffb5\065\156\070\uffb5\001\002\000\100" + "\002\ufffc\003\ufffc\004\ufffc\005\ufffc\006\ufffc\012\ufffc\014" + "\ufffc\020\ufffc\026\ufffc\035\ufffc\036\ufffc\037\ufffc\040\ufffc" + "\045\ufffc\046\ufffc\047\ufffc\050\ufffc\052\ufffc\053\ufffc\054" + "\ufffc\055\ufffc\056\ufffc\057\ufffc\060\ufffc\061\ufffc\062\ufffc" + "\071\ufffc\072\ufffc\073\ufffc\074\ufffc\075\ufffc\001\002\000" + "\036\012\041\020\020\026\022\035\032\036\063\037\046" + "\052\044\053\037\054\050\071\011\072\047\073\006\074" + "\051\075\067\001\002\000\104\002\uffe0\003\uffe0\004\uffe0" + "\005\uffe0\006\uffe0\012\uffe0\014\uffe0\020\uffe0\026\uffe0\035" + "\uffe0\036\uffe0\037\uffe0\040\uffe0\043\uffe0\045\uffe0\046\uffe0" + "\047\uffe0\050\uffe0\052\uffe0\053\uffe0\054\uffe0\055\uffe0\056" + "\uffe0\057\uffe0\060\uffe0\061\uffe0\062\uffe0\064\uffe0\071\uffe0" + "\072\uffe0\073\uffe0\074\uffe0\075\uffe0\001\002\000\004\075" + "\114\001\002\000\024\012\041\037\046\053\037\054\050" + "\071\011\072\047\073\006\074\051\075\067\001\002\000" + "\004\012\075\001\002\000\062\003\uffda\004\uffda\005\uffda" + "\006\uffda\012\uffda\014\uffda\020\uffda\026\uffda\035\uffda\036" + "\uffda\037\uffda\043\uffda\045\uffda\046\uffda\047\uffda\050\uffda" + "\052\uffda\053\uffda\054\uffda\071\uffda\072\uffda\073\uffda\074" + "\uffda\075\uffda\001\002\000\062\003\045\004\064\005\014" + "\006\036\012\041\014\023\020\020\026\022\035\032\036" + "\063\037\046\043\070\045\060\046\065\047\016\050\043" + "\052\044\053\037\054\050\071\011\072\047\073\006\074" + "\051\075\067\001\002\000\070\007\uff97\012\uff9f\013\uff97" + "\014\uff97\015\uff97\016\uff97\017\uff97\020\uff97\021\uff97\022" + "\uff97\023\uff97\024\uff97\025\uff97\027\uff97\030\uff97\031\uff97" + "\032\uff97\033\uff97\034\uff97\035\uff97\036\uff97\040\uff97\041" + "\uff97\046\uff97\051\uff97\065\uff97\070\uff97\001\002\000\004" + "\045\072\001\002\000\066\003\uffdb\004\uffdb\005\uffdb\006" + "\uffdb\010\uffdb\011\uffdb\012\uffdb\014\uffdb\020\uffdb\026\uffdb" + "\035\uffdb\036\uffdb\037\uffdb\043\uffdb\045\uffdb\046\uffdb\047" + "\uffdb\050\uffdb\052\uffdb\053\uffdb\054\uffdb\071\uffdb\072\uffdb" + "\073\uffdb\074\uffdb\075\uffdb\001\002\000\036\012\041\020" + "\020\026\022\035\032\036\063\037\046\052\044\053\037" + "\054\050\071\011\072\047\073\006\074\051\075\067\001" + "\002\000\004\014\074\001\002\000\110\002\uffd2\003\uffd2" + "\004\uffd2\005\uffd2\006\uffd2\010\uffd2\011\uffd2\012\uffd2\014" + "\uffd2\020\uffd2\026\uffd2\035\uffd2\036\uffd2\037\uffd2\040\uffd2" + "\043\uffd2\045\uffd2\046\uffd2\047\uffd2\050\uffd2\052\uffd2\053" + "\uffd2\054\uffd2\055\uffd2\056\uffd2\057\uffd2\060\uffd2\061\uffd2" + "\062\uffd2\064\uffd2\071\uffd2\072\uffd2\073\uffd2\074\uffd2\075" + "\uffd2\001\002\000\036\012\041\020\020\026\022\035\032" + "\036\063\037\046\052\044\053\037\054\050\071\011\072" + "\047\073\006\074\051\075\067\001\002\000\004\013\077" + "\001\002\000\004\014\100\001\002\000\110\002\uffd7\003" + "\uffd7\004\uffd7\005\uffd7\006\uffd7\010\uffd7\011\uffd7\012\uffd7" + "\014\uffd7\020\uffd7\026\uffd7\035\uffd7\036\uffd7\037\uffd7\040" + "\uffd7\043\uffd7\045\uffd7\046\uffd7\047\uffd7\050\uffd7\052\uffd7" + "\053\uffd7\054\uffd7\055\uffd7\056\uffd7\057\uffd7\060\uffd7\061" + "\uffd7\062\uffd7\064\uffd7\071\uffd7\072\uffd7\073\uffd7\074\uffd7" + "\075\uffd7\001\002\000\060\007\uffac\013\uffac\014\uffac\015" + "\uffac\016\uffac\017\uffac\020\uffac\021\uffac\022\uffac\024\uffac" + "\025\uffac\027\uffac\030\uffac\031\uffac\032\uffac\033\uffac\034" + "\uffac\040\uffa5\041\uffac\046\uffac\051\uffa5\065\uffac\070\uffac" + "\001\002\000\006\040\104\051\103\001\002\000\004\075" + "\112\001\002\000\036\012\041\020\020\026\022\035\032" + "\036\063\037\046\052\044\053\037\054\050\071\011\072" + "\047\073\006\074\051\075\067\001\002\000\006\016\107" + "\041\106\001\002\000\066\007\uff96\013\uff96\014\uff96\015" + "\uff96\016\uff96\017\uff96\020\uff96\021\uff96\022\uff96\023\uff96" + "\024\uff96\025\uff96\027\uff96\030\uff96\031\uff96\032\uff96\033" + "\uff96\034\uff96\035\uff96\036\uff96\040\uff96\041\uff96\046\uff96" + "\051\uff96\065\uff96\070\uff96\001\002\000\036\012\041\020" + "\020\026\022\035\032\036\063\037\046\052\044\053\037" + "\054\050\071\011\072\047\073\006\074\051\075\067\001" + "\002\000\004\041\111\001\002\000\060\007\uffa4\013\uffa4" + "\014\uffa4\015\uffa4\016\uffa4\017\uffa4\020\uffa4\021\uffa4\022" + "\uffa4\024\uffa4\025\uffa4\027\uffa4\030\uffa4\031\uffa4\032\uffa4" + "\033\uffa4\034\uffa4\040\uffa4\041\uffa4\046\uffa4\051\uffa4\065" + "\uffa4\070\uffa4\001\002\000\070\007\uff95\012\uff9e\013\uff95" + "\014\uff95\015\uff95\016\uff95\017\uff95\020\uff95\021\uff95\022" + "\uff95\023\uff95\024\uff95\025\uff95\027\uff95\030\uff95\031\uff95" + "\032\uff95\033\uff95\034\uff95\035\uff95\036\uff95\040\uff95\041" + "\uff95\046\uff95\051\uff95\065\uff95\070\uff95\001\002\000\006" + "\014\uffde\015\uffde\001\002\000\012\012\124\014\uffdd\015" + "\uffdd\023\122\001\002\000\006\014\117\015\116\001\002" + "\000\004\075\121\001\002\000\104\002\uffe1\003\uffe1\004" + "\uffe1\005\uffe1\006\uffe1\012\uffe1\014\uffe1\020\uffe1\026\uffe1" + "\035\uffe1\036\uffe1\037\uffe1\040\uffe1\043\uffe1\045\uffe1\046" + "\uffe1\047\uffe1\050\uffe1\052\uffe1\053\uffe1\054\uffe1\055\uffe1" + "\056\uffe1\057\uffe1\060\uffe1\061\uffe1\062\uffe1\064\uffe1\071" + "\uffe1\072\uffe1\073\uffe1\074\uffe1\075\uffe1\001\002\000\006" + "\014\uffdf\015\uffdf\001\002\000\010\014\uffdd\015\uffdd\023" + "\122\001\002\000\036\012\041\020\020\026\022\035\032" + "\036\063\037\046\052\044\053\037\054\050\071\011\072" + "\047\073\006\074\051\075\067\001\002\000\006\014\uffdc" + "\015\uffdc\001\002\000\024\003\uffef\013\uffef\040\uffef\044" + "\uffef\055\uffef\056\uffef\057\uffef\060\uffef\075\uffef\001\002" + "\000\024\003\133\013\132\040\034\044\131\055\013\056" + "\007\057\026\060\054\075\127\001\002\000\004\075\144" + "\001\002\000\064\007\uffe5\013\uffe5\014\uffe5\015\uffe5\016" + "\uffe5\017\uffe5\020\uffe5\021\uffe5\022\uffe5\024\uffe5\025\uffe5" + "\027\uffe5\030\uffe5\031\uffe5\032\uffe5\033\uffe5\034\uffe5\040" + "\uffe5\041\uffe5\046\uffe5\051\uffe5\065\uffe5\067\uffe5\070\uffe5" + "\075\uffe5\001\002\000\024\003\ufff0\013\ufff0\040\ufff0\044" + "\ufff0\055\ufff0\056\ufff0\057\ufff0\060\ufff0\075\ufff0\001\002" + "\000\016\040\034\055\013\056\007\057\026\060\054\075" + "\127\001\002\000\004\042\135\001\002\000\004\014\134" + "\001\002\000\024\003\uffec\013\uffec\040\uffec\044\uffec\055" + "\uffec\056\uffec\057\uffec\060\uffec\075\uffec\001\002\000\074" + "\003\uffe2\004\uffe2\005\uffe2\006\uffe2\012\uffe2\014\uffe2\020" + "\uffe2\026\uffe2\035\uffe2\036\uffe2\037\uffe2\040\uffe2\043\uffe2" + "\045\uffe2\046\uffe2\047\uffe2\050\uffe2\052\uffe2\053\uffe2\054" + "\uffe2\055\uffe2\056\uffe2\057\uffe2\060\uffe2\071\uffe2\072\uffe2" + "\073\uffe2\074\uffe2\075\uffe2\001\002\000\074\003\045\004" + "\064\005\014\006\036\012\041\014\023\020\020\026\022" + "\035\032\036\063\037\046\040\034\043\140\045\060\046" + "\065\047\016\050\043\052\044\053\037\054\050\055\013" + "\056\007\057\026\060\054\071\011\072\047\073\006\074" + "\051\075\052\001\002\000\074\003\uffe3\004\uffe3\005\uffe3" + "\006\uffe3\012\uffe3\014\uffe3\020\uffe3\026\uffe3\035\uffe3\036" + "\uffe3\037\uffe3\040\uffe3\043\uffe3\045\uffe3\046\uffe3\047\uffe3" + "\050\uffe3\052\uffe3\053\uffe3\054\uffe3\055\uffe3\056\uffe3\057" + "\uffe3\060\uffe3\071\uffe3\072\uffe3\073\uffe3\074\uffe3\075\uffe3" + "\001\002\000\104\002\ufff3\003\ufff3\004\ufff3\005\ufff3\006" + "\ufff3\012\ufff3\014\ufff3\020\ufff3\026\ufff3\035\ufff3\036\ufff3" + "\037\ufff3\040\ufff3\043\ufff3\045\ufff3\046\ufff3\047\ufff3\050" + "\ufff3\052\ufff3\053\ufff3\054\ufff3\055\ufff3\056\ufff3\057\ufff3" + "\060\ufff3\061\ufff3\062\ufff3\064\ufff3\071\ufff3\072\ufff3\073" + "\ufff3\074\ufff3\075\ufff3\001\002\000\004\075\121\001\002" + "\000\004\075\144\001\002\000\006\014\146\015\145\001" + "\002\000\006\014\uffea\015\uffea\001\002\000\004\075\147" + "\001\002\000\024\003\uffed\013\uffed\040\uffed\044\uffed\055" + "\uffed\056\uffed\057\uffed\060\uffed\075\uffed\001\002\000\006" + "\014\uffeb\015\uffeb\001\002\000\006\014\151\015\145\001" + "\002\000\024\003\uffee\013\uffee\040\uffee\044\uffee\055\uffee" + "\056\uffee\057\uffee\060\uffee\075\uffee\001\002\000\004\046" + "\153\001\002\000\062\003\uffda\004\uffda\005\uffda\006\uffda" + "\012\uffda\014\uffda\020\uffda\026\uffda\035\uffda\036\uffda\037" + "\uffda\043\uffda\045\uffda\046\uffda\047\uffda\050\uffda\052\uffda" + "\053\uffda\054\uffda\071\uffda\072\uffda\073\uffda\074\uffda\075" + "\uffda\001\002\000\062\003\045\004\064\005\014\006\036" + "\012\041\014\023\020\020\026\022\035\032\036\063\037" + "\046\043\155\045\060\046\065\047\016\050\043\052\044" + "\053\037\054\050\071\011\072\047\073\006\074\051\075" + "\067\001\002\000\110\002\uffd3\003\uffd3\004\uffd3\005\uffd3" + "\006\uffd3\010\uffd3\011\uffd3\012\uffd3\014\uffd3\020\uffd3\026" + "\uffd3\035\uffd3\036\uffd3\037\uffd3\040\uffd3\043\uffd3\045\uffd3" + "\046\uffd3\047\uffd3\050\uffd3\052\uffd3\053\uffd3\054\uffd3\055" + "\uffd3\056\uffd3\057\uffd3\060\uffd3\061\uffd3\062\uffd3\064\uffd3" + "\071\uffd3\072\uffd3\073\uffd3\074\uffd3\075\uffd3\001\002\000" + "\036\012\041\020\020\026\022\035\032\036\063\037\046" + "\052\044\053\037\054\050\071\011\072\047\073\006\074" + "\051\075\067\001\002\000\036\012\041\020\020\026\022" + "\035\032\036\063\037\046\052\044\053\037\054\050\071" + "\011\072\047\073\006\074\051\075\067\001\002\000\036" + "\012\041\020\020\026\022\035\032\036\063\037\046\052" + "\044\053\037\054\050\071\011\072\047\073\006\074\051" + "\075\067\001\002\000\054\007\uffb4\013\uffb4\014\uffb4\015" + "\uffb4\016\uffb4\017\uffb4\020\uffb4\021\uffb4\022\uffb4\024\uffb4" + "\025\uffb4\027\uffb4\030\uffb4\031\uffb4\032\uffb4\033\uffb4\034" + "\uffb4\041\uffb4\046\uffb4\065\uffb4\070\uffb4\001\002\000\064" + "\007\uffa5\013\uffa5\014\uffa5\015\uffa5\016\uffa5\017\uffa5\020" + "\uffa5\021\uffa5\022\uffa5\024\uffa5\025\uffa5\027\uffa5\030\uffa5" + "\031\uffa5\032\uffa5\033\uffa5\034\uffa5\035\163\036\164\040" + "\uffa5\041\uffa5\046\uffa5\051\uffa5\065\uffa5\070\uffa5\001\002" + "\000\054\007\uffaa\013\uffaa\014\uffaa\015\uffaa\016\uffaa\017" + "\uffaa\020\uffaa\021\uffaa\022\uffaa\024\uffaa\025\uffaa\027\uffaa" + "\030\uffaa\031\uffaa\032\uffaa\033\uffaa\034\uffaa\041\uffaa\046" + "\uffaa\065\uffaa\070\uffaa\001\002\000\054\007\uffa9\013\uffa9" + "\014\uffa9\015\uffa9\016\uffa9\017\uffa9\020\uffa9\021\uffa9\022" + "\uffa9\024\uffa9\025\uffa9\027\uffa9\030\uffa9\031\uffa9\032\uffa9" + "\033\uffa9\034\uffa9\041\uffa9\046\uffa9\065\uffa9\070\uffa9\001" + "\002\000\054\007\uffb3\013\uffb3\014\uffb3\015\uffb3\016\uffb3" + "\017\uffb3\020\uffb3\021\uffb3\022\uffb3\024\uffb3\025\uffb3\027" + "\uffb3\030\uffb3\031\uffb3\032\uffb3\033\uffb3\034\uffb3\041\uffb3" + "\046\uffb3\065\uffb3\070\uffb3\001\002\000\054\007\uffb2\013" + "\uffb2\014\uffb2\015\uffb2\016\uffb2\017\uffb2\020\uffb2\021\uffb2" + "\022\uffb2\024\uffb2\025\uffb2\027\uffb2\030\uffb2\031\uffb2\032" + "\uffb2\033\uffb2\034\uffb2\041\uffb2\046\uffb2\065\uffb2\070\uffb2" + "\001\002\000\110\002\uffd8\003\uffd8\004\uffd8\005\uffd8\006" + "\uffd8\010\uffd8\011\uffd8\012\uffd8\014\uffd8\020\uffd8\026\uffd8" + "\035\uffd8\036\uffd8\037\uffd8\040\uffd8\043\uffd8\045\uffd8\046" + "\uffd8\047\uffd8\050\uffd8\052\uffd8\053\uffd8\054\uffd8\055\uffd8" + "\056\uffd8\057\uffd8\060\uffd8\061\uffd8\062\uffd8\064\uffd8\071" + "\uffd8\072\uffd8\073\uffd8\074\uffd8\075\uffd8\001\002\000\004" + "\012\171\001\002\000\024\003\uffef\013\uffef\040\uffef\044" + "\uffef\055\uffef\056\uffef\057\uffef\060\uffef\075\uffef\001\002" + "\000\024\003\133\013\173\040\034\044\131\055\013\056" + "\007\057\026\060\054\075\127\001\002\000\004\042\174" + "\001\002\000\074\003\uffe2\004\uffe2\005\uffe2\006\uffe2\012" + "\uffe2\014\uffe2\020\uffe2\026\uffe2\035\uffe2\036\uffe2\037\uffe2" + "\040\uffe2\043\uffe2\045\uffe2\046\uffe2\047\uffe2\050\uffe2\052" + "\uffe2\053\uffe2\054\uffe2\055\uffe2\056\uffe2\057\uffe2\060\uffe2" + "\071\uffe2\072\uffe2\073\uffe2\074\uffe2\075\uffe2\001\002\000" + "\074\003\045\004\064\005\014\006\036\012\041\014\023" + "\020\020\026\022\035\032\036\063\037\046\040\034\043" + "\176\045\060\046\065\047\016\050\043\052\044\053\037" + "\054\050\055\013\056\007\057\026\060\054\071\011\072" + "\047\073\006\074\051\075\052\001\002\000\104\002\ufff2" + "\003\ufff2\004\ufff2\005\ufff2\006\ufff2\012\ufff2\014\ufff2\020" + "\ufff2\026\ufff2\035\ufff2\036\ufff2\037\ufff2\040\ufff2\043\ufff2" + "\045\ufff2\046\ufff2\047\ufff2\050\ufff2\052\ufff2\053\ufff2\054" + "\ufff2\055\ufff2\056\ufff2\057\ufff2\060\ufff2\061\ufff2\062\ufff2" + "\064\ufff2\071\ufff2\072\ufff2\073\ufff2\074\ufff2\075\ufff2\001" + "\002\000\060\007\uffa2\013\uffa2\014\uffa2\015\uffa2\016\uffa2" + "\017\uffa2\020\uffa2\021\uffa2\022\uffa2\024\uffa2\025\uffa2\027" + "\uffa2\030\uffa2\031\uffa2\032\uffa2\033\uffa2\034\uffa2\040\uffa2" + "\041\uffa2\046\uffa2\051\uffa2\065\uffa2\070\uffa2\001\002\000" + "\040\012\041\020\020\026\022\035\032\036\063\037\046" + "\041\202\052\044\053\037\054\050\071\011\072\047\073" + "\006\074\051\075\067\001\002\000\004\041\212\001\002" + "\000\016\040\034\055\013\056\007\057\026\060\054\075" + "\127\001\002\000\004\067\204\001\002\000\036\012\041" + "\020\020\026\022\035\032\036\063\037\046\052\044\053" + "\037\054\050\071\011\072\047\073\006\074\051\075\067" + "\001\002\000\006\015\207\070\210\001\002\000\010\013" + "\uffc6\015\uffc6\070\uffc6\001\002\000\036\012\041\020\020" + "\026\022\035\032\036\063\037\046\052\044\053\037\054" + "\050\071\011\072\047\073\006\074\051\075\067\001\002" + "\000\060\007\uffa0\013\uffa0\014\uffa0\015\uffa0\016\uffa0\017" + "\uffa0\020\uffa0\021\uffa0\022\uffa0\024\uffa0\025\uffa0\027\uffa0" + "\030\uffa0\031\uffa0\032\uffa0\033\uffa0\034\uffa0\040\uffa0\041" + "\uffa0\046\uffa0\051\uffa0\065\uffa0\070\uffa0\001\002\000\010" + "\013\uffc7\015\uffc7\070\uffc7\001\002\000\016\040\034\055" + "\013\056\007\057\026\060\054\075\127\001\002\000\060" + "\007\uffa1\013\uffa1\014\uffa1\015\uffa1\016\uffa1\017\uffa1\020" + "\uffa1\021\uffa1\022\uffa1\024\uffa1\025\uffa1\027\uffa1\030\uffa1" + "\031\uffa1\032\uffa1\033\uffa1\034\uffa1\040\uffa1\041\uffa1\046" + "\uffa1\051\uffa1\065\uffa1\070\uffa1\001\002\000\110\002\uffce" + "\003\uffce\004\uffce\005\uffce\006\uffce\010\uffce\011\uffce\012" + "\uffce\014\uffce\020\uffce\026\uffce\035\uffce\036\uffce\037\uffce" + "\040\uffce\043\uffce\045\uffce\046\uffce\047\uffce\050\uffce\052" + "\uffce\053\uffce\054\uffce\055\uffce\056\uffce\057\uffce\060\uffce" + "\061\uffce\062\uffce\064\uffce\071\uffce\072\uffce\073\uffce\074" + "\uffce\075\uffce\001\002\000\110\002\uffcd\003\uffcd\004\uffcd" + "\005\uffcd\006\uffcd\010\uffcd\011\uffcd\012\uffcd\014\uffcd\020" + "\uffcd\026\uffcd\035\uffcd\036\uffcd\037\uffcd\040\uffcd\043\uffcd" + "\045\uffcd\046\uffcd\047\uffcd\050\uffcd\052\uffcd\053\uffcd\054" + "\uffcd\055\uffcd\056\uffcd\057\uffcd\060\uffcd\061\uffcd\062\uffcd" + "\064\uffcd\071\uffcd\072\uffcd\073\uffcd\074\uffcd\075\uffcd\001" + "\002\000\054\007\uffae\013\uffae\014\uffae\015\uffae\016\uffae" + "\017\uffae\020\uffae\021\uffae\022\uffae\024\uffae\025\uffae\027" + "\uffae\030\uffae\031\uffae\032\uffae\033\uffae\034\uffae\041\uffae" + "\046\uffae\065\uffae\070\uffae\001\002\000\110\002\uffd0\003" + "\uffd0\004\uffd0\005\uffd0\006\uffd0\010\uffd0\011\uffd0\012\uffd0" + "\014\uffd0\020\uffd0\026\uffd0\035\uffd0\036\uffd0\037\uffd0\040" + "\uffd0\043\uffd0\045\uffd0\046\uffd0\047\uffd0\050\uffd0\052\uffd0" + "\053\uffd0\054\uffd0\055\uffd0\056\uffd0\057\uffd0\060\uffd0\061" + "\uffd0\062\uffd0\064\uffd0\071\uffd0\072\uffd0\073\uffd0\074\uffd0" + "\075\uffd0\001\002\000\004\014\221\001\002\000\110\002" + "\uffcf\003\uffcf\004\uffcf\005\uffcf\006\uffcf\010\uffcf\011\uffcf" + "\012\uffcf\014\uffcf\020\uffcf\026\uffcf\035\uffcf\036\uffcf\037" + "\uffcf\040\uffcf\043\uffcf\045\uffcf\046\uffcf\047\uffcf\050\uffcf" + "\052\uffcf\053\uffcf\054\uffcf\055\uffcf\056\uffcf\057\uffcf\060" + "\uffcf\061\uffcf\062\uffcf\064\uffcf\071\uffcf\072\uffcf\073\uffcf" + "\074\uffcf\075\uffcf\001\002\000\004\013\223\001\002\000" + "\060\007\uffa7\013\uffa7\014\uffa7\015\uffa7\016\uffa7\017\uffa7" + "\020\uffa7\021\uffa7\022\uffa7\024\uffa7\025\uffa7\027\uffa7\030" + "\uffa7\031\uffa7\032\uffa7\033\uffa7\034\uffa7\040\uffa7\041\uffa7" + "\046\uffa7\051\uffa7\065\uffa7\070\uffa7\001\002\000\004\007" + "\225\001\002\000\066\003\uffda\004\uffda\005\uffda\006\uffda" + "\010\uffda\011\uffda\012\uffda\014\uffda\020\uffda\026\uffda\035" + "\uffda\036\uffda\037\uffda\043\uffda\045\uffda\046\uffda\047\uffda" + "\050\uffda\052\uffda\053\uffda\054\uffda\071\uffda\072\uffda\073" + "\uffda\074\uffda\075\uffda\001\002\000\066\003\045\004\064" + "\005\014\006\036\010\227\011\230\012\041\014\023\020" + "\020\026\022\035\032\036\063\037\046\043\uffcc\045\060" + "\046\065\047\016\050\043\052\044\053\037\054\050\071" + "\011\072\047\073\006\074\051\075\067\001\002\000\062" + "\003\uffda\004\uffda\005\uffda\006\uffda\012\uffda\014\uffda\020" + "\uffda\026\uffda\035\uffda\036\uffda\037\uffda\043\uffda\045\uffda" + "\046\uffda\047\uffda\050\uffda\052\uffda\053\uffda\054\uffda\071" + "\uffda\072\uffda\073\uffda\074\uffda\075\uffda\001\002\000\036" + "\012\041\020\020\026\022\035\032\036\063\037\046\052" + "\044\053\037\054\050\071\011\072\047\073\006\074\051" + "\075\067\001\002\000\004\043\232\001\002\000\110\002" + "\uffd4\003\uffd4\004\uffd4\005\uffd4\006\uffd4\010\uffd4\011\uffd4" + "\012\uffd4\014\uffd4\020\uffd4\026\uffd4\035\uffd4\036\uffd4\037" + "\uffd4\040\uffd4\043\uffd4\045\uffd4\046\uffd4\047\uffd4\050\uffd4" + "\052\uffd4\053\uffd4\054\uffd4\055\uffd4\056\uffd4\057\uffd4\060" + "\uffd4\061\uffd4\062\uffd4\064\uffd4\071\uffd4\072\uffd4\073\uffd4" + "\074\uffd4\075\uffd4\001\002\000\004\007\234\001\002\000" + "\066\003\uffda\004\uffda\005\uffda\006\uffda\010\uffda\011\uffda" + "\012\uffda\014\uffda\020\uffda\026\uffda\035\uffda\036\uffda\037" + "\uffda\043\uffda\045\uffda\046\uffda\047\uffda\050\uffda\052\uffda" + "\053\uffda\054\uffda\071\uffda\072\uffda\073\uffda\074\uffda\075" + "\uffda\001\002\000\066\003\045\004\064\005\014\006\036" + "\010\227\011\230\012\041\014\023\020\020\026\022\035" + "\032\036\063\037\046\043\uffcc\045\060\046\065\047\016" + "\050\043\052\044\053\037\054\050\071\011\072\047\073" + "\006\074\051\075\067\001\002\000\004\043\uffca\001\002" + "\000\062\003\045\004\064\005\014\006\036\012\041\014" + "\023\020\020\026\022\035\032\036\063\037\046\043\uffcb" + "\045\060\046\065\047\016\050\043\052\044\053\037\054" + "\050\071\011\072\047\073\006\074\051\075\067\001\002" + "\000\040\012\041\013\uffc8\020\020\026\022\035\032\036" + "\063\037\046\052\044\053\037\054\050\071\011\072\047" + "\073\006\074\051\075\067\001\002\000\004\013\243\001" + "\002\000\006\013\uffc9\015\207\001\002\000\060\007\uffa3" + "\013\uffa3\014\uffa3\015\uffa3\016\uffa3\017\uffa3\020\uffa3\021" + "\uffa3\022\uffa3\024\uffa3\025\uffa3\027\uffa3\030\uffa3\031\uffa3" + "\032\uffa3\033\uffa3\034\uffa3\040\uffa3\041\uffa3\046\uffa3\051" + "\uffa3\065\uffa3\070\uffa3\001\002\000\016\040\034\055\013" + "\056\007\057\026\060\054\075\127\001\002\000\064\007" + "\uffe4\013\uffe4\014\uffe4\015\uffe4\016\uffe4\017\uffe4\020\uffe4" + "\021\uffe4\022\uffe4\024\uffe4\025\uffe4\027\uffe4\030\uffe4\031" + "\uffe4\032\uffe4\033\uffe4\034\uffe4\040\uffe4\041\uffe4\046\uffe4" + "\051\uffe4\065\uffe4\067\uffe4\070\uffe4\075\uffe4\001\002\000" + "\060\007\uffad\013\uffad\014\uffad\015\uffad\016\uffad\017\uffad" + "\020\uffad\021\uffad\022\uffad\024\uffad\025\uffad\027\uffad\030" + "\uffad\031\uffad\032\uffad\033\uffad\034\uffad\040\uffa5\041\uffad" + "\046\uffad\051\uffa5\065\uffad\070\uffad\001\002\000\006\042" + "\ufff6\066\251\001\002\000\004\042\253\001\002\000\004" + "\075\252\001\002\000\004\042\ufff7\001\002\000\010\043" + "\ufffa\063\254\064\ufffa\001\002\000\100\003\ufff4\004\ufff4" + "\005\ufff4\006\ufff4\012\ufff4\014\ufff4\020\ufff4\026\ufff4\035" + "\ufff4\036\ufff4\037\ufff4\040\ufff4\043\ufff4\045\ufff4\046\ufff4" + "\047\ufff4\050\ufff4\052\ufff4\053\ufff4\054\ufff4\055\ufff4\056" + "\ufff4\057\ufff4\060\ufff4\061\ufff4\064\ufff4\071\ufff4\072\ufff4" + "\073\ufff4\074\ufff4\075\ufff4\001\002\000\006\043\ufff8\064" + "\257\001\002\000\004\043\262\001\002\000\076\003\ufff4" + "\004\ufff4\005\ufff4\006\ufff4\012\ufff4\014\ufff4\020\ufff4\026" + "\ufff4\035\ufff4\036\ufff4\037\ufff4\040\ufff4\043\ufff4\045\ufff4" + "\046\ufff4\047\ufff4\050\ufff4\052\ufff4\053\ufff4\054\ufff4\055" + "\ufff4\056\ufff4\057\ufff4\060\ufff4\061\ufff4\071\ufff4\072\ufff4" + "\073\ufff4\074\ufff4\075\ufff4\001\002\000\076\003\045\004" + "\064\005\014\006\036\012\041\014\023\020\020\026\022" + "\035\032\036\063\037\046\040\034\043\ufff9\045\060\046" + "\065\047\016\050\043\052\044\053\037\054\050\055\013" + "\056\007\057\026\060\054\061\053\071\011\072\047\073" + "\006\074\051\075\052\001\002\000\100\003\ufff5\004\ufff5" + "\005\ufff5\006\ufff5\012\ufff5\014\ufff5\020\ufff5\026\ufff5\035" + "\ufff5\036\ufff5\037\ufff5\040\ufff5\043\ufff5\045\ufff5\046\ufff5" + "\047\ufff5\050\ufff5\052\ufff5\053\ufff5\054\ufff5\055\ufff5\056" + "\ufff5\057\ufff5\060\ufff5\061\ufff5\064\ufff5\071\ufff5\072\ufff5" + "\073\ufff5\074\ufff5\075\ufff5\001\002\000\100\002\ufffd\003" + "\ufffd\004\ufffd\005\ufffd\006\ufffd\012\ufffd\014\ufffd\020\ufffd" + "\026\ufffd\035\ufffd\036\ufffd\037\ufffd\040\ufffd\045\ufffd\046" + "\ufffd\047\ufffd\050\ufffd\052\ufffd\053\ufffd\054\ufffd\055\ufffd" + "\056\ufffd\057\ufffd\060\ufffd\061\ufffd\062\ufffd\071\ufffd\072" + "\ufffd\073\ufffd\074\ufffd\075\ufffd\001\002\000\100\003\045" + "\004\064\005\014\006\036\012\041\014\023\020\020\026" + "\022\035\032\036\063\037\046\040\034\043\ufffb\045\060" + "\046\065\047\016\050\043\052\044\053\037\054\050\055" + "\013\056\007\057\026\060\054\061\053\064\ufffb\071\011" + "\072\047\073\006\074\051\075\052\001\002\000\054\007" + "\uffaf\013\uffaf\014\uffaf\015\uffaf\016\uffaf\017\uffaf\020\uffaf" + "\021\uffaf\022\uffaf\024\uffaf\025\uffaf\027\uffaf\030\uffaf\031" + "\uffaf\032\uffaf\033\uffaf\034\uffaf\041\uffaf\046\uffaf\065\uffaf" + "\070\uffaf\001\002\000\036\012\041\020\020\026\022\035" + "\032\036\063\037\046\052\044\053\037\054\050\071\011" + "\072\047\073\006\074\051\075\067\001\002\000\026\007" + "\uffc2\013\uffc2\014\uffc2\015\uffc2\016\uffc2\024\uffc2\025\267" + "\041\uffc2\046\uffc2\070\uffc2\001\002\000\036\012\041\020" + "\020\026\022\035\032\036\063\037\046\052\044\053\037" + "\054\050\071\011\072\047\073\006\074\051\075\067\001" + "\002\000\026\007\uffc0\013\uffc0\014\uffc0\015\uffc0\016\uffc0" + "\024\uffc0\025\uffc0\041\uffc0\046\uffc0\070\uffc0\001\002\000" + "\054\007\uffb0\013\uffb0\014\uffb0\015\uffb0\016\uffb0\017\uffb0" + "\020\uffb0\021\uffb0\022\uffb0\024\uffb0\025\uffb0\027\uffb0\030" + "\uffb0\031\uffb0\032\uffb0\033\uffb0\034\uffb0\041\uffb0\046\uffb0" + "\065\uffb0\070\uffb0\001\002\000\004\014\273\001\002\000" + "\036\012\041\020\020\026\022\035\032\036\063\037\046" + "\052\044\053\037\054\050\071\011\072\047\073\006\074" + "\051\075\067\001\002\000\004\014\275\001\002\000\036" + "\012\041\020\020\026\022\035\032\036\063\037\046\052" + "\044\053\037\054\050\071\011\072\047\073\006\074\051" + "\075\067\001\002\000\004\046\277\001\002\000\062\003" + "\uffda\004\uffda\005\uffda\006\uffda\012\uffda\014\uffda\020\uffda" + "\026\uffda\035\uffda\036\uffda\037\uffda\043\uffda\045\uffda\046" + "\uffda\047\uffda\050\uffda\052\uffda\053\uffda\054\uffda\071\uffda" + "\072\uffda\073\uffda\074\uffda\075\uffda\001\002\000\062\003" + "\045\004\064\005\014\006\036\012\041\014\023\020\020" + "\026\022\035\032\036\063\037\046\043\301\045\060\046" + "\065\047\016\050\043\052\044\053\037\054\050\071\011" + "\072\047\073\006\074\051\075\067\001\002\000\110\002" + "\uffd1\003\uffd1\004\uffd1\005\uffd1\006\uffd1\010\uffd1\011\uffd1" + "\012\uffd1\014\uffd1\020\uffd1\026\uffd1\035\uffd1\036\uffd1\037" + "\uffd1\040\uffd1\043\uffd1\045\uffd1\046\uffd1\047\uffd1\050\uffd1" + "\052\uffd1\053\uffd1\054\uffd1\055\uffd1\056\uffd1\057\uffd1\060" + "\uffd1\061\uffd1\062\uffd1\064\uffd1\071\uffd1\072\uffd1\073\uffd1" + "\074\uffd1\075\uffd1\001\002\000\036\012\041\020\020\026" + "\022\035\032\036\063\037\046\052\044\053\037\054\050" + "\071\011\072\047\073\006\074\051\075\067\001\002\000" + "\024\007\uffc4\013\uffc4\014\uffc4\015\uffc4\016\uffc4\024\265" + "\041\uffc4\046\uffc4\070\uffc4\001\002\000\040\012\041\013" + "\306\020\020\026\022\035\032\036\063\037\046\052\044" + "\053\037\054\050\071\011\072\047\073\006\074\051\075" + "\067\001\002\000\004\013\310\001\002\000\004\014\307" + "\001\002\000\110\002\uffd6\003\uffd6\004\uffd6\005\uffd6\006" + "\uffd6\010\uffd6\011\uffd6\012\uffd6\014\uffd6\020\uffd6\026\uffd6" + "\035\uffd6\036\uffd6\037\uffd6\040\uffd6\043\uffd6\045\uffd6\046" + "\uffd6\047\uffd6\050\uffd6\052\uffd6\053\uffd6\054\uffd6\055\uffd6" + "\056\uffd6\057\uffd6\060\uffd6\061\uffd6\062\uffd6\064\uffd6\071" + "\uffd6\072\uffd6\073\uffd6\074\uffd6\075\uffd6\001\002\000\004" + "\014\311\001\002\000\110\002\uffd5\003\uffd5\004\uffd5\005" + "\uffd5\006\uffd5\010\uffd5\011\uffd5\012\uffd5\014\uffd5\020\uffd5" + "\026\uffd5\035\uffd5\036\uffd5\037\uffd5\040\uffd5\043\uffd5\045" + "\uffd5\046\uffd5\047\uffd5\050\uffd5\052\uffd5\053\uffd5\054\uffd5" + "\055\uffd5\056\uffd5\057\uffd5\060\uffd5\061\uffd5\062\uffd5\064" + "\uffd5\071\uffd5\072\uffd5\073\uffd5\074\uffd5\075\uffd5\001\002" + "\000\036\012\041\020\020\026\022\035\032\036\063\037" + "\046\052\044\053\037\054\050\071\011\072\047\073\006" + "\074\051\075\067\001\002\000\036\012\041\020\020\026" + "\022\035\032\036\063\037\046\052\044\053\037\054\050" + "\071\011\072\047\073\006\074\051\075\067\001\002\000" + "\036\012\041\020\020\026\022\035\032\036\063\037\046" + "\052\044\053\037\054\050\071\011\072\047\073\006\074" + "\051\075\067\001\002\000\036\012\041\020\020\026\022" + "\035\032\036\063\037\046\052\044\053\037\054\050\071" + "\011\072\047\073\006\074\051\075\067\001\002\000\036" + "\012\041\020\020\026\022\035\032\036\063\037\046\052" + "\044\053\037\054\050\071\011\072\047\073\006\074\051" + "\075\067\001\002\000\036\012\041\020\020\026\022\035" + "\032\036\063\037\046\052\044\053\037\054\050\071\011" + "\072\047\073\006\074\051\075\067\001\002\000\036\012" + "\041\020\020\026\022\035\032\036\063\037\046\052\044" + "\053\037\054\050\071\011\072\047\073\006\074\051\075" + "\067\001\002\000\036\012\041\020\020\026\022\035\032" + "\036\063\037\046\052\044\053\037\054\050\071\011\072" + "\047\073\006\074\051\075\067\001\002\000\032\007\uffb9" + "\013\uffb9\014\uffb9\015\uffb9\016\uffb9\017\315\020\317\024" + "\uffb9\025\uffb9\041\uffb9\046\uffb9\070\uffb9\001\002\000\032" + "\007\uffbb\013\uffbb\014\uffbb\015\uffbb\016\uffbb\017\315\020" + "\317\024\uffbb\025\uffbb\041\uffbb\046\uffbb\070\uffbb\001\002" + "\000\054\007\uffb6\013\uffb6\014\uffb6\015\uffb6\016\uffb6\017" + "\uffb6\020\uffb6\021\160\022\157\024\uffb6\025\uffb6\027\uffb6" + "\030\uffb6\031\uffb6\032\uffb6\033\uffb6\034\uffb6\041\uffb6\046" + "\uffb6\065\156\070\uffb6\001\002\000\032\007\uffbc\013\uffbc" + "\014\uffbc\015\uffbc\016\uffbc\017\315\020\317\024\uffbc\025" + "\uffbc\041\uffbc\046\uffbc\070\uffbc\001\002\000\054\007\uffb7" + "\013\uffb7\014\uffb7\015\uffb7\016\uffb7\017\uffb7\020\uffb7\021" + "\160\022\157\024\uffb7\025\uffb7\027\uffb7\030\uffb7\031\uffb7" + "\032\uffb7\033\uffb7\034\uffb7\041\uffb7\046\uffb7\065\156\070" + "\uffb7\001\002\000\032\007\uffbd\013\uffbd\014\uffbd\015\uffbd" + "\016\uffbd\017\315\020\317\024\uffbd\025\uffbd\041\uffbd\046" + "\uffbd\070\uffbd\001\002\000\032\007\uffba\013\uffba\014\uffba" + "\015\uffba\016\uffba\017\315\020\317\024\uffba\025\uffba\041" + "\uffba\046\uffba\070\uffba\001\002\000\032\007\uffbe\013\uffbe" + "\014\uffbe\015\uffbe\016\uffbe\017\315\020\317\024\uffbe\025" + "\uffbe\041\uffbe\046\uffbe\070\uffbe\001\002\000\004\002\001" + "\001\002" }); /** Access to parse-action table. */ public short[][] action_table() {return _action_table;} /** reduce_goto table. */ protected static final short[][] _reduce_table = unpackFromStrings(new String[] { "\000\330\000\006\003\003\005\004\001\001\000\002\001" + "\001\000\046\004\061\012\011\013\056\015\032\016\060" + "\025\054\026\041\027\020\030\016\031\037\032\007\033" + "\055\034\027\035\023\036\024\037\026\040\034\041\014" + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + "\000\002\001\001\000\002\001\001\000\034\025\271\026" + "\041\027\020\030\016\031\037\032\007\033\055\034\027" + "\035\023\036\024\037\026\040\034\041\014\001\001\000" + "\002\001\001\000\016\034\270\035\023\036\024\037\026" + "\040\034\041\161\001\001\000\002\001\001\000\016\034" + "\263\035\023\036\024\037\026\040\034\041\161\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + "\002\001\001\000\002\001\001\000\002\001\001\000\002" + "\001\001\000\012\036\101\037\026\040\034\041\245\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + "\000\034\025\223\026\041\027\020\030\016\031\037\032" + "\007\033\055\034\027\035\023\036\024\037\026\040\034" + "\041\014\001\001\000\002\001\001\000\002\001\001\000" + "\034\025\221\026\041\027\020\030\016\031\037\032\007" + "\033\055\034\027\035\023\036\024\037\026\040\034\041" + "\014\001\001\000\002\001\001\000\034\025\217\026\041" + "\027\020\030\016\031\037\032\007\033\055\034\027\035" + "\023\036\024\037\026\040\034\041\014\001\001\000\016" + "\034\215\035\023\036\024\037\026\040\034\041\161\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\034\025\151\026\041\027" + "\020\030\016\031\037\032\007\033\055\034\027\035\023" + "\036\024\037\026\040\034\041\014\001\001\000\002\001" + "\001\000\006\023\114\024\112\001\001\000\012\036\101" + "\037\026\040\034\041\100\001\001\000\002\001\001\000" + "\004\010\065\001\001\000\036\016\070\025\054\026\041" + "\027\020\030\016\031\037\032\007\033\055\034\027\035" + "\023\036\024\037\026\040\034\041\014\001\001\000\002" + "\001\001\000\002\001\001\000\002\001\001\000\034\025" + "\072\026\041\027\020\030\016\031\037\032\007\033\055" + "\034\027\035\023\036\024\037\026\040\034\041\014\001" + "\001\000\002\001\001\000\002\001\001\000\034\025\075" + "\026\041\027\020\030\016\031\037\032\007\033\055\034" + "\027\035\023\036\024\037\026\040\034\041\014\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + "\002\001\001\000\002\001\001\000\002\001\001\000\034" + "\025\104\026\041\027\020\030\016\031\037\032\007\033" + "\055\034\027\035\023\036\024\037\026\040\034\041\014" + "\001\001\000\002\001\001\000\002\001\001\000\034\025" + "\107\026\041\027\020\030\016\031\037\032\007\033\055" + "\034\027\035\023\036\024\037\026\040\034\041\014\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\024\117\001\001\000\002\001\001\000\002\001\001" + "\000\002\001\001\000\034\025\122\026\041\027\020\030" + "\016\031\037\032\007\033\055\034\027\035\023\036\024" + "\037\026\040\034\041\014\001\001\000\002\001\001\000" + "\004\011\124\001\001\000\006\004\125\014\127\001\001" + "\000\004\022\147\001\001\000\002\001\001\000\002\001" + "\001\000\004\004\141\001\001\000\002\001\001\000\002" + "\001\001\000\002\001\001\000\004\007\135\001\001\000" + "\042\004\140\015\136\016\060\025\054\026\041\027\020" + "\030\016\031\037\032\007\033\055\034\027\035\023\036" + "\024\037\026\040\034\041\014\001\001\000\002\001\001" + "\000\002\001\001\000\006\023\114\024\112\001\001\000" + "\004\022\142\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" + "\010\153\001\001\000\036\016\070\025\054\026\041\027" + "\020\030\016\031\037\032\007\033\055\034\027\035\023" + "\036\024\037\026\040\034\041\014\001\001\000\002\001" + "\001\000\016\034\165\035\023\036\024\037\026\040\034" + "\041\161\001\001\000\016\034\164\035\023\036\024\037" + "\026\040\034\041\161\001\001\000\016\034\160\035\023" + "\036\024\037\026\040\034\041\161\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\011\171\001\001\000\006\004\125" + "\014\127\001\001\000\002\001\001\000\004\007\174\001" + "\001\000\042\004\140\015\136\016\060\025\054\026\041" + "\027\020\030\016\031\037\032\007\033\055\034\027\035" + "\023\036\024\037\026\040\034\041\014\001\001\000\002" + "\001\001\000\002\001\001\000\034\025\200\026\041\027" + "\020\030\016\031\037\032\007\033\055\034\027\035\023" + "\036\024\037\026\040\034\041\014\001\001\000\002\001" + "\001\000\004\004\202\001\001\000\002\001\001\000\036" + "\021\204\025\205\026\041\027\020\030\016\031\037\032" + "\007\033\055\034\027\035\023\036\024\037\026\040\034" + "\041\014\001\001\000\002\001\001\000\002\001\001\000" + "\034\025\210\026\041\027\020\030\016\031\037\032\007" + "\033\055\034\027\035\023\036\024\037\026\040\034\041" + "\014\001\001\000\002\001\001\000\002\001\001\000\004" + "\004\212\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\010\225\001\001\000\040" + "\016\070\017\230\025\054\026\041\027\020\030\016\031" + "\037\032\007\033\055\034\027\035\023\036\024\037\026" + "\040\034\041\014\001\001\000\004\010\236\001\001\000" + "\034\025\232\026\041\027\020\030\016\031\037\032\007" + "\033\055\034\027\035\023\036\024\037\026\040\034\041" + "\014\001\001\000\002\001\001\000\002\001\001\000\002" + "\001\001\000\004\010\234\001\001\000\040\016\070\017" + "\235\025\054\026\041\027\020\030\016\031\037\032\007" + "\033\055\034\027\035\023\036\024\037\026\040\034\041" + "\014\001\001\000\002\001\001\000\036\016\070\025\054" + "\026\041\027\020\030\016\031\037\032\007\033\055\034" + "\027\035\023\036\024\037\026\040\034\041\014\001\001" + "\000\040\020\240\021\241\025\205\026\041\027\020\030" + "\016\031\037\032\007\033\055\034\027\035\023\036\024" + "\037\026\040\034\041\014\001\001\000\002\001\001\000" + "\002\001\001\000\002\001\001\000\004\004\244\001\001" + "\000\002\001\001\000\002\001\001\000\004\042\247\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + "\000\004\043\254\001\001\000\004\006\262\001\001\000" + "\004\044\255\001\001\000\002\001\001\000\004\006\257" + "\001\001\000\044\004\061\013\260\015\032\016\060\025" + "\054\026\041\027\020\030\016\031\037\032\007\033\055" + "\034\027\035\023\036\024\037\026\040\034\041\014\001" + "\001\000\002\001\001\000\002\001\001\000\044\004\061" + "\013\260\015\032\016\060\025\054\026\041\027\020\030" + "\016\031\037\032\007\033\055\034\027\035\023\036\024" + "\037\026\040\034\041\014\001\001\000\002\001\001\000" + "\026\030\265\031\037\032\007\033\055\034\027\035\023" + "\036\024\037\026\040\034\041\161\001\001\000\002\001" + "\001\000\024\031\267\032\007\033\055\034\027\035\023" + "\036\024\037\026\040\034\041\161\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\034\025\273" + "\026\041\027\020\030\016\031\037\032\007\033\055\034" + "\027\035\023\036\024\037\026\040\034\041\014\001\001" + "\000\002\001\001\000\034\025\275\026\041\027\020\030" + "\016\031\037\032\007\033\055\034\027\035\023\036\024" + "\037\026\040\034\041\014\001\001\000\002\001\001\000" + "\004\010\277\001\001\000\036\016\070\025\054\026\041" + "\027\020\030\016\031\037\032\007\033\055\034\027\035" + "\023\036\024\037\026\040\034\041\014\001\001\000\002" + "\001\001\000\030\027\302\030\016\031\037\032\007\033" + "\055\034\027\035\023\036\024\037\026\040\034\041\161" + "\001\001\000\002\001\001\000\034\025\304\026\041\027" + "\020\030\016\031\037\032\007\033\055\034\027\035\023" + "\036\024\037\026\040\034\041\014\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + "\000\002\001\001\000\022\032\330\033\055\034\027\035" + "\023\036\024\037\026\040\034\041\161\001\001\000\022" + "\032\327\033\055\034\027\035\023\036\024\037\026\040" + "\034\041\161\001\001\000\022\032\326\033\055\034\027" + "\035\023\036\024\037\026\040\034\041\161\001\001\000" + "\020\033\325\034\027\035\023\036\024\037\026\040\034" + "\041\161\001\001\000\022\032\324\033\055\034\027\035" + "\023\036\024\037\026\040\034\041\161\001\001\000\020" + "\033\323\034\027\035\023\036\024\037\026\040\034\041" + "\161\001\001\000\022\032\322\033\055\034\027\035\023" + "\036\024\037\026\040\034\041\161\001\001\000\022\032" + "\321\033\055\034\027\035\023\036\024\037\026\040\034" + "\041\161\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" }); /** 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 108: // Variable ::= Primary DOT IDENT { VariableNode RESULT = null; int objectleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left; int objectright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right; ExprNode object = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; int memberleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int memberright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; String member = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = new MemberVariableNode( object, member ); CUP$parser$result = new java_cup.runtime.Symbol(31/*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 107: // Variable ::= Primary LEFTSQ Expr RIGHTSQ { VariableNode RESULT = null; int arrayleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left; int arrayright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right; ExprNode array = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value; int subscriptleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left; int subscriptright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right; ExprNode subscript = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; RESULT = new SubscriptVariableNode( array, subscript ); CUP$parser$result = new java_cup.runtime.Symbol(31/*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 106: // 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(31/*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 105: // 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(29/*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: // 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(29/*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 103: // LiteralValue ::= NULL { ExprNode RESULT = null; RESULT = new NullValueNode(); CUP$parser$result = new java_cup.runtime.Symbol(29/*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 102: // LiteralValue ::= THIS { ExprNode RESULT = null; RESULT = new ThisNode(); CUP$parser$result = new java_cup.runtime.Symbol(29/*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 101: // 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(29/*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 100: // 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(29/*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 99: // MethodName ::= Primary DOT IDENT { MethodNameNode RESULT = null; int objectleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left; int objectright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right; ExprNode object = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; int 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 MemberMethodNameNode( object, ident ); CUP$parser$result = new java_cup.runtime.Symbol(30/*MethodName*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 98: // MethodName ::= IDENT { MethodNameNode RESULT = null; int identleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int identright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; String ident = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = new IdentMethodNameNode( ident ); CUP$parser$result = new java_cup.runtime.Symbol(30/*MethodName*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 97: // Primary ::= NEW LEFTSQ RIGHTSQ Type LEFTCURLY ExprList RIGHTCURLY { ExprNode RESULT = null; int typeleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left; int typeright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right; TypeNode type = (TypeNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value; int 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 InitArrayCreationNode( type, exprList ); CUP$parser$result = new java_cup.runtime.Symbol(28/*Primary*/, ((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 96: // 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(28/*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 95: // Primary ::= NEW IDENT { ExprNode 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 ConstructorNode( ident ); CUP$parser$result = new java_cup.runtime.Symbol(28/*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 94: // Primary ::= MethodName LEFT ExprListOpt RIGHT { ExprNode RESULT = null; int methodNameleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left; int methodNameright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right; MethodNameNode methodName = (MethodNameNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value; int actualParamsleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left; int actualParamsright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right; ExprListNode actualParams = (ExprListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; RESULT = new InvocationNode( methodName, actualParams ); CUP$parser$result = new java_cup.runtime.Symbol(28/*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 93: // 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(28/*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 92: // 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(28/*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 91: // 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(28/*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 90: // 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(28/*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 89: // 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(27/*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 88: // 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(27/*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 87: // 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(27/*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 86: // 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(26/*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 85: // 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(26/*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 84: // 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(26/*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 83: // 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(26/*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 82: // 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(26/*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 81: // 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(26/*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 80: // 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(25/*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 79: // 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(25/*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 78: // 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(25/*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 77: // 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(25/*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 76: // 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(24/*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 75: // 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(24/*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 74: // 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(24/*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 73: // 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(23/*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 72: // 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(23/*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 71: // 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(23/*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 70: // 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(23/*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 69: // 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(23/*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 68: // 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(23/*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 67: // 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(23/*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 66: // 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(22/*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 65: // 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(22/*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 64: // 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(21/*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 63: // 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(21/*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 62: // AssignExpr ::= OrExpr { ExprNode RESULT = null; int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = expr; CUP$parser$result = new java_cup.runtime.Symbol(20/*AssignExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 61: // 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(20/*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 60: // Expr ::= AssignExpr { ExprNode RESULT = null; int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = expr; CUP$parser$result = new java_cup.runtime.Symbol(19/*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 59: // 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(15/*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 58: // 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(15/*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 57: // ExprListOpt ::= { ExprListNode RESULT = null; RESULT = new ExprListNode(); CUP$parser$result = new java_cup.runtime.Symbol(14/*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 56: // 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(14/*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 55: // ElseOpt ::= ELIF Expr THEN StmtList ElseOpt { ElseOptNode RESULT = null; int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left; int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right; ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value; int stmtListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left; int stmtListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right; DeclStmtListNode stmtList = (DeclStmtListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; int elseOptleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int elseOptright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; ElseOptNode elseOpt = (ElseOptNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = new ElseOpt2Node( expr, stmtList, elseOpt ); CUP$parser$result = new java_cup.runtime.Symbol(13/*ElseOpt*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 54: // ElseOpt ::= ELSE StmtList { ElseOptNode RESULT = null; int stmtListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int stmtListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; DeclStmtListNode stmtList = (DeclStmtListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = new ElseOpt1Node( stmtList ); CUP$parser$result = new java_cup.runtime.Symbol(13/*ElseOpt*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 53: // ElseOpt ::= { ElseOptNode RESULT = null; RESULT = new ElseOpt0Node(); CUP$parser$result = new java_cup.runtime.Symbol(13/*ElseOpt*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 52: // Stmt ::= error END { DeclStmtNode RESULT = null; RESULT = new ErrorDeclStmtNode(); 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 51: // Stmt ::= error SEMICOLON { DeclStmtNode RESULT = null; RESULT = new ErrorDeclStmtNode(); 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 50: // Stmt ::= RETURN Expr SEMICOLON { DeclStmtNode RESULT = null; int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left; int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right; ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; RESULT = new ReturnExprStmtNode( expr ); CUP$parser$result = new java_cup.runtime.Symbol(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 49: // Stmt ::= RETURN SEMICOLON { DeclStmtNode 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 48: // Stmt ::= FOR Expr SEMICOLON Expr SEMICOLON Expr DO StmtList END { DeclStmtNode RESULT = null; int initialleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-7)).left; int initialright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-7)).right; ExprNode initial = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-7)).value; int condleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)).left; int condright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)).right; ExprNode cond = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-5)).value; int incrementleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left; int incrementright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right; ExprNode increment = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value; int stmtListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left; int stmtListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right; DeclStmtListNode stmtList = (DeclStmtListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; RESULT = new ForStmtNode( initial, cond, increment, stmtList ); CUP$parser$result = new java_cup.runtime.Symbol(12/*Stmt*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-8)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 47: // Stmt ::= DO StmtList END WHILE Expr SEMICOLON { DeclStmtNode RESULT = null; int stmtListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left; int stmtListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).right; DeclStmtListNode stmtList = (DeclStmtListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-4)).value; int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left; int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right; ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; RESULT = new DoStmtNode( stmtList, expr ); CUP$parser$result = new java_cup.runtime.Symbol(12/*Stmt*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 46: // Stmt ::= WHILE Expr DO StmtList END { DeclStmtNode RESULT = null; int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left; int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right; ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value; int stmtListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left; int stmtListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right; DeclStmtListNode stmtList = (DeclStmtListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; RESULT = new WhileStmtNode( expr, stmtList ); CUP$parser$result = new java_cup.runtime.Symbol(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 45: // Stmt ::= IF Expr THEN StmtList ElseOpt END { DeclStmtNode RESULT = null; int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left; int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).right; ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-4)).value; int stmtListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left; int stmtListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right; DeclStmtListNode stmtList = (DeclStmtListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; int elseOptleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left; int elseOptright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right; ElseOptNode elseOpt = (ElseOptNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; RESULT = new IfStmtNode( expr, stmtList, elseOpt ); CUP$parser$result = new java_cup.runtime.Symbol(12/*Stmt*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 44: // Stmt ::= PRINTLN LEFT Expr RIGHT SEMICOLON { DeclStmtNode RESULT = null; int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left; int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right; ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; RESULT = new Println1StmtNode( expr ); CUP$parser$result = new java_cup.runtime.Symbol(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 43: // Stmt ::= PRINTLN LEFT RIGHT SEMICOLON { DeclStmtNode RESULT = null; RESULT = new Println0StmtNode(); 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 42: // Stmt ::= PRINT LEFT Expr RIGHT SEMICOLON { DeclStmtNode RESULT = null; int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left; int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right; ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; RESULT = new PrintStmtNode( expr ); CUP$parser$result = new java_cup.runtime.Symbol(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 41: // Stmt ::= Expr SEMICOLON { DeclStmtNode RESULT = null; int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left; int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right; ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; RESULT = new ExprStmtNode( expr ); CUP$parser$result = new java_cup.runtime.Symbol(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 ::= SEMICOLON { DeclStmtNode 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 39: // StmtList ::= { DeclStmtListNode RESULT = null; RESULT = new DeclStmtListNode(); CUP$parser$result = new java_cup.runtime.Symbol(6/*StmtList*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 38: // StmtList ::= StmtList Stmt { DeclStmtListNode RESULT = null; int stmtListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left; int stmtListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right; DeclStmtListNode stmtList = (DeclStmtListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; int stmtleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int stmtright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; DeclStmtNode stmt = (DeclStmtNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; stmtList.addElement( stmt ); RESULT = stmtList; CUP$parser$result = new java_cup.runtime.Symbol(6/*StmtList*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 37: // LocalVar ::= IDENT ASSIGN Expr { DeclaratorNode RESULT = null; int identleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left; int identright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right; String ident = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = new InitDeclaratorNode( ident, expr ); CUP$parser$result = new java_cup.runtime.Symbol(18/*LocalVar*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 36: // LocalVar ::= IDENT { DeclaratorNode RESULT = null; int identleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int identright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; String ident = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = new UninitDeclaratorNode( ident ); CUP$parser$result = new java_cup.runtime.Symbol(18/*LocalVar*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 35: // LocalVarList ::= LocalVar { DeclaratorListNode RESULT = null; int localVarleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int localVarright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; DeclaratorNode localVar = (DeclaratorNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; DeclaratorListNode localVarList = new DeclaratorListNode(); localVarList.addElement( localVar ); RESULT = localVarList; CUP$parser$result = new java_cup.runtime.Symbol(17/*LocalVarList*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 34: // LocalVarList ::= LocalVarList COMMA LocalVar { DeclaratorListNode RESULT = null; int localVarListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left; int localVarListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right; DeclaratorListNode localVarList = (DeclaratorListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; int localVarleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int localVarright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; DeclaratorNode localVar = (DeclaratorNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; localVarList.addElement( localVar ); RESULT = localVarList; CUP$parser$result = new java_cup.runtime.Symbol(17/*LocalVarList*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 33: // LocalDeclStmt ::= Stmt { DeclStmtNode RESULT = null; int stmtleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int stmtright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; DeclStmtNode stmt = (DeclStmtNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = stmt; CUP$parser$result = new java_cup.runtime.Symbol(11/*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 32: // LocalDeclStmt ::= Type LocalVarList SEMICOLON { DeclStmtNode RESULT = null; int typeleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left; int typeright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right; TypeNode type = (TypeNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; int localVarListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left; int localVarListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right; DeclaratorListNode localVarList = (DeclaratorListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; RESULT = new LocalDeclNode( type, localVarList ); CUP$parser$result = new java_cup.runtime.Symbol(11/*LocalDeclStmt*/, ((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: // LocalDeclStmtList ::= { DeclStmtListNode RESULT = null; RESULT = new DeclStmtListNode(); CUP$parser$result = new java_cup.runtime.Symbol(5/*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 30: // 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(5/*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 29: // 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(2/*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 28: // 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(2/*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 27: // Type ::= REAL { TypeNode RESULT = null; RESULT = new RealTypeNode(); CUP$parser$result = new java_cup.runtime.Symbol(2/*Type*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 26: // Type ::= BOOL { TypeNode RESULT = null; RESULT = new BoolTypeNode(); CUP$parser$result = new java_cup.runtime.Symbol(2/*Type*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 25: // Type ::= CHAR { TypeNode RESULT = null; RESULT = new CharTypeNode(); CUP$parser$result = new java_cup.runtime.Symbol(2/*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 ::= INT { TypeNode RESULT = null; RESULT = new IntTypeNode(); CUP$parser$result = new java_cup.runtime.Symbol(2/*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: // FormalParamList ::= 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 formalParamList = new DeclaratorListNode(); formalParamList.addElement( new UninitDeclaratorNode( ident ) ); RESULT = formalParamList; CUP$parser$result = new java_cup.runtime.Symbol(16/*FormalParamList*/, ((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: // FormalParamList ::= FormalParamList COMMA IDENT { DeclaratorListNode RESULT = null; int formalParamListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left; int formalParamListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right; DeclaratorListNode formalParamList = (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; formalParamList.addElement( new UninitDeclaratorNode( ident ) ); RESULT = formalParamList; CUP$parser$result = new java_cup.runtime.Symbol(16/*FormalParamList*/, ((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 21: // FormalParamDecl ::= error SEMICOLON { DeclStmtNode RESULT = null; RESULT = new ErrorDeclStmtNode(); CUP$parser$result = new java_cup.runtime.Symbol(10/*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 20: // FormalParamDecl ::= VAR Type FormalParamList 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 formalParamListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left; int formalParamListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right; DeclaratorListNode formalParamList = (DeclaratorListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; RESULT = new VarParamDeclNode( type, formalParamList ); CUP$parser$result = new java_cup.runtime.Symbol(10/*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 19: // FormalParamDecl ::= Type FormalParamList 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 formalParamListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left; int formalParamListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right; DeclaratorListNode formalParamList = (DeclaratorListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; RESULT = new ValueParamDeclNode( type, formalParamList ); CUP$parser$result = new java_cup.runtime.Symbol(10/*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 18: // FormalParamDeclList ::= { DeclStmtListNode RESULT = null; RESULT = new DeclStmtListNode(); CUP$parser$result = new java_cup.runtime.Symbol(7/*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 17: // 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(7/*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 16: // ClassBodyDeclStmt ::= LocalDeclStmt { DeclStmtNode RESULT = null; int stmtleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int stmtright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; DeclStmtNode stmt = (DeclStmtNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = stmt; CUP$parser$result = new java_cup.runtime.Symbol(9/*ClassBodyDeclStmt*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 15: // ClassBodyDeclStmt ::= VOID IDENT LEFT FormalParamDeclList RIGHT BEGIN LocalDeclStmtList END { 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 localDeclStmtListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left; int localDeclStmtListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right; DeclStmtListNode localDeclStmtList = (DeclStmtListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; RESULT = new MethodDeclNode( new VoidTypeNode(), ident, formalParams, localDeclStmtList ); CUP$parser$result = new java_cup.runtime.Symbol(9/*ClassBodyDeclStmt*/, ((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 14: // ClassBodyDeclStmt ::= Type IDENT LEFT FormalParamDeclList RIGHT BEGIN LocalDeclStmtList END { 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 localDeclStmtListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left; int localDeclStmtListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right; DeclStmtListNode localDeclStmtList = (DeclStmtListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; RESULT = new MethodDeclNode( returnType, ident, formalParams, localDeclStmtList ); CUP$parser$result = new java_cup.runtime.Symbol(9/*ClassBodyDeclStmt*/, ((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 13: // ClassBodyDeclStmtList ::= { DeclStmtListNode RESULT = null; RESULT = new DeclStmtListNode(); CUP$parser$result = new java_cup.runtime.Symbol(4/*ClassBodyDeclStmtList*/, ((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 12: // ClassBodyDeclStmtList ::= ClassBodyDeclStmtList ClassBodyDeclStmt { 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(4/*ClassBodyDeclStmtList*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 11: // ExtendsOpt ::= { ExtendsOptNode RESULT = null; RESULT = new ExtendsOpt0Node(); CUP$parser$result = new java_cup.runtime.Symbol(32/*ExtendsOpt*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 10: // ExtendsOpt ::= EXTENDS IDENT { ExtendsOptNode RESULT = null; int superClassleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int superClassright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; String superClass = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = new ExtendsOpt1Node( superClass ); CUP$parser$result = new java_cup.runtime.Symbol(32/*ExtendsOpt*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 9: // InstanceOpt ::= { SectionOptNode RESULT = null; RESULT = new SectionOpt0Node(); CUP$parser$result = new java_cup.runtime.Symbol(34/*InstanceOpt*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 8: // InstanceOpt ::= INSTANCE ClassBodyDeclStmtList { SectionOptNode RESULT = null; int instanceBodyleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int instanceBodyright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; DeclStmtListNode instanceBody = (DeclStmtListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = new SectionOpt1Node( Decl.SECT_INSTANCE, instanceBody ); CUP$parser$result = new java_cup.runtime.Symbol(34/*InstanceOpt*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 7: // StaticOpt ::= { SectionOptNode RESULT = null; RESULT = new SectionOpt0Node(); CUP$parser$result = new java_cup.runtime.Symbol(33/*StaticOpt*/, ((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 6: // StaticOpt ::= STATIC ClassBodyDeclStmtList { SectionOptNode RESULT = null; int staticBodyleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int staticBodyright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; DeclStmtListNode staticBody = (DeclStmtListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = new SectionOpt1Node( Decl.SECT_STATIC, staticBody ); CUP$parser$result = new java_cup.runtime.Symbol(33/*StaticOpt*/, ((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 5: // GlobalDeclStmt ::= ClassBodyDeclStmt { 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(8/*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 4: // GlobalDeclStmt ::= CLASS IDENT ExtendsOpt BEGIN StaticOpt InstanceOpt END { DeclStmtNode RESULT = null; int identleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)).left; int identright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)).right; String ident = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-5)).value; int extendsOptleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left; int extendsOptright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).right; ExtendsOptNode extendsOpt = (ExtendsOptNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-4)).value; int staticOptleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left; int staticOptright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right; SectionOptNode staticOpt = (SectionOptNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; int instanceOptleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left; int instanceOptright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right; SectionOptNode instanceOpt = (SectionOptNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; RESULT = new ClassDeclNode( ident, extendsOpt, staticOpt, instanceOpt ); CUP$parser$result = new java_cup.runtime.Symbol(8/*GlobalDeclStmt*/, ((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 3: // GlobalDeclStmtList ::= { DeclStmtListNode RESULT = null; RESULT = new DeclStmtListNode(); CUP$parser$result = new java_cup.runtime.Symbol(3/*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 2: // GlobalDeclStmtList ::= GlobalDeclStmtList GlobalDeclStmt { DeclStmtListNode RESULT = null; int globalDeclListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left; int globalDeclListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right; DeclStmtListNode globalDeclList = (DeclStmtListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; int globalDeclleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int globalDeclright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; DeclStmtNode globalDecl = (DeclStmtNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; globalDeclList.addElement( globalDecl ); RESULT = globalDeclList; CUP$parser$result = new java_cup.runtime.Symbol(3/*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 1: // Program ::= GlobalDeclStmtList { ProgramNode RESULT = null; int globalDeclListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int globalDeclListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; DeclStmtListNode globalDeclList = (DeclStmtListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = new ProgramNode( globalDeclList ); CUP$parser$result = new java_cup.runtime.Symbol(1/*Program*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 0: // $START ::= Program EOF { Object RESULT = null; int start_valleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left; int start_valright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right; ProgramNode start_val = (ProgramNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; RESULT = start_val; CUP$parser$result = new java_cup.runtime.Symbol(0/*$START*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } /* ACCEPT */ CUP$parser$parser.done_parsing(); return CUP$parser$result; /* . . . . . .*/ default: throw new Exception( "Invalid action number found in internal parse table"); } } }