Package org.jboss.byteman.rule.grammar

Source Code of org.jboss.byteman.rule.grammar.ECAGrammarParser

//----------------------------------------------------
// The following code was generated by CUP v0.10k
// Tue Oct 26 14:49:53 BST 2010
//----------------------------------------------------

package org.jboss.byteman.rule.grammar;

import java_cup.runtime.*;
import org.jboss.byteman.rule.grammar.ParseNode;

/** CUP v0.10k generated parser.
  * @version Tue Oct 26 14:49:53 BST 2010
  */
public class ECAGrammarParser extends java_cup.runtime.lr_parser {

  /** Default constructor. */
  public ECAGrammarParser() {super();}

  /** Constructor which sets the default scanner. */
  public ECAGrammarParser(java_cup.runtime.Scanner s) {super(s);}

  /** Production table. */
  protected static final short _production_table[][] =
    unpackFromStrings(new String[] {
    "\000\175\000\002\003\003\000\002\002\004\000\002\003" +
    "\003\000\002\004\010\000\002\004\003\000\002\043\003" +
    "\000\002\043\003\000\002\043\003\000\002\052\002\000" +
    "\002\044\011\000\002\053\002\000\002\045\011\000\002" +
    "\046\010\000\002\005\006\000\002\005\003\000\002\047" +
    "\003\000\002\047\003\000\002\054\002\000\002\050\007" +
    "\000\002\051\006\000\002\006\003\000\002\006\003\000" +
    "\002\007\005\000\002\007\005\000\002\007\005\000\002" +
    "\007\005\000\002\007\003\000\002\010\005\000\002\011" +
    "\005\000\002\011\003\000\002\036\004\000\002\036\003" +
    "\000\002\037\005\000\002\037\004\000\002\012\003\000" +
    "\002\013\003\000\002\013\003\000\002\014\005\000\002" +
    "\014\005\000\002\014\005\000\002\014\005\000\002\014" +
    "\003\000\002\015\003\000\002\015\003\000\002\016\003" +
    "\000\002\016\004\000\002\016\006\000\002\016\007\000" +
    "\002\016\007\000\002\016\010\000\002\017\003\000\002" +
    "\017\005\000\002\017\005\000\002\017\005\000\002\020" +
    "\003\000\002\020\003\000\002\020\003\000\002\020\003" +
    "\000\002\020\003\000\002\020\003\000\002\020\003\000" +
    "\002\020\003\000\002\020\003\000\002\020\003\000\002" +
    "\020\005\000\002\020\005\000\002\020\005\000\002\020" +
    "\004\000\002\021\007\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\005\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\005\000\002\022\005" +
    "\000\002\022\005\000\002\023\004\000\002\023\004\000" +
    "\002\023\004\000\002\024\004\000\002\024\004\000\002" +
    "\024\004\000\002\024\004\000\002\034\004\000\002\034" +
    "\003\000\002\035\005\000\002\025\005\000\002\025\003" +
    "\000\002\026\005\000\002\026\005\000\002\026\005\000" +
    "\002\027\005\000\002\027\006\000\002\027\007\000\002" +
    "\027\010\000\002\027\003\000\002\030\007\000\002\030" +
    "\010\000\002\030\007\000\002\030\010\000\002\030\007" +
    "\000\002\030\010\000\002\031\006\000\002\031\007\000" +
    "\002\032\003\000\002\032\003\000\002\032\003\000\002" +
    "\032\003\000\002\032\003\000\002\032\005\000\002\033" +
    "\003\000\002\040\003\000\002\040\005\000\002\041\003" +
    "\000\002\042\003\000\002\042\005" });

  /** Access to production table. */
  public short[][] production_table() {return _production_table;}

