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