//----------------------------------------------------
// The following code was generated by CUP v0.10k
// Wed May 03 15:15:15 NZST 2006
//----------------------------------------------------
package grammar;
import java.io.*;
import java.util.*;
import java_cup.runtime.*;
import node.*;
import node.declNode.*;
import node.exprNode.*;
import node.exprNode.binaryNode.*;
import node.exprNode.binaryNode.arithNode.*;
import node.exprNode.binaryNode.relationNode.*;
import node.exprNode.binaryNode.boolNode.*;
import node.exprNode.prefixNode.*;
import node.exprNode.valueNode.*;
import node.exprNode.primaryNode.*;
import node.exprNode.variableNode.*;
import node.stmtNode.*;
import node.typeNode.*;
import node.typeNode.basicTypeNode.*;
import text.*;
/** CUP v0.10k generated parser.
* @version Wed May 03 15:15:15 NZST 2006
*/
public class parser extends java_cup.runtime.lr_parser {
/** Default constructor. */
public parser() {super();}
/** Constructor which sets the default scanner. */
public parser(java_cup.runtime.Scanner s) {super(s);}
/** Production table. */
protected static final short _production_table[][] =
unpackFromStrings(new String[] {
"\000\136\000\002\002\004\000\002\003\005\000\002\004" +
"\006\000\002\010\004\000\002\010\002\000\002\011\004" +
"\000\002\011\002\000\002\012\004\000\002\012\002\000" +
"\002\013\007\000\002\013\007\000\002\013\011\000\002" +
"\013\004\000\002\014\006\000\002\014\004\000\002\015" +
"\006\000\002\015\007\000\002\015\004\000\002\036\003" +
"\000\002\036\003\000\002\005\003\000\002\005\003\000" +
"\002\005\003\000\002\005\003\000\002\005\003\000\002" +
"\005\003\000\002\005\003\000\002\005\003\000\002\006" +
"\005\000\002\007\006\000\002\016\004\000\002\016\002" +
"\000\002\020\003\000\002\020\004\000\002\020\007\000" +
"\002\020\006\000\002\020\007\000\002\020\010\000\002" +
"\020\007\000\002\020\010\000\002\020\013\000\002\020" +
"\004\000\002\020\005\000\002\020\004\000\002\020\004" +
"\000\002\017\002\000\002\017\004\000\002\017\007\000" +
"\002\024\003\000\002\025\005\000\002\025\003\000\002" +
"\026\005\000\002\026\003\000\002\027\005\000\002\027" +
"\003\000\002\030\005\000\002\030\005\000\002\030\005" +
"\000\002\030\005\000\002\030\005\000\002\030\005\000" +
"\002\030\003\000\002\031\005\000\002\031\005\000\002" +
"\031\003\000\002\032\005\000\002\032\005\000\002\032" +
"\003\000\002\033\004\000\002\033\004\000\002\033\004" +
"\000\002\033\007\000\002\033\004\000\002\033\007\000" +
"\002\033\003\000\002\034\005\000\002\034\003\000\002" +
"\034\003\000\002\034\003\000\002\034\003\000\002\034" +
"\003\000\002\034\003\000\002\034\006\000\002\034\006" +
"\000\002\034\006\000\002\035\003\000\002\035\006\000" +
"\002\035\005\000\002\023\005\000\002\023\003\000\002" +
"\021\003\000\002\021\002\000\002\022\005\000\002\022" +
"\003" });
/** Access to production table. */
public short[][] production_table() {return _production_table;}
/** Parse-action table. */
protected static final short[][] _action_table =
unpackFromStrings(new String[] {
"\000\315\000\004\057\005\001\002\000\004\002\317\001" +
"\002\000\014\003\ufffd\035\ufffd\041\ufffd\043\ufffd\065\ufffd" +
"\001\002\000\004\052\316\001\002\000\014\003\013\035" +
"\012\041\014\043\011\065\015\001\002\000\014\003\ufffe" +
"\035\ufffe\041\ufffe\043\ufffe\065\ufffe\001\002\000\004\074" +
"\041\001\002\000\004\074\266\001\002\000\004\014\265" +
"\001\002\000\060\003\uffe2\004\uffe2\005\uffe2\006\uffe2\012" +
"\uffe2\014\uffe2\020\uffe2\026\uffe2\036\uffe2\042\uffe2\044\uffe2" +
"\045\uffe2\046\uffe2\051\uffe2\053\uffe2\054\uffe2\055\uffe2\056" +
"\uffe2\070\uffe2\071\uffe2\072\uffe2\073\uffe2\074\uffe2\001\002" +
"\000\004\074\016\001\002\000\004\023\017\001\002\000" +
"\022\037\031\060\021\061\032\062\023\063\025\064\026" +
"\066\024\074\022\001\002\000\004\014\052\001\002\000" +
"\064\003\uffed\007\uffed\013\uffed\014\uffed\016\uffed\017\uffed" +
"\020\uffed\021\uffed\022\uffed\024\uffed\025\uffed\027\uffed\030" +
"\uffed\031\uffed\032\uffed\033\uffed\034\uffed\035\uffed\040\uffed" +
"\041\uffed\043\uffed\045\uffed\047\uffed\050\uffed\065\uffed\001" +
"\002\000\064\003\uffe8\007\uffe8\013\uffe8\014\uffe8\016\uffe8" +
"\017\uffe8\020\uffe8\021\uffe8\022\uffe8\024\uffe8\025\uffe8\027" +
"\uffe8\030\uffe8\031\uffe8\032\uffe8\033\uffe8\034\uffe8\035\uffe8" +
"\040\uffe8\041\uffe8\043\uffe8\045\uffe8\047\uffe8\050\uffe8\065" +
"\uffe8\001\002\000\064\003\uffeb\007\uffeb\013\uffeb\014\uffeb" +
"\016\uffeb\017\uffeb\020\uffeb\021\uffeb\022\uffeb\024\uffeb\025" +
"\uffeb\027\uffeb\030\uffeb\031\uffeb\032\uffeb\033\uffeb\034\uffeb" +
"\035\uffeb\040\uffeb\041\uffeb\043\uffeb\045\uffeb\047\uffeb\050" +
"\uffeb\065\uffeb\001\002\000\004\012\035\001\002\000\064" +
"\003\uffea\007\uffea\013\uffea\014\uffea\016\uffea\017\uffea\020" +
"\uffea\021\uffea\022\uffea\024\uffea\025\uffea\027\uffea\030\uffea" +
"\031\uffea\032\uffea\033\uffea\034\uffea\035\uffea\040\uffea\041" +
"\uffea\043\uffea\045\uffea\047\uffea\050\uffea\065\uffea\001\002" +
"\000\064\003\uffe9\007\uffe9\013\uffe9\014\uffe9\016\uffe9\017" +
"\uffe9\020\uffe9\021\uffe9\022\uffe9\024\uffe9\025\uffe9\027\uffe9" +
"\030\uffe9\031\uffe9\032\uffe9\033\uffe9\034\uffe9\035\uffe9\040" +
"\uffe9\041\uffe9\043\uffe9\045\uffe9\047\uffe9\050\uffe9\065\uffe9" +
"\001\002\000\064\003\uffe6\007\uffe6\013\uffe6\014\uffe6\016" +
"\uffe6\017\uffe6\020\uffe6\021\uffe6\022\uffe6\024\uffe6\025\uffe6" +
"\027\uffe6\030\uffe6\031\uffe6\032\uffe6\033\uffe6\034\uffe6\035" +
"\uffe6\040\uffe6\041\uffe6\043\uffe6\045\uffe6\047\uffe6\050\uffe6" +
"\065\uffe6\001\002\000\064\003\uffe7\007\uffe7\013\uffe7\014" +
"\uffe7\016\uffe7\017\uffe7\020\uffe7\021\uffe7\022\uffe7\024\uffe7" +
"\025\uffe7\027\uffe7\030\uffe7\031\uffe7\032\uffe7\033\uffe7\034" +
"\uffe7\035\uffe7\040\uffe7\041\uffe7\043\uffe7\045\uffe7\047\uffe7" +
"\050\uffe7\065\uffe7\001\002\000\004\040\033\001\002\000" +
"\064\003\uffec\007\uffec\013\uffec\014\uffec\016\uffec\017\uffec" +
"\020\uffec\021\uffec\022\uffec\024\uffec\025\uffec\027\uffec\030" +
"\uffec\031\uffec\032\uffec\033\uffec\034\uffec\035\uffec\040\uffec" +
"\041\uffec\043\uffec\045\uffec\047\uffec\050\uffec\065\uffec\001" +
"\002\000\022\037\031\060\021\061\032\062\023\063\025" +
"\064\026\066\024\074\022\001\002\000\064\003\uffe5\007" +
"\uffe5\013\uffe5\014\uffe5\016\uffe5\017\uffe5\020\uffe5\021\uffe5" +
"\022\uffe5\024\uffe5\025\uffe5\027\uffe5\030\uffe5\031\uffe5\032" +
"\uffe5\033\uffe5\034\uffe5\035\uffe5\040\uffe5\041\uffe5\043\uffe5" +
"\045\uffe5\047\uffe5\050\uffe5\065\uffe5\001\002\000\010\003" +
"\ufffb\013\ufffb\074\ufffb\001\002\000\010\003\037\013\040" +
"\074\041\001\002\000\004\014\051\001\002\000\064\003" +
"\uffe4\007\uffe4\013\uffe4\014\uffe4\016\uffe4\017\uffe4\020\uffe4" +
"\021\uffe4\022\uffe4\024\uffe4\025\uffe4\027\uffe4\030\uffe4\031" +
"\uffe4\032\uffe4\033\uffe4\034\uffe4\035\uffe4\040\uffe4\041\uffe4" +
"\043\uffe4\045\uffe4\047\uffe4\050\uffe4\065\uffe4\001\002\000" +
"\006\015\uffa8\016\uffa8\001\002\000\006\015\045\016\044" +
"\001\002\000\010\003\ufffc\013\ufffc\074\ufffc\001\002\000" +
"\004\074\050\001\002\000\022\037\031\060\021\061\032" +
"\062\023\063\025\064\026\066\024\074\022\001\002\000" +
"\004\014\047\001\002\000\010\003\ufff4\013\ufff4\074\ufff4" +
"\001\002\000\006\015\uffa9\016\uffa9\001\002\000\010\003" +
"\ufff3\013\ufff3\074\ufff3\001\002\000\014\003\ufff8\035\ufff8" +
"\041\ufff8\043\ufff8\065\ufff8\001\002\000\060\003\105\004" +
"\104\005\100\006\071\012\076\014\055\020\103\026\066" +
"\036\107\042\067\044\063\045\075\046\112\051\070\053" +
"\115\054\114\055\062\056\110\070\113\071\057\072\102" +
"\073\060\074\056\001\002\000\024\007\uffcb\013\uffcb\014" +
"\uffcb\016\uffcb\024\uffcb\025\uffcb\040\uffcb\045\uffcb\050\uffcb" +
"\001\002\000\064\003\uffe1\004\uffe1\005\uffe1\006\uffe1\010" +
"\uffe1\011\uffe1\012\uffe1\014\uffe1\020\uffe1\026\uffe1\036\uffe1" +
"\042\uffe1\044\uffe1\045\uffe1\046\uffe1\051\uffe1\053\uffe1\054" +
"\uffe1\055\uffe1\056\uffe1\070\uffe1\071\uffe1\072\uffe1\073\uffe1" +
"\074\uffe1\001\002\000\060\007\uffac\012\262\013\uffac\014" +
"\uffac\016\uffac\017\uffac\020\uffac\021\uffac\022\uffac\023\uffac" +
"\024\uffac\025\uffac\027\uffac\030\uffac\031\uffac\032\uffac\033" +
"\uffac\034\uffac\037\uffac\040\uffac\045\uffac\050\uffac\052\uffac" +
"\001\002\000\054\007\uffb2\013\uffb2\014\uffb2\016\uffb2\017" +
"\uffb2\020\uffb2\021\uffb2\022\uffb2\024\uffb2\025\uffb2\027\uffb2" +
"\030\uffb2\031\uffb2\032\uffb2\033\uffb2\034\uffb2\037\uffb2\040" +
"\uffb2\045\uffb2\050\uffb2\052\uffb2\001\002\000\054\007\uffb4" +
"\013\uffb4\014\uffb4\016\uffb4\017\uffb4\020\uffb4\021\uffb4\022" +
"\uffb4\024\uffb4\025\uffb4\027\uffb4\030\uffb4\031\uffb4\032\uffb4" +
"\033\uffb4\034\uffb4\037\uffb4\040\uffb4\045\uffb4\050\uffb4\052" +
"\uffb4\001\002\000\064\003\uffe3\004\uffe3\005\uffe3\006\uffe3" +
"\010\uffe3\011\uffe3\012\uffe3\014\uffe3\020\uffe3\026\uffe3\036" +
"\uffe3\042\uffe3\044\uffe3\045\uffe3\046\uffe3\051\uffe3\053\uffe3" +
"\054\uffe3\055\uffe3\056\uffe3\070\uffe3\071\uffe3\072\uffe3\073" +
"\uffe3\074\uffe3\001\002\000\004\012\257\001\002\000\034" +
"\012\076\020\103\026\066\036\107\053\115\054\114\055" +
"\062\056\110\070\113\071\057\072\102\073\060\074\056" +
"\001\002\000\022\007\uffcf\013\uffcf\014\uffcf\016\uffcf\024" +
"\251\040\uffcf\045\uffcf\050\uffcf\001\002\000\054\007\uffb7" +
"\013\uffb7\014\uffb7\016\uffb7\017\uffb7\020\uffb7\021\uffb7\022" +
"\uffb7\024\uffb7\025\uffb7\027\uffb7\030\uffb7\031\uffb7\032\uffb7" +
"\033\uffb7\034\uffb7\037\244\040\uffb7\045\uffb7\050\uffb7\052" +
"\245\001\002\000\034\012\076\020\103\026\066\036\107" +
"\053\115\054\114\055\062\056\110\070\113\071\057\072" +
"\102\073\060\074\056\001\002\000\016\003\uffff\035\uffff" +
"\041\uffff\043\uffff\052\uffff\065\uffff\001\002\000\036\012" +
"\076\014\240\020\103\026\066\036\107\053\115\054\114" +
"\055\062\056\110\070\113\071\057\072\102\073\060\074" +
"\056\001\002\000\034\012\076\020\103\026\066\036\107" +
"\053\115\054\114\055\062\056\110\070\113\071\057\072" +
"\102\073\060\074\056\001\002\000\004\014\223\001\002" +
"\000\020\007\uffd1\013\uffd1\014\uffd1\016\uffd1\040\uffd1\045" +
"\uffd1\050\uffd1\001\002\000\050\007\uffc1\013\uffc1\014\uffc1" +
"\016\uffc1\017\uffc1\020\uffc1\021\203\022\202\024\uffc1\025" +
"\uffc1\027\uffc1\030\uffc1\031\uffc1\032\uffc1\033\uffc1\034\uffc1" +
"\040\uffc1\045\uffc1\050\uffc1\001\002\000\060\003\uffe2\004" +
"\uffe2\005\uffe2\006\uffe2\012\uffe2\014\uffe2\020\uffe2\026\uffe2" +
"\036\uffe2\042\uffe2\044\uffe2\045\uffe2\046\uffe2\051\uffe2\053" +
"\uffe2\054\uffe2\055\uffe2\056\uffe2\070\uffe2\071\uffe2\072\uffe2" +
"\073\uffe2\074\uffe2\001\002\000\034\012\076\020\103\026" +
"\066\036\107\053\115\054\114\055\062\056\110\070\113" +
"\071\057\072\102\073\060\074\056\001\002\000\044\007" +
"\uffc4\013\uffc4\014\uffc4\016\uffc4\017\173\020\176\024\uffc4" +
"\025\uffc4\027\170\030\172\031\174\032\175\033\171\034" +
"\177\040\uffc4\045\uffc4\050\uffc4\001\002\000\004\012\162" +
"\001\002\000\050\007\uffbe\013\uffbe\014\uffbe\016\uffbe\017" +
"\uffbe\020\uffbe\021\uffbe\022\uffbe\024\uffbe\025\uffbe\027\uffbe" +
"\030\uffbe\031\uffbe\032\uffbe\033\uffbe\034\uffbe\040\uffbe\045" +
"\uffbe\050\uffbe\001\002\000\054\007\uffb1\013\uffb1\014\uffb1" +
"\016\uffb1\017\uffb1\020\uffb1\021\uffb1\022\uffb1\024\uffb1\025" +
"\uffb1\027\uffb1\030\uffb1\031\uffb1\032\uffb1\033\uffb1\034\uffb1" +
"\037\uffb1\040\uffb1\045\uffb1\050\uffb1\052\uffb1\001\002\000" +
"\034\012\076\020\103\026\066\036\107\053\115\054\114" +
"\055\062\056\110\070\113\071\057\072\102\073\060\074" +
"\056\001\002\000\004\012\155\001\002\000\006\014\153" +
"\042\154\001\002\000\056\007\uffb0\013\uffb0\014\uffb0\016" +
"\uffb0\017\uffb0\020\uffb0\021\uffb0\022\uffb0\023\151\024\uffb0" +
"\025\uffb0\027\uffb0\030\uffb0\031\uffb0\032\uffb0\033\uffb0\034" +
"\uffb0\037\uffb0\040\uffb0\045\uffb0\050\uffb0\052\uffb0\001\002" +
"\000\022\037\136\060\021\061\032\062\023\063\025\064" +
"\026\066\024\074\022\001\002\000\004\012\132\001\002" +
"\000\024\007\uffcd\013\uffcd\014\uffcd\016\uffcd\024\uffcd\025" +
"\130\040\uffcd\045\uffcd\050\uffcd\001\002\000\034\012\076" +
"\020\103\026\066\036\107\053\115\054\114\055\062\056" +
"\110\070\113\071\057\072\102\073\060\074\056\001\002" +
"\000\054\007\uffb5\013\uffb5\014\uffb5\016\uffb5\017\uffb5\020" +
"\uffb5\021\uffb5\022\uffb5\024\uffb5\025\uffb5\027\uffb5\030\uffb5" +
"\031\uffb5\032\uffb5\033\uffb5\034\uffb5\037\uffb5\040\uffb5\045" +
"\uffb5\050\uffb5\052\uffb5\001\002\000\054\007\uffb3\013\uffb3" +
"\014\uffb3\016\uffb3\017\uffb3\020\uffb3\021\uffb3\022\uffb3\024" +
"\uffb3\025\uffb3\027\uffb3\030\uffb3\031\uffb3\032\uffb3\033\uffb3" +
"\034\uffb3\037\uffb3\040\uffb3\045\uffb3\050\uffb3\052\uffb3\001" +
"\002\000\034\012\076\020\103\026\066\036\107\053\115" +
"\054\114\055\062\056\110\070\113\071\057\072\102\073" +
"\060\074\056\001\002\000\054\007\uffb0\013\uffb0\014\uffb0" +
"\016\uffb0\017\uffb0\020\uffb0\021\uffb0\022\uffb0\024\uffb0\025" +
"\uffb0\027\uffb0\030\uffb0\031\uffb0\032\uffb0\033\uffb0\034\uffb0" +
"\037\uffb0\040\uffb0\045\uffb0\050\uffb0\052\uffb0\001\002\000" +
"\050\007\uffbb\013\uffbb\014\uffbb\016\uffbb\017\uffbb\020\uffbb" +
"\021\uffbb\022\uffbb\024\uffbb\025\uffbb\027\uffbb\030\uffbb\031" +
"\uffbb\032\uffbb\033\uffbb\034\uffbb\040\uffbb\045\uffbb\050\uffbb" +
"\001\002\000\004\014\121\001\002\000\034\012\076\020" +
"\103\026\066\036\107\053\115\054\114\055\062\056\110" +
"\070\113\071\057\072\102\073\060\074\056\001\002\000" +
"\004\014\123\001\002\000\034\012\076\020\103\026\066" +
"\036\107\053\115\054\114\055\062\056\110\070\113\071" +
"\057\072\102\073\060\074\056\001\002\000\004\045\125" +
"\001\002\000\060\003\uffe2\004\uffe2\005\uffe2\006\uffe2\012" +
"\uffe2\014\uffe2\020\uffe2\026\uffe2\036\uffe2\042\uffe2\044\uffe2" +
"\045\uffe2\046\uffe2\051\uffe2\053\uffe2\054\uffe2\055\uffe2\056" +
"\uffe2\070\uffe2\071\uffe2\072\uffe2\073\uffe2\074\uffe2\001\002" +
"\000\060\003\105\004\104\005\100\006\071\012\076\014" +
"\055\020\103\026\066\036\107\042\127\044\063\045\075" +
"\046\112\051\070\053\115\054\114\055\062\056\110\070" +
"\113\071\057\072\102\073\060\074\056\001\002\000\064" +
"\003\uffd9\004\uffd9\005\uffd9\006\uffd9\010\uffd9\011\uffd9\012" +
"\uffd9\014\uffd9\020\uffd9\026\uffd9\036\uffd9\042\uffd9\044\uffd9" +
"\045\uffd9\046\uffd9\051\uffd9\053\uffd9\054\uffd9\055\uffd9\056" +
"\uffd9\070\uffd9\071\uffd9\072\uffd9\073\uffd9\074\uffd9\001\002" +
"\000\034\012\076\020\103\026\066\036\107\053\115\054" +
"\114\055\062\056\110\070\113\071\057\072\102\073\060" +
"\074\056\001\002\000\024\007\uffcc\013\uffcc\014\uffcc\016" +
"\uffcc\024\uffcc\025\uffcc\040\uffcc\045\uffcc\050\uffcc\001\002" +
"\000\034\012\076\020\103\026\066\036\107\053\115\054" +
"\114\055\062\056\110\070\113\071\057\072\102\073\060" +
"\074\056\001\002\000\004\013\134\001\002\000\054\007" +
"\uffad\013\uffad\014\uffad\016\uffad\017\uffad\020\uffad\021\uffad" +
"\022\uffad\024\uffad\025\uffad\027\uffad\030\uffad\031\uffad\032" +
"\uffad\033\uffad\034\uffad\037\uffad\040\uffad\045\uffad\050\uffad" +
"\052\uffad\001\002\000\052\007\uffb9\013\uffb9\014\uffb9\016" +
"\uffb9\017\uffb9\020\uffb9\021\uffb9\022\uffb9\024\uffb9\025\uffb9" +
"\027\uffb9\030\uffb9\031\uffb9\032\uffb9\033\uffb9\034\uffb9\040" +
"\uffb9\045\uffb9\047\142\050\uffb9\001\002\000\036\012\076" +
"\020\103\026\066\036\107\040\033\053\115\054\114\055" +
"\062\056\110\070\113\071\057\072\102\073\060\074\056" +
"\001\002\000\004\040\140\001\002\000\022\037\031\060" +
"\021\061\032\062\023\063\025\064\026\066\024\074\022" +
"\001\002\000\050\007\uffba\013\uffba\014\uffba\016\uffba\017" +
"\uffba\020\uffba\021\uffba\022\uffba\024\uffba\025\uffba\027\uffba" +
"\030\uffba\031\uffba\032\uffba\033\uffba\034\uffba\040\uffba\045" +
"\uffba\050\uffba\001\002\000\036\012\076\020\103\026\066" +
"\036\107\050\uffa6\053\115\054\114\055\062\056\110\070" +
"\113\071\057\072\102\073\060\074\056\001\002\000\004" +
"\050\150\001\002\000\010\013\uffa7\016\146\050\uffa7\001" +
"\002\000\010\013\uffa4\016\uffa4\050\uffa4\001\002\000\034" +
"\012\076\020\103\026\066\036\107\053\115\054\114\055" +
"\062\056\110\070\113\071\057\072\102\073\060\074\056" +
"\001\002\000\010\013\uffa5\016\uffa5\050\uffa5\001\002\000" +
"\050\007\uffb8\013\uffb8\014\uffb8\016\uffb8\017\uffb8\020\uffb8" +
"\021\uffb8\022\uffb8\024\uffb8\025\uffb8\027\uffb8\030\uffb8\031" +
"\uffb8\032\uffb8\033\uffb8\034\uffb8\040\uffb8\045\uffb8\050\uffb8" +
"\001\002\000\034\012\076\020\103\026\066\036\107\053" +
"\115\054\114\055\062\056\110\070\113\071\057\072\102" +
"\073\060\074\056\001\002\000\020\007\uffd0\013\uffd0\014" +
"\uffd0\016\uffd0\040\uffd0\045\uffd0\050\uffd0\001\002\000\064" +
"\003\uffd6\004\uffd6\005\uffd6\006\uffd6\010\uffd6\011\uffd6\012" +
"\uffd6\014\uffd6\020\uffd6\026\uffd6\036\uffd6\042\uffd6\044\uffd6" +
"\045\uffd6\046\uffd6\051\uffd6\053\uffd6\054\uffd6\055\uffd6\056" +
"\uffd6\070\uffd6\071\uffd6\072\uffd6\073\uffd6\074\uffd6\001\002" +
"\000\064\003\uffd5\004\uffd5\005\uffd5\006\uffd5\010\uffd5\011" +
"\uffd5\012\uffd5\014\uffd5\020\uffd5\026\uffd5\036\uffd5\042\uffd5" +
"\044\uffd5\045\uffd5\046\uffd5\051\uffd5\053\uffd5\054\uffd5\055" +
"\uffd5\056\uffd5\070\uffd5\071\uffd5\072\uffd5\073\uffd5\074\uffd5" +
"\001\002\000\034\012\076\020\103\026\066\036\107\053" +
"\115\054\114\055\062\056\110\070\113\071\057\072\102" +
"\073\060\074\056\001\002\000\004\013\157\001\002\000" +
"\004\014\160\001\002\000\064\003\uffdf\004\uffdf\005\uffdf" +
"\006\uffdf\010\uffdf\011\uffdf\012\uffdf\014\uffdf\020\uffdf\026" +
"\uffdf\036\uffdf\042\uffdf\044\uffdf\045\uffdf\046\uffdf\051\uffdf" +
"\053\uffdf\054\uffdf\055\uffdf\056\uffdf\070\uffdf\071\uffdf\072" +
"\uffdf\073\uffdf\074\uffdf\001\002\000\050\007\uffbd\013\uffbd" +
"\014\uffbd\016\uffbd\017\uffbd\020\uffbd\021\uffbd\022\uffbd\024" +
"\uffbd\025\uffbd\027\uffbd\030\uffbd\031\uffbd\032\uffbd\033\uffbd" +
"\034\uffbd\040\uffbd\045\uffbd\050\uffbd\001\002\000\036\012" +
"\076\013\164\020\103\026\066\036\107\053\115\054\114" +
"\055\062\056\110\070\113\071\057\072\102\073\060\074" +
"\056\001\002\000\004\013\166\001\002\000\004\014\165" +
"\001\002\000\064\003\uffde\004\uffde\005\uffde\006\uffde\010" +
"\uffde\011\uffde\012\uffde\014\uffde\020\uffde\026\uffde\036\uffde" +
"\042\uffde\044\uffde\045\uffde\046\uffde\051\uffde\053\uffde\054" +
"\uffde\055\uffde\056\uffde\070\uffde\071\uffde\072\uffde\073\uffde" +
"\074\uffde\001\002\000\004\014\167\001\002\000\064\003" +
"\uffdd\004\uffdd\005\uffdd\006\uffdd\010\uffdd\011\uffdd\012\uffdd" +
"\014\uffdd\020\uffdd\026\uffdd\036\uffdd\042\uffdd\044\uffdd\045" +
"\uffdd\046\uffdd\051\uffdd\053\uffdd\054\uffdd\055\uffdd\056\uffdd" +
"\070\uffdd\071\uffdd\072\uffdd\073\uffdd\074\uffdd\001\002\000" +
"\034\012\076\020\103\026\066\036\107\053\115\054\114" +
"\055\062\056\110\070\113\071\057\072\102\073\060\074" +
"\056\001\002\000\034\012\076\020\103\026\066\036\107" +
"\053\115\054\114\055\062\056\110\070\113\071\057\072" +
"\102\073\060\074\056\001\002\000\034\012\076\020\103" +
"\026\066\036\107\053\115\054\114\055\062\056\110\070" +
"\113\071\057\072\102\073\060\074\056\001\002\000\034" +
"\012\076\020\103\026\066\036\107\053\115\054\114\055" +
"\062\056\110\070\113\071\057\072\102\073\060\074\056" +
"\001\002\000\034\012\076\020\103\026\066\036\107\053" +
"\115\054\114\055\062\056\110\070\113\071\057\072\102" +
"\073\060\074\056\001\002\000\034\012\076\020\103\026" +
"\066\036\107\053\115\054\114\055\062\056\110\070\113" +
"\071\057\072\102\073\060\074\056\001\002\000\034\012" +
"\076\020\103\026\066\036\107\053\115\054\114\055\062" +
"\056\110\070\113\071\057\072\102\073\060\074\056\001" +
"\002\000\034\012\076\020\103\026\066\036\107\053\115" +
"\054\114\055\062\056\110\070\113\071\057\072\102\073" +
"\060\074\056\001\002\000\030\007\uffc5\013\uffc5\014\uffc5" +
"\016\uffc5\017\173\020\176\024\uffc5\025\uffc5\040\uffc5\045" +
"\uffc5\050\uffc5\001\002\000\050\007\uffc2\013\uffc2\014\uffc2" +
"\016\uffc2\017\uffc2\020\uffc2\021\203\022\202\024\uffc2\025" +
"\uffc2\027\uffc2\030\uffc2\031\uffc2\032\uffc2\033\uffc2\034\uffc2" +
"\040\uffc2\045\uffc2\050\uffc2\001\002\000\034\012\076\020" +
"\103\026\066\036\107\053\115\054\114\055\062\056\110" +
"\070\113\071\057\072\102\073\060\074\056\001\002\000" +
"\034\012\076\020\103\026\066\036\107\053\115\054\114" +
"\055\062\056\110\070\113\071\057\072\102\073\060\074" +
"\056\001\002\000\050\007\uffc0\013\uffc0\014\uffc0\016\uffc0" +
"\017\uffc0\020\uffc0\021\uffc0\022\uffc0\024\uffc0\025\uffc0\027" +
"\uffc0\030\uffc0\031\uffc0\032\uffc0\033\uffc0\034\uffc0\040\uffc0" +
"\045\uffc0\050\uffc0\001\002\000\050\007\uffbf\013\uffbf\014" +
"\uffbf\016\uffbf\017\uffbf\020\uffbf\021\uffbf\022\uffbf\024\uffbf" +
"\025\uffbf\027\uffbf\030\uffbf\031\uffbf\032\uffbf\033\uffbf\034" +
"\uffbf\040\uffbf\045\uffbf\050\uffbf\001\002\000\030\007\uffc7" +
"\013\uffc7\014\uffc7\016\uffc7\017\173\020\176\024\uffc7\025" +
"\uffc7\040\uffc7\045\uffc7\050\uffc7\001\002\000\030\007\uffc8" +
"\013\uffc8\014\uffc8\016\uffc8\017\173\020\176\024\uffc8\025" +
"\uffc8\040\uffc8\045\uffc8\050\uffc8\001\002\000\050\007\uffc3" +
"\013\uffc3\014\uffc3\016\uffc3\017\uffc3\020\uffc3\021\203\022" +
"\202\024\uffc3\025\uffc3\027\uffc3\030\uffc3\031\uffc3\032\uffc3" +
"\033\uffc3\034\uffc3\040\uffc3\045\uffc3\050\uffc3\001\002\000" +
"\030\007\uffc9\013\uffc9\014\uffc9\016\uffc9\017\173\020\176" +
"\024\uffc9\025\uffc9\040\uffc9\045\uffc9\050\uffc9\001\002\000" +
"\030\007\uffc6\013\uffc6\014\uffc6\016\uffc6\017\173\020\176" +
"\024\uffc6\025\uffc6\040\uffc6\045\uffc6\050\uffc6\001\002\000" +
"\030\007\uffca\013\uffca\014\uffca\016\uffca\017\173\020\176" +
"\024\uffca\025\uffca\040\uffca\045\uffca\050\uffca\001\002\000" +
"\004\013\215\001\002\000\054\007\uffb6\013\uffb6\014\uffb6" +
"\016\uffb6\017\uffb6\020\uffb6\021\uffb6\022\uffb6\024\uffb6\025" +
"\uffb6\027\uffb6\030\uffb6\031\uffb6\032\uffb6\033\uffb6\034\uffb6" +
"\037\uffb6\040\uffb6\045\uffb6\050\uffb6\052\uffb6\001\002\000" +
"\060\003\105\004\104\005\100\006\071\012\076\014\055" +
"\020\103\026\066\036\107\042\217\044\063\045\075\046" +
"\112\051\070\053\115\054\114\055\062\056\110\070\113" +
"\071\057\072\102\073\060\074\056\001\002\000\004\044" +
"\220\001\002\000\034\012\076\020\103\026\066\036\107" +
"\053\115\054\114\055\062\056\110\070\113\071\057\072" +
"\102\073\060\074\056\001\002\000\004\014\222\001\002" +
"\000\064\003\uffda\004\uffda\005\uffda\006\uffda\010\uffda\011" +
"\uffda\012\uffda\014\uffda\020\uffda\026\uffda\036\uffda\042\uffda" +
"\044\uffda\045\uffda\046\uffda\051\uffda\053\uffda\054\uffda\055" +
"\uffda\056\uffda\070\uffda\071\uffda\072\uffda\073\uffda\074\uffda" +
"\001\002\000\064\003\uffe0\004\uffe0\005\uffe0\006\uffe0\010" +
"\uffe0\011\uffe0\012\uffe0\014\uffe0\020\uffe0\026\uffe0\036\uffe0" +
"\042\uffe0\044\uffe0\045\uffe0\046\uffe0\051\uffe0\053\uffe0\054" +
"\uffe0\055\uffe0\056\uffe0\070\uffe0\071\uffe0\072\uffe0\073\uffe0" +
"\074\uffe0\001\002\000\004\007\225\001\002\000\064\003" +
"\uffe2\004\uffe2\005\uffe2\006\uffe2\010\uffe2\011\uffe2\012\uffe2" +
"\014\uffe2\020\uffe2\026\uffe2\036\uffe2\042\uffe2\044\uffe2\045" +
"\uffe2\046\uffe2\051\uffe2\053\uffe2\054\uffe2\055\uffe2\056\uffe2" +
"\070\uffe2\071\uffe2\072\uffe2\073\uffe2\074\uffe2\001\002\000" +
"\064\003\105\004\104\005\100\006\071\010\227\011\230" +
"\012\076\014\055\020\103\026\066\036\107\042\uffd4\044" +
"\063\045\075\046\112\051\070\053\115\054\114\055\062" +
"\056\110\070\113\071\057\072\102\073\060\074\056\001" +
"\002\000\060\003\uffe2\004\uffe2\005\uffe2\006\uffe2\012\uffe2" +
"\014\uffe2\020\uffe2\026\uffe2\036\uffe2\042\uffe2\044\uffe2\045" +
"\uffe2\046\uffe2\051\uffe2\053\uffe2\054\uffe2\055\uffe2\056\uffe2" +
"\070\uffe2\071\uffe2\072\uffe2\073\uffe2\074\uffe2\001\002\000" +
"\034\012\076\020\103\026\066\036\107\053\115\054\114" +
"\055\062\056\110\070\113\071\057\072\102\073\060\074" +
"\056\001\002\000\004\042\232\001\002\000\064\003\uffdc" +
"\004\uffdc\005\uffdc\006\uffdc\010\uffdc\011\uffdc\012\uffdc\014" +
"\uffdc\020\uffdc\026\uffdc\036\uffdc\042\uffdc\044\uffdc\045\uffdc" +
"\046\uffdc\051\uffdc\053\uffdc\054\uffdc\055\uffdc\056\uffdc\070" +
"\uffdc\071\uffdc\072\uffdc\073\uffdc\074\uffdc\001\002\000\004" +
"\007\234\001\002\000\064\003\uffe2\004\uffe2\005\uffe2\006" +
"\uffe2\010\uffe2\011\uffe2\012\uffe2\014\uffe2\020\uffe2\026\uffe2" +
"\036\uffe2\042\uffe2\044\uffe2\045\uffe2\046\uffe2\051\uffe2\053" +
"\uffe2\054\uffe2\055\uffe2\056\uffe2\070\uffe2\071\uffe2\072\uffe2" +
"\073\uffe2\074\uffe2\001\002\000\064\003\105\004\104\005" +
"\100\006\071\010\227\011\230\012\076\014\055\020\103" +
"\026\066\036\107\042\uffd4\044\063\045\075\046\112\051" +
"\070\053\115\054\114\055\062\056\110\070\113\071\057" +
"\072\102\073\060\074\056\001\002\000\004\042\uffd2\001" +
"\002\000\060\003\105\004\104\005\100\006\071\012\076" +
"\014\055\020\103\026\066\036\107\042\uffd3\044\063\045" +
"\075\046\112\051\070\053\115\054\114\055\062\056\110" +
"\070\113\071\057\072\102\073\060\074\056\001\002\000" +
"\064\003\uffd8\004\uffd8\005\uffd8\006\uffd8\010\uffd8\011\uffd8" +
"\012\uffd8\014\uffd8\020\uffd8\026\uffd8\036\uffd8\042\uffd8\044" +
"\uffd8\045\uffd8\046\uffd8\051\uffd8\053\uffd8\054\uffd8\055\uffd8" +
"\056\uffd8\070\uffd8\071\uffd8\072\uffd8\073\uffd8\074\uffd8\001" +
"\002\000\004\014\242\001\002\000\064\003\uffd7\004\uffd7" +
"\005\uffd7\006\uffd7\010\uffd7\011\uffd7\012\uffd7\014\uffd7\020" +
"\uffd7\026\uffd7\036\uffd7\042\uffd7\044\uffd7\045\uffd7\046\uffd7" +
"\051\uffd7\053\uffd7\054\uffd7\055\uffd7\056\uffd7\070\uffd7\071" +
"\uffd7\072\uffd7\073\uffd7\074\uffd7\001\002\000\050\007\uffbc" +
"\013\uffbc\014\uffbc\016\uffbc\017\uffbc\020\uffbc\021\uffbc\022" +
"\uffbc\024\uffbc\025\uffbc\027\uffbc\030\uffbc\031\uffbc\032\uffbc" +
"\033\uffbc\034\uffbc\040\uffbc\045\uffbc\050\uffbc\001\002\000" +
"\034\012\076\020\103\026\066\036\107\053\115\054\114" +
"\055\062\056\110\070\113\071\057\072\102\073\060\074" +
"\056\001\002\000\004\074\246\001\002\000\056\007\uffaa" +
"\013\uffaa\014\uffaa\016\uffaa\017\uffaa\020\uffaa\021\uffaa\022" +
"\uffaa\023\uffaa\024\uffaa\025\uffaa\027\uffaa\030\uffaa\031\uffaa" +
"\032\uffaa\033\uffaa\034\uffaa\037\uffaa\040\uffaa\045\uffaa\050" +
"\uffaa\052\uffaa\001\002\000\004\040\250\001\002\000\056" +
"\007\uffab\013\uffab\014\uffab\016\uffab\017\uffab\020\uffab\021" +
"\uffab\022\uffab\023\uffab\024\uffab\025\uffab\027\uffab\030\uffab" +
"\031\uffab\032\uffab\033\uffab\034\uffab\037\uffab\040\uffab\045" +
"\uffab\050\uffab\052\uffab\001\002\000\034\012\076\020\103" +
"\026\066\036\107\053\115\054\114\055\062\056\110\070" +
"\113\071\057\072\102\073\060\074\056\001\002\000\024" +
"\007\uffce\013\uffce\014\uffce\016\uffce\024\uffce\025\130\040" +
"\uffce\045\uffce\050\uffce\001\002\000\004\045\254\001\002" +
"\000\060\003\uffe2\004\uffe2\005\uffe2\006\uffe2\012\uffe2\014" +
"\uffe2\020\uffe2\026\uffe2\036\uffe2\042\uffe2\044\uffe2\045\uffe2" +
"\046\uffe2\051\uffe2\053\uffe2\054\uffe2\055\uffe2\056\uffe2\070" +
"\uffe2\071\uffe2\072\uffe2\073\uffe2\074\uffe2\001\002\000\060" +
"\003\105\004\104\005\100\006\071\012\076\014\055\020" +
"\103\026\066\036\107\042\256\044\063\045\075\046\112" +
"\051\070\053\115\054\114\055\062\056\110\070\113\071" +
"\057\072\102\073\060\074\056\001\002\000\064\003\uffdb" +
"\004\uffdb\005\uffdb\006\uffdb\010\uffdb\011\uffdb\012\uffdb\014" +
"\uffdb\020\uffdb\026\uffdb\036\uffdb\042\uffdb\044\uffdb\045\uffdb" +
"\046\uffdb\051\uffdb\053\uffdb\054\uffdb\055\uffdb\056\uffdb\070" +
"\uffdb\071\uffdb\072\uffdb\073\uffdb\074\uffdb\001\002\000\034" +
"\012\076\020\103\026\066\036\107\053\115\054\114\055" +
"\062\056\110\070\113\071\057\072\102\073\060\074\056" +
"\001\002\000\004\013\261\001\002\000\054\007\uffae\013" +
"\uffae\014\uffae\016\uffae\017\uffae\020\uffae\021\uffae\022\uffae" +
"\024\uffae\025\uffae\027\uffae\030\uffae\031\uffae\032\uffae\033" +
"\uffae\034\uffae\037\uffae\040\uffae\045\uffae\050\uffae\052\uffae" +
"\001\002\000\036\012\076\013\uffa6\020\103\026\066\036" +
"\107\053\115\054\114\055\062\056\110\070\113\071\057" +
"\072\102\073\060\074\056\001\002\000\004\013\264\001" +
"\002\000\054\007\uffaf\013\uffaf\014\uffaf\016\uffaf\017\uffaf" +
"\020\uffaf\021\uffaf\022\uffaf\024\uffaf\025\uffaf\027\uffaf\030" +
"\uffaf\031\uffaf\032\uffaf\033\uffaf\034\uffaf\037\uffaf\040\uffaf" +
"\045\uffaf\050\uffaf\052\uffaf\001\002\000\014\003\ufff5\035" +
"\ufff5\041\ufff5\043\ufff5\065\ufff5\001\002\000\004\012\267" +
"\001\002\000\012\003\ufff9\013\ufff9\043\ufff9\074\ufff9\001" +
"\002\000\012\003\272\013\273\043\271\074\041\001\002" +
"\000\004\074\041\001\002\000\004\014\305\001\002\000" +
"\024\037\031\060\021\061\032\062\023\063\025\064\026" +
"\066\024\067\302\074\022\001\002\000\006\015\276\016" +
"\044\001\002\000\012\003\ufffa\013\ufffa\043\ufffa\074\ufffa" +
"\001\002\000\022\037\031\060\021\061\032\062\023\063" +
"\025\064\026\066\024\074\022\001\002\000\004\014\300" +
"\001\002\000\012\003\ufff2\013\ufff2\043\ufff2\074\ufff2\001" +
"\002\000\014\003\uffef\035\uffef\041\uffef\043\uffef\065\uffef" +
"\001\002\000\014\003\uffee\035\uffee\041\uffee\043\uffee\065" +
"\uffee\001\002\000\014\003\ufffd\035\ufffd\041\ufffd\043\ufffd" +
"\065\ufffd\001\002\000\014\003\ufff6\035\ufff6\041\ufff6\043" +
"\ufff6\065\ufff6\001\002\000\012\003\ufff0\013\ufff0\043\ufff0" +
"\074\ufff0\001\002\000\006\015\307\016\044\001\002\000" +
"\022\037\031\060\021\061\032\062\023\063\025\064\026" +
"\066\024\074\022\001\002\000\004\014\311\001\002\000" +
"\012\003\ufff1\013\ufff1\043\ufff1\074\ufff1\001\002\000\006" +
"\015\313\016\044\001\002\000\022\037\031\060\021\061" +
"\032\062\023\063\025\064\026\066\024\074\022\001\002" +
"\000\004\014\315\001\002\000\014\003\ufff7\035\ufff7\041" +
"\ufff7\043\ufff7\065\ufff7\001\002\000\004\002\000\001\002" +
"\000\004\002\001\001\002" });
/** Access to parse-action table. */
public short[][] action_table() {return _action_table;}
/** reduce_goto
table. */
protected static final short[][] _reduce_table =
unpackFromStrings(new String[] {
"\000\315\000\004\003\003\001\001\000\002\001\001\000" +
"\006\004\005\010\006\001\001\000\002\001\001\000\004" +
"\013\007\001\001\000\002\001\001\000\004\023\311\001" +
"\001\000\002\001\001\000\002\001\001\000\004\016\052" +
"\001\001\000\002\001\001\000\002\001\001\000\010\005" +
"\017\006\027\007\026\001\001\000\002\001\001\000\002" +
"\001\001\000\002\001\001\000\002\001\001\000\002\001" +
"\001\000\002\001\001\000\002\001\001\000\002\001\001" +
"\000\002\001\001\000\002\001\001\000\002\001\001\000" +
"\010\005\033\006\027\007\026\001\001\000\002\001\001" +
"\000\004\011\035\001\001\000\006\014\042\023\041\001" +
"\001\000\002\001\001\000\002\001\001\000\002\001\001" +
"\000\002\001\001\000\002\001\001\000\002\001\001\000" +
"\010\005\045\006\027\007\026\001\001\000\002\001\001" +
"\000\002\001\001\000\002\001\001\000\002\001\001\000" +
"\002\001\001\000\030\020\060\024\071\025\072\026\063" +
"\027\110\030\053\031\076\032\073\033\100\034\064\035" +
"\105\001\001\000\002\001\001\000\002\001\001\000\002" +
"\001\001\000\002\001\001\000\002\001\001\000\002\001" +
"\001\000\002\001\001\000\026\024\252\025\072\026\063" +
"\027\110\030\053\031\076\032\073\033\100\034\064\035" +
"\105\001\001\000\002\001\001\000\002\001\001\000\010" +
"\033\242\034\064\035\115\001\001\000\002\001\001\000" +
"\026\024\240\025\072\026\063\027\110\030\053\031\076" +
"\032\073\033\100\034\064\035\105\001\001\000\026\024" +
"\223\025\072\026\063\027\110\030\053\031\076\032\073" +
"\033\100\034\064\035\105\001\001\000\002\001\001\000" +
"\002\001\001\000\002\001\001\000\004\016\215\001\001" +
"\000\026\024\213\025\072\026\063\027\110\030\053\031" +
"\076\032\073\033\100\034\064\035\105\001\001\000\002" +
"\001\001\000\002\001\001\000\002\001\001\000\002\001" +
"\001\000\010\033\160\034\064\035\115\001\001\000\002" +
"\001\001\000\002\001\001\000\002\001\001\000\010\005" +
"\134\006\027\007\026\001\001\000\002\001\001\000\002" +
"\001\001\000\026\024\117\025\072\026\063\027\110\030" +
"\053\031\076\032\073\033\100\034\064\035\105\001\001" +
"\000\002\001\001\000\002\001\001\000\010\033\116\034" +
"\064\035\115\001\001\000\002\001\001\000\002\001\001" +
"\000\002\001\001\000\026\024\121\025\072\026\063\027" +
"\110\030\053\031\076\032\073\033\100\034\064\035\105" +
"\001\001\000\002\001\001\000\026\024\123\025\072\026" +
"\063\027\110\030\053\031\076\032\073\033\100\034\064" +
"\035\105\001\001\000\002\001\001\000\004\016\125\001" +
"\001\000\030\020\060\024\071\025\072\026\063\027\110" +
"\030\053\031\076\032\073\033\100\034\064\035\105\001" +
"\001\000\002\001\001\000\016\030\130\031\076\032\073" +
"\033\100\034\064\035\115\001\001\000\002\001\001\000" +
"\026\024\132\025\072\026\063\027\110\030\053\031\076" +
"\032\073\033\100\034\064\035\105\001\001\000\002\001" +
"\001\000\002\001\001\000\002\001\001\000\026\024\136" +
"\025\072\026\063\027\110\030\053\031\076\032\073\033" +
"\100\034\064\035\105\001\001\000\002\001\001\000\010" +
"\005\140\006\027\007\026\001\001\000\002\001\001\000" +
"\032\021\142\022\143\024\144\025\072\026\063\027\110" +
"\030\053\031\076\032\073\033\100\034\064\035\105\001" +
"\001\000\002\001\001\000\002\001\001\000\002\001\001" +
"\000\026\024\146\025\072\026\063\027\110\030\053\031" +
"\076\032\073\033\100\034\064\035\105\001\001\000\002" +
"\001\001\000\002\001\001\000\024\025\151\026\063\027" +
"\110\030\053\031\076\032\073\033\100\034\064\035\105" +
"\001\001\000\002\001\001\000\002\001\001\000\002\001" +
"\001\000\026\024\155\025\072\026\063\027\110\030\053" +
"\031\076\032\073\033\100\034\064\035\105\001\001\000" +
"\002\001\001\000\002\001\001\000\002\001\001\000\002" +
"\001\001\000\026\024\162\025\072\026\063\027\110\030" +
"\053\031\076\032\073\033\100\034\064\035\105\001\001" +
"\000\002\001\001\000\002\001\001\000\002\001\001\000" +
"\002\001\001\000\002\001\001\000\014\031\212\032\073" +
"\033\100\034\064\035\115\001\001\000\014\031\211\032" +
"\073\033\100\034\064\035\115\001\001\000\014\031\210" +
"\032\073\033\100\034\064\035\115\001\001\000\012\032" +
"\207\033\100\034\064\035\115\001\001\000\014\031\206" +
"\032\073\033\100\034\064\035\115\001\001\000\014\031" +
"\205\032\073\033\100\034\064\035\115\001\001\000\012" +
"\032\200\033\100\034\064\035\115\001\001\000\014\031" +
"\177\032\073\033\100\034\064\035\115\001\001\000\002" +
"\001\001\000\002\001\001\000\010\033\204\034\064\035" +
"\115\001\001\000\010\033\203\034\064\035\115\001\001" +
"\000\002\001\001\000\002\001\001\000\002\001\001\000" +
"\002\001\001\000\002\001\001\000\002\001\001\000\002" +
"\001\001\000\002\001\001\000\002\001\001\000\002\001" +
"\001\000\030\020\060\024\071\025\072\026\063\027\110" +
"\030\053\031\076\032\073\033\100\034\064\035\105\001" +
"\001\000\002\001\001\000\026\024\220\025\072\026\063" +
"\027\110\030\053\031\076\032\073\033\100\034\064\035" +
"\105\001\001\000\002\001\001\000\002\001\001\000\002" +
"\001\001\000\002\001\001\000\004\016\225\001\001\000" +
"\032\017\230\020\060\024\071\025\072\026\063\027\110" +
"\030\053\031\076\032\073\033\100\034\064\035\105\001" +
"\001\000\004\016\236\001\001\000\026\024\232\025\072" +
"\026\063\027\110\030\053\031\076\032\073\033\100\034" +
"\064\035\105\001\001\000\002\001\001\000\002\001\001" +
"\000\002\001\001\000\004\016\234\001\001\000\032\017" +
"\235\020\060\024\071\025\072\026\063\027\110\030\053" +
"\031\076\032\073\033\100\034\064\035\105\001\001\000" +
"\002\001\001\000\030\020\060\024\071\025\072\026\063" +
"\027\110\030\053\031\076\032\073\033\100\034\064\035" +
"\105\001\001\000\002\001\001\000\002\001\001\000\002" +
"\001\001\000\002\001\001\000\026\024\246\025\072\026" +
"\063\027\110\030\053\031\076\032\073\033\100\034\064" +
"\035\105\001\001\000\002\001\001\000\002\001\001\000" +
"\002\001\001\000\002\001\001\000\020\027\251\030\053" +
"\031\076\032\073\033\100\034\064\035\115\001\001\000" +
"\002\001\001\000\002\001\001\000\004\016\254\001\001" +
"\000\030\020\060\024\071\025\072\026\063\027\110\030" +
"\053\031\076\032\073\033\100\034\064\035\105\001\001" +
"\000\002\001\001\000\026\024\257\025\072\026\063\027" +
"\110\030\053\031\076\032\073\033\100\034\064\035\105" +
"\001\001\000\002\001\001\000\002\001\001\000\032\021" +
"\262\022\143\024\144\025\072\026\063\027\110\030\053" +
"\031\076\032\073\033\100\034\064\035\105\001\001\000" +
"\002\001\001\000\002\001\001\000\002\001\001\000\002" +
"\001\001\000\004\012\267\001\001\000\006\015\274\023" +
"\273\001\001\000\004\023\305\001\001\000\002\001\001" +
"\000\012\005\300\006\027\007\026\036\302\001\001\000" +
"\002\001\001\000\002\001\001\000\010\005\276\006\027" +
"\007\026\001\001\000\002\001\001\000\002\001\001\000" +
"\002\001\001\000\002\001\001\000\006\004\303\010\006" +
"\001\001\000\002\001\001\000\002\001\001\000\002\001" +
"\001\000\010\005\307\006\027\007\026\001\001\000\002" +
"\001\001\000\002\001\001\000\002\001\001\000\010\005" +
"\313\006\027\007\026\001\001\000\002\001\001\000\002" +
"\001\001\000\002\001\001\000\002\001\001" });
/** Access to reduce_goto
table. */
public short[][] reduce_table() {return _reduce_table;}
/** Instance of action encapsulation class. */
protected CUP$parser$actions action_obj;
/** Action encapsulation object initializer. */
protected void init_actions()
{
action_obj = new CUP$parser$actions(this);
}
/** Invoke a user supplied parse action. */
public java_cup.runtime.Symbol do_action(
int act_num,
java_cup.runtime.lr_parser parser,
java.util.Stack stack,
int top)
throws java.lang.Exception
{
/* call code in generated class */
return action_obj.CUP$parser$do_action(act_num, parser, stack, top);
}
/** Indicates start state. */
public int start_state() {return 0;}
/** Indicates start production. */
public int start_production() {return 0;}
/** EOF
Symbol index. */
public int EOF_sym() {return 0;}
/** error
Symbol index. */
public int error_sym() {return 1;}
/** Scan to get the next Symbol. */
public java_cup.runtime.Symbol scan()
throws java.lang.Exception
{
return lexer.yylex();
}
private Yylex lexer;
private File file;
public parser( File file ) {
this();
this.file = file;
try {
lexer = new Yylex( new FileReader( file ) );
}
catch ( IOException exception ) {
throw new Error( "Unable to open file \"" + file + "\"" );
}
}
public String terminal_name( int id ) {
return sym.terminal_name( id );
}
public String non_terminal_name( int id ) {
return sym.non_terminal_name( id );
}
public String rule_name( int id ) {
return sym.rule_name( id );
}
public void report_error( String message, Object info ) {
Print.error().println( file + " ( " + lexer.lineNumber() + " ): " + message );
try {
if ( info instanceof Symbol ) {
Symbol symbol = ( Symbol ) info;
printText( symbol.left, symbol.right );
}
}
catch ( IOException e ) {
}
}
private void printText( int left, int right ) throws IOException {
Reader sourceReader = new FileReader( file );
int veryLeft = Math.max( left - 50, 0 ),
veryRight = Math.min( right + 20,
( int ) file.length() );
char[] text = new char[ veryRight - veryLeft ];
char[] underline = new char[ veryRight - veryLeft ];
sourceReader.skip( veryLeft );
sourceReader.read( text );
for ( int i = 0; i < text.length; i++ ) {
if ( text[ i ] < ' ' ) {
text[ i ] = '|';
underline[ i ] = '|';
}
else
underline[ i ] = ' ';
if ( left <= veryLeft + i && veryLeft + i < right )
underline[ i ] = '^';
}
printLine( text );
printLine( underline );
}
private static void printLine( char[] text ) {
for ( int i = 0; i < text.length; i++ )
Print.error().print( text[ i ] );
Print.error().println();
}
public void syntax_error( Symbol currToken ) {
report_error( "Syntax Error", currToken );
}
}
/** Cup generated class to encapsulate user supplied action code.*/
class CUP$parser$actions {
private final parser parser;
/** Constructor */
CUP$parser$actions(parser parser) {
this.parser = parser;
}
/** Method with the actual generated action code. */
public final java_cup.runtime.Symbol CUP$parser$do_action(
int CUP$parser$act_num,
java_cup.runtime.lr_parser CUP$parser$parser,
java.util.Stack CUP$parser$stack,
int CUP$parser$top)
throws java.lang.Exception
{
/* Symbol object for return from actions */
java_cup.runtime.Symbol CUP$parser$result;
/* select the action based on the action number */
switch (CUP$parser$act_num)
{
/*. . . . . . . . . . . . . . . . . . . .*/
case 93: // ExprList ::= Expr
{
ExprListNode RESULT = null;
int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
ExprListNode exprList = new ExprListNode();
exprList.addElement( expr );
RESULT = exprList;
CUP$parser$result = new java_cup.runtime.Symbol(16/*ExprList*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 92: // ExprList ::= ExprList COMMA Expr
{
ExprListNode RESULT = null;
int exprListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
int exprListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
ExprListNode exprList = (ExprListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
exprList.addElement( expr );
RESULT = exprList;
CUP$parser$result = new java_cup.runtime.Symbol(16/*ExprList*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 91: // ExprListOpt ::=
{
ExprListNode RESULT = null;
RESULT = new ExprListNode();
CUP$parser$result = new java_cup.runtime.Symbol(15/*ExprListOpt*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 90: // ExprListOpt ::= ExprList
{
ExprListNode RESULT = null;
int exprListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int exprListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
ExprListNode exprList = (ExprListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = exprList;
CUP$parser$result = new java_cup.runtime.Symbol(15/*ExprListOpt*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 89: // IdentList ::= IDENT
{
IdentListNode RESULT = null;
int identleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int identright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
String ident = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
IdentListNode identList = new IdentListNode();
identList.addElement( ident );
RESULT = identList;
CUP$parser$result = new java_cup.runtime.Symbol(17/*IdentList*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 88: // IdentList ::= IdentList COMMA IDENT
{
IdentListNode RESULT = null;
int identListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
int identListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
IdentListNode identList = (IdentListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
int identleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int identright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
String ident = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
identList.addElement( ident );
RESULT = identList;
CUP$parser$result = new java_cup.runtime.Symbol(17/*IdentList*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 87: // Variable ::= Primary DOT IDENT
{
VariableNode RESULT = null;
int structureleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
int structureright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
ExprNode structure = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
int fieldleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int fieldright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
String field = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new FieldVariableNode( structure, field );
CUP$parser$result = new java_cup.runtime.Symbol(27/*Variable*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 86: // Variable ::= Primary LEFTSQ Expr RIGHTSQ
{
VariableNode RESULT = null;
int arrayleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left;
int arrayright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right;
ExprNode array = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value;
int subscriptleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
int subscriptright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
ExprNode subscript = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
RESULT = new SubscriptVariableNode( array, subscript );
CUP$parser$result = new java_cup.runtime.Symbol(27/*Variable*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 85: // Variable ::= IDENT
{
VariableNode RESULT = null;
int identleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int identright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
String ident = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new IdentVariableNode( ident );
CUP$parser$result = new java_cup.runtime.Symbol(27/*Variable*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 84: // Primary ::= CHR LEFT Expr RIGHT
{
ExprNode RESULT = null;
int actualParamleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
int actualParamright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
ExprNode actualParam = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
RESULT = new ChrNode( actualParam );
CUP$parser$result = new java_cup.runtime.Symbol(26/*Primary*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 83: // Primary ::= ORD LEFT Expr RIGHT
{
ExprNode RESULT = null;
int actualParamleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
int actualParamright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
ExprNode actualParam = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
RESULT = new OrdNode( actualParam );
CUP$parser$result = new java_cup.runtime.Symbol(26/*Primary*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 82: // Primary ::= IDENT LEFT ExprListOpt RIGHT
{
ExprNode RESULT = null;
int identleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left;
int identright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right;
String ident = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value;
int actualParamsleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
int actualParamsright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
ExprListNode actualParams = (ExprListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
RESULT = new InvocationNode( ident, actualParams );
CUP$parser$result = new java_cup.runtime.Symbol(26/*Primary*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 81: // Primary ::= Variable
{
ExprNode RESULT = null;
int variableleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int variableright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
VariableNode variable = (VariableNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new VarExprNode( variable );
// RESULT = variable;
CUP$parser$result = new java_cup.runtime.Symbol(26/*Primary*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 80: // Primary ::= STRINGVALUE
{
ExprNode RESULT = null;
int valueleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int valueright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
String value = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new StringValueNode(
Convert.parseString( value.substring( 1, value.length() - 1 ) ) );
CUP$parser$result = new java_cup.runtime.Symbol(26/*Primary*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 79: // Primary ::= CHARVALUE
{
ExprNode RESULT = null;
int valueleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int valueright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
String value = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new CharValueNode(
Convert.parseChar( value.substring( 1, value.length() - 1 ) ) );
CUP$parser$result = new java_cup.runtime.Symbol(26/*Primary*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 78: // Primary ::= NULL
{
ExprNode RESULT = null;
RESULT = new NullValueNode();
CUP$parser$result = new java_cup.runtime.Symbol(26/*Primary*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 77: // Primary ::= REALVALUE
{
ExprNode RESULT = null;
int valueleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int valueright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
String value = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new RealValueNode( new Double( value ) );
CUP$parser$result = new java_cup.runtime.Symbol(26/*Primary*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 76: // Primary ::= INTVALUE
{
ExprNode RESULT = null;
int valueleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int valueright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
String value = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new IntValueNode( new Integer( value ) );
CUP$parser$result = new java_cup.runtime.Symbol(26/*Primary*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 75: // Primary ::= LEFT Expr RIGHT
{
ExprNode RESULT = null;
int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
RESULT = expr;
CUP$parser$result = new java_cup.runtime.Symbol(26/*Primary*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 74: // PrefixExpr ::= Primary
{
ExprNode RESULT = null;
int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = expr;
CUP$parser$result = new java_cup.runtime.Symbol(25/*PrefixExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 73: // PrefixExpr ::= NEW Type LEFTCURLY ExprListOpt RIGHTCURLY
{
ExprNode RESULT = null;
int typeleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left;
int typeright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right;
TypeNode type = (TypeNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value;
int exprListOptleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
int exprListOptright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
ExprListNode exprListOpt = (ExprListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
RESULT = new MultipleNode( type, exprListOpt );
CUP$parser$result = new java_cup.runtime.Symbol(25/*PrefixExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 72: // PrefixExpr ::= NEW Type
{
ExprNode RESULT = null;
int typeleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int typeright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
TypeNode type = (TypeNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new CreationNode( type );
CUP$parser$result = new java_cup.runtime.Symbol(25/*PrefixExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 71: // PrefixExpr ::= NEW LEFTSQ Expr RIGHTSQ Type
{
ExprNode RESULT = null;
int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
int typeleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int typeright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
TypeNode type = (TypeNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new ArrayCreationNode( expr, type );
CUP$parser$result = new java_cup.runtime.Symbol(25/*PrefixExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 70: // PrefixExpr ::= SIZE PrefixExpr
{
ExprNode RESULT = null;
int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new SizeNode( expr );
CUP$parser$result = new java_cup.runtime.Symbol(25/*PrefixExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 69: // PrefixExpr ::= NOT PrefixExpr
{
ExprNode RESULT = null;
int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new NotNode( expr );
CUP$parser$result = new java_cup.runtime.Symbol(25/*PrefixExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 68: // PrefixExpr ::= MINUS PrefixExpr
{
ExprNode RESULT = null;
int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new NegateNode( expr );
CUP$parser$result = new java_cup.runtime.Symbol(25/*PrefixExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 67: // MulExpr ::= PrefixExpr
{
ExprNode RESULT = null;
int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = expr;
CUP$parser$result = new java_cup.runtime.Symbol(24/*MulExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 66: // MulExpr ::= MulExpr DIVIDE PrefixExpr
{
ExprNode RESULT = null;
int expr1left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
int expr1right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
ExprNode expr1 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
int expr2left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int expr2right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
ExprNode expr2 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new DivideNode( expr1, expr2 );
CUP$parser$result = new java_cup.runtime.Symbol(24/*MulExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 65: // MulExpr ::= MulExpr TIMES PrefixExpr
{
ExprNode RESULT = null;
int expr1left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
int expr1right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
ExprNode expr1 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
int expr2left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int expr2right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
ExprNode expr2 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new TimesNode( expr1, expr2 );
CUP$parser$result = new java_cup.runtime.Symbol(24/*MulExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 64: // AddExpr ::= MulExpr
{
ExprNode RESULT = null;
int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = expr;
CUP$parser$result = new java_cup.runtime.Symbol(23/*AddExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 63: // AddExpr ::= AddExpr MINUS MulExpr
{
ExprNode RESULT = null;
int expr1left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
int expr1right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
ExprNode expr1 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
int expr2left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int expr2right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
ExprNode expr2 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new MinusNode( expr1, expr2 );
CUP$parser$result = new java_cup.runtime.Symbol(23/*AddExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 62: // AddExpr ::= AddExpr PLUS MulExpr
{
ExprNode RESULT = null;
int expr1left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
int expr1right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
ExprNode expr1 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
int expr2left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int expr2right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
ExprNode expr2 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new PlusNode( expr1, expr2 );
CUP$parser$result = new java_cup.runtime.Symbol(23/*AddExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 61: // RelExpr ::= AddExpr
{
ExprNode RESULT = null;
int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = expr;
CUP$parser$result = new java_cup.runtime.Symbol(22/*RelExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 60: // RelExpr ::= AddExpr NE AddExpr
{
ExprNode RESULT = null;
int expr1left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
int expr1right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
ExprNode expr1 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
int expr2left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int expr2right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
ExprNode expr2 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new NotEqualNode( expr1, expr2 );
CUP$parser$result = new java_cup.runtime.Symbol(22/*RelExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 59: // RelExpr ::= AddExpr EQ AddExpr
{
ExprNode RESULT = null;
int expr1left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
int expr1right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
ExprNode expr1 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
int expr2left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int expr2right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
ExprNode expr2 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new EqualNode( expr1, expr2 );
CUP$parser$result = new java_cup.runtime.Symbol(22/*RelExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 58: // RelExpr ::= AddExpr GE AddExpr
{
ExprNode RESULT = null;
int expr1left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
int expr1right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
ExprNode expr1 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
int expr2left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int expr2right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
ExprNode expr2 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new GreaterEqualNode( expr1, expr2 );
CUP$parser$result = new java_cup.runtime.Symbol(22/*RelExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 57: // RelExpr ::= AddExpr LE AddExpr
{
ExprNode RESULT = null;
int expr1left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
int expr1right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
ExprNode expr1 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
int expr2left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int expr2right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
ExprNode expr2 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new LessEqualNode( expr1, expr2 );
CUP$parser$result = new java_cup.runtime.Symbol(22/*RelExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 56: // RelExpr ::= AddExpr GT AddExpr
{
ExprNode RESULT = null;
int expr1left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
int expr1right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
ExprNode expr1 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
int expr2left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int expr2right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
ExprNode expr2 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new GreaterThanNode( expr1, expr2 );
CUP$parser$result = new java_cup.runtime.Symbol(22/*RelExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 55: // RelExpr ::= AddExpr LT AddExpr
{
ExprNode RESULT = null;
int expr1left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
int expr1right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
ExprNode expr1 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
int expr2left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int expr2right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
ExprNode expr2 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new LessThanNode( expr1, expr2 );
CUP$parser$result = new java_cup.runtime.Symbol(22/*RelExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 54: // AndExpr ::= RelExpr
{
ExprNode RESULT = null;
int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = expr;
CUP$parser$result = new java_cup.runtime.Symbol(21/*AndExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 53: // AndExpr ::= AndExpr AND RelExpr
{
ExprNode RESULT = null;
int expr1left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
int expr1right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
ExprNode expr1 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
int expr2left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int expr2right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
ExprNode expr2 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new AndNode( expr1, expr2 );
CUP$parser$result = new java_cup.runtime.Symbol(21/*AndExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 52: // OrExpr ::= AndExpr
{
ExprNode RESULT = null;
int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = expr;
CUP$parser$result = new java_cup.runtime.Symbol(20/*OrExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 51: // OrExpr ::= OrExpr OR AndExpr
{
ExprNode RESULT = null;
int expr1left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
int expr1right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
ExprNode expr1 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
int expr2left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int expr2right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
ExprNode expr2 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new OrNode( expr1, expr2 );
CUP$parser$result = new java_cup.runtime.Symbol(20/*OrExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 50: // AssignExpr ::= OrExpr
{
ExprNode RESULT = null;
int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = expr;
CUP$parser$result = new java_cup.runtime.Symbol(19/*AssignExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 49: // AssignExpr ::= Variable ASSIGN AssignExpr
{
ExprNode RESULT = null;
int variableleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
int variableright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
VariableNode variable = (VariableNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
int expr2left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int expr2right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
ExprNode expr2 = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new AssignNode( variable, expr2 );
CUP$parser$result = new java_cup.runtime.Symbol(19/*AssignExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 48: // Expr ::= AssignExpr
{
ExprNode RESULT = null;
int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = expr;
CUP$parser$result = new java_cup.runtime.Symbol(18/*Expr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 47: // ElseOpt ::= ELIF Expr THEN StmtList ElseOpt
{
ElseOptNode RESULT = null;
int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left;
int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right;
ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value;
int stmtListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
int stmtListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
StmtListNode stmtList = (StmtListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
int elseOptleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int elseOptright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
ElseOptNode elseOpt = (ElseOptNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new ElseOpt2Node( expr, stmtList, elseOpt );
CUP$parser$result = new java_cup.runtime.Symbol(13/*ElseOpt*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 46: // ElseOpt ::= ELSE StmtList
{
ElseOptNode RESULT = null;
int stmtListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int stmtListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
StmtListNode stmtList = (StmtListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new ElseOpt1Node( stmtList );
CUP$parser$result = new java_cup.runtime.Symbol(13/*ElseOpt*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 45: // ElseOpt ::=
{
ElseOptNode RESULT = null;
RESULT = new ElseOpt0Node();
CUP$parser$result = new java_cup.runtime.Symbol(13/*ElseOpt*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 44: // Stmt ::= error END
{
StmtNode RESULT = null;
RESULT = new ErrorStmtNode();
CUP$parser$result = new java_cup.runtime.Symbol(14/*Stmt*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 43: // Stmt ::= error SEMICOLON
{
StmtNode RESULT = null;
RESULT = new ErrorStmtNode();
CUP$parser$result = new java_cup.runtime.Symbol(14/*Stmt*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 42: // Stmt ::= RETURN Expr SEMICOLON
{
StmtNode RESULT = null;
int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
RESULT = new ReturnExprStmtNode( expr );
CUP$parser$result = new java_cup.runtime.Symbol(14/*Stmt*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 41: // Stmt ::= RETURN SEMICOLON
{
StmtNode RESULT = null;
RESULT = new ReturnStmtNode();
CUP$parser$result = new java_cup.runtime.Symbol(14/*Stmt*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 40: // Stmt ::= FOR Expr SEMICOLON Expr SEMICOLON Expr DO StmtList END
{
StmtNode RESULT = null;
int initialleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-7)).left;
int initialright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-7)).right;
ExprNode initial = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-7)).value;
int condleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)).left;
int condright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)).right;
ExprNode cond = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-5)).value;
int incrementleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left;
int incrementright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right;
ExprNode increment = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value;
int stmtListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
int stmtListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
StmtListNode stmtList = (StmtListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
RESULT = new ForStmtNode( initial, cond, increment, stmtList );
CUP$parser$result = new java_cup.runtime.Symbol(14/*Stmt*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-8)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 39: // Stmt ::= DO StmtList END WHILE Expr SEMICOLON
{
StmtNode RESULT = null;
int stmtListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left;
int stmtListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).right;
StmtListNode stmtList = (StmtListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-4)).value;
int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
RESULT = new DoStmtNode( stmtList, expr );
CUP$parser$result = new java_cup.runtime.Symbol(14/*Stmt*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 38: // Stmt ::= WHILE Expr DO StmtList END
{
StmtNode RESULT = null;
int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left;
int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right;
ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value;
int stmtListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
int stmtListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
StmtListNode stmtList = (StmtListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
RESULT = new WhileStmtNode( expr, stmtList );
CUP$parser$result = new java_cup.runtime.Symbol(14/*Stmt*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 37: // Stmt ::= IF Expr THEN StmtList ElseOpt END
{
StmtNode RESULT = null;
int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left;
int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).right;
ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-4)).value;
int stmtListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
int stmtListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
StmtListNode stmtList = (StmtListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
int elseOptleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
int elseOptright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
ElseOptNode elseOpt = (ElseOptNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
RESULT = new IfStmtNode( expr, stmtList, elseOpt );
CUP$parser$result = new java_cup.runtime.Symbol(14/*Stmt*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 36: // Stmt ::= PRINTLN LEFT Expr RIGHT SEMICOLON
{
StmtNode RESULT = null;
int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
RESULT = new Println1StmtNode( expr );
CUP$parser$result = new java_cup.runtime.Symbol(14/*Stmt*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 35: // Stmt ::= PRINTLN LEFT RIGHT SEMICOLON
{
StmtNode RESULT = null;
RESULT = new Println0StmtNode();
CUP$parser$result = new java_cup.runtime.Symbol(14/*Stmt*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 34: // Stmt ::= PRINT LEFT Expr RIGHT SEMICOLON
{
StmtNode RESULT = null;
int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
RESULT = new PrintStmtNode( expr );
CUP$parser$result = new java_cup.runtime.Symbol(14/*Stmt*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 33: // Stmt ::= Expr SEMICOLON
{
StmtNode RESULT = null;
int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
RESULT = new ExprStmtNode( expr );
CUP$parser$result = new java_cup.runtime.Symbol(14/*Stmt*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 32: // Stmt ::= SEMICOLON
{
StmtNode RESULT = null;
RESULT = new NullStmtNode();
CUP$parser$result = new java_cup.runtime.Symbol(14/*Stmt*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 31: // StmtList ::=
{
StmtListNode RESULT = null;
RESULT = new StmtListNode();
CUP$parser$result = new java_cup.runtime.Symbol(12/*StmtList*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 30: // StmtList ::= StmtList Stmt
{
StmtListNode RESULT = null;
int stmtListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
int stmtListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
StmtListNode stmtList = (StmtListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
int stmtleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int stmtright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
StmtNode stmt = (StmtNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
stmtList.addElement( stmt );
RESULT = stmtList;
CUP$parser$result = new java_cup.runtime.Symbol(12/*StmtList*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 29: // StructType ::= STRUCT LEFT FieldDeclList RIGHT
{
StructTypeNode RESULT = null;
int declListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
int declListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
DeclListNode declList = (DeclListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
RESULT = new StructTypeNode( declList );
CUP$parser$result = new java_cup.runtime.Symbol(5/*StructType*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 28: // ArrayType ::= LEFTSQ RIGHTSQ Type
{
ArrayTypeNode RESULT = null;
int typeleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int typeright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
TypeNode type = (TypeNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new ArrayTypeNode( type );
CUP$parser$result = new java_cup.runtime.Symbol(4/*ArrayType*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 27: // Type ::= StructType
{
TypeNode RESULT = null;
int typeleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int typeright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
StructTypeNode type = (StructTypeNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = type;
CUP$parser$result = new java_cup.runtime.Symbol(3/*Type*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 26: // Type ::= ArrayType
{
TypeNode RESULT = null;
int typeleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int typeright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
ArrayTypeNode type = (ArrayTypeNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = type;
CUP$parser$result = new java_cup.runtime.Symbol(3/*Type*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 25: // Type ::= IDENT
{
TypeNode RESULT = null;
int identleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int identright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
String ident = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new TypeIdentNode( ident );
CUP$parser$result = new java_cup.runtime.Symbol(3/*Type*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 24: // Type ::= REAL
{
TypeNode RESULT = null;
RESULT = new RealTypeNode();
CUP$parser$result = new java_cup.runtime.Symbol(3/*Type*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 23: // Type ::= STRING
{
TypeNode RESULT = null;
RESULT = new StringTypeNode();
CUP$parser$result = new java_cup.runtime.Symbol(3/*Type*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 22: // Type ::= BOOL
{
TypeNode RESULT = null;
RESULT = new BoolTypeNode();
CUP$parser$result = new java_cup.runtime.Symbol(3/*Type*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 21: // Type ::= CHAR
{
TypeNode RESULT = null;
RESULT = new CharTypeNode();
CUP$parser$result = new java_cup.runtime.Symbol(3/*Type*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 20: // Type ::= INT
{
TypeNode RESULT = null;
RESULT = new IntTypeNode();
CUP$parser$result = new java_cup.runtime.Symbol(3/*Type*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 19: // ReturnType ::= VOID
{
TypeNode RESULT = null;
RESULT = new VoidTypeNode();
CUP$parser$result = new java_cup.runtime.Symbol(28/*ReturnType*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 18: // ReturnType ::= Type
{
TypeNode RESULT = null;
int typeleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int typeright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
TypeNode type = (TypeNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = type;
CUP$parser$result = new java_cup.runtime.Symbol(28/*ReturnType*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 17: // FormalParamDecl ::= error SEMICOLON
{
DeclNode RESULT = null;
RESULT = new ErrorDeclNode();
CUP$parser$result = new java_cup.runtime.Symbol(11/*FormalParamDecl*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 16: // FormalParamDecl ::= VAR IdentList COLON Type SEMICOLON
{
DeclNode RESULT = null;
int identListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left;
int identListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right;
IdentListNode identList = (IdentListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value;
int typeleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
int typeright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
TypeNode type = (TypeNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
RESULT = new VarParamDeclNode( identList, type );
CUP$parser$result = new java_cup.runtime.Symbol(11/*FormalParamDecl*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 15: // FormalParamDecl ::= IdentList COLON Type SEMICOLON
{
DeclNode RESULT = null;
int identListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left;
int identListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right;
IdentListNode identList = (IdentListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value;
int typeleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
int typeright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
TypeNode type = (TypeNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
RESULT = new ValueParamDeclNode( identList, type );
CUP$parser$result = new java_cup.runtime.Symbol(11/*FormalParamDecl*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 14: // FieldDecl ::= error SEMICOLON
{
DeclNode RESULT = null;
RESULT = new ErrorDeclNode();
CUP$parser$result = new java_cup.runtime.Symbol(10/*FieldDecl*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 13: // FieldDecl ::= IdentList COLON Type SEMICOLON
{
DeclNode RESULT = null;
int identListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left;
int identListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right;
IdentListNode identList = (IdentListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value;
int typeleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
int typeright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
TypeNode type = (TypeNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
RESULT = new FieldDeclNode( identList, type );
CUP$parser$result = new java_cup.runtime.Symbol(10/*FieldDecl*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 12: // LocalDecl ::= error SEMICOLON
{
DeclNode RESULT = null;
RESULT = new ErrorDeclNode();
CUP$parser$result = new java_cup.runtime.Symbol(9/*LocalDecl*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 11: // LocalDecl ::= FUNCT IDENT LEFT FormalParamDeclList RIGHT ReturnType Block
{
DeclNode RESULT = null;
int identleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)).left;
int identright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)).right;
String ident = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-5)).value;
int formalParamsleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left;
int formalParamsright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right;
DeclListNode formalParams = (DeclListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value;
int returnTypeleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
int returnTyperight = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
TypeNode returnType = (TypeNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
int blockleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int blockright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
BlockNode block = (BlockNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new FunctionDeclNode( ident, formalParams, returnType, block );
CUP$parser$result = new java_cup.runtime.Symbol(9/*LocalDecl*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-6)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 10: // LocalDecl ::= VAR IdentList COLON Type SEMICOLON
{
DeclNode RESULT = null;
int identListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left;
int identListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right;
IdentListNode identList = (IdentListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value;
int typeleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
int typeright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
TypeNode type = (TypeNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
RESULT = new VarDeclNode( identList, type );
CUP$parser$result = new java_cup.runtime.Symbol(9/*LocalDecl*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 9: // LocalDecl ::= TYPE IDENT ASSIGN Type SEMICOLON
{
DeclNode RESULT = null;
int identleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left;
int identright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right;
String ident = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value;
int typeleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
int typeright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
TypeNode type = (TypeNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
RESULT = new TypeDeclNode( ident, type );
CUP$parser$result = new java_cup.runtime.Symbol(9/*LocalDecl*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 8: // FormalParamDeclList ::=
{
DeclListNode RESULT = null;
RESULT = new DeclListNode();
CUP$parser$result = new java_cup.runtime.Symbol(8/*FormalParamDeclList*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 7: // FormalParamDeclList ::= FormalParamDeclList FormalParamDecl
{
DeclListNode RESULT = null;
int declListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
int declListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
DeclListNode declList = (DeclListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
int declleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int declright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
DeclNode decl = (DeclNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
declList.addElement( decl );
RESULT = declList;
CUP$parser$result = new java_cup.runtime.Symbol(8/*FormalParamDeclList*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 6: // FieldDeclList ::=
{
DeclListNode RESULT = null;
RESULT = new DeclListNode();
CUP$parser$result = new java_cup.runtime.Symbol(7/*FieldDeclList*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 5: // FieldDeclList ::= FieldDeclList FieldDecl
{
DeclListNode RESULT = null;
int declListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
int declListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
DeclListNode declList = (DeclListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
int declleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int declright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
DeclNode decl = (DeclNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
declList.addElement( decl );
RESULT = declList;
CUP$parser$result = new java_cup.runtime.Symbol(7/*FieldDeclList*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 4: // LocalDeclList ::=
{
DeclListNode RESULT = null;
RESULT = new DeclListNode();
CUP$parser$result = new java_cup.runtime.Symbol(6/*LocalDeclList*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 3: // LocalDeclList ::= LocalDeclList LocalDecl
{
DeclListNode RESULT = null;
int declListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
int declListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
DeclListNode declList = (DeclListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
int declleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int declright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
DeclNode decl = (DeclNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
declList.addElement( decl );
RESULT = declList;
CUP$parser$result = new java_cup.runtime.Symbol(6/*LocalDeclList*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 2: // Block ::= LocalDeclList BEGIN StmtList END
{
BlockNode RESULT = null;
int localDeclListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left;
int localDeclListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right;
DeclListNode localDeclList = (DeclListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value;
int stmtListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
int stmtListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
StmtListNode stmtList = (StmtListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
RESULT = new BlockNode( localDeclList, stmtList );
CUP$parser$result = new java_cup.runtime.Symbol(2/*Block*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 1: // Program ::= PROGRAM Block DOT
{
ProgramNode RESULT = null;
int blockleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
int blockright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
BlockNode block = (BlockNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
RESULT = new ProgramNode( block );
CUP$parser$result = new java_cup.runtime.Symbol(1/*Program*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 0: // $START ::= Program EOF
{
Object RESULT = null;
int start_valleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
int start_valright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
ProgramNode start_val = (ProgramNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
RESULT = start_val;
CUP$parser$result = new java_cup.runtime.Symbol(0/*$START*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
/* ACCEPT */
CUP$parser$parser.done_parsing();
return CUP$parser$result;
/* . . . . . .*/
default:
throw new Exception(
"Invalid action number found in internal parse table");
}
}
}