//----------------------------------------------------
// The following code was generated by CUP v0.10k
// Wed May 03 15:15:09 NZST 2006
//----------------------------------------------------
package grammar;
import java.io.*;
import java.util.*;
import java_cup.runtime.*;
import node.*;
import node.declNode.*;
import node.declNode.declaratorNode.*;
import node.stmtNode.*;
import node.exprNode.*;
import node.exprNode.prefixNode.*;
import node.exprNode.valueNode.*;
import node.exprNode.binaryNode.*;
import node.exprNode.binaryNode.arithNode.*;
import node.exprNode.binaryNode.relationNode.*;
import node.exprNode.binaryNode.boolNode.*;
import node.exprNode.primaryNode.*;
import node.exprNode.variableNode.*;
import text.*;
/** CUP v0.10k generated parser.
* @version Wed May 03 15:15:09 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\111\000\002\002\004\000\002\003\010\000\002\004" +
"\005\000\002\004\005\000\002\004\002\000\002\006\004" +
"\000\002\006\002\000\002\010\003\000\002\010\004\000" +
"\002\010\007\000\002\010\006\000\002\010\007\000\002" +
"\010\010\000\002\010\007\000\002\010\010\000\002\010" +
"\013\000\002\010\004\000\002\010\005\000\002\010\004" +
"\000\002\010\004\000\002\007\002\000\002\007\004\000" +
"\002\007\007\000\002\016\003\000\002\017\005\000\002" +
"\017\003\000\002\020\005\000\002\020\003\000\002\021" +
"\005\000\002\021\003\000\002\022\005\000\002\022\005" +
"\000\002\022\005\000\002\022\005\000\002\022\005\000" +
"\002\022\005\000\002\022\003\000\002\023\005\000\002" +
"\023\005\000\002\023\003\000\002\024\005\000\002\024" +
"\005\000\002\024\003\000\002\025\004\000\002\025\004" +
"\000\002\025\004\000\002\025\006\000\002\025\003\000" +
"\002\026\005\000\002\026\003\000\002\026\003\000\002" +
"\026\003\000\002\026\003\000\002\026\003\000\002\026" +
"\006\000\002\026\006\000\002\026\006\000\002\026\012" +
"\000\002\026\005\000\002\027\003\000\002\027\006\000" +
"\002\013\003\000\002\013\002\000\002\014\005\000\002" +
"\014\003\000\002\015\005\000\002\015\003\000\002\005" +
"\003\000\002\005\005\000\002\011\003\000\002\011\002" +
"\000\002\012\005\000\002\012\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\243\000\004\004\005\001\002\000\004\002\245\001" +
"\002\000\006\041\ufffd\043\006\001\002\000\006\003\233" +
"\062\234\001\002\000\004\041\010\001\002\000\062\003" +
"\ufffb\005\ufffb\006\ufffb\007\ufffb\013\ufffb\015\ufffb\020\ufffb" +
"\026\ufffb\035\ufffb\036\ufffb\042\ufffb\044\ufffb\045\ufffb\046" +
"\ufffb\047\ufffb\051\ufffb\053\ufffb\054\ufffb\055\ufffb\056\ufffb" +
"\057\ufffb\060\ufffb\061\ufffb\062\ufffb\001\002\000\062\003" +
"\043\005\042\006\036\007\030\013\034\015\014\020\041" +
"\026\023\035\012\036\045\042\026\044\021\045\033\046" +
"\051\047\054\051\025\053\053\054\052\055\017\056\046" +
"\057\050\060\016\061\040\062\015\001\002\000\004\013" +
"\220\001\002\000\024\010\uffe4\014\uffe4\015\uffe4\016\uffe4" +
"\024\uffe4\025\uffe4\040\uffe4\045\uffe4\050\uffe4\001\002\000" +
"\066\003\ufffa\005\ufffa\006\ufffa\007\ufffa\011\ufffa\012\ufffa" +
"\013\ufffa\015\ufffa\020\ufffa\026\ufffa\035\ufffa\036\ufffa\042" +
"\ufffa\044\ufffa\045\ufffa\046\ufffa\047\ufffa\051\ufffa\053\ufffa" +
"\054\ufffa\055\ufffa\056\ufffa\057\ufffa\060\ufffa\061\ufffa\062" +
"\ufffa\001\002\000\056\010\uffc6\013\uffc6\014\uffc6\015\uffc6" +
"\016\uffc6\017\uffc6\020\uffc6\021\uffc6\022\uffc6\023\uffc6\024" +
"\uffc6\025\uffc6\027\uffc6\030\uffc6\031\uffc6\032\uffc6\033\uffc6" +
"\034\uffc6\037\uffc6\040\uffc6\045\uffc6\050\uffc6\001\002\000" +
"\054\010\uffce\013\uffce\014\uffce\015\uffce\016\uffce\017\uffce" +
"\020\uffce\021\uffce\022\uffce\024\uffce\025\uffce\027\uffce\030" +
"\uffce\031\uffce\032\uffce\033\uffce\034\uffce\037\uffce\040\uffce" +
"\045\uffce\050\uffce\001\002\000\004\013\215\001\002\000" +
"\066\003\ufffc\005\ufffc\006\ufffc\007\ufffc\011\ufffc\012\ufffc" +
"\013\ufffc\015\ufffc\020\ufffc\026\ufffc\035\ufffc\036\ufffc\042" +
"\ufffc\044\ufffc\045\ufffc\046\ufffc\047\ufffc\051\ufffc\053\ufffc" +
"\054\ufffc\055\ufffc\056\ufffc\057\ufffc\060\ufffc\061\ufffc\062" +
"\ufffc\001\002\000\036\013\034\020\041\026\023\035\012" +
"\036\045\047\054\053\053\054\052\055\017\056\046\057" +
"\050\060\016\061\040\062\015\001\002\000\022\010\uffe8" +
"\014\uffe8\015\uffe8\016\uffe8\024\207\040\uffe8\045\uffe8\050" +
"\uffe8\001\002\000\036\013\034\020\041\026\023\035\012" +
"\036\045\047\054\053\053\054\052\055\017\056\046\057" +
"\050\060\016\061\040\062\015\001\002\000\054\010\uffd2" +
"\013\200\014\uffd2\015\uffd2\016\uffd2\017\uffd2\020\uffd2\021" +
"\uffd2\022\uffd2\024\uffd2\025\uffd2\027\uffd2\030\uffd2\031\uffd2" +
"\032\uffd2\033\uffd2\034\uffd2\037\201\040\uffd2\045\uffd2\050" +
"\uffd2\001\002\000\040\013\034\015\175\020\041\026\023" +
"\035\012\036\045\047\054\053\053\054\052\055\017\056" +
"\046\057\050\060\016\061\040\062\015\001\002\000\004" +
"\052\174\001\002\000\004\015\173\001\002\000\036\013" +
"\034\020\041\026\023\035\012\036\045\047\054\053\053" +
"\054\052\055\017\056\046\057\050\060\016\061\040\062" +
"\015\001\002\000\020\010\uffea\014\uffea\015\uffea\016\uffea" +
"\040\uffea\045\uffea\050\uffea\001\002\000\050\010\uffda\014" +
"\uffda\015\uffda\016\uffda\017\uffda\020\uffda\021\140\022\137" +
"\024\uffda\025\uffda\027\uffda\030\uffda\031\uffda\032\uffda\033" +
"\uffda\034\uffda\040\uffda\045\uffda\050\uffda\001\002\000\062" +
"\003\ufffb\005\ufffb\006\ufffb\007\ufffb\013\ufffb\015\ufffb\020" +
"\ufffb\026\ufffb\035\ufffb\036\ufffb\042\ufffb\044\ufffb\045\ufffb" +
"\046\ufffb\047\ufffb\051\ufffb\053\ufffb\054\ufffb\055\ufffb\056" +
"\ufffb\057\ufffb\060\ufffb\061\ufffb\062\ufffb\001\002\000\036" +
"\013\034\020\041\026\023\035\012\036\045\047\054\053" +
"\053\054\052\055\017\056\046\057\050\060\016\061\040" +
"\062\015\001\002\000\044\010\uffdd\014\uffdd\015\uffdd\016" +
"\uffdd\017\127\020\131\024\uffdd\025\uffdd\027\124\030\126" +
"\031\130\032\132\033\125\034\133\040\uffdd\045\uffdd\050" +
"\uffdd\001\002\000\004\013\116\001\002\000\050\010\uffd7" +
"\014\uffd7\015\uffd7\016\uffd7\017\uffd7\020\uffd7\021\uffd7\022" +
"\uffd7\024\uffd7\025\uffd7\027\uffd7\030\uffd7\031\uffd7\032\uffd7" +
"\033\uffd7\034\uffd7\040\uffd7\045\uffd7\050\uffd7\001\002\000" +
"\054\010\uffcd\013\uffcd\014\uffcd\015\uffcd\016\uffcd\017\uffcd" +
"\020\uffcd\021\uffcd\022\uffcd\024\uffcd\025\uffcd\027\uffcd\030" +
"\uffcd\031\uffcd\032\uffcd\033\uffcd\034\uffcd\037\uffcd\040\uffcd" +
"\045\uffcd\050\uffcd\001\002\000\036\013\034\020\041\026" +
"\023\035\012\036\045\047\054\053\053\054\052\055\017" +
"\056\046\057\050\060\016\061\040\062\015\001\002\000" +
"\004\013\111\001\002\000\006\015\107\042\110\001\002" +
"\000\056\010\uffcc\013\uffcc\014\uffcc\015\uffcc\016\uffcc\017" +
"\uffcc\020\uffcc\021\uffcc\022\uffcc\023\105\024\uffcc\025\uffcc" +
"\027\uffcc\030\uffcc\031\uffcc\032\uffcc\033\uffcc\034\uffcc\037" +
"\uffcc\040\uffcc\045\uffcc\050\uffcc\001\002\000\004\037\102" +
"\001\002\000\004\013\077\001\002\000\024\010\uffe6\014" +
"\uffe6\015\uffe6\016\uffe6\024\uffe6\025\075\040\uffe6\045\uffe6" +
"\050\uffe6\001\002\000\054\010\uffd0\013\uffd0\014\uffd0\015" +
"\uffd0\016\uffd0\017\uffd0\020\uffd0\021\uffd0\022\uffd0\024\uffd0" +
"\025\uffd0\027\uffd0\030\uffd0\031\uffd0\032\uffd0\033\uffd0\034" +
"\uffd0\037\uffd0\040\uffd0\045\uffd0\050\uffd0\001\002\000\036" +
"\013\034\020\041\026\023\035\012\036\045\047\054\053" +
"\053\054\052\055\017\056\046\057\050\060\016\061\040" +
"\062\015\001\002\000\054\010\uffcf\013\uffcf\014\uffcf\015" +
"\uffcf\016\uffcf\017\uffcf\020\uffcf\021\uffcf\022\uffcf\024\uffcf" +
"\025\uffcf\027\uffcf\030\uffcf\031\uffcf\032\uffcf\033\uffcf\034" +
"\uffcf\037\uffcf\040\uffcf\045\uffcf\050\uffcf\001\002\000\036" +
"\013\034\020\041\026\023\035\012\036\045\047\054\053" +
"\053\054\052\055\017\056\046\057\050\060\016\061\040" +
"\062\015\001\002\000\040\013\034\020\041\026\023\035" +
"\012\036\045\047\054\050\uffbb\053\053\054\052\055\017" +
"\056\046\057\050\060\016\061\040\062\015\001\002\000" +
"\004\050\062\001\002\000\010\014\uffb9\016\uffb9\050\uffb9" +
"\001\002\000\010\014\uffbc\016\060\050\uffbc\001\002\000" +
"\036\013\034\020\041\026\023\035\012\036\045\047\054" +
"\053\053\054\052\055\017\056\046\057\050\060\016\061" +
"\040\062\015\001\002\000\010\014\uffba\016\uffba\050\uffba" +
"\001\002\000\054\010\uffc7\013\uffc7\014\uffc7\015\uffc7\016" +
"\uffc7\017\uffc7\020\uffc7\021\uffc7\022\uffc7\024\uffc7\025\uffc7" +
"\027\uffc7\030\uffc7\031\uffc7\032\uffc7\033\uffc7\034\uffc7\037" +
"\uffc7\040\uffc7\045\uffc7\050\uffc7\001\002\000\054\010\uffcc" +
"\013\uffcc\014\uffcc\015\uffcc\016\uffcc\017\uffcc\020\uffcc\021" +
"\uffcc\022\uffcc\024\uffcc\025\uffcc\027\uffcc\030\uffcc\031\uffcc" +
"\032\uffcc\033\uffcc\034\uffcc\037\uffcc\040\uffcc\045\uffcc\050" +
"\uffcc\001\002\000\050\010\uffd4\014\uffd4\015\uffd4\016\uffd4" +
"\017\uffd4\020\uffd4\021\uffd4\022\uffd4\024\uffd4\025\uffd4\027" +
"\uffd4\030\uffd4\031\uffd4\032\uffd4\033\uffd4\034\uffd4\040\uffd4" +
"\045\uffd4\050\uffd4\001\002\000\004\015\066\001\002\000" +
"\036\013\034\020\041\026\023\035\012\036\045\047\054" +
"\053\053\054\052\055\017\056\046\057\050\060\016\061" +
"\040\062\015\001\002\000\004\015\070\001\002\000\036" +
"\013\034\020\041\026\023\035\012\036\045\047\054\053" +
"\053\054\052\055\017\056\046\057\050\060\016\061\040" +
"\062\015\001\002\000\004\045\072\001\002\000\062\003" +
"\ufffb\005\ufffb\006\ufffb\007\ufffb\013\ufffb\015\ufffb\020\ufffb" +
"\026\ufffb\035\ufffb\036\ufffb\042\ufffb\044\ufffb\045\ufffb\046" +
"\ufffb\047\ufffb\051\ufffb\053\ufffb\054\ufffb\055\ufffb\056\ufffb" +
"\057\ufffb\060\ufffb\061\ufffb\062\ufffb\001\002\000\062\003" +
"\043\005\042\006\036\007\030\013\034\015\014\020\041" +
"\026\023\035\012\036\045\042\074\044\021\045\033\046" +
"\051\047\054\051\025\053\053\054\052\055\017\056\046" +
"\057\050\060\016\061\040\062\015\001\002\000\066\003" +
"\ufff2\005\ufff2\006\ufff2\007\ufff2\011\ufff2\012\ufff2\013\ufff2" +
"\015\ufff2\020\ufff2\026\ufff2\035\ufff2\036\ufff2\042\ufff2\044" +
"\ufff2\045\ufff2\046\ufff2\047\ufff2\051\ufff2\053\ufff2\054\ufff2" +
"\055\ufff2\056\ufff2\057\ufff2\060\ufff2\061\ufff2\062\ufff2\001" +
"\002\000\036\013\034\020\041\026\023\035\012\036\045" +
"\047\054\053\053\054\052\055\017\056\046\057\050\060" +
"\016\061\040\062\015\001\002\000\024\010\uffe5\014\uffe5" +
"\015\uffe5\016\uffe5\024\uffe5\025\uffe5\040\uffe5\045\uffe5\050" +
"\uffe5\001\002\000\036\013\034\020\041\026\023\035\012" +
"\036\045\047\054\053\053\054\052\055\017\056\046\057" +
"\050\060\016\061\040\062\015\001\002\000\004\014\101" +
"\001\002\000\054\010\uffc9\013\uffc9\014\uffc9\015\uffc9\016" +
"\uffc9\017\uffc9\020\uffc9\021\uffc9\022\uffc9\024\uffc9\025\uffc9" +
"\027\uffc9\030\uffc9\031\uffc9\032\uffc9\033\uffc9\034\uffc9\037" +
"\uffc9\040\uffc9\045\uffc9\050\uffc9\001\002\000\036\013\034" +
"\020\041\026\023\035\012\036\045\047\054\053\053\054" +
"\052\055\017\056\046\057\050\060\016\061\040\062\015" +
"\001\002\000\004\040\104\001\002\000\050\010\uffd3\014" +
"\uffd3\015\uffd3\016\uffd3\017\uffd3\020\uffd3\021\uffd3\022\uffd3" +
"\024\uffd3\025\uffd3\027\uffd3\030\uffd3\031\uffd3\032\uffd3\033" +
"\uffd3\034\uffd3\040\uffd3\045\uffd3\050\uffd3\001\002\000\036" +
"\013\034\020\041\026\023\035\012\036\045\047\054\053" +
"\053\054\052\055\017\056\046\057\050\060\016\061\040" +
"\062\015\001\002\000\020\010\uffe9\014\uffe9\015\uffe9\016" +
"\uffe9\040\uffe9\045\uffe9\050\uffe9\001\002\000\066\003\uffef" +
"\005\uffef\006\uffef\007\uffef\011\uffef\012\uffef\013\uffef\015" +
"\uffef\020\uffef\026\uffef\035\uffef\036\uffef\042\uffef\044\uffef" +
"\045\uffef\046\uffef\047\uffef\051\uffef\053\uffef\054\uffef\055" +
"\uffef\056\uffef\057\uffef\060\uffef\061\uffef\062\uffef\001\002" +
"\000\066\003\uffee\005\uffee\006\uffee\007\uffee\011\uffee\012" +
"\uffee\013\uffee\015\uffee\020\uffee\026\uffee\035\uffee\036\uffee" +
"\042\uffee\044\uffee\045\uffee\046\uffee\047\uffee\051\uffee\053" +
"\uffee\054\uffee\055\uffee\056\uffee\057\uffee\060\uffee\061\uffee" +
"\062\uffee\001\002\000\036\013\034\020\041\026\023\035" +
"\012\036\045\047\054\053\053\054\052\055\017\056\046" +
"\057\050\060\016\061\040\062\015\001\002\000\004\014" +
"\113\001\002\000\004\015\114\001\002\000\066\003\ufff8" +
"\005\ufff8\006\ufff8\007\ufff8\011\ufff8\012\ufff8\013\ufff8\015" +
"\ufff8\020\ufff8\026\ufff8\035\ufff8\036\ufff8\042\ufff8\044\ufff8" +
"\045\ufff8\046\ufff8\047\ufff8\051\ufff8\053\ufff8\054\ufff8\055" +
"\ufff8\056\ufff8\057\ufff8\060\ufff8\061\ufff8\062\ufff8\001\002" +
"\000\050\010\uffd6\014\uffd6\015\uffd6\016\uffd6\017\uffd6\020" +
"\uffd6\021\uffd6\022\uffd6\024\uffd6\025\uffd6\027\uffd6\030\uffd6" +
"\031\uffd6\032\uffd6\033\uffd6\034\uffd6\040\uffd6\045\uffd6\050" +
"\uffd6\001\002\000\040\013\034\014\120\020\041\026\023" +
"\035\012\036\045\047\054\053\053\054\052\055\017\056" +
"\046\057\050\060\016\061\040\062\015\001\002\000\004" +
"\014\122\001\002\000\004\015\121\001\002\000\066\003" +
"\ufff7\005\ufff7\006\ufff7\007\ufff7\011\ufff7\012\ufff7\013\ufff7" +
"\015\ufff7\020\ufff7\026\ufff7\035\ufff7\036\ufff7\042\ufff7\044" +
"\ufff7\045\ufff7\046\ufff7\047\ufff7\051\ufff7\053\ufff7\054\ufff7" +
"\055\ufff7\056\ufff7\057\ufff7\060\ufff7\061\ufff7\062\ufff7\001" +
"\002\000\004\015\123\001\002\000\066\003\ufff6\005\ufff6" +
"\006\ufff6\007\ufff6\011\ufff6\012\ufff6\013\ufff6\015\ufff6\020" +
"\ufff6\026\ufff6\035\ufff6\036\ufff6\042\ufff6\044\ufff6\045\ufff6" +
"\046\ufff6\047\ufff6\051\ufff6\053\ufff6\054\ufff6\055\ufff6\056" +
"\ufff6\057\ufff6\060\ufff6\061\ufff6\062\ufff6\001\002\000\036" +
"\013\034\020\041\026\023\035\012\036\045\047\054\053" +
"\053\054\052\055\017\056\046\057\050\060\016\061\040" +
"\062\015\001\002\000\036\013\034\020\041\026\023\035" +
"\012\036\045\047\054\053\053\054\052\055\017\056\046" +
"\057\050\060\016\061\040\062\015\001\002\000\036\013" +
"\034\020\041\026\023\035\012\036\045\047\054\053\053" +
"\054\052\055\017\056\046\057\050\060\016\061\040\062" +
"\015\001\002\000\036\013\034\020\041\026\023\035\012" +
"\036\045\047\054\053\053\054\052\055\017\056\046\057" +
"\050\060\016\061\040\062\015\001\002\000\036\013\034" +
"\020\041\026\023\035\012\036\045\047\054\053\053\054" +
"\052\055\017\056\046\057\050\060\016\061\040\062\015" +
"\001\002\000\036\013\034\020\041\026\023\035\012\036" +
"\045\047\054\053\053\054\052\055\017\056\046\057\050" +
"\060\016\061\040\062\015\001\002\000\036\013\034\020" +
"\041\026\023\035\012\036\045\047\054\053\053\054\052" +
"\055\017\056\046\057\050\060\016\061\040\062\015\001" +
"\002\000\036\013\034\020\041\026\023\035\012\036\045" +
"\047\054\053\053\054\052\055\017\056\046\057\050\060" +
"\016\061\040\062\015\001\002\000\030\010\uffde\014\uffde" +
"\015\uffde\016\uffde\017\127\020\131\024\uffde\025\uffde\040" +
"\uffde\045\uffde\050\uffde\001\002\000\030\010\uffe0\014\uffe0" +
"\015\uffe0\016\uffe0\017\127\020\131\024\uffe0\025\uffe0\040" +
"\uffe0\045\uffe0\050\uffe0\001\002\000\050\010\uffdb\014\uffdb" +
"\015\uffdb\016\uffdb\017\uffdb\020\uffdb\021\140\022\137\024" +
"\uffdb\025\uffdb\027\uffdb\030\uffdb\031\uffdb\032\uffdb\033\uffdb" +
"\034\uffdb\040\uffdb\045\uffdb\050\uffdb\001\002\000\036\013" +
"\034\020\041\026\023\035\012\036\045\047\054\053\053" +
"\054\052\055\017\056\046\057\050\060\016\061\040\062" +
"\015\001\002\000\036\013\034\020\041\026\023\035\012" +
"\036\045\047\054\053\053\054\052\055\017\056\046\057" +
"\050\060\016\061\040\062\015\001\002\000\050\010\uffd9" +
"\014\uffd9\015\uffd9\016\uffd9\017\uffd9\020\uffd9\021\uffd9\022" +
"\uffd9\024\uffd9\025\uffd9\027\uffd9\030\uffd9\031\uffd9\032\uffd9" +
"\033\uffd9\034\uffd9\040\uffd9\045\uffd9\050\uffd9\001\002\000" +
"\050\010\uffd8\014\uffd8\015\uffd8\016\uffd8\017\uffd8\020\uffd8" +
"\021\uffd8\022\uffd8\024\uffd8\025\uffd8\027\uffd8\030\uffd8\031" +
"\uffd8\032\uffd8\033\uffd8\034\uffd8\040\uffd8\045\uffd8\050\uffd8" +
"\001\002\000\030\010\uffe1\014\uffe1\015\uffe1\016\uffe1\017" +
"\127\020\131\024\uffe1\025\uffe1\040\uffe1\045\uffe1\050\uffe1" +
"\001\002\000\050\010\uffdc\014\uffdc\015\uffdc\016\uffdc\017" +
"\uffdc\020\uffdc\021\140\022\137\024\uffdc\025\uffdc\027\uffdc" +
"\030\uffdc\031\uffdc\032\uffdc\033\uffdc\034\uffdc\040\uffdc\045" +
"\uffdc\050\uffdc\001\002\000\030\010\uffe2\014\uffe2\015\uffe2" +
"\016\uffe2\017\127\020\131\024\uffe2\025\uffe2\040\uffe2\045" +
"\uffe2\050\uffe2\001\002\000\030\010\uffdf\014\uffdf\015\uffdf" +
"\016\uffdf\017\127\020\131\024\uffdf\025\uffdf\040\uffdf\045" +
"\uffdf\050\uffdf\001\002\000\030\010\uffe3\014\uffe3\015\uffe3" +
"\016\uffe3\017\127\020\131\024\uffe3\025\uffe3\040\uffe3\045" +
"\uffe3\050\uffe3\001\002\000\004\014\151\001\002\000\054" +
"\010\uffd1\013\uffd1\014\uffd1\015\uffd1\016\uffd1\017\uffd1\020" +
"\uffd1\021\uffd1\022\uffd1\024\uffd1\025\uffd1\027\uffd1\030\uffd1" +
"\031\uffd1\032\uffd1\033\uffd1\034\uffd1\037\uffd1\040\uffd1\045" +
"\uffd1\050\uffd1\001\002\000\062\003\043\005\042\006\036" +
"\007\030\013\034\015\014\020\041\026\023\035\012\036" +
"\045\042\153\044\021\045\033\046\051\047\054\051\025" +
"\053\053\054\052\055\017\056\046\057\050\060\016\061" +
"\040\062\015\001\002\000\004\044\154\001\002\000\036" +
"\013\034\020\041\026\023\035\012\036\045\047\054\053" +
"\053\054\052\055\017\056\046\057\050\060\016\061\040" +
"\062\015\001\002\000\004\015\156\001\002\000\066\003" +
"\ufff3\005\ufff3\006\ufff3\007\ufff3\011\ufff3\012\ufff3\013\ufff3" +
"\015\ufff3\020\ufff3\026\ufff3\035\ufff3\036\ufff3\042\ufff3\044" +
"\ufff3\045\ufff3\046\ufff3\047\ufff3\051\ufff3\053\ufff3\054\ufff3" +
"\055\ufff3\056\ufff3\057\ufff3\060\ufff3\061\ufff3\062\ufff3\001" +
"\002\000\004\010\160\001\002\000\066\003\ufffb\005\ufffb" +
"\006\ufffb\007\ufffb\011\ufffb\012\ufffb\013\ufffb\015\ufffb\020" +
"\ufffb\026\ufffb\035\ufffb\036\ufffb\042\ufffb\044\ufffb\045\ufffb" +
"\046\ufffb\047\ufffb\051\ufffb\053\ufffb\054\ufffb\055\ufffb\056" +
"\ufffb\057\ufffb\060\ufffb\061\ufffb\062\ufffb\001\002\000\066" +
"\003\043\005\042\006\036\007\030\011\162\012\163\013" +
"\034\015\014\020\041\026\023\035\012\036\045\042\uffed" +
"\044\021\045\033\046\051\047\054\051\025\053\053\054" +
"\052\055\017\056\046\057\050\060\016\061\040\062\015" +
"\001\002\000\062\003\ufffb\005\ufffb\006\ufffb\007\ufffb\013" +
"\ufffb\015\ufffb\020\ufffb\026\ufffb\035\ufffb\036\ufffb\042\ufffb" +
"\044\ufffb\045\ufffb\046\ufffb\047\ufffb\051\ufffb\053\ufffb\054" +
"\ufffb\055\ufffb\056\ufffb\057\ufffb\060\ufffb\061\ufffb\062\ufffb" +
"\001\002\000\036\013\034\020\041\026\023\035\012\036" +
"\045\047\054\053\053\054\052\055\017\056\046\057\050" +
"\060\016\061\040\062\015\001\002\000\004\042\165\001" +
"\002\000\066\003\ufff5\005\ufff5\006\ufff5\007\ufff5\011\ufff5" +
"\012\ufff5\013\ufff5\015\ufff5\020\ufff5\026\ufff5\035\ufff5\036" +
"\ufff5\042\ufff5\044\ufff5\045\ufff5\046\ufff5\047\ufff5\051\ufff5" +
"\053\ufff5\054\ufff5\055\ufff5\056\ufff5\057\ufff5\060\ufff5\061" +
"\ufff5\062\ufff5\001\002\000\004\010\167\001\002\000\066" +
"\003\ufffb\005\ufffb\006\ufffb\007\ufffb\011\ufffb\012\ufffb\013" +
"\ufffb\015\ufffb\020\ufffb\026\ufffb\035\ufffb\036\ufffb\042\ufffb" +
"\044\ufffb\045\ufffb\046\ufffb\047\ufffb\051\ufffb\053\ufffb\054" +
"\ufffb\055\ufffb\056\ufffb\057\ufffb\060\ufffb\061\ufffb\062\ufffb" +
"\001\002\000\066\003\043\005\042\006\036\007\030\011" +
"\162\012\163\013\034\015\014\020\041\026\023\035\012" +
"\036\045\042\uffed\044\021\045\033\046\051\047\054\051" +
"\025\053\053\054\052\055\017\056\046\057\050\060\016" +
"\061\040\062\015\001\002\000\004\042\uffeb\001\002\000" +
"\062\003\043\005\042\006\036\007\030\013\034\015\014" +
"\020\041\026\023\035\012\036\045\042\uffec\044\021\045" +
"\033\046\051\047\054\051\025\053\053\054\052\055\017" +
"\056\046\057\050\060\016\061\040\062\015\001\002\000" +
"\066\003\ufff9\005\ufff9\006\ufff9\007\ufff9\011\ufff9\012\ufff9" +
"\013\ufff9\015\ufff9\020\ufff9\026\ufff9\035\ufff9\036\ufff9\042" +
"\ufff9\044\ufff9\045\ufff9\046\ufff9\047\ufff9\051\ufff9\053\ufff9" +
"\054\ufff9\055\ufff9\056\ufff9\057\ufff9\060\ufff9\061\ufff9\062" +
"\ufff9\001\002\000\004\002\000\001\002\000\066\003\ufff1" +
"\005\ufff1\006\ufff1\007\ufff1\011\ufff1\012\ufff1\013\ufff1\015" +
"\ufff1\020\ufff1\026\ufff1\035\ufff1\036\ufff1\042\ufff1\044\ufff1" +
"\045\ufff1\046\ufff1\047\ufff1\051\ufff1\053\ufff1\054\ufff1\055" +
"\ufff1\056\ufff1\057\ufff1\060\ufff1\061\ufff1\062\ufff1\001\002" +
"\000\004\015\177\001\002\000\066\003\ufff0\005\ufff0\006" +
"\ufff0\007\ufff0\011\ufff0\012\ufff0\013\ufff0\015\ufff0\020\ufff0" +
"\026\ufff0\035\ufff0\036\ufff0\042\ufff0\044\ufff0\045\ufff0\046" +
"\ufff0\047\ufff0\051\ufff0\053\ufff0\054\ufff0\055\ufff0\056\ufff0" +
"\057\ufff0\060\ufff0\061\ufff0\062\ufff0\001\002\000\040\013" +
"\034\014\uffbb\020\041\026\023\035\012\036\045\047\054" +
"\053\053\054\052\055\017\056\046\057\050\060\016\061" +
"\040\062\015\001\002\000\036\013\034\020\041\026\023" +
"\035\012\036\045\047\054\053\053\054\052\055\017\056" +
"\046\057\050\060\016\061\040\062\015\001\002\000\004" +
"\040\203\001\002\000\056\010\uffc5\013\uffc5\014\uffc5\015" +
"\uffc5\016\uffc5\017\uffc5\020\uffc5\021\uffc5\022\uffc5\023\uffc5" +
"\024\uffc5\025\uffc5\027\uffc5\030\uffc5\031\uffc5\032\uffc5\033" +
"\uffc5\034\uffc5\037\uffc5\040\uffc5\045\uffc5\050\uffc5\001\002" +
"\000\004\014\205\001\002\000\054\010\uffcb\013\uffcb\014" +
"\uffcb\015\uffcb\016\uffcb\017\uffcb\020\uffcb\021\uffcb\022\uffcb" +
"\024\uffcb\025\uffcb\027\uffcb\030\uffcb\031\uffcb\032\uffcb\033" +
"\uffcb\034\uffcb\037\uffcb\040\uffcb\045\uffcb\050\uffcb\001\002" +
"\000\050\010\uffd5\014\uffd5\015\uffd5\016\uffd5\017\uffd5\020" +
"\uffd5\021\uffd5\022\uffd5\024\uffd5\025\uffd5\027\uffd5\030\uffd5" +
"\031\uffd5\032\uffd5\033\uffd5\034\uffd5\040\uffd5\045\uffd5\050" +
"\uffd5\001\002\000\036\013\034\020\041\026\023\035\012" +
"\036\045\047\054\053\053\054\052\055\017\056\046\057" +
"\050\060\016\061\040\062\015\001\002\000\024\010\uffe7" +
"\014\uffe7\015\uffe7\016\uffe7\024\uffe7\025\075\040\uffe7\045" +
"\uffe7\050\uffe7\001\002\000\004\045\212\001\002\000\062" +
"\003\ufffb\005\ufffb\006\ufffb\007\ufffb\013\ufffb\015\ufffb\020" +
"\ufffb\026\ufffb\035\ufffb\036\ufffb\042\ufffb\044\ufffb\045\ufffb" +
"\046\ufffb\047\ufffb\051\ufffb\053\ufffb\054\ufffb\055\ufffb\056" +
"\ufffb\057\ufffb\060\ufffb\061\ufffb\062\ufffb\001\002\000\062" +
"\003\043\005\042\006\036\007\030\013\034\015\014\020" +
"\041\026\023\035\012\036\045\042\214\044\021\045\033" +
"\046\051\047\054\051\025\053\053\054\052\055\017\056" +
"\046\057\050\060\016\061\040\062\015\001\002\000\066" +
"\003\ufff4\005\ufff4\006\ufff4\007\ufff4\011\ufff4\012\ufff4\013" +
"\ufff4\015\ufff4\020\ufff4\026\ufff4\035\ufff4\036\ufff4\042\ufff4" +
"\044\ufff4\045\ufff4\046\ufff4\047\ufff4\051\ufff4\053\ufff4\054" +
"\ufff4\055\ufff4\056\ufff4\057\ufff4\060\ufff4\061\ufff4\062\ufff4" +
"\001\002\000\036\013\034\020\041\026\023\035\012\036" +
"\045\047\054\053\053\054\052\055\017\056\046\057\050" +
"\060\016\061\040\062\015\001\002\000\004\014\217\001" +
"\002\000\054\010\uffca\013\uffca\014\uffca\015\uffca\016\uffca" +
"\017\uffca\020\uffca\021\uffca\022\uffca\024\uffca\025\uffca\027" +
"\uffca\030\uffca\031\uffca\032\uffca\033\uffca\034\uffca\037\uffca" +
"\040\uffca\045\uffca\050\uffca\001\002\000\006\014\uffc3\062" +
"\222\001\002\000\004\014\226\001\002\000\006\014\uffc1" +
"\016\uffc1\001\002\000\006\014\uffc4\016\224\001\002\000" +
"\004\062\225\001\002\000\006\014\uffc2\016\uffc2\001\002" +
"\000\006\041\ufffd\043\006\001\002\000\004\041\230\001" +
"\002\000\062\003\ufffb\005\ufffb\006\ufffb\007\ufffb\013\ufffb" +
"\015\ufffb\020\ufffb\026\ufffb\035\ufffb\036\ufffb\042\ufffb\044" +
"\ufffb\045\ufffb\046\ufffb\047\ufffb\051\ufffb\053\ufffb\054\ufffb" +
"\055\ufffb\056\ufffb\057\ufffb\060\ufffb\061\ufffb\062\ufffb\001" +
"\002\000\062\003\043\005\042\006\036\007\030\013\034" +
"\015\014\020\041\026\023\035\012\036\045\042\232\044" +
"\021\045\033\046\051\047\054\051\025\053\053\054\052" +
"\055\017\056\046\057\050\060\016\061\040\062\015\001" +
"\002\000\054\010\uffc8\013\uffc8\014\uffc8\015\uffc8\016\uffc8" +
"\017\uffc8\020\uffc8\021\uffc8\022\uffc8\024\uffc8\025\uffc8\027" +
"\uffc8\030\uffc8\031\uffc8\032\uffc8\033\uffc8\034\uffc8\037\uffc8" +
"\040\uffc8\045\uffc8\050\uffc8\001\002\000\004\015\244\001" +
"\002\000\010\015\uffbe\016\uffbe\023\242\001\002\000\006" +
"\015\uffbf\016\uffbf\001\002\000\006\015\240\016\237\001" +
"\002\000\004\062\234\001\002\000\004\041\uffff\001\002" +
"\000\006\015\uffc0\016\uffc0\001\002\000\036\013\034\020" +
"\041\026\023\035\012\036\045\047\054\053\053\054\052" +
"\055\017\056\046\057\050\060\016\061\040\062\015\001" +
"\002\000\006\015\uffbd\016\uffbd\001\002\000\004\041\ufffe" +
"\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\243\000\004\003\003\001\001\000\002\001\001\000" +
"\004\004\006\001\001\000\006\005\234\015\235\001\001" +
"\000\002\001\001\000\004\006\010\001\001\000\030\010" +
"\017\016\026\017\030\020\021\021\046\022\012\023\034" +
"\024\031\025\036\026\023\027\043\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\016\210\017\030\020\021\021\046\022\012\023\034" +
"\024\031\025\036\026\023\027\043\001\001\000\002\001" +
"\001\000\010\025\205\026\023\027\062\001\001\000\002" +
"\001\001\000\026\016\175\017\030\020\021\021\046\022" +
"\012\023\034\024\031\025\036\026\023\027\043\001\001" +
"\000\002\001\001\000\002\001\001\000\026\016\156\017" +
"\030\020\021\021\046\022\012\023\034\024\031\025\036" +
"\026\023\027\043\001\001\000\002\001\001\000\002\001" +
"\001\000\004\006\151\001\001\000\026\016\147\017\030" +
"\020\021\021\046\022\012\023\034\024\031\025\036\026" +
"\023\027\043\001\001\000\002\001\001\000\002\001\001" +
"\000\002\001\001\000\002\001\001\000\010\025\114\026" +
"\023\027\062\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\016\064\017\030" +
"\020\021\021\046\022\012\023\034\024\031\025\036\026" +
"\023\027\043\001\001\000\002\001\001\000\010\025\063" +
"\026\023\027\062\001\001\000\032\011\054\012\056\016" +
"\055\017\030\020\021\021\046\022\012\023\034\024\031" +
"\025\036\026\023\027\043\001\001\000\002\001\001\000" +
"\002\001\001\000\002\001\001\000\026\016\060\017\030" +
"\020\021\021\046\022\012\023\034\024\031\025\036\026" +
"\023\027\043\001\001\000\002\001\001\000\002\001\001" +
"\000\002\001\001\000\002\001\001\000\002\001\001\000" +
"\026\016\066\017\030\020\021\021\046\022\012\023\034" +
"\024\031\025\036\026\023\027\043\001\001\000\002\001" +
"\001\000\026\016\070\017\030\020\021\021\046\022\012" +
"\023\034\024\031\025\036\026\023\027\043\001\001\000" +
"\002\001\001\000\004\006\072\001\001\000\030\010\017" +
"\016\026\017\030\020\021\021\046\022\012\023\034\024" +
"\031\025\036\026\023\027\043\001\001\000\002\001\001" +
"\000\016\022\075\023\034\024\031\025\036\026\023\027" +
"\062\001\001\000\002\001\001\000\026\016\077\017\030" +
"\020\021\021\046\022\012\023\034\024\031\025\036\026" +
"\023\027\043\001\001\000\002\001\001\000\002\001\001" +
"\000\026\016\102\017\030\020\021\021\046\022\012\023" +
"\034\024\031\025\036\026\023\027\043\001\001\000\002" +
"\001\001\000\002\001\001\000\024\017\105\020\021\021" +
"\046\022\012\023\034\024\031\025\036\026\023\027\043" +
"\001\001\000\002\001\001\000\002\001\001\000\002\001" +
"\001\000\026\016\111\017\030\020\021\021\046\022\012" +
"\023\034\024\031\025\036\026\023\027\043\001\001\000" +
"\002\001\001\000\002\001\001\000\002\001\001\000\002" +
"\001\001\000\026\016\116\017\030\020\021\021\046\022" +
"\012\023\034\024\031\025\036\026\023\027\043\001\001" +
"\000\002\001\001\000\002\001\001\000\002\001\001\000" +
"\002\001\001\000\002\001\001\000\014\023\146\024\031" +
"\025\036\026\023\027\062\001\001\000\014\023\145\024" +
"\031\025\036\026\023\027\062\001\001\000\014\023\144" +
"\024\031\025\036\026\023\027\062\001\001\000\012\024" +
"\143\025\036\026\023\027\062\001\001\000\014\023\142" +
"\024\031\025\036\026\023\027\062\001\001\000\012\024" +
"\135\025\036\026\023\027\062\001\001\000\014\023\134" +
"\024\031\025\036\026\023\027\062\001\001\000\014\023" +
"\133\024\031\025\036\026\023\027\062\001\001\000\002" +
"\001\001\000\002\001\001\000\002\001\001\000\010\025" +
"\141\026\023\027\062\001\001\000\010\025\140\026\023" +
"\027\062\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\010\017\016\026\017\030\020\021\021\046" +
"\022\012\023\034\024\031\025\036\026\023\027\043\001" +
"\001\000\002\001\001\000\026\016\154\017\030\020\021" +
"\021\046\022\012\023\034\024\031\025\036\026\023\027" +
"\043\001\001\000\002\001\001\000\002\001\001\000\002" +
"\001\001\000\004\006\160\001\001\000\032\007\163\010" +
"\017\016\026\017\030\020\021\021\046\022\012\023\034" +
"\024\031\025\036\026\023\027\043\001\001\000\004\006" +
"\171\001\001\000\026\016\165\017\030\020\021\021\046" +
"\022\012\023\034\024\031\025\036\026\023\027\043\001" +
"\001\000\002\001\001\000\002\001\001\000\002\001\001" +
"\000\004\006\167\001\001\000\032\007\170\010\017\016" +
"\026\017\030\020\021\021\046\022\012\023\034\024\031" +
"\025\036\026\023\027\043\001\001\000\002\001\001\000" +
"\030\010\017\016\026\017\030\020\021\021\046\022\012" +
"\023\034\024\031\025\036\026\023\027\043\001\001\000" +
"\002\001\001\000\002\001\001\000\002\001\001\000\002" +
"\001\001\000\002\001\001\000\032\011\203\012\056\016" +
"\055\017\030\020\021\021\046\022\012\023\034\024\031" +
"\025\036\026\023\027\043\001\001\000\026\016\201\017" +
"\030\020\021\021\046\022\012\023\034\024\031\025\036" +
"\026\023\027\043\001\001\000\002\001\001\000\002\001" +
"\001\000\002\001\001\000\002\001\001\000\002\001\001" +
"\000\020\021\207\022\012\023\034\024\031\025\036\026" +
"\023\027\062\001\001\000\002\001\001\000\002\001\001" +
"\000\004\006\212\001\001\000\030\010\017\016\026\017" +
"\030\020\021\021\046\022\012\023\034\024\031\025\036" +
"\026\023\027\043\001\001\000\002\001\001\000\026\016" +
"\215\017\030\020\021\021\046\022\012\023\034\024\031" +
"\025\036\026\023\027\043\001\001\000\002\001\001\000" +
"\002\001\001\000\006\013\220\014\222\001\001\000\002" +
"\001\001\000\002\001\001\000\002\001\001\000\002\001" +
"\001\000\002\001\001\000\004\004\226\001\001\000\002" +
"\001\001\000\004\006\230\001\001\000\030\010\017\016" +
"\026\017\030\020\021\021\046\022\012\023\034\024\031" +
"\025\036\026\023\027\043\001\001\000\002\001\001\000" +
"\002\001\001\000\002\001\001\000\002\001\001\000\002" +
"\001\001\000\004\005\240\001\001\000\002\001\001\000" +
"\002\001\001\000\026\016\242\017\030\020\021\021\046" +
"\022\012\023\034\024\031\025\036\026\023\027\043\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 72: // 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(8/*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 71: // 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(8/*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 70: // ExprListOpt ::=
{
ExprListNode RESULT = null;
RESULT = new ExprListNode();
CUP$parser$result = new java_cup.runtime.Symbol(7/*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 69: // 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(7/*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 68: // Declarator ::= IDENT ASSIGN Expr
{
DeclaratorNode RESULT = null;
int identleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
int identright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
String ident = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
int exprleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int exprright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
ExprNode expr = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new InitDeclaratorNode( ident, expr );
CUP$parser$result = new java_cup.runtime.Symbol(3/*Declarator*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 67: // Declarator ::= IDENT
{
DeclaratorNode RESULT = null;
int identleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int identright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
String ident = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new SimpleDeclaratorNode( ident );
CUP$parser$result = new java_cup.runtime.Symbol(3/*Declarator*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 66: // DeclaratorList ::= Declarator
{
DeclaratorListNode RESULT = null;
int declaratorleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int declaratorright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
DeclaratorNode declarator = (DeclaratorNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
DeclaratorListNode declaratorList = new DeclaratorListNode();
declaratorList.addElement( declarator );
RESULT = declaratorList;
CUP$parser$result = new java_cup.runtime.Symbol(11/*DeclaratorList*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 65: // DeclaratorList ::= DeclaratorList COMMA Declarator
{
DeclaratorListNode RESULT = null;
int declaratorListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
int declaratorListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
DeclaratorListNode declaratorList = (DeclaratorListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
int declaratorleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int declaratorright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
DeclaratorNode declarator = (DeclaratorNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
declaratorList.addElement( declarator );
RESULT = declaratorList;
CUP$parser$result = new java_cup.runtime.Symbol(11/*DeclaratorList*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 64: // 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(10/*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 63: // 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(10/*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 62: // IdentListOpt ::=
{
IdentListNode RESULT = null;
RESULT = new IdentListNode();
CUP$parser$result = new java_cup.runtime.Symbol(9/*IdentListOpt*/, ((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 61: // IdentListOpt ::= IdentList
{
IdentListNode RESULT = null;
int identListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int identListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
IdentListNode identList = (IdentListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = identList;
CUP$parser$result = new java_cup.runtime.Symbol(9/*IdentListOpt*/, ((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: // 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(21/*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 59: // 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(21/*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 58: // Primary ::= LEFTCURLY ExprListOpt RIGHTCURLY
{
ExprNode RESULT = null;
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 InitArrayNode( exprListOpt );
CUP$parser$result = new java_cup.runtime.Symbol(20/*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 57: // Primary ::= FUNCT LEFT IdentListOpt RIGHT Decl BEGIN StmtList END
{
ExprNode RESULT = null;
int formalParamsleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)).left;
int formalParamsright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)).right;
IdentListNode formalParams = (IdentListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-5)).value;
int localsleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left;
int localsright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right;
DeclNode locals = (DeclNode)((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 FunctionValueNode( formalParams, locals, stmtList );
CUP$parser$result = new java_cup.runtime.Symbol(20/*Primary*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-7)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 56: // 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(20/*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 55: // 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(20/*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 54: // Primary ::= Primary LEFT ExprListOpt RIGHT
{
ExprNode RESULT = null;
int functleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left;
int functright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right;
ExprNode funct = (ExprNode)((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( funct, actualParams );
CUP$parser$result = new java_cup.runtime.Symbol(20/*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 53: // Primary ::= Variable
{
ExprNode RESULT = null;
int variableleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int variableright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
VariableNode variable = (VariableNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new VarExprNode( variable );
CUP$parser$result = new java_cup.runtime.Symbol(20/*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 52: // 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(20/*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 51: // 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(20/*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 50: // Primary ::= NULL
{
ExprNode RESULT = null;
RESULT = new NullValueNode();
CUP$parser$result = new java_cup.runtime.Symbol(20/*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 49: // 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(20/*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 48: // 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(20/*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 47: // 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(19/*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 46: // PrefixExpr ::= NEW LEFTSQ Expr RIGHTSQ
{
ExprNode RESULT = null;
int sizeleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
int sizeright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
ExprNode size = (ExprNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
RESULT = new NewArrayNode( size );
CUP$parser$result = new java_cup.runtime.Symbol(19/*PrefixExpr*/, ((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 45: // 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(19/*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 44: // 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(19/*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 43: // 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(19/*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 42: // 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(18/*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 41: // 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(18/*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 40: // 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(18/*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 39: // 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(17/*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 38: // 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(17/*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 37: // 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(17/*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 36: // 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(16/*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 35: // 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(16/*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 34: // 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(16/*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 33: // 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(16/*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 32: // 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(16/*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 31: // 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(16/*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 30: // 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(16/*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 29: // 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(15/*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 28: // 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(15/*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 27: // 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(14/*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 26: // 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(14/*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 25: // 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(13/*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 24: // 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(13/*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 23: // 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(12/*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 22: // 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(5/*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 21: // 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(5/*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 20: // ElseOpt ::=
{
ElseOptNode RESULT = null;
RESULT = new ElseOpt0Node();
CUP$parser$result = new java_cup.runtime.Symbol(5/*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 19: // Stmt ::= error END
{
StmtNode RESULT = null;
RESULT = new ErrorStmtNode();
CUP$parser$result = new java_cup.runtime.Symbol(6/*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 18: // Stmt ::= error SEMICOLON
{
StmtNode RESULT = null;
RESULT = new ErrorStmtNode();
CUP$parser$result = new java_cup.runtime.Symbol(6/*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 17: // 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(6/*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 16: // Stmt ::= RETURN SEMICOLON
{
StmtNode RESULT = null;
RESULT = new ReturnStmtNode();
CUP$parser$result = new java_cup.runtime.Symbol(6/*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 15: // 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(6/*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 14: // 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(6/*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 13: // 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(6/*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 12: // 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(6/*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 11: // 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(6/*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 10: // Stmt ::= PRINTLN LEFT RIGHT SEMICOLON
{
StmtNode RESULT = null;
RESULT = new Println0StmtNode();
CUP$parser$result = new java_cup.runtime.Symbol(6/*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 9: // 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(6/*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 8: // 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(6/*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 7: // Stmt ::= SEMICOLON
{
StmtNode RESULT = null;
RESULT = new NullStmtNode();
CUP$parser$result = new java_cup.runtime.Symbol(6/*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 6: // StmtList ::=
{
StmtListNode RESULT = null;
RESULT = new StmtListNode();
CUP$parser$result = new java_cup.runtime.Symbol(4/*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 5: // 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(4/*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 4: // Decl ::=
{
DeclNode RESULT = null;
RESULT = new EmptyDeclNode();
CUP$parser$result = new java_cup.runtime.Symbol(2/*Decl*/, ((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: // Decl ::= VAR error SEMICOLON
{
DeclNode RESULT = null;
RESULT = new ErrorDeclNode();
CUP$parser$result = new java_cup.runtime.Symbol(2/*Decl*/, ((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 2: // Decl ::= VAR DeclaratorList SEMICOLON
{
DeclNode RESULT = null;
int declaratorListleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
int declaratorListright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
DeclaratorListNode declaratorList = (DeclaratorListNode)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
RESULT = new NonEmptyDeclNode( declaratorList );
CUP$parser$result = new java_cup.runtime.Symbol(2/*Decl*/, ((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 1: // Program ::= PROGRAM Decl BEGIN StmtList END DOT
{
ProgramNode RESULT = null;
int declleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left;
int declright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).right;
DeclNode decl = (DeclNode)((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;
RESULT = new ProgramNode( decl, stmtList );
CUP$parser$result = new java_cup.runtime.Symbol(1/*Program*/, ((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 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");
}
}
}