  /** Parse-action table. */
  protected static final short[][] _action_table =
    unpackFromStrings(new String[] {
    "\000\332\000\006\004\015\005\014\001\002\000\004\002" +
    "\ufffb\001\002\000\004\002\ufff1\001\002\000\004\002\ufff2" +
    "\001\002\000\004\002\001\001\002\000\004\002\ufffc\001" +
    "\002\000\004\002\ufffd\001\002\000\004\002\uffff\001\002" +
    "\000\004\002\ufffa\001\002\000\034\003\325\012\067\022" +
    "\102\043\076\045\061\046\066\050\060\051\107\052\106" +
    "\053\101\054\062\055\071\056\034\001\002\000\010\003" +
    "\021\007\022\056\023\001\002\000\004\002\ufff3\001\002" +
    "\000\004\002\020\001\002\000\004\002\000\001\002\000" +
    "\006\005\ufff9\016\051\001\002\000\004\005\uffed\001\002" +
    "\000\074\002\uff87\005\uff87\006\uff87\012\uff87\013\uff87\014" +
    "\uff87\015\uff87\016\uff87\017\uff87\020\uff87\021\uff87\023\uff87" +
    "\024\uff87\025\uff87\026\uff87\027\uff87\030\uff87\031\uff87\032" +
    "\uff87\033\uff87\034\uff87\035\uff87\036\uff87\037\uff87\040\uff87" +
    "\041\uff87\042\uff87\043\uff87\044\uff87\001\002\000\004\005" +
    "\253\001\002\000\004\021\055\001\002\000\010\005\uffe7" +
    "\016\046\017\045\001\002\000\006\021\uffe4\024\031\001" +
    "\002\000\004\005\uffec\001\002\000\004\056\034\001\002" +
    "\000\006\014\041\021\uffe2\001\002\000\004\021\uffe5\001" +
    "\002\000\074\002\uff87\005\uff87\006\uff87\012\uff87\013\uff87" +
    "\014\uff87\015\uff87\016\uff87\017\uff87\020\uff86\021\uff87\023" +
    "\uff87\024\uff87\025\uff87\026\uff87\027\uff87\030\uff87\031\uff87" +
    "\032\uff87\033\uff87\034\uff87\035\uff87\036\uff87\037\uff87\040" +
    "\uff87\041\uff87\042\uff87\043\uff87\044\uff87\001\002\000\004" +
    "\020\037\001\002\000\010\012\uff89\014\uff89\021\uff89\001" +
    "\002\000\004\056\040\001\002\000\012\012\uff88\014\uff88" +
    "\020\uff85\021\uff88\001\002\000\004\015\043\001\002\000" +
    "\004\021\uffe3\001\002\000\006\014\041\021\uffe0\001\002" +
    "\000\004\021\uffe1\001\002\000\006\003\052\056\023\001" +
    "\002\000\006\003\047\056\023\001\002\000\006\005\uffe8" +
    "\016\051\001\002\000\004\005\uffea\001\002\000\006\003" +
    "\052\056\023\001\002\000\004\016\051\001\002\000\004" +
    "\005\uffe9\001\002\000\004\005\uffeb\001\002\000\034\003" +
    "\100\012\067\022\102\043\076\045\061\046\066\050\060" +
    "\051\107\052\106\053\101\054\062\055\071\056\034\001" +
    "\002\000\052\005\uffe6\016\uffe6\017\uffe6\023\132\025\145" +
    "\026\126\027\144\030\135\031\134\032\142\033\131\034" +
    "\136\035\130\036\140\037\141\040\143\041\137\042\133" +
    "\043\125\044\127\001\002\000\070\002\uffc7\005\uffc7\006" +
    "\uffc7\013\uffc7\014\110\015\uffc7\016\uffc7\017\uffc7\021\251" +
    "\023\uffc7\024\uffc7\025\uffc7\026\uffc7\027\uffc7\030\uffc7\031" +
    "\uffc7\032\uffc7\033\uffc7\034\uffc7\035\uffc7\036\uffc7\037\uffc7" +
    "\040\uffc7\041\uffc7\042\uffc7\043\uffc7\044\uffc7\001\002\000" +
    "\072\002\uff8c\005\uff8c\006\uff8c\013\uff8c\014\uff8c\015\uff8c" +
    "\016\uff8c\017\uff8c\020\uff8c\021\246\023\uff8c\024\uff8c\025" +
    "\uff8c\026\uff8c\027\uff8c\030\uff8c\031\uff8c\032\uff8c\033\uff8c" +
    "\034\uff8c\035\uff8c\036\uff8c\037\uff8c\040\uff8c\041\uff8c\042" +
    "\uff8c\043\uff8c\044\uff8c\001\002\000\034\003\100\012\067" +
    "\022\102\043\076\045\061\046\066\050\060\051\107\052" +
    "\106\053\101\054\062\055\071\056\034\001\002\000\070" +
    "\002\uff8e\005\uff8e\006\uff8e\013\uff8e\014\uff8e\015\uff8e\016" +
    "\uff8e\017\uff8e\020\uff8e\023\uff8e\024\uff8e\025\uff8e\026\uff8e" +
    "\027\uff8e\030\uff8e\031\uff8e\032\uff8e\033\uff8e\034\uff8e\035" +
    "\uff8e\036\uff8e\037\uff8e\040\uff8e\041\uff8e\042\uff8e\043\uff8e" +
    "\044\uff8e\001\002\000\064\002\uffc5\005\uffc5\006\uffc5\013" +
    "\uffc5\015\uffc5\016\uffc5\017\uffc5\023\uffc5\024\uffc5\025\uffc5" +
    "\026\uffc5\027\uffc5\030\uffc5\031\uffc5\032\uffc5\033\uffc5\034" +
    "\uffc5\035\uffc5\036\uffc5\037\uffc5\040\uffc5\041\uffc5\042\uffc5" +
    "\043\uffc5\044\uffc5\001\002\000\072\002\uffc2\005\uffc2\006" +
    "\uffc2\012\237\013\uffc2\014\110\015\uffc2\016\uffc2\017\uffc2" +
    "\021\240\023\uffc2\024\uffc2\025\uffc2\026\uffc2\027\uffc2\030" +
    "\uffc2\031\uffc2\032\uffc2\033\uffc2\034\uffc2\035\uffc2\036\uffc2" +
    "\037\uffc2\040\uffc2\041\uffc2\042\uffc2\043\uffc2\044\uffc2\001" +
    "\002\000\064\002\uffc3\005\uffc3\006\uffc3\013\uffc3\015\uffc3" +
    "\016\uffc3\017\uffc3\023\uffc3\024\uffc3\025\uffc3\026\uffc3\027" +
    "\uffc3\030\uffc3\031\uffc3\032\uffc3\033\uffc3\034\uffc3\035\uffc3" +
    "\036\uffc3\037\uffc3\040\uffc3\041\uffc3\042\uffc3\043\uffc3\044" +
    "\uffc3\001\002\000\034\003\100\012\067\022\102\043\076" +
    "\045\061\046\066\050\060\051\107\052\106\053\101\054" +
    "\062\055\071\056\034\001\002\000\034\003\100\012\067" +
    "\022\102\043\076\045\061\046\066\050\060\051\107\052" +
    "\106\053\101\054\062\055\071\056\034\001\002\000\070" +
    "\002\uffc4\005\uffc4\006\uffc4\013\uffc4\014\110\015\uffc4\016" +
    "\uffc4\017\uffc4\020\225\023\uffc4\024\uffc4\025\uffc4\026\uffc4" +
    "\027\uffc4\030\uffc4\031\uffc4\032\uffc4\033\uffc4\034\uffc4\035" +
    "\uffc4\036\uffc4\037\uffc4\040\uffc4\041\uffc4\042\uffc4\043\uffc4" +
    "\044\uffc4\001\002\000\070\002\uff8d\005\uff8d\006\uff8d\013" +
    "\uff8d\014\uff8d\015\uff8d\016\uff8d\017\uff8d\020\uff8d\023\uff8d" +
    "\024\uff8d\025\uff8d\026\uff8d\027\uff8d\030\uff8d\031\uff8d\032" +
    "\uff8d\033\uff8d\034\uff8d\035\uff8d\036\uff8d\037\uff8d\040\uff8d" +
    "\041\uff8d\042\uff8d\043\uff8d\044\uff8d\001\002\000\064\002" +
    "\uffca\005\uffca\006\uffca\013\uffca\015\uffca\016\uffca\017\uffca" +
    "\023\uffca\024\uffca\025\uffca\026\uffca\027\uffca\030\uffca\031" +
    "\uffca\032\uffca\033\uffca\034\uffca\035\uffca\036\uffca\037\uffca" +
    "\040\uffca\041\uffca\042\uffca\043\uffca\044\uffca\001\002\000" +
    "\072\002\uffa1\005\uffa1\006\uffa1\013\uffa1\014\uffa1\015\uffa1" +
    "\016\uffa1\017\uffa1\020\216\021\uffa1\023\uffa1\024\uffa1\025" +
    "\uffa1\026\uffa1\027\uffa1\030\uffa1\031\uffa1\032\uffa1\033\uffa1" +
    "\034\uffa1\035\uffa1\036\uffa1\037\uffa1\040\uffa1\041\uffa1\042" +
    "\uffa1\043\uffa1\044\uffa1\001\002\000\004\020\207\001\002" +
    "\000\064\002\uffcb\005\uffcb\006\uffcb\013\uffcb\015\uffcb\016" +
    "\uffcb\017\uffcb\023\uffcb\024\uffcb\025\uffcb\026\uffcb\027\uffcb" +
    "\030\uffcb\031\uffcb\032\uffcb\033\uffcb\034\uffcb\035\uffcb\036" +
    "\uffcb\037\uffcb\040\uffcb\041\uffcb\042\uffcb\043\uffcb\044\uffcb" +
    "\001\002\000\034\003\100\012\067\022\102\043\076\045" +
    "\061\046\066\050\060\051\107\052\106\053\101\054\062" +
    "\055\071\056\034\001\002\000\070\002\uff99\005\uff99\006" +
    "\uff99\013\uff99\014\uff99\015\uff99\016\uff99\017\uff99\020\uff99" +
    "\023\uff99\024\uff99\025\uff99\026\uff99\027\uff99\030\uff99\031" +
    "\uff99\032\uff99\033\uff99\034\uff99\035\uff99\036\uff99\037\uff99" +
    "\040\uff99\041\uff99\042\uff99\043\uff99\044\uff99\001\002\000" +
    "\034\003\100\012\067\022\102\043\076\045\061\046\066" +
    "\050\060\051\107\052\106\053\101\054\062\055\071\056" +
    "\034\001\002\000\070\002\uff90\005\uff90\006\uff90\013\uff90" +
    "\014\uff90\015\uff90\016\uff90\017\uff90\020\uff90\023\uff90\024" +
    "\uff90\025\uff90\026\uff90\027\uff90\030\uff90\031\uff90\032\uff90" +
    "\033\uff90\034\uff90\035\uff90\036\uff90\037\uff90\040\uff90\041" +
    "\uff90\042\uff90\043\uff90\044\uff90\001\002\000\004\056\034" +
    "\001\002\000\064\002\uffc8\005\uffc8\006\uffc8\013\uffc8\015" +
    "\uffc8\016\uffc8\017\uffc8\023\uffc8\024\uffc8\025\uffc8\026\uffc8" +
    "\027\uffc8\030\uffc8\031\uffc8\032\uffc8\033\uffc8\034\uffc8\035" +
    "\uffc8\036\uffc8\037\uffc8\040\uffc8\041\uffc8\042\uffc8\043\uffc8" +
    "\044\uffc8\001\002\000\064\002\uffc9\005\uffc9\006\uffc9\013" +
    "\uffc9\015\uffc9\016\uffc9\017\uffc9\023\uffc9\024\uffc9\025\uffc9" +
    "\026\uffc9\027\uffc9\030\uffc9\031\uffc9\032\uffc9\033\uffc9\034" +
    "\uffc9\035\uffc9\036\uffc9\037\uffc9\040\uffc9\041\uffc9\042\uffc9" +
    "\043\uffc9\044\uffc9\001\002\000\070\002\uffc6\005\uffc6\006" +
    "\uffc6\013\uffc6\014\110\015\uffc6\016\uffc6\017\uffc6\020\113" +
    "\023\uffc6\024\uffc6\025\uffc6\026\uffc6\027\uffc6\030\uffc6\031" +
    "\uffc6\032\uffc6\033\uffc6\034\uffc6\035\uffc6\036\uffc6\037\uffc6" +
    "\040\uffc6\041\uffc6\042\uffc6\043\uffc6\044\uffc6\001\002\000" +
    "\070\002\uff8f\005\uff8f\006\uff8f\013\uff8f\014\uff8f\015\uff8f" +
    "\016\uff8f\017\uff8f\020\uff8f\023\uff8f\024\uff8f\025\uff8f\026" +
    "\uff8f\027\uff8f\030\uff8f\031\uff8f\032\uff8f\033\uff8f\034\uff8f" +
    "\035\uff8f\036\uff8f\037\uff8f\040\uff8f\041\uff8f\042\uff8f\043" +
    "\uff8f\044\uff8f\001\002\000\064\002\uff8a\005\uff8a\006\uff8a" +
    "\013\uff8a\015\uff8a\016\uff8a\017\uff8a\023\uff8a\024\uff8a\025" +
    "\uff8a\026\uff8a\027\uff8a\030\uff8a\031\uff8a\032\uff8a\033\uff8a" +
    "\034\uff8a\035\uff8a\036\uff8a\037\uff8a\040\uff8a\041\uff8a\042" +
    "\uff8a\043\uff8a\044\uff8a\001\002\000\034\003\100\012\067" +
    "\022\102\043\076\045\061\046\066\050\060\051\107\052" +
    "\106\053\101\054\062\055\071\056\034\001\002\000\064" +
    "\002\uffa6\005\uffa6\006\uffa6\013\uffa6\015\uffa6\016\uffa6\017" +
    "\uffa6\023\uffa6\024\uffa6\025\uffa6\026\uffa6\027\uffa6\030\uffa6" +
    "\031\uffa6\032\uffa6\033\uffa6\034\uffa6\035\uffa6\036\uffa6\037" +
    "\uffa6\040\uffa6\041\uffa6\042\uffa6\043\uffa6\044\uffa6\001\002" +
    "\000\066\002\uffa4\005\uffa4\006\uffa4\013\uffa4\014\110\015" +
    "\uffa4\016\uffa4\017\uffa4\023\uffa4\024\uffa4\025\uffa4\026\uffa4" +
    "\027\uffa4\030\uffa4\031\uffa4\032\uffa4\033\uffa4\034\uffa4\035" +
    "\uffa4\036\uffa4\037\uffa4\040\uffa4\041\uffa4\042\uffa4\043\uffa4" +
    "\044\uffa4\001\002\000\004\056\023\001\002\000\074\002" +
    "\uff9f\005\uff9f\006\uff9f\012\115\013\uff9f\014\uff9f\015\uff9f" +
    "\016\uff9f\017\uff9f\020\uff9f\021\uff9f\023\uff9f\024\uff9f\025" +
    "\uff9f\026\uff9f\027\uff9f\030\uff9f\031\uff9f\032\uff9f\033\uff9f" +
    "\034\uff9f\035\uff9f\036\uff9f\037\uff9f\040\uff9f\041\uff9f\042" +
    "\uff9f\043\uff9f\044\uff9f\001\002\000\036\003\121\012\067" +
    "\013\117\022\102\043\076\045\061\046\066\050\060\051" +
    "\107\052\106\053\101\054\062\055\071\056\034\001\002" +
    "\000\052\013\uffcf\016\172\017\173\023\132\025\145\026" +
    "\126\027\144\030\135\031\134\032\142\033\131\034\136" +
    "\035\130\036\140\037\141\040\143\041\137\042\133\043" +
    "\125\044\127\001\002\000\070\002\uff96\005\uff96\006\uff96" +
    "\013\uff96\014\uff96\015\uff96\016\uff96\017\uff96\020\uff96\023" +
    "\uff96\024\uff96\025\uff96\026\uff96\027\uff96\030\uff96\031\uff96" +
    "\032\uff96\033\uff96\034\uff96\035\uff96\036\uff96\037\uff96\040" +
    "\uff96\041\uff96\042\uff96\043\uff96\044\uff96\001\002\000\004" +
    "\013\171\001\002\000\036\003\100\012\067\016\123\022" +
    "\102\043\076\045\061\046\066\050\060\051\107\052\106" +
    "\053\101\054\062\055\071\056\034\001\002\000\064\002" +
    "\uffbe\005\uffbe\006\uffbe\013\uffbe\015\uffbe\016\uffbe\017\uffbe" +
    "\023\132\024\uffbe\025\145\026\126\027\144\030\135\031" +
    "\134\032\142\033\131\034\136\035\130\036\140\037\141" +
    "\040\143\041\137\042\133\043\125\044\127\001\002\000" +
    "\034\003\121\012\067\022\102\043\076\045\061\046\066" +
    "\050\060\051\107\052\106\053\101\054\062\055\071\056" +
    "\034\001\002\000\004\013\uffcc\001\002\000\034\003\100" +
    "\012\067\022\102\043\076\045\061\046\066\050\060\051" +
    "\107\052\106\053\101\054\062\055\071\056\034\001\002" +
    "\000\034\003\100\012\067\022\102\043\076\045\061\046" +
    "\066\050\060\051\107\052\106\053\101\054\062\055\071" +
    "\056\034\001\002\000\034\003\100\012\067\022\102\043" +
    "\076\045\061\046\066\050\060\051\107\052\106\053\101" +
    "\054\062\055\071\056\034\001\002\000\034\003\100\012" +
    "\067\022\102\043\076\045\061\046\066\050\060\051\107" +
    "\052\106\053\101\054\062\055\071\056\034\001\002\000" +
    "\034\003\100\012\067\022\102\043\076\045\061\046\066" +
    "\050\060\051\107\052\106\053\101\054\062\055\071\056" +
    "\034\001\002\000\034\003\100\012\067\022\102\043\076" +
    "\045\061\046\066\050\060\051\107\052\106\053\101\054" +
    "\062\055\071\056\034\001\002\000\034\003\100\012\067" +
    "\022\102\043\076\045\061\046\066\050\060\051\107\052" +
    "\106\053\101\054\062\055\071\056\034\001\002\000\034" +
    "\003\100\012\067\022\102\043\076\045\061\046\066\050" +
    "\060\051\107\052\106\053\101\054\062\055\071\056\034" +
    "\001\002\000\034\003\100\012\067\022\102\043\076\045" +
    "\061\046\066\050\060\051\107\052\106\053\101\054\062" +
    "\055\071\056\034\001\002\000\034\003\100\012\067\022" +
    "\102\043\076\045\061\046\066\050\060\051\107\052\106" +
    "\053\101\054\062\055\071\056\034\001\002\000\034\003" +
    "\100\012\067\022\102\043\076\045\061\046\066\050\060" +
    "\051\107\052\106\053\101\054\062\055\071\056\034\001" +
    "\002\000\034\003\100\012\067\022\102\043\076\045\061" +
    "\046\066\050\060\051\107\052\106\053\101\054\062\055" +
    "\071\056\034\001\002\000\034\003\100\012\067\022\102" +
    "\043\076\045\061\046\066\050\060\051\107\052\106\053" +
    "\101\054\062\055\071\056\034\001\002\000\034\003\100" +
    "\012\067\022\102\043\076\045\061\046\066\050\060\051" +
    "\107\052\106\053\101\054\062\055\071\056\034\001\002" +
    "\000\034\003\100\012\067\022\102\043\076\045\061\046" +
    "\066\050\060\051\107\052\106\053\101\054\062\055\071" +
    "\056\034\001\002\000\034\003\100\012\067\022\102\043" +
    "\076\045\061\046\066\050\060\051\107\052\106\053\101" +
    "\054\062\055\071\056\034\001\002\000\034\003\100\012" +
    "\067\022\102\043\076\045\061\046\066\050\060\051\107" +
    "\052\106\053\101\054\062\055\071\056\034\001\002\000" +
    "\064\002\uffbc\005\uffbc\006\uffbc\013\uffbc\015\uffbc\016\uffbc" +
    "\017\uffbc\023\uffbc\024\uffbc\025\uffbc\026\uffbc\027\144\030" +
    "\135\031\134\032\142\033\131\034\136\035\130\036\140" +
    "\037\141\040\143\041\137\042\133\043\125\044\127\001" +
    "\002\000\064\002\uffba\005\uffba\006\uffba\013\uffba\015\uffba" +
    "\016\uffba\017\uffba\023\uffba\024\uffba\025\uffba\026\uffba\027" +
    "\uffba\030\uffba\031\uffba\032\uffba\033\uffba\034\uffba\035\130" +
    "\036\140\037\141\040\143\041\137\042\133\043\125\044" +
    "\127\001\002\000\064\002\uffaf\005\uffaf\006\uffaf\013\uffaf" +
    "\015\uffaf\016\uffaf\017\uffaf\023\uffaf\024\uffaf\025\uffaf\026" +
    "\uffaf\027\uffaf\030\uffaf\031\uffaf\032\uffaf\033\uffaf\034\uffaf" +
    "\035\130\036\140\037\141\040\uffaf\041\uffaf\042\uffaf\043" +
    "\uffaf\044\uffaf\001\002\000\060\002\uffb7\005\uffb7\006\uffb7" +
    "\013\uffb7\015\uffb7\016\uffb7\017\uffb7\023\uffb7\024\uffb7\025" +
    "\uffb7\026\uffb7\027\144\030\135\033\131\034\136\035\130" +
    "\036\140\037\141\040\143\041\137\042\133\043\125\044" +
    "\127\001\002\000\064\002\uffb2\005\uffb2\006\uffb2\013\uffb2" +
    "\015\uffb2\016\uffb2\017\uffb2\023\uffb2\024\uffb2\025\uffb2\026" +
    "\uffb2\027\uffb2\030\uffb2\031\uffb2\032\uffb2\033\uffb2\034\uffb2" +
    "\035\uffb2\036\uffb2\037\uffb2\040\uffb2\041\uffb2\042\uffb2\043" +
    "\uffb2\044\uffb2\001\002\000\064\002\uffb3\005\uffb3\006\uffb3" +
    "\013\uffb3\015\uffb3\016\uffb3\017\uffb3\023\uffb3\024\uffb3\025" +
    "\uffb3\026\uffb3\027\uffb3\030\uffb3\031\uffb3\032\uffb3\033\uffb3" +
    "\034\uffb3\035\uffb3\036\uffb3\037\uffb3\040\uffb3\041\uffb3\042" +
    "\uffb3\043\uffb3\044\uffb3\001\002\000\064\002\uffae\005\uffae" +
    "\006\uffae\013\uffae\015\uffae\016\uffae\017\uffae\023\uffae\024" +
    "\uffae\025\uffae\026\uffae\027\uffae\030\uffae\031\uffae\032\uffae" +
    "\033\uffae\034\uffae\035\130\036\140\037\141\040\uffae\041" +
    "\uffae\042\uffae\043\uffae\044\uffae\001\002\000\064\002\uffb5" +
    "\005\uffb5\006\uffb5\013\uffb5\015\uffb5\016\uffb5\017\uffb5\023" +
    "\uffb5\024\uffb5\025\uffb5\026\uffb5\027\uffb5\030\uffb5\031\uffb5" +
    "\032\uffb5\033\uffb5\034\uffb5\035\130\036\140\037\141\040" +
    "\143\041\137\042\133\043\125\044\127\001\002\000\064" +
    "\002\uffb9\005\uffb9\006\uffb9\013\uffb9\015\uffb9\016\uffb9\017" +
    "\uffb9\023\uffb9\024\uffb9\025\uffb9\026\uffb9\027\uffb9\030\uffb9" +
    "\031\uffb9\032\uffb9\033\uffb9\034\uffb9\035\130\036\140\037" +
    "\141\040\143\041\137\042\133\043\125\044\127\001\002" +
    "\000\060\002\uffb8\005\uffb8\006\uffb8\013\uffb8\015\uffb8\016" +
    "\uffb8\017\uffb8\023\uffb8\024\uffb8\025\uffb8\026\uffb8\027\144" +
    "\030\135\033\131\034\136\035\130\036\140\037\141\040" +
    "\143\041\137\042\133\043\125\044\127\001\002\000\064" +
    "\002\uffb1\005\uffb1\006\uffb1\013\uffb1\015\uffb1\016\uffb1\017" +
    "\uffb1\023\uffb1\024\uffb1\025\uffb1\026\uffb1\027\uffb1\030\uffb1" +
    "\031\uffb1\032\uffb1\033\uffb1\034\uffb1\035\130\036\140\037" +
    "\141\040\143\041\137\042\uffb1\043\uffb1\044\127\001\002" +
    "\000\046\023\132\024\162\025\145\026\126\027\144\030" +
    "\135\031\134\032\142\033\131\034\136\035\130\036\140" +
    "\037\141\040\143\041\137\042\133\043\125\044\127\001" +
    "\002\000\034\003\100\012\067\022\102\043\076\045\061" +
    "\046\066\050\060\051\107\052\106\053\101\054\062\055" +
    "\071\056\034\001\002\000\064\002\uffbd\005\uffbd\006\uffbd" +
    "\013\uffbd\015\uffbd\016\uffbd\017\uffbd\023\132\024\uffbd\025" +
    "\145\026\126\027\144\030\135\031\134\032\142\033\131" +
    "\034\136\035\130\036\140\037\141\040\143\041\137\042" +
    "\133\043\125\044\127\001\002\000\064\002\uffb6\005\uffb6" +
    "\006\uffb6\013\uffb6\015\uffb6\016\uffb6\017\uffb6\023\uffb6\024" +
    "\uffb6\025\uffb6\026\uffb6\027\uffb6\030\uffb6\031\uffb6\032\uffb6" +
    "\033\uffb6\034\uffb6\035\130\036\140\037\141\040\143\041" +
    "\137\042\133\043\125\044\127\001\002\000\064\002\uffb4" +
    "\005\uffb4\006\uffb4\013\uffb4\015\uffb4\016\uffb4\017\uffb4\023" +
    "\uffb4\024\uffb4\025\uffb4\026\uffb4\027\uffb4\030\uffb4\031\uffb4" +
    "\032\uffb4\033\uffb4\034\uffb4\035\uffb4\036\uffb4\037\uffb4\040" +
    "\uffb4\041\uffb4\042\uffb4\043\uffb4\044\uffb4\001\002\000\064" +
    "\002\uffad\005\uffad\006\uffad\013\uffad\015\uffad\016\uffad\017" +
    "\uffad\023\uffad\024\uffad\025\uffad\026\uffad\027\uffad\030\uffad" +
    "\031\uffad\032\uffad\033\uffad\034\uffad\035\130\036\140\037" +
    "\141\040\uffad\041\uffad\042\uffad\043\uffad\044\uffad\001\002" +
    "\000\064\002\uffbb\005\uffbb\006\uffbb\013\uffbb\015\uffbb\016" +
    "\uffbb\017\uffbb\023\uffbb\024\uffbb\025\uffbb\026\uffbb\027\144" +
    "\030\135\031\134\032\142\033\131\034\136\035\130\036" +
    "\140\037\141\040\143\041\137\042\133\043\125\044\127" +
    "\001\002\000\064\002\uffb0\005\uffb0\006\uffb0\013\uffb0\015" +
    "\uffb0\016\uffb0\017\uffb0\023\uffb0\024\uffb0\025\uffb0\026\uffb0" +
    "\027\uffb0\030\uffb0\031\uffb0\032\uffb0\033\uffb0\034\uffb0\035" +
    "\130\036\140\037\141\040\143\041\137\042\uffb0\043\uffb0" +
    "\044\127\001\002\000\070\002\uff95\005\uff95\006\uff95\013" +
    "\uff95\014\uff95\015\uff95\016\uff95\017\uff95\020\uff95\023\uff95" +
    "\024\uff95\025\uff95\026\uff95\027\uff95\030\uff95\031\uff95\032" +
    "\uff95\033\uff95\034\uff95\035\uff95\036\uff95\037\uff95\040\uff95" +
    "\041\uff95\042\uff95\043\uff95\044\uff95\001\002\000\034\003" +
    "\121\012\067\022\102\043\076\045\061\046\066\050\060" +
    "\051\107\052\106\053\101\054\062\055\071\056\034\001" +
    "\002\000\034\003\121\012\067\022\102\043\076\045\061" +
    "\046\066\050\060\051\107\052\106\053\101\054\062\055" +
    "\071\056\034\001\002\000\004\013\uffce\001\002\000\004" +
    "\013\uffcd\001\002\000\064\002\uffa5\005\uffa5\006\uffa5\013" +
    "\uffa5\015\uffa5\016\uffa5\017\uffa5\023\uffa5\024\uffa5\025\uffa5" +
    "\026\uffa5\027\uffa5\030\uffa5\031\uffa5\032\uffa5\033\uffa5\034" +
    "\uffa5\035\uffa5\036\uffa5\037\uffa5\040\uffa5\041\uffa5\042\uffa5" +
    "\043\uffa5\044\uffa5\001\002\000\046\015\200\023\132\025" +
    "\145\026\126\027\144\030\135\031\134\032\142\033\131" +
    "\034\136\035\130\036\140\037\141\040\143\041\137\042" +
    "\133\043\125\044\127\001\002\000\066\002\uffa3\005\uffa3" +
    "\006\uffa3\013\uffa3\014\uffa3\015\uffa3\016\uffa3\017\uffa3\023" +
    "\uffa3\024\uffa3\025\uffa3\026\uffa3\027\uffa3\030\uffa3\031\uffa3" +
    "\032\uffa3\033\uffa3\034\uffa3\035\uffa3\036\uffa3\037\uffa3\040" +
    "\uffa3\041\uffa3\042\uffa3\043\uffa3\044\uffa3\001\002\000\004" +
    "\012\202\001\002\000\036\003\121\012\067\013\203\022" +
    "\102\043\076\045\061\046\066\050\060\051\107\052\106" +
    "\053\101\054\062\055\071\056\034\001\002\000\064\002" +
    "\uff92\005\uff92\006\uff92\013\uff92\015\uff92\016\uff92\017\uff92" +
    "\023\uff92\024\uff92\025\uff92\026\uff92\027\uff92\030\uff92\031" +
    "\uff92\032\uff92\033\uff92\034\uff92\035\uff92\036\uff92\037\uff92" +
    "\040\uff92\041\uff92\042\uff92\043\uff92\044\uff92\001\002\000" +
    "\004\013\205\001\002\000\064\002\uff91\005\uff91\006\uff91" +
    "\013\uff91\015\uff91\016\uff91\017\uff91\023\uff91\024\uff91\025" +
    "\uff91\026\uff91\027\uff91\030\uff91\031\uff91\032\uff91\033\uff91" +
    "\034\uff91\035\uff91\036\uff91\037\uff91\040\uff91\041\uff91\042" +
    "\uff91\043\uff91\044\uff91\001\002\000\064\002\uffaa\005\uffaa" +
    "\006\uffaa\013\uffaa\015\uffaa\016\uffaa\017\uffaa\023\uffaa\024" +
    "\uffaa\025\uffaa\026\uffaa\027\uffaa\030\uffaa\031\uffaa\032\uffaa" +
    "\033\uffaa\034\uffaa\035\uffaa\036\uffaa\037\uffaa\040\uffaa\041" +
    "\uffaa\042\uffaa\043\uffaa\044\uffaa\001\002\000\004\056\210" +
    "\001\002\000\074\002\uff87\005\uff87\006\uff87\012\uff87\013" +
    "\uff87\014\uff87\015\uff87\016\uff87\017\uff87\020\uff85\021\uff87" +
    "\023\uff87\024\uff87\025\uff87\026\uff87\027\uff87\030\uff87\031" +
    "\uff87\032\uff87\033\uff87\034\uff87\035\uff87\036\uff87\037\uff87" +
    "\040\uff87\041\uff87\042\uff87\043\uff87\044\uff87\001\002\000" +
    "\072\002\uffa2\005\uffa2\006\uffa2\012\212\013\uffa2\014\uffa2" +
    "\015\uffa2\016\uffa2\017\uffa2\021\uffa2\023\uffa2\024\uffa2\025" +
    "\uffa2\026\uffa2\027\uffa2\030\uffa2\031\uffa2\032\uffa2\033\uffa2" +
    "\034\uffa2\035\uffa2\036\uffa2\037\uffa2\040\uffa2\041\uffa2\042" +
    "\uffa2\043\uffa2\044\uffa2\001\002\000\036\003\121\012\067" +
    "\013\213\022\102\043\076\045\061\046\066\050\060\051" +
    "\107\052\106\053\101\054\062\055\071\056\034\001\002" +
    "\000\070\002\uff9b\005\uff9b\006\uff9b\013\uff9b\014\uff9b\015" +
    "\uff9b\016\uff9b\017\uff9b\020\uff9b\023\uff9b\024\uff9b\025\uff9b" +
    "\026\uff9b\027\uff9b\030\uff9b\031\uff9b\032\uff9b\033\uff9b\034" +
    "\uff9b\035\uff9b\036\uff9b\037\uff9b\040\uff9b\041\uff9b\042\uff9b" +
    "\043\uff9b\044\uff9b\001\002\000\004\013\215\001\002\000" +
    "\070\002\uff9a\005\uff9a\006\uff9a\013\uff9a\014\uff9a\015\uff9a" +
    "\016\uff9a\017\uff9a\020\uff9a\023\uff9a\024\uff9a\025\uff9a\026" +
    "\uff9a\027\uff9a\030\uff9a\031\uff9a\032\uff9a\033\uff9a\034\uff9a" +
    "\035\uff9a\036\uff9a\037\uff9a\040\uff9a\041\uff9a\042\uff9a\043" +
    "\uff9a\044\uff9a\001\002\000\004\056\023\001\002\000\074" +
    "\002\uff9e\005\uff9e\006\uff9e\012\220\013\uff9e\014\uff9e\015" +
    "\uff9e\016\uff9e\017\uff9e\020\uff9e\021\uff9e\023\uff9e\024\uff9e" +
    "\025\uff9e\026\uff9e\027\uff9e\030\uff9e\031\uff9e\032\uff9e\033" +
    "\uff9e\034\uff9e\035\uff9e\036\uff9e\037\uff9e\040\uff9e\041\uff9e" +
    "\042\uff9e\043\uff9e\044\uff9e\001\002\000\036\003\121\012" +
    "\067\013\221\022\102\043\076\045\061\046\066\050\060" +
    "\051\107\052\106\053\101\054\062\055\071\056\034\001" +
    "\002\000\070\002\uff94\005\uff94\006\uff94\013\uff94\014\uff94" +
    "\015\uff94\016\uff94\017\uff94\020\uff94\023\uff94\024\uff94\025" +
    "\uff94\026\uff94\027\uff94\030\uff94\031\uff94\032\uff94\033\uff94" +
    "\034\uff94\035\uff94\036\uff94\037\uff94\040\uff94\041\uff94\042" +
    "\uff94\043\uff94\044\uff94\001\002\000\004\013\223\001\002" +
    "\000\070\002\uff93\005\uff93\006\uff93\013\uff93\014\uff93\015" +
    "\uff93\016\uff93\017\uff93\020\uff93\023\uff93\024\uff93\025\uff93" +
    "\026\uff93\027\uff93\030\uff93\031\uff93\032\uff93\033\uff93\034" +
    "\uff93\035\uff93\036\uff93\037\uff93\040\uff93\041\uff93\042\uff93" +
    "\043\uff93\044\uff93\001\002\000\064\002\uffa9\005\uffa9\006" +
    "\uffa9\013\uffa9\015\uffa9\016\uffa9\017\uffa9\023\uffa9\024\uffa9" +
    "\025\uffa9\026\uffa9\027\uffa9\030\uffa9\031\uffa9\032\uffa9\033" +
    "\uffa9\034\uffa9\035\uffa9\036\uffa9\037\uffa9\040\uffa9\041\uffa9" +
    "\042\uffa9\043\uffa9\044\uffa9\001\002\000\004\056\023\001" +
    "\002\000\074\002\uffa0\005\uffa0\006\uffa0\012\227\013\uffa0" +
    "\014\uffa0\015\uffa0\016\uffa0\017\uffa0\020\uffa0\021\uffa0\023" +
    "\uffa0\024\uffa0\025\uffa0\026\uffa0\027\uffa0\030\uffa0\031\uffa0" +
    "\032\uffa0\033\uffa0\034\uffa0\035\uffa0\036\uffa0\037\uffa0\040" +
    "\uffa0\041\uffa0\042\uffa0\043\uffa0\044\uffa0\001\002\000\036" +
    "\003\121\012\067\013\230\022\102\043\076\045\061\046" +
    "\066\050\060\051\107\052\106\053\101\054\062\055\071" +
    "\056\034\001\002\000\070\002\uff98\005\uff98\006\uff98\013" +
    "\uff98\014\uff98\015\uff98\016\uff98\017\uff98\020\uff98\023\uff98" +
    "\024\uff98\025\uff98\026\uff98\027\uff98\030\uff98\031\uff98\032" +
    "\uff98\033\uff98\034\uff98\035\uff98\036\uff98\037\uff98\040\uff98" +
    "\041\uff98\042\uff98\043\uff98\044\uff98\001\002\000\004\013" +
    "\232\001\002\000\070\002\uff97\005\uff97\006\uff97\013\uff97" +
    "\014\uff97\015\uff97\016\uff97\017\uff97\020\uff97\023\uff97\024" +
    "\uff97\025\uff97\026\uff97\027\uff97\030\uff97\031\uff97\032\uff97" +
    "\033\uff97\034\uff97\035\uff97\036\uff97\037\uff97\040\uff97\041" +
    "\uff97\042\uff97\043\uff97\044\uff97\001\002\000\046\013\234" +
    "\023\132\025\145\026\126\027\144\030\135\031\134\032" +
    "\142\033\131\034\136\035\130\036\140\037\141\040\143" +
    "\041\137\042\133\043\125\044\127\001\002\000\070\002" +
    "\uff8b\005\uff8b\006\uff8b\013\uff8b\014\uff8b\015\uff8b\016\uff8b" +
    "\017\uff8b\020\uff8b\023\uff8b\024\uff8b\025\uff8b\026\uff8b\027" +
    "\uff8b\030\uff8b\031\uff8b\032\uff8b\033\uff8b\034\uff8b\035\uff8b" +
    "\036\uff8b\037\uff8b\040\uff8b\041\uff8b\042\uff8b\043\uff8b\044" +
    "\uff8b\001\002\000\064\002\uffab\005\uffab\006\uffab\013\uffab" +
    "\015\uffab\016\uffab\017\uffab\023\uffab\024\uffab\025\uffab\026" +
    "\uffab\027\uffab\030\uffab\031\uffab\032\uffab\033\uffab\034\uffab" +
    "\035\uffab\036\uffab\037\uffab\040\uffab\041\uffab\042\uffab\043" +
    "\uffab\044\uffab\001\002\000\064\002\uffa8\005\uffa8\006\uffa8" +
    "\013\uffa8\015\uffa8\016\uffa8\017\uffa8\023\uffa8\024\uffa8\025" +
    "\uffa8\026\uffa8\027\uffa8\030\uffa8\031\uffa8\032\uffa8\033\uffa8" +
    "\034\uffa8\035\uffa8\036\uffa8\037\uffa8\040\uffa8\041\uffa8\042" +
    "\uffa8\043\uffa8\044\uffa8\001\002\000\036\003\121\012\067" +
    "\013\242\022\102\043\076\045\061\046\066\050\060\051" +
    "\107\052\106\053\101\054\062\055\071\056\034\001\002" +
    "\000\034\003\100\012\067\022\102\043\076\045\061\046" +
    "\066\050\060\051\107\052\106\053\101\054\062\055\071" +
    "\056\034\001\002\000\064\002\uffc1\005\uffc1\006\uffc1\013" +
    "\uffc1\015\uffc1\016\uffc1\017\uffc1\023\132\024\uffc1\025\145" +
    "\026\126\027\144\030\135\031\134\032\142\033\131\034" +
    "\136\035\130\036\140\037\141\040\143\041\137\042\133" +
    "\043\125\044\127\001\002\000\070\002\uff9d\005\uff9d\006" +
    "\uff9d\013\uff9d\014\uff9d\015\uff9d\016\uff9d\017\uff9d\020\uff9d" +
    "\023\uff9d\024\uff9d\025\uff9d\026\uff9d\027\uff9d\030\uff9d\031" +
    "\uff9d\032\uff9d\033\uff9d\034\uff9d\035\uff9d\036\uff9d\037\uff9d" +
    "\040\uff9d\041\uff9d\042\uff9d\043\uff9d\044\uff9d\001\002\000" +
    "\004\013\244\001\002\000\070\002\uff9c\005\uff9c\006\uff9c" +
    "\013\uff9c\014\uff9c\015\uff9c\016\uff9c\017\uff9c\020\uff9c\023" +
    "\uff9c\024\uff9c\025\uff9c\026\uff9c\027\uff9c\030\uff9c\031\uff9c" +
    "\032\uff9c\033\uff9c\034\uff9c\035\uff9c\036\uff9c\037\uff9c\040" +
    "\uff9c\041\uff9c\042\uff9c\043\uff9c\044\uff9c\001\002\000\064" +
    "\002\uffac\005\uffac\006\uffac\013\uffac\015\uffac\016\uffac\017" +
    "\uffac\023\uffac\024\uffac\025\uffac\026\uffac\027\144\030\135" +
    "\031\134\032\142\033\131\034\136\035\130\036\140\037" +
    "\141\040\143\041\137\042\133\043\125\044\127\001\002" +
    "\000\034\003\100\012\067\022\102\043\076\045\061\046" +
    "\066\050\060\051\107\052\106\053\101\054\062\055\071" +
    "\056\034\001\002\000\064\002\uffc0\005\uffc0\006\uffc0\013" +
    "\uffc0\015\uffc0\016\uffc0\017\uffc0\023\132\024\uffc0\025\145" +
    "\026\126\027\144\030\135\031\134\032\142\033\131\034" +
    "\136\035\130\036\140\037\141\040\143\041\137\042\133" +
    "\043\125\044\127\001\002\000\064\002\uffa7\005\uffa7\006" +
    "\uffa7\013\uffa7\015\uffa7\016\uffa7\017\uffa7\023\uffa7\024\uffa7" +
    "\025\uffa7\026\uffa7\027\uffa7\030\uffa7\031\uffa7\032\uffa7\033" +
    "\uffa7\034\uffa7\035\uffa7\036\uffa7\037\uffa7\040\uffa7\041\uffa7" +
    "\042\uffa7\043\uffa7\044\uffa7\001\002\000\034\003\100\012" +
    "\067\022\102\043\076\045\061\046\066\050\060\051\107" +
    "\052\106\053\101\054\062\055\071\056\034\001\002\000" +
    "\064\002\uffbf\005\uffbf\006\uffbf\013\uffbf\015\uffbf\016\uffbf" +
    "\017\uffbf\023\132\024\uffbf\025\145\026\126\027\144\030" +
    "\135\031\134\032\142\033\131\034\136\035\130\036\140" +
    "\037\141\040\143\041\137\042\133\043\125\044\127\001" +
    "\002\000\034\003\255\012\067\022\102\043\076\045\061" +
    "\046\066\050\060\051\107\052\106\053\101\054\062\055" +
    "\071\056\034\001\002\000\046\006\uffdf\023\132\025\145" +
    "\026\126\027\144\030\135\031\134\032\142\033\131\034" +
    "\136\035\130\036\140\037\141\040\143\041\137\042\133" +
    "\043\125\044\127\001\002\000\036\003\100\006\ufff7\012" +
    "\067\022\102\043\076\045\061\046\066\050\060\051\107" +
    "\052\106\053\101\054\062\055\071\056\034\001\002\000" +
    "\004\006\257\001\002\000\042\003\266\007\264\010\262" +
    "\011\267\012\067\022\102\043\076\045\061\046\066\050" +
    "\060\051\107\052\106\053\101\054\062\055\071\056\034" +
    "\001\002\000\004\002\uffd8\001\002\000\052\002\uffd7\016" +
    "\310\017\311\023\132\025\145\026\126\027\144\030\135" +
    "\031\134\032\142\033\131\034\136\035\130\036\140\037" +
    "\141\040\143\041\137\042\133\043\125\044\127\001\002" +
    "\000\036\002\uffd5\003\100\012\067\022\102\043\076\045" +
    "\061\046\066\050\060\051\107\052\106\053\101\054\062" +
    "\055\071\056\034\001\002\000\004\002\ufffe\001\002\000" +
    "\004\002\uffde\001\002\000\004\002\uffdd\001\002\000\040" +
    "\002\ufff5\003\100\012\067\016\304\022\102\043\076\045" +
    "\061\046\066\050\060\051\107\052\106\053\101\054\062" +
    "\055\071\056\034\001\002\000\006\022\271\056\034\001" +
    "\002\000\004\002\uffd6\001\002\000\004\056\034\001\002" +
    "\000\004\012\273\001\002\000\036\003\121\012\067\013" +
    "\274\022\102\043\076\045\061\046\066\050\060\051\107" +
    "\052\106\053\101\054\062\055\071\056\034\001\002\000" +
    "\004\002\uffd3\001\002\000\004\013\276\001\002\000\004" +
    "\002\uffd2\001\002\000\004\012\300\001\002\000\036\003" +
    "\121\012\067\013\301\022\102\043\076\045\061\046\066" +
    "\050\060\051\107\052\106\053\101\054\062\055\071\056" +
    "\034\001\002\000\004\002\uffd1\001\002\000\004\013\303" +
    "\001\002\000\004\002\uffd0\001\002\000\040\003\306\010" +
    "\262\011\267\012\067\022\102\043\076\045\061\046\066" +
    "\050\060\051\107\052\106\053\101\054\062\055\071\056" +
    "\034\001\002\000\004\002\uffda\001\002\000\036\003\100" +
    "\012\067\016\304\022\102\043\076\045\061\046\066\050" +
    "\060\051\107\052\106\053\101\054\062\055\071\056\034" +
    "\001\002\000\046\002\uffd4\023\132\025\145\026\126\027" +
    "\144\030\135\031\134\032\142\033\131\034\136\035\130" +
    "\036\140\037\141\040\143\041\137\042\133\043\125\044" +
    "\127\001\002\000\040\003\314\010\262\011\267\012\067" +
    "\022\102\043\076\045\061\046\066\050\060\051\107\052" +
    "\106\053\101\054\062\055\071\056\034\001\002\000\040" +
    "\003\306\010\262\011\267\012\067\022\102\043\076\045" +
    "\061\046\066\050\060\051\107\052\106\053\101\054\062" +
    "\055\071\056\034\001\002\000\004\002\uffdb\001\002\000" +
    "\004\002\uffdc\001\002\000\040\002\uffd9\003\100\012\067" +
    "\016\304\022\102\043\076\045\061\046\066\050\060\051" +
    "\107\052\106\053\101\054\062\055\071\056\034\001\002" +
    "\000\004\006\316\001\002\000\042\003\306\007\264\010" +
    "\262\011\267\012\067\022\102\043\076\045\061\046\066" +
    "\050\060\051\107\052\106\053\101\054\062\055\071\056" +
    "\034\001\002\000\004\002\ufff6\001\002\000\004\005\321" +
    "\001\002\000\034\003\100\012\067\022\102\043\076\045" +
    "\061\046\066\050\060\051\107\052\106\053\101\054\062" +
    "\055\071\056\034\001\002\000\004\006\323\001\002\000" +
    "\042\003\306\007\264\010\262\011\267\012\067\022\102" +
    "\043\076\045\061\046\066\050\060\051\107\052\106\053" +
    "\101\054\062\055\071\056\034\001\002\000\004\002\ufff8" +
    "\001\002\000\036\003\100\006\ufff0\012\067\022\102\043" +
    "\076\045\061\046\066\050\060\051\107\052\106\053\101" +
    "\054\062\055\071\056\034\001\002\000\004\006\327\001" +
    "\002\000\042\003\331\007\264\010\262\011\267\012\067" +
    "\022\102\043\076\045\061\046\066\050\060\051\107\052" +
    "\106\053\101\054\062\055\071\056\034\001\002\000\004" +
    "\002\ufff4\001\002\000\040\002\uffee\003\100\012\067\016" +
    "\304\022\102\043\076\045\061\046\066\050\060\051\107" +
    "\052\106\053\101\054\062\055\071\056\034\001\002\000" +
    "\004\006\333\001\002\000\042\003\306\007\264\010\262" +
    "\011\267\012\067\022\102\043\076\045\061\046\066\050" +
    "\060\051\107\052\106\053\101\054\062\055\071\056\034" +
    "\001\002\000\004\002\uffef\001\002" });

  /** Access to parse-action table. */
  public short[][] action_table() {return _action_table;}

  /** <code>reduce_goto</code> table. */
  protected static final short[][] _reduce_table =
    unpackFromStrings(new String[] {
    "\000\332\000\026\003\016\004\006\005\011\043\010\044" +
    "\007\045\003\046\012\047\015\050\005\051\004\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\040\012\325\020\253\021" +
    "\074\022\071\023\103\024\102\025\056\026\072\027\104" +
    "\030\076\031\062\032\067\033\064\041\063\042\073\001" +
    "\001\000\014\006\023\007\027\010\025\011\024\041\026" +
    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
    "\001\000\004\052\317\001\001\000\002\001\001\000\002" +
    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
    "\001\000\002\001\001\000\002\001\001\000\012\036\032" +
    "\040\031\041\035\042\034\001\001\000\004\037\041\001" +
    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
    "\002\001\001\000\002\001\001\000\004\037\043\001\001" +
    "\000\002\001\001\000\012\007\053\010\025\011\024\041" +
    "\026\001\001\000\012\007\047\010\025\011\024\041\026" +
    "\001\001\000\002\001\001\000\002\001\001\000\012\007" +
    "\052\010\025\011\024\041\026\001\001\000\002\001\001" +
    "\000\002\001\001\000\002\001\001\000\036\020\055\021" +
    "\074\022\071\023\103\024\102\025\056\026\072\027\104" +
    "\030\076\031\062\032\067\033\064\041\063\042\073\001" +
    "\001\000\002\001\001\000\006\034\247\035\111\001\001" +
    "\000\002\001\001\000\036\020\244\021\074\022\071\023" +
    "\103\024\102\025\056\026\072\027\104\030\076\031\062" +
    "\032\067\033\064\041\063\042\073\001\001\000\002\001" +
    "\001\000\002\001\001\000\006\034\235\035\111\001\001" +
    "\000\002\001\001\000\036\020\234\021\074\022\071\023" +
    "\103\024\102\025\056\026\072\027\104\030\076\031\062" +
    "\032\067\033\064\041\063\042\073\001\001\000\036\020" +
    "\232\021\074\022\071\023\103\024\102\025\056\026\072" +
    "\027\104\030\076\031\062\032\067\033\064\041\063\042" +
    "\073\001\001\000\006\034\223\035\111\001\001\000\002" +
    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
    "\001\000\002\001\001\000\036\020\205\021\074\022\071" +
    "\023\103\024\102\025\056\026\072\027\104\030\076\031" +
    "\062\032\067\033\064\041\063\042\073\001\001\000\002" +
    "\001\001\000\036\020\121\021\074\022\071\023\103\024" +
    "\102\025\056\026\072\027\104\030\076\031\062\032\067" +
    "\033\064\041\063\042\073\001\001\000\002\001\001\000" +
    "\010\040\200\041\035\042\034\001\001\000\002\001\001" +
    "\000\002\001\001\000\006\034\110\035\111\001\001\000" +
    "\002\001\001\000\002\001\001\000\036\020\176\021\074" +
    "\022\071\023\103\024\102\025\056\026\072\027\104\030" +
    "\076\031\062\032\067\033\064\041\063\042\073\001\001" +
    "\000\002\001\001\000\006\034\175\035\111\001\001\000" +
    "\004\041\113\001\001\000\002\001\001\000\040\017\117" +
    "\020\115\021\074\022\071\023\103\024\102\025\056\026" +
    "\072\027\104\030\076\031\062\032\067\033\064\041\063" +
    "\042\073\001\001\000\002\001\001\000\002\001\001\000" +
    "\002\001\001\000\036\020\121\021\074\022\071\023\103" +
    "\024\102\025\056\026\072\027\104\030\076\031\062\032" +
    "\067\033\064\041\063\042\073\001\001\000\002\001\001" +
    "\000\040\017\123\020\115\021\074\022\071\023\103\024" +
    "\102\025\056\026\072\027\104\030\076\031\062\032\067" +
    "\033\064\041\063\042\073\001\001\000\002\001\001\000" +
    "\036\020\167\021\074\022\071\023\103\024\102\025\056" +
    "\026\072\027\104\030\076\031\062\032\067\033\064\041" +
    "\063\042\073\001\001\000\036\020\166\021\074\022\071" +
    "\023\103\024\102\025\056\026\072\027\104\030\076\031" +
    "\062\032\067\033\064\041\063\042\073\001\001\000\036" +
    "\020\165\021\074\022\071\023\103\024\102\025\056\026" +
    "\072\027\104\030\076\031\062\032\067\033\064\041\063" +
    "\042\073\001\001\000\036\020\164\021\074\022\071\023" +
    "\103\024\102\025\056\026\072\027\104\030\076\031\062" +
    "\032\067\033\064\041\063\042\073\001\001\000\036\020" +
    "\163\021\074\022\071\023\103\024\102\025\056\026\072" +
    "\027\104\030\076\031\062\032\067\033\064\041\063\042" +
    "\073\001\001\000\036\020\160\021\074\022\071\023\103" +
    "\024\102\025\056\026\072\027\104\030\076\031\062\032" +
    "\067\033\064\041\063\042\073\001\001\000\036\020\157" +
    "\021\074\022\071\023\103\024\102\025\056\026\072\027" +
    "\104\030\076\031\062\032\067\033\064\041\063\042\073" +
    "\001\001\000\036\020\156\021\074\022\071\023\103\024" +
    "\102\025\056\026\072\027\104\030\076\031\062\032\067" +
    "\033\064\041\063\042\073\001\001\000\036\020\155\021" +
    "\074\022\071\023\103\024\102\025\056\026\072\027\104" +
    "\030\076\031\062\032\067\033\064\041\063\042\073\001" +
    "\001\000\036\020\154\021\074\022\071\023\103\024\102" +
    "\025\056\026\072\027\104\030\076\031\062\032\067\033" +
    "\064\041\063\042\073\001\001\000\036\020\153\021\074" +
    "\022\071\023\103\024\102\025\056\026\072\027\104\030" +
    "\076\031\062\032\067\033\064\041\063\042\073\001\001" +
    "\000\036\020\152\021\074\022\071\023\103\024\102\025" +
    "\056\026\072\027\104\030\076\031\062\032\067\033\064" +
    "\041\063\042\073\001\001\000\036\020\151\021\074\022" +
    "\071\023\103\024\102\025\056\026\072\027\104\030\076" +
    "\031\062\032\067\033\064\041\063\042\073\001\001\000" +
    "\036\020\150\021\074\022\071\023\103\024\102\025\056" +
    "\026\072\027\104\030\076\031\062\032\067\033\064\041" +
    "\063\042\073\001\001\000\036\020\147\021\074\022\071" +
    "\023\103\024\102\025\056\026\072\027\104\030\076\031" +
    "\062\032\067\033\064\041\063\042\073\001\001\000\036" +
    "\020\146\021\074\022\071\023\103\024\102\025\056\026" +
    "\072\027\104\030\076\031\062\032\067\033\064\041\063" +
    "\042\073\001\001\000\036\020\145\021\074\022\071\023" +
    "\103\024\102\025\056\026\072\027\104\030\076\031\062" +
    "\032\067\033\064\041\063\042\073\001\001\000\002\001" +
    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
    "\002\001\001\000\002\001\001\000\002\001\001\000\002" +
    "\001\001\000\002\001\001\000\036\020\162\021\074\022" +
    "\071\023\103\024\102\025\056\026\072\027\104\030\076" +
    "\031\062\032\067\033\064\041\063\042\073\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\040\017\174\020\115\021\074\022\071\023\103" +
    "\024\102\025\056\026\072\027\104\030\076\031\062\032" +
    "\067\033\064\041\063\042\073\001\001\000\040\017\173" +
    "\020\115\021\074\022\071\023\103\024\102\025\056\026" +
    "\072\027\104\030\076\031\062\032\067\033\064\041\063" +
    "\042\073\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\040\017\203\020\115\021\074\022\071\023" +
    "\103\024\102\025\056\026\072\027\104\030\076\031\062" +
    "\032\067\033\064\041\063\042\073\001\001\000\002\001" +
    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
    "\000\004\041\210\001\001\000\002\001\001\000\002\001" +
    "\001\000\040\017\213\020\115\021\074\022\071\023\103" +
    "\024\102\025\056\026\072\027\104\030\076\031\062\032" +
    "\067\033\064\041\063\042\073\001\001\000\002\001\001" +
    "\000\002\001\001\000\002\001\001\000\004\041\216\001" +
    "\001\000\002\001\001\000\040\017\221\020\115\021\074" +
    "\022\071\023\103\024\102\025\056\026\072\027\104\030" +
    "\076\031\062\032\067\033\064\041\063\042\073\001\001" +
    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
    "\002\001\001\000\004\041\225\001\001\000\002\001\001" +
    "\000\040\017\230\020\115\021\074\022\071\023\103\024" +
    "\102\025\056\026\072\027\104\030\076\031\062\032\067" +
    "\033\064\041\063\042\073\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\040\017" +
    "\242\020\115\021\074\022\071\023\103\024\102\025\056" +
    "\026\072\027\104\030\076\031\062\032\067\033\064\041" +
    "\063\042\073\001\001\000\036\020\240\021\074\022\071" +
    "\023\103\024\102\025\056\026\072\027\104\030\076\031" +
    "\062\032\067\033\064\041\063\042\073\001\001\000\002" +
    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
    "\001\000\002\001\001\000\036\020\246\021\074\022\071" +
    "\023\103\024\102\025\056\026\072\027\104\030\076\031" +
    "\062\032\067\033\064\041\063\042\073\001\001\000\002" +
    "\001\001\000\002\001\001\000\036\020\251\021\074\022" +
    "\071\023\103\024\102\025\056\026\072\027\104\030\076" +
    "\031\062\032\067\033\064\041\063\042\073\001\001\000" +
    "\002\001\001\000\040\012\255\020\253\021\074\022\071" +
    "\023\103\024\102\025\056\026\072\027\104\030\076\031" +
    "\062\032\067\033\064\041\063\042\073\001\001\000\002" +
    "\001\001\000\040\020\121\021\074\022\071\023\103\024" +
    "\102\025\056\026\072\027\104\030\076\031\062\032\067" +
    "\033\064\041\063\042\073\053\314\001\001\000\002\001" +
    "\001\000\046\013\262\014\264\015\257\016\267\020\260" +
    "\021\074\022\071\023\103\024\102\025\056\026\072\027" +
    "\104\030\076\031\062\032\067\033\064\041\063\042\073" +
    "\001\001\000\002\001\001\000\002\001\001\000\036\020" +
    "\306\021\074\022\071\023\103\024\102\025\056\026\072" +
    "\027\104\030\076\031\062\032\067\033\064\041\063\042" +
    "\073\001\001\000\002\001\001\000\002\001\001\000\002" +
    "\001\001\000\036\020\121\021\074\022\071\023\103\024" +
    "\102\025\056\026\072\027\104\030\076\031\062\032\067" +
    "\033\064\041\063\042\073\001\001\000\010\040\271\041" +
    "\035\042\034\001\001\000\002\001\001\000\010\040\276" +
    "\041\035\042\034\001\001\000\002\001\001\000\040\017" +
    "\274\020\115\021\074\022\071\023\103\024\102\025\056" +
    "\026\072\027\104\030\076\031\062\032\067\033\064\041" +
    "\063\042\073\001\001\000\002\001\001\000\002\001\001" +
    "\000\002\001\001\000\002\001\001\000\040\017\301\020" +
    "\115\021\074\022\071\023\103\024\102\025\056\026\072" +
    "\027\104\030\076\031\062\032\067\033\064\041\063\042" +
    "\073\001\001\000\002\001\001\000\002\001\001\000\002" +
    "\001\001\000\044\014\304\015\257\016\267\020\260\021" +
    "\074\022\071\023\103\024\102\025\056\026\072\027\104" +
    "\030\076\031\062\032\067\033\064\041\063\042\073\001" +
    "\001\000\002\001\001\000\036\020\121\021\074\022\071" +
    "\023\103\024\102\025\056\026\072\027\104\030\076\031" +
    "\062\032\067\033\064\041\063\042\073\001\001\000\002" +
    "\001\001\000\044\014\312\015\257\016\267\020\260\021" +
    "\074\022\071\023\103\024\102\025\056\026\072\027\104" +
    "\030\076\031\062\032\067\033\064\041\063\042\073\001" +
    "\001\000\044\014\311\015\257\016\267\020\260\021\074" +
    "\022\071\023\103\024\102\025\056\026\072\027\104\030" +
    "\076\031\062\032\067\033\064\041\063\042\073\001\001" +
    "\000\002\001\001\000\002\001\001\000\036\020\121\021" +
    "\074\022\071\023\103\024\102\025\056\026\072\027\104" +
    "\030\076\031\062\032\067\033\064\041\063\042\073\001" +
    "\001\000\002\001\001\000\046\013\316\014\264\015\257" +
    "\016\267\020\260\021\074\022\071\023\103\024\102\025" +
    "\056\026\072\027\104\030\076\031\062\032\067\033\064" +
    "\041\063\042\073\001\001\000\002\001\001\000\002\001" +
    "\001\000\040\012\321\020\253\021\074\022\071\023\103" +
    "\024\102\025\056\026\072\027\104\030\076\031\062\032" +
    "\067\033\064\041\063\042\073\001\001\000\002\001\001" +
    "\000\046\013\323\014\264\015\257\016\267\020\260\021" +
    "\074\022\071\023\103\024\102\025\056\026\072\027\104" +
    "\030\076\031\062\032\067\033\064\041\063\042\073\001" +
    "\001\000\002\001\001\000\040\020\121\021\074\022\071" +
    "\023\103\024\102\025\056\026\072\027\104\030\076\031" +
    "\062\032\067\033\064\041\063\042\073\054\331\001\001" +
    "\000\002\001\001\000\046\013\327\014\264\015\257\016" +
    "\267\020\260\021\074\022\071\023\103\024\102\025\056" +
    "\026\072\027\104\030\076\031\062\032\067\033\064\041" +
    "\063\042\073\001\001\000\002\001\001\000\036\020\121" +
    "\021\074\022\071\023\103\024\102\025\056\026\072\027" +
    "\104\030\076\031\062\032\067\033\064\041\063\042\073" +
    "\001\001\000\002\001\001\000\046\013\333\014\264\015" +
    "\257\016\267\020\260\021\074\022\071\023\103\024\102" +
    "\025\056\026\072\027\104\030\076\031\062\032\067\033" +
    "\064\041\063\042\073\001\001\000\002\001\001" });

  /** Access to <code>reduce_goto</code> table. */
  public short[][] reduce_table() {return _reduce_table;}

  /** Instance of action encapsulation class. */
  protected CUP$ECAGrammarParser$actions action_obj;

  /** Action encapsulation object initializer. */
  protected void init_actions()
    {
      action_obj = new CUP$ECAGrammarParser$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$ECAGrammarParser$do_action(act_num, parser, stack, top);
  }

  /** Indicates start state. */
  public int start_state() {return 0;}
  /** Indicates start production. */
  public int start_production() {return 1;}

  /** <code>EOF</code> Symbol index. */
  public int EOF_sym() {return 0;}

  /** <code>error</code> Symbol index. */
  public int error_sym() {return 1;}


  /** Scan to get the next Symbol. */
  public java_cup.runtime.Symbol scan()
    throws java.lang.Exception
    {
Symbol token = getScanner().next_token();
       return token;
        
    }



  private String file = "";
  private int errorCount = 0;
  private StringBuffer errorBuffer = new StringBuffer();

  public void setFile(String file)
  {
    this.file = file;
  }

  /**
   * Called by the parser when it detects a syntax error. This is overridden so
   * that it does nothing. Instead the parser relies upon explicit calls to routine
   * error(String) or error(String, int line, int column) which store details of
   * synatx errors into an error buffer for retrieval after the parse call completes.
   *
   * @param message an error message.
   * @param info    an extra object reserved for use by specialized subclasses.
   */

  public void report_error(String message, Object info)
  {
  }

  /**
   * Called by the parser when it is unable to recover from one or more syntax errors
   *
   * @param cur_token the token current at the point in the token stream where the recovery
   * process fails
   */

  public void unrecovered_syntax_error(Symbol cur_token)
  {
      int line = cur_token.left;
      errorCount++;
      errorBuffer.append('\n');
      errorBuffer.append(file);
      if (line >= 0) {
          errorBuffer.append(" line ");
          errorBuffer.append(cur_token.left);
      }
      errorBuffer.append(" : unable to recover from previous errors");
  }

  public void error(String message)
  {
        errorCount++;
        errorBuffer.append('\n');
        errorBuffer.append(file);
        errorBuffer.append(" : ");
        errorBuffer.append(message);
  }

  public void error(String message, int line, int col)
  {
        errorCount++;
        errorBuffer.append('\n');
        errorBuffer.append(file);
        errorBuffer.append(" line ");
        errorBuffer.append(line);
        errorBuffer.append(" : ");
        errorBuffer.append(message);
  }

  public String getFile()
  {
    return file;
  }

  public int getErrorCount()
  {
    return errorCount;
  }

  public String getErrors()
  {
    return errorBuffer.toString();
  }

  /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/

  /** Do debug output for a reduce.
   *
   * @param prod_num  the production we are reducing with.
   * @param nt_num    the index of the LHS non terminal.
   * @param rhs_size  the size of the RHS.
   */
  public void debug_reduce(int prod_num, int nt_num, int rhs_size)
    {
      debug_message("# Reduce with prod #" + prod_num + " [NT=" + nt_num +
              ", " + "SZ=" + rhs_size + "]");
    }

  /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/

  /** Do debug output for shift.
   *
   * @param shift_tkn the Symbol being shifted onto the stack.
   */
  public void debug_shift(Symbol shift_tkn)
    {
      debug_message("# Shift under term " + shift_tkn +
        " to state #" + shift_tkn.parse_state);
    }

}

/** Cup generated class to encapsulate user supplied action code.*/
class CUP$ECAGrammarParser$actions {


    /*
    private ParseNode node(int tag)
    {
    return ParseNode.node(tag, parser.getFile());
    }
    */

    private ParseNode node(int tag, int line, int column)
    {
  return ParseNode.node(tag, parser.getFile(), line, column);
    }

    private ParseNode node(int tag, int line, int column, Object child0)
    {
  return ParseNode.node(tag, parser.getFile(), line, column, child0);
    }

    private ParseNode node(int tag, int line, int column, Object child0, Object child1)
    {
  return ParseNode.node(tag, parser.getFile(), line, column, child0, child1);
    }

    private ParseNode node(int tag, int line, int column, Object child0, Object child1, Object child2)
    {
  return ParseNode.node(tag, parser.getFile(), line, column, child0, child1, child2);
    }

    /*
    private ParseNode node(int tag, int line, int column, Object child0, Object child1, Object child2, Object child3)
    {
  return ParseNode.node(tag, parser.getFile(), line, column, child0, child1, child2, child3);
    }
    */
    public void error(String message, int line, int col)
    {
        parser.error(message, line, col);
    }

    public void error(String message)
    {
        parser.error(message);
    }


  private final ECAGrammarParser parser;

  /** Constructor */
  CUP$ECAGrammarParser$actions(ECAGrammarParser parser) {
    this.parser = parser;
  }

  /** Method with the actual generated action code. */
  public final java_cup.runtime.Symbol CUP$ECAGrammarParser$do_action(
    int                        CUP$ECAGrammarParser$act_num,
    java_cup.runtime.lr_parser CUP$ECAGrammarParser$parser,
    java.util.Stack            CUP$ECAGrammarParser$stack,
    int                        CUP$ECAGrammarParser$top)
    throws java.lang.Exception
    {
      /* Symbol object for return from actions */
      java_cup.runtime.Symbol CUP$ECAGrammarParser$result;

      /* select the action based on the action number */
      switch (CUP$ECAGrammarParser$act_num)
        {
          /*. . . . . . . . . . . . . . . . . . . .*/
          case 124: // path ::= path DOT IDENTIFIER
            {
              ParseNode RESULT = null;
    int pleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int pright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode p = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int ileft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int iright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    String i = (String)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = node(ParseNode.PATH, ileft, iright, i, p);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(32/*path*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 123: // path ::= IDENTIFIER
            {
              ParseNode RESULT = null;
    int ileft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int iright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    String i = (String)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = node(ParseNode.PATH, ileft, iright, i, null);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(32/*path*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 122: // simple_name ::= IDENTIFIER
            {
              ParseNode RESULT = null;
    int ileft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int iright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    String i = (String)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = node(ParseNode.IDENTIFIER, ileft, iright, i, null);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(31/*simple_name*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 121: // name ::= path DOT IDENTIFIER
            {
              ParseNode RESULT = null;
    int pleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int pright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode p = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int ileft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int iright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    String i = (String)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = node(ParseNode.IDENTIFIER, ileft, iright, i, p);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(30/*name*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 120: // name ::= simple_name
            {
              ParseNode RESULT = null;
    int nleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int nright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode n = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = n;
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(30/*name*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 119: // null_expr ::= NULL_LITERAL
            {
              ParseNode RESULT = null;
    int nleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int nright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    Object n = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = node(ParseNode.NULL_LITERAL, nleft, nright);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(25/*null_expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 118: // simple_expr ::= LPAREN expr RPAREN
            {
              ParseNode RESULT = null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
     RESULT = e;
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(24/*simple_expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 117: // simple_expr ::= DOLLAR
            {
              ParseNode RESULT = null;
    int sleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int sright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    Object s = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = node(ParseNode.DOLLAR, sleft, sright, s);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(24/*simple_expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 116: // simple_expr ::= STRING_LITERAL
            {
              ParseNode RESULT = null;
    int sleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int sright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    String s = (String)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = node(ParseNode.STRING_LITERAL, sleft, sright, s);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(24/*simple_expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 115: // simple_expr ::= BOOLEAN_LITERAL
            {
              ParseNode RESULT = null;
    int bleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    Boolean b = (Boolean)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT =  node(ParseNode.BOOLEAN_LITERAL, bleft, bright, b);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(24/*simple_expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 114: // simple_expr ::= FLOAT_LITERAL
            {
              ParseNode RESULT = null;
    int fleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int fright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    Float f = (Float)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT =  node(ParseNode.FLOAT_LITERAL, fleft, fright, f);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(24/*simple_expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 113: // simple_expr ::= INTEGER_LITERAL
            {
              ParseNode RESULT = null;
    int ileft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int iright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    Integer i = (Integer)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT =  node(ParseNode.INTEGER_LITERAL, ileft, iright, i);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(24/*simple_expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 112: // new_expr ::= NEW name LPAREN expr_list RPAREN
            {
              ParseNode RESULT = null;
    int ileft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).left;
    int iright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).right;
    ParseNode i = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).value;
    int argsleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int argsright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    ParseNode args = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
     RESULT = node(ParseNode.NEW, ileft, iright, i, args);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(23/*new_expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 111: // new_expr ::= NEW name LPAREN RPAREN
            {
              ParseNode RESULT = null;
    int ileft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int iright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode i = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
     RESULT = node(ParseNode.NEW, ileft, iright, i, null);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(23/*new_expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 110: // expr_meth_expr ::= expr_field_expr DOT simple_name LPAREN expr_list RPAREN
            {
              ParseNode RESULT = null;
    int efeleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)).left;
    int eferight = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)).right;
    ParseNode efe = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)).value;
    int mleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).left;
    int mright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).right;
    ParseNode m = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).value;
    int argsleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int argsright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    ParseNode args = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
     RESULT = node(ParseNode.METH, mleft, mright, m, efe, args);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(22/*expr_meth_expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 109: // expr_meth_expr ::= expr_field_expr DOT simple_name LPAREN RPAREN
            {
              ParseNode RESULT = null;
    int efeleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).left;
    int eferight = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).right;
    ParseNode efe = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).value;
    int mleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int mright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode m = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
     RESULT = node(ParseNode.METH, mleft, mright, m, efe, null);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(22/*expr_meth_expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 108: // expr_meth_expr ::= meth_expr DOT simple_name LPAREN expr_list RPAREN
            {
              ParseNode RESULT = null;
    int emeleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)).left;
    int emeright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)).right;
    ParseNode eme = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)).value;
    int mleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).left;
    int mright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).right;
    ParseNode m = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).value;
    int argsleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int argsright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    ParseNode args = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
     RESULT = node(ParseNode.METH, mleft, mright, m, eme, args);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(22/*expr_meth_expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 107: // expr_meth_expr ::= meth_expr DOT simple_name LPAREN RPAREN
            {
              ParseNode RESULT = null;
    int emeleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).left;
    int emeright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).right;
    ParseNode eme = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).value;
    int mleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int mright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode m = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
     RESULT = node(ParseNode.METH, mleft, mright, m, eme, null);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(22/*expr_meth_expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 106: // expr_meth_expr ::= simple_expr DOT simple_name LPAREN expr_list RPAREN
            {
              ParseNode RESULT = null;
    int seleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)).left;
    int seright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)).right;
    ParseNode se = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)).value;
    int mleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).left;
    int mright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).right;
    ParseNode m = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).value;
    int argsleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int argsright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    ParseNode args = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
     RESULT = node(ParseNode.METH, mleft, mright, m, se, args);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(22/*expr_meth_expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 105: // expr_meth_expr ::= simple_expr DOT simple_name LPAREN RPAREN
            {
              ParseNode RESULT = null;
    int seleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).left;
    int seright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).right;
    ParseNode se = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).value;
    int mleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int mright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode m = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
     RESULT = node(ParseNode.METH, mleft, mright, m, se, null);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(22/*expr_meth_expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 104: // meth_expr ::= expr_meth_expr
            {
              ParseNode RESULT = null;
    int emeleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int emeright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode eme = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = eme;
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(21/*meth_expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 103: // meth_expr ::= path DOT simple_name LPAREN expr_list RPAREN
            {
              ParseNode RESULT = null;
    int pleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)).left;
    int pright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)).right;
    ParseNode p = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)).value;
    int mleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).left;
    int mright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).right;
    ParseNode m = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).value;
    int argsleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int argsright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    ParseNode args = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
     RESULT = node(ParseNode.METH, mleft, mright, m, p, args);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(21/*meth_expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 102: // meth_expr ::= path DOT simple_name LPAREN RPAREN
            {
              ParseNode RESULT = null;
    int pleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).left;
    int pright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).right;
    ParseNode p = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).value;
    int mleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int mright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode m = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
     RESULT = node(ParseNode.METH, mleft, mright, m, p, null);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(21/*meth_expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 101: // meth_expr ::= simple_name LPAREN expr_list RPAREN
            {
              ParseNode RESULT = null;
    int mleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).left;
    int mright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).right;
    ParseNode m = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).value;
    int argsleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int argsright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    ParseNode args = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
     RESULT = node(ParseNode.METH, mleft, mright, m, null, args);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(21/*meth_expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 100: // meth_expr ::= simple_name LPAREN RPAREN
            {
              ParseNode RESULT = null;
    int mleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int mright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode m = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
     RESULT = node(ParseNode.METH, mleft, mright, m, null, null);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(21/*meth_expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 99: // expr_field_expr ::= expr_field_expr DOT simple_name
            {
              ParseNode RESULT = null;
    int efeleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int eferight = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode efe = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int fleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int fright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode f = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = node(ParseNode.FIELD, fleft, fright, f, efe);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(20/*expr_field_expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 98: // expr_field_expr ::= meth_expr DOT simple_name
            {
              ParseNode RESULT = null;
    int meleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int meright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode me = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int fleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int fright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode f = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = node(ParseNode.FIELD, fleft, fright, f, me);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(20/*expr_field_expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 97: // expr_field_expr ::= simple_expr DOT simple_name
            {
              ParseNode RESULT = null;
    int seleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int seright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode se = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int fleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int fright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode f = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = node(ParseNode.FIELD, fleft, fright, f, se);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(20/*expr_field_expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 96: // field_expr ::= expr_field_expr
            {
              ParseNode RESULT = null;
    int efeleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int eferight = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode efe = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = efe;
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(19/*field_expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 95: // field_expr ::= path DOT simple_name
            {
              ParseNode RESULT = null;
    int pleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int pright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode p = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int fleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int fright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode f = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = node(ParseNode.FIELD, fleft, fright, f, p);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(19/*field_expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 94: // array_idx ::= LSQUARE expr RSQUARE
            {
              ParseNode RESULT = null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
     RESULT = e;
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(27/*array_idx*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 93: // array_idx_list ::= array_idx
            {
              ParseNode RESULT = null;
    int aileft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int airight = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode ai = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = ai;
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(26/*array_idx_list*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 92: // array_idx_list ::= array_idx array_idx_list
            {
              ParseNode RESULT = null;
    int aileft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int airight = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    ParseNode ai = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int ailleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int ailright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode ail = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT =  node(ParseNode.SEMI, aileft, airight, ai, ail);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(26/*array_idx_list*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 91: // array_expr ::= meth_expr array_idx_list
            {
              ParseNode RESULT = null;
    int meleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int meright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    ParseNode me = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int ailleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int ailright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode ail = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = node(ParseNode.ARRAY, meleft, meright, me, ail);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(18/*array_expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 90: // array_expr ::= field_expr array_idx_list
            {
              ParseNode RESULT = null;
    int feleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int feright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    ParseNode fe = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int ailleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int ailright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode ail = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = node(ParseNode.ARRAY, feleft, feright, fe, ail);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(18/*array_expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 89: // array_expr ::= simple_name array_idx_list
            {
              ParseNode RESULT = null;
    int nameleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int nameright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    ParseNode name = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int ailleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int ailright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode ail = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = node(ParseNode.ARRAY, nameleft, nameright, name, ail);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(18/*array_expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 88: // array_expr ::= simple_expr array_idx_list
            {
              ParseNode RESULT = null;
    int seleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int seright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    ParseNode se = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int ailleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int ailright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode ail = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = node(ParseNode.ARRAY, seleft, seright, se, ail);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(18/*array_expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 87: // unary_oper_expr ::= MINUS expr
            {
              ParseNode RESULT = null;
    int oleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int oright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object o = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = node(ParseNode.UNOP, eleft, eright, node(ParseNode.UMINUS, oleft, oright), e);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(17/*unary_oper_expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 86: // unary_oper_expr ::= TWIDDLE expr
            {
              ParseNode RESULT = null;
    int oleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int oright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object o = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = node(ParseNode.UNOP, eleft, eright, node(ParseNode.TWIDDLE, oleft, oright), e);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(17/*unary_oper_expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 85: // unary_oper_expr ::= NOT expr
            {
              ParseNode RESULT = null;
    int oleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int oright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object o = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = node(ParseNode.UNOP, eleft, eright, node(ParseNode.NOT, oleft, oright), e);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(17/*unary_oper_expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 84: // binary_oper_expr ::= expr MOD expr
            {
              ParseNode RESULT = null;
    int e1left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int e1right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e1 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int oleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int oright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object o = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int e2left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int e2right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode e2 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = node(ParseNode.BINOP, e1left, e1right, node(ParseNode.MOD, oleft, oright), e1, e2);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(16/*binary_oper_expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 83: // binary_oper_expr ::= expr DIV expr
            {
              ParseNode RESULT = null;
    int e1left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int e1right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e1 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int oleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int oright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object o = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int e2left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int e2right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode e2 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = node(ParseNode.BINOP, e1left, e1right, node(ParseNode.DIV, oleft, oright), e1, e2);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(16/*binary_oper_expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 82: // binary_oper_expr ::= expr MUL expr
            {
              ParseNode RESULT = null;
    int e1left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int e1right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e1 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int oleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int oright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object o = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int e2left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int e2right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode e2 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = node(ParseNode.BINOP, e1left, e1right, node(ParseNode.MUL, oleft, oright), e1, e2);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(16/*binary_oper_expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 81: // binary_oper_expr ::= expr MINUS expr
            {
              ParseNode RESULT = null;
    int e1left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int e1right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e1 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int oleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int oright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object o = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int e2left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int e2right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode e2 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = node(ParseNode.BINOP, e1left, e1right, node(ParseNode.MINUS, oleft, oright), e1, e2);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(16/*binary_oper_expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 80: // binary_oper_expr ::= expr PLUS expr
            {
              ParseNode RESULT = null;
    int e1left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int e1right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e1 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int oleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int oright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object o = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int e2left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int e2right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode e2 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = node(ParseNode.BINOP, e1left, e1right, node(ParseNode.PLUS, oleft, oright), e1, e2);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(16/*binary_oper_expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 79: // binary_oper_expr ::= expr BXOR expr
            {
              ParseNode RESULT = null;
    int e1left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int e1right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e1 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int oleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int oright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object o = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int e2left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int e2right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode e2 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = node(ParseNode.BINOP, e1left, e1right, node(ParseNode.BXOR, oleft, oright), e1, e2);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(16/*binary_oper_expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 78: // binary_oper_expr ::= expr BAND expr
            {
              ParseNode RESULT = null;
    int e1left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int e1right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e1 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int oleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int oright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object o = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int e2left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int e2right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode e2 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = node(ParseNode.BINOP, e1left, e1right, node(ParseNode.BAND, oleft, oright), e1, e2);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(16/*binary_oper_expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 77: // binary_oper_expr ::= expr BOR expr
            {
              ParseNode RESULT = null;
    int e1left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int e1right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e1 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int oleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int oright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object o = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int e2left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int e2right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode e2 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = node(ParseNode.BINOP, e1left, e1right, node(ParseNode.BOR, oleft, oright), e1, e2);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(16/*binary_oper_expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 76: // binary_oper_expr ::= expr GT expr
            {
              ParseNode RESULT = null;
    int e1left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int e1right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e1 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int oleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int oright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object o = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int e2left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int e2right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode e2 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = node(ParseNode.BINOP, e1left, e1right, node(ParseNode.GT, oleft, oright), e1, e2);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(16/*binary_oper_expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 75: // binary_oper_expr ::= expr GE expr
            {
              ParseNode RESULT = null;
    int e1left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int e1right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e1 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int oleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int oright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object o = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int e2left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int e2right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode e2 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = node(ParseNode.BINOP, e1left, e1right, node(ParseNode.GE, oleft, oright), e1, e2);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(16/*binary_oper_expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 74: // binary_oper_expr ::= expr NE expr
            {
              ParseNode RESULT = null;
    int e1left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int e1right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e1 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int oleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int oright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object o = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int e2left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int e2right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode e2 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = node(ParseNode.BINOP, e1left, e1right, node(ParseNode.NE, oleft, oright), e1, e2);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(16/*binary_oper_expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 73: // binary_oper_expr ::= expr EQ expr
            {
              ParseNode RESULT = null;
    int e1left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int e1right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e1 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int oleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int oright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object o = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int e2left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int e2right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode e2 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = node(ParseNode.BINOP, e1left, e1right, node(ParseNode.EQ, oleft, oright), e1, e2);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(16/*binary_oper_expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 72: // binary_oper_expr ::= expr LE expr
            {
              ParseNode RESULT = null;
    int e1left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int e1right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e1 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int oleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int oright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object o = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int e2left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int e2right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode e2 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = node(ParseNode.BINOP, e1left, e1right, node(ParseNode.LE, oleft, oright), e1, e2);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(16/*binary_oper_expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 71: // binary_oper_expr ::= expr LT expr
            {
              ParseNode RESULT = null;
    int e1left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int e1right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e1 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int oleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int oright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object o = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int e2left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int e2right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode e2 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = node(ParseNode.BINOP, e1left, e1right, node(ParseNode.LT, oleft, oright), e1, e2);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(16/*binary_oper_expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 70: // binary_oper_expr ::= expr AND expr
            {
              ParseNode RESULT = null;
    int e1left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int e1right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e1 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int oleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int oright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object o = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int e2left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int e2right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode e2 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = node(ParseNode.BINOP, e1left, e1right, node(ParseNode.AND, oleft, oright), e1, e2);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(16/*binary_oper_expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 69: // binary_oper_expr ::= expr OR expr
            {
              ParseNode RESULT = null;
    int e1left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int e1right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e1 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int oleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int oright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object o = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int e2left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int e2right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode e2 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = node(ParseNode.BINOP, e1left, e1right, node(ParseNode.OR, oleft, oright), e1, e2);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(16/*binary_oper_expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 68: // ternary_oper_expr ::= expr TERN_IF expr COLON expr
            {
              ParseNode RESULT = null;
    int condleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).left;
    int condright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).right;
    ParseNode cond = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).value;
    int iftrueleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int iftrueright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode iftrue = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int iffalseleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int iffalseright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode iffalse = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = node(ParseNode.TERNOP, condleft, condright, cond, iftrue, iffalse);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(15/*ternary_oper_expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 67: // expr ::= error expr
            {
              ParseNode RESULT = null;
    int errleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int errright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object err = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     error("invalid expression", errleft, errright); RESULT = e;
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(14/*expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 66: // expr ::= field_expr ASSIGN expr
            {
              ParseNode RESULT = null;
    int fleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int fright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode f = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = node(ParseNode.ASSIGN, fleft, fright, f, e);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(14/*expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 65: // expr ::= DOLLAR ASSIGN expr
            {
              ParseNode RESULT = null;
    int dleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int dright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    Object d = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = node(ParseNode.ASSIGN, dleft, dright, node(ParseNode.DOLLAR, dleft, dright, d), e);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(14/*expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 64: // expr ::= simple_name ASSIGN expr
            {
              ParseNode RESULT = null;
    int sleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int sright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode s = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = node(ParseNode.ASSIGN, sleft, sright, s, e);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(14/*expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 63: // expr ::= simple_name
            {
              ParseNode RESULT = null;
    int nleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int nright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode n = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = n;
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(14/*expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 62: // expr ::= null_expr
            {
              ParseNode RESULT = null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = e;
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(14/*expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 61: // expr ::= simple_expr
            {
              ParseNode RESULT = null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = e;
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(14/*expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 60: // expr ::= new_expr
            {
              ParseNode RESULT = null;
    int neleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int neright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode ne = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = ne;
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(14/*expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 59: // expr ::= meth_expr
            {
              ParseNode RESULT = null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = e;
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(14/*expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 58: // expr ::= field_expr
            {
              ParseNode RESULT = null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = e;
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(14/*expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 57: // expr ::= array_expr
            {
              ParseNode RESULT = null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = e;
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(14/*expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 56: // expr ::= unary_oper_expr
            {
              ParseNode RESULT = null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = e;
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(14/*expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 55: // expr ::= binary_oper_expr
            {
              ParseNode RESULT = null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = e;
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(14/*expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 54: // expr ::= ternary_oper_expr
            {
              ParseNode RESULT = null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = e;
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(14/*expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 53: // expr_list ::= error SEMI expr_list
            {
              ParseNode RESULT = null;
    int errleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int errright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    Object err = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int elleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int elright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode el = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     error("invalid expression", errleft, errright);
       RESULT = el;
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(13/*expr_list*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 52: // expr_list ::= expr SEMI expr_list
            {
              ParseNode RESULT = null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int elleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int elright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode el = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = node(ParseNode.COMMA, eleft, eright, e, el);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(13/*expr_list*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 51: // expr_list ::= expr COMMA expr_list
            {
              ParseNode RESULT = null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int elleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int elright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode el = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = node(ParseNode.COMMA, eleft, eright, e, el);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(13/*expr_list*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 50: // expr_list ::= expr
            {
              ParseNode RESULT = null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = e;
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(13/*expr_list*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 49: // throw_return_expr ::= THROW NEW name LPAREN expr_list RPAREN
            {
              ParseNode RESULT = null;
    int ileft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).left;
    int iright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).right;
    ParseNode i = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).value;
    int argsleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int argsright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    ParseNode args = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
     RESULT = node(ParseNode.THROW, ileft, iright, i, args);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(12/*throw_return_expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 48: // throw_return_expr ::= THROW NEW name LPAREN RPAREN
            {
              ParseNode RESULT = null;
    int ileft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int iright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode i = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
     RESULT = node(ParseNode.THROW, ileft, iright, i, null);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(12/*throw_return_expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 47: // throw_return_expr ::= THROW name LPAREN expr_list RPAREN
            {
              ParseNode RESULT = null;
    int ileft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).left;
    int iright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).right;
    ParseNode i = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).value;
    int argsleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int argsright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    ParseNode args = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
     RESULT = node(ParseNode.THROW, ileft, iright, i, args);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(12/*throw_return_expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 46: // throw_return_expr ::= THROW name LPAREN RPAREN
            {
              ParseNode RESULT = null;
    int ileft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int iright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode i = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
     RESULT = node(ParseNode.THROW, ileft, iright, i, null);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(12/*throw_return_expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 45: // throw_return_expr ::= RETURN expr
            {
              ParseNode RESULT = null;
    int rleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int rright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object r = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = node(ParseNode.RETURN, rleft, rright, e);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(12/*throw_return_expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 44: // throw_return_expr ::= RETURN
            {
              ParseNode RESULT = null;
    int rleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int rright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    Object r = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = node(ParseNode.RETURN, rleft, rright, null);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(12/*throw_return_expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 43: // action_expr ::= throw_return_expr
            {
              ParseNode RESULT = null;
    int treleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int treright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode tre = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = tre;
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(11/*action_expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 42: // action_expr ::= expr
            {
              ParseNode RESULT = null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = e;
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(11/*action_expr*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 41: // action_expr_list ::= action_expr
            {
              ParseNode RESULT = null;
    int aeleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int aeright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode ae = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = ae;
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(10/*action_expr_list*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 40: // action_expr_list ::= expr SEMI error
            {
              ParseNode RESULT = null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int errleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int errright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    Object err = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     error("invalid action", errleft, errright);
       RESULT = e;
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(10/*action_expr_list*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 39: // action_expr_list ::= error SEMI action_expr_list
            {
              ParseNode RESULT = null;
    int errleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int errright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    Object err = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int aelleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int aelright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode ael = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     error("invalid action", errleft, errright);
       RESULT = ael;
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(10/*action_expr_list*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 38: // action_expr_list ::= expr COMMA action_expr_list
            {
              ParseNode RESULT = null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int aelleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int aelright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode ael = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = node(ParseNode.SEMI, eleft, eright, e, ael);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(10/*action_expr_list*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 37: // action_expr_list ::= expr SEMI action_expr_list
            {
              ParseNode RESULT = null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int aelleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int aelright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode ael = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = node(ParseNode.SEMI, eleft, eright, e, ael);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(10/*action_expr_list*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 36: // actions ::= action_expr_list
            {
              ParseNode RESULT = null;
    int aelleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int aelright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode ael = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = ael;
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(9/*actions*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 35: // actions ::= NOTHING
            {
              ParseNode RESULT = null;
    int nleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int nright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    Object n = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = node(ParseNode.NOTHING, nleft, nright);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(9/*actions*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 34: // condition ::= expr
            {
              ParseNode RESULT = null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = e;
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(8/*condition*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 33: // arraydims ::= LSQUARE RSQUARE
            {
              Integer RESULT = null;
     RESULT =  1;
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(29/*arraydims*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 32: // arraydims ::= LSQUARE RSQUARE arraydims
            {
              Integer RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    Integer a = (Integer)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = a + 1;
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(29/*arraydims*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 31: // typename ::= name
            {
              ParseNode RESULT = null;
    int tleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int tright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode t = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = t;
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(28/*typename*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 30: // typename ::= name arraydims
            {
              ParseNode RESULT = null;
    int tleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int tright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    ParseNode t = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int dleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int dright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    Integer d = (Integer)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
   
            ParseNode tmp = t;
            for (int i = 0; i < d; i++) {
                tmp =  node(ParseNode.ARRAY, tleft, tright, tmp);
            }
            RESULT = tmp;
       
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(28/*typename*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 29: // bind_sym ::= simple_name
            {
              ParseNode RESULT = null;
    int varleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int varright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode var = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = var;
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(7/*bind_sym*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 28: // bind_sym ::= simple_name COLON typename
            {
              ParseNode RESULT = null;
    int varleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int varright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode var = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int typeleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int typeright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode type = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = node(ParseNode.COLON, varleft, varright, var, type);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(7/*bind_sym*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 27: // binding ::= bind_sym ASSIGN expr
            {
              ParseNode RESULT = null;
    int sleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int sright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode s = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = node(ParseNode.ASSIGN, sleft, sright, s, e);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(6/*binding*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 26: // bindings ::= binding
            {
              ParseNode RESULT = null;
    int bleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode b = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = b;
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(5/*bindings*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 25: // bindings ::= binding SEMI error
            {
              ParseNode RESULT = null;
    int bleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode b = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int errleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int errright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    Object err = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     error("invalid binding", errleft, errright);
         RESULT = b;
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(5/*bindings*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 24: // bindings ::= error SEMI bindings
            {
              ParseNode RESULT = null;
    int errleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int errright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    Object err = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int bsleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int bsright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode bs = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     error("invalid binding", errleft, errright);
         RESULT = bs;
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(5/*bindings*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 23: // bindings ::= binding SEMI bindings
            {
              ParseNode RESULT = null;
    int bleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode b = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int bsleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int bsright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode bs = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = node(ParseNode.COMMA, bleft, bright, b, bs);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(5/*bindings*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 22: // bindings ::= binding COMMA bindings
            {
              ParseNode RESULT = null;
    int bleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode b = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int bsleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int bsright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode bs = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = node(ParseNode.COMMA, bleft, bright, b, bs);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(5/*bindings*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 21: // event ::= bindings
            {
              ParseNode RESULT = null;
    int bleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode b = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = b;
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(4/*event*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 20: // event ::= NOTHING
            {
              ParseNode RESULT = null;
    int nleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int nright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    Object n = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = node(ParseNode.NOTHING, nleft, nright);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(4/*event*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 19: // ca_error_in_action ::= IF condition DO error
            {
              ParseNode RESULT = null;
    int cleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int cright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode c = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int dleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int dright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object d = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
     error("invalid action", dleft, dright);
                      RESULT = node(ParseNode.BIND, cleft, cright, null, c, null);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(39/*ca_error_in_action*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 18: // ca_error_in_condition ::= IF error NT$2 DO actions
            {
              ParseNode RESULT = null;
              // propagate RESULT from NT$2
              if ( ((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value != null )
                RESULT = (ParseNode) ((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int ileft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).left;
    int iright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).right;
    Object i = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).value;
    int aleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode a = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = node(ParseNode.BIND, ileft, iright, null, null, a);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(38/*ca_error_in_condition*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 17: // NT$2 ::=
            {
              Object RESULT = null;
    int ileft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int iright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object i = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
error("invalid condition", ileft, iright);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(42/*NT$2*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 16: // ca_error ::= ca_error_in_action
            {
              ParseNode RESULT = null;

              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(37/*ca_error*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 15: // ca_error ::= ca_error_in_condition
            {
              ParseNode RESULT = null;

              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(37/*ca_error*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 14: // ca ::= ca_error
            {
              ParseNode RESULT = null;

              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(3/*ca*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 13: // ca ::= IF condition DO actions
            {
              ParseNode RESULT = null;
    int cleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int cright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode c = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int aleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode a = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = node(ParseNode.BIND, cleft, cright, null, c, a);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(3/*ca*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 12: // eca_error_in_action ::= BIND event IF condition DO error
            {
              ParseNode RESULT = null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).value;
    int cleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int cright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode c = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int dleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int dright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object d = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
     error("invalid action", dleft, dright);
                      RESULT = node(ParseNode.BIND, eleft, eright, e, c, null);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(36/*eca_error_in_action*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 11: // eca_error_in_condition ::= BIND event IF error NT$1 DO actions
            {
              ParseNode RESULT = null;
              // propagate RESULT from NT$1
              if ( ((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value != null )
                RESULT = (ParseNode) ((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)).value;
    int ileft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).left;
    int iright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).right;
    Object i = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).value;
    int aleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode a = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = node(ParseNode.BIND, eleft, eright, e, null, a);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(35/*eca_error_in_condition*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-6)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 10: // NT$1 ::=
            {
              Object RESULT = null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int ileft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int iright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object i = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
error("invalid condition", ileft, iright);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(41/*NT$1*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 9: // eca_error_in_event ::= BIND error NT$0 IF condition DO actions
            {
              ParseNode RESULT = null;
              // propagate RESULT from NT$0
              if ( ((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).value != null )
                RESULT = (ParseNode) ((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-6)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-6)).right;
    Object b = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-6)).value;
    int cleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int cright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode c = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int aleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode a = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = node(ParseNode.BIND, bleft, bright, null, c, a);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(34/*eca_error_in_event*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-6)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 8: // NT$0 ::=
            {
              Object RESULT = null;
    int bleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object b = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
error("invalid event", bleft, bright);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(40/*NT$0*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 7: // eca_error ::= eca_error_in_action
            {
              ParseNode RESULT = null;

              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(33/*eca_error*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 6: // eca_error ::= eca_error_in_condition
            {
              ParseNode RESULT = null;

              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(33/*eca_error*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 5: // eca_error ::= eca_error_in_event
            {
              ParseNode RESULT = null;

              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(33/*eca_error*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 4: // eca ::= eca_error
            {
              ParseNode RESULT = null;

              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(2/*eca*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 3: // eca ::= BIND event IF condition DO actions
            {
              ParseNode RESULT = null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).value;
    int cleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int cright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode c = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int aleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode a = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = node(ParseNode.BIND, eleft, eright, e, c, a);
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(2/*eca*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 2: // eca_rule ::= ca
            {
              ParseNode RESULT = null;
    int ruleleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int ruleright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode rule = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = rule;
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(1/*eca_rule*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 1: // $START ::= eca_rule EOF
            {
              Object RESULT = null;
    int start_valleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int start_valright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    ParseNode start_val = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    RESULT = start_val;
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(0/*$START*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          /* ACCEPT */
          CUP$ECAGrammarParser$parser.done_parsing();
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 0: // eca_rule ::= eca
            {
              ParseNode RESULT = null;
    int ruleleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left;
    int ruleright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right;
    ParseNode rule = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).value;
     RESULT = rule;
              CUP$ECAGrammarParser$result = new java_cup.runtime.Symbol(1/*eca_rule*/, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-0)).right, RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /* . . . . . .*/
          default:
            throw new Exception(
               "Invalid action number found in internal parse table");

        }
    }
}
TOP

Related Classes of org.jboss.byteman.rule.grammar.ECAGrammarParser

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.