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