Package org.jboss.byteman.rule.grammar

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

//----------------------------------------------------
// The following code was generated by CUP v0.11a beta 20060608
// Mon Aug 01 14:38:54 BST 2011
//----------------------------------------------------

package org.jboss.byteman.rule.grammar;

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

/** CUP v0.11a beta 20060608 generated parser.
  * @version Mon Aug 01 14:38:54 BST 2011
  */
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);}

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

  /** Production table. */
  protected static final short _production_table[][] =
    unpackFromStrings(new String[] {
    "\000\206\000\002\002\003\000\002\002\004\000\002\002" +
    "\003\000\002\003\010\000\002\003\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\004\006\000\002\004\003\000\002\047" +
    "\003\000\002\047\003\000\002\054\002\000\002\050\007" +
    "\000\002\051\006\000\002\005\003\000\002\005\003\000" +
    "\002\006\005\000\002\006\005\000\002\006\005\000\002" +
    "\006\005\000\002\006\004\000\002\006\003\000\002\007" +
    "\005\000\002\010\005\000\002\010\003\000\002\036\004" +
    "\000\002\036\003\000\002\037\005\000\002\037\004\000" +
    "\002\011\003\000\002\012\003\000\002\012\003\000\002" +
    "\013\005\000\002\013\005\000\002\013\005\000\002\013" +
    "\005\000\002\013\003\000\002\014\003\000\002\014\004" +
    "\000\002\014\003\000\002\014\004\000\002\015\003\000" +
    "\002\015\004\000\002\015\006\000\002\015\007\000\002" +
    "\015\007\000\002\015\010\000\002\016\003\000\002\016" +
    "\005\000\002\016\005\000\002\016\005\000\002\017\003" +
    "\000\002\017\003\000\002\017\003\000\002\017\003\000" +
    "\002\017\003\000\002\017\003\000\002\017\003\000\002" +
    "\017\003\000\002\017\003\000\002\017\003\000\002\017" +
    "\005\000\002\017\005\000\002\017\005\000\002\017\005" +
    "\000\002\017\004\000\002\020\007\000\002\021\005\000" +
    "\002\021\005\000\002\021\005\000\002\021\005\000\002" +
    "\021\005\000\002\021\005\000\002\021\005\000\002\021" +
    "\005\000\002\021\005\000\002\021\005\000\002\021\005" +
    "\000\002\021\005\000\002\021\005\000\002\021\005\000" +
    "\002\021\005\000\002\021\005\000\002\022\004\000\002" +
    "\022\004\000\002\022\004\000\002\023\004\000\002\023" +
    "\004\000\002\023\004\000\002\023\004\000\002\034\004" +
    "\000\002\034\003\000\002\035\005\000\002\024\005\000" +
    "\002\024\003\000\002\025\005\000\002\025\005\000\002" +
    "\025\005\000\002\026\005\000\002\026\006\000\002\026" +
    "\007\000\002\026\010\000\002\026\003\000\002\027\007" +
    "\000\002\027\010\000\002\027\007\000\002\027\010\000" +
    "\002\027\007\000\002\027\010\000\002\030\006\000\002" +
    "\030\005\000\002\030\007\000\002\031\004\000\002\031" +
    "\005\000\002\031\005\000\002\031\006\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\344\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\337\012\067\022" +
    "\102\043\076\045\061\046\066\050\060\051\107\052\106" +
    "\053\101\054\062\055\071\056\044\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\035\001\002\000\004\005\uffed\001\002" +
    "\000\074\002\uff7e\005\uff7e\006\uff7e\012\uff7e\013\uff7e\014" +
    "\uff7e\015\uff7e\016\uff7e\017\uff7e\020\uff7e\021\uff7e\023\uff7e" +
    "\024\uff7e\025\uff7e\026\uff7e\027\uff7e\030\uff7e\031\uff7e\032" +
    "\uff7e\033\uff7e\034\uff7e\035\uff7e\036\uff7e\037\uff7e\040\uff7e" +
    "\041\uff7e\042\uff7e\043\uff7e\044\uff7e\001\002\000\004\005" +
    "\264\001\002\000\004\021\055\001\002\000\006\021\uffe3" +
    "\024\041\001\002\000\010\005\uffe6\016\032\017\031\001" +
    "\002\000\004\005\uffec\001\002\000\006\003\036\056\023" +
    "\001\002\000\010\003\033\005\uffe7\056\023\001\002\000" +
    "\006\005\uffe8\016\035\001\002\000\004\005\uffea\001\002" +
    "\000\006\003\036\056\023\001\002\000\004\016\035\001" +
    "\002\000\004\005\uffe9\001\002\000\004\005\uffeb\001\002" +
    "\000\004\056\044\001\002\000\006\014\051\021\uffe1\001" +
    "\002\000\004\021\uffe4\001\002\000\074\002\uff7e\005\uff7e" +
    "\006\uff7e\012\uff7e\013\uff7e\014\uff7e\015\uff7e\016\uff7e\017" +
    "\uff7e\020\uff7d\021\uff7e\023\uff7e\024\uff7e\025\uff7e\026\uff7e" +
    "\027\uff7e\030\uff7e\031\uff7e\032\uff7e\033\uff7e\034\uff7e\035" +
    "\uff7e\036\uff7e\037\uff7e\040\uff7e\041\uff7e\042\uff7e\043\uff7e" +
    "\044\uff7e\001\002\000\004\020\047\001\002\000\010\012" +
    "\uff80\014\uff80\021\uff80\001\002\000\004\056\050\001\002" +
    "\000\012\012\uff7f\014\uff7f\020\uff7c\021\uff7f\001\002\000" +
    "\004\015\053\001\002\000\004\021\uffe2\001\002\000\006" +
    "\014\051\021\uffdf\001\002\000\004\021\uffe0\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" +
    "\044\001\002\000\052\005\uffe5\016\uffe5\017\uffe5\023\132" +
    "\025\145\026\125\027\144\030\135\031\134\032\143\033" +
    "\127\034\137\035\130\036\140\037\142\040\141\041\136" +
    "\042\133\043\126\044\131\001\002\000\070\002\uffc4\005" +
    "\uffc4\006\uffc4\013\uffc4\014\110\015\uffc4\016\uffc4\017\uffc4" +
    "\021\262\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\072\002\uff83\005\uff83\006\uff83\013\uff83\014\uff83" +
    "\015\uff83\016\uff83\017\uff83\020\uff83\021\257\023\uff83\024" +
    "\uff83\025\uff83\026\uff83\027\uff83\030\uff83\031\uff83\032\uff83" +
    "\033\uff83\034\uff83\035\uff83\036\uff83\037\uff83\040\uff83\041" +
    "\uff83\042\uff83\043\uff83\044\uff83\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\044\001\002" +
    "\000\070\002\uff85\005\uff85\006\uff85\013\uff85\014\uff85\015" +
    "\uff85\016\uff85\017\uff85\020\uff85\023\uff85\024\uff85\025\uff85" +
    "\026\uff85\027\uff85\030\uff85\031\uff85\032\uff85\033\uff85\034" +
    "\uff85\035\uff85\036\uff85\037\uff85\040\uff85\041\uff85\042\uff85" +
    "\043\uff85\044\uff85\001\002\000\064\002\uffc2\005\uffc2\006" +
    "\uffc2\013\uffc2\015\uffc2\016\uffc2\017\uffc2\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\072\002\uffbf\005" +
    "\uffbf\006\uffbf\012\250\013\uffbf\014\110\015\uffbf\016\uffbf" +
    "\017\uffbf\021\251\023\uffbf\024\uffbf\025\uffbf\026\uffbf\027" +
    "\uffbf\030\uffbf\031\uffbf\032\uffbf\033\uffbf\034\uffbf\035\uffbf" +
    "\036\uffbf\037\uffbf\040\uffbf\041\uffbf\042\uffbf\043\uffbf\044" +
    "\uffbf\001\002\000\064\002\uffc0\005\uffc0\006\uffc0\013\uffc0" +
    "\015\uffc0\016\uffc0\017\uffc0\023\uffc0\024\uffc0\025\uffc0\026" +
    "\uffc0\027\uffc0\030\uffc0\031\uffc0\032\uffc0\033\uffc0\034\uffc0" +
    "\035\uffc0\036\uffc0\037\uffc0\040\uffc0\041\uffc0\042\uffc0\043" +
    "\uffc0\044\uffc0\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\044\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\044\001\002" +
    "\000\070\002\uffc1\005\uffc1\006\uffc1\013\uffc1\014\110\015" +
    "\uffc1\016\uffc1\017\uffc1\020\236\023\uffc1\024\uffc1\025\uffc1" +
    "\026\uffc1\027\uffc1\030\uffc1\031\uffc1\032\uffc1\033\uffc1\034" +
    "\uffc1\035\uffc1\036\uffc1\037\uffc1\040\uffc1\041\uffc1\042\uffc1" +
    "\043\uffc1\044\uffc1\001\002\000\070\002\uff84\005\uff84\006" +
    "\uff84\013\uff84\014\uff84\015\uff84\016\uff84\017\uff84\020\uff84" +
    "\023\uff84\024\uff84\025\uff84\026\uff84\027\uff84\030\uff84\031" +
    "\uff84\032\uff84\033\uff84\034\uff84\035\uff84\036\uff84\037\uff84" +
    "\040\uff84\041\uff84\042\uff84\043\uff84\044\uff84\001\002\000" +
    "\064\002\uffc7\005\uffc7\006\uffc7\013\uffc7\015\uffc7\016\uffc7" +
    "\017\uffc7\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\uff9d\005\uff9d\006\uff9d\013\uff9d\014\uff9d" +
    "\015\uff9d\016\uff9d\017\uff9d\020\227\021\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\020\220" +
    "\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\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\044\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\100\012\067\022\102\043\076\045\061" +
    "\046\066\050\060\051\107\052\106\053\101\054\062\055" +
    "\071\056\044\001\002\000\070\002\uff87\005\uff87\006\uff87" +
    "\013\uff87\014\uff87\015\uff87\016\uff87\017\uff87\020\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" +
    "\056\044\001\002\000\066\002\uffc5\005\uffc5\006\uffc5\013" +
    "\uffc5\015\uffc5\016\uffc5\017\uffc5\021\201\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\064\002\uffc6\005" +
    "\uffc6\006\uffc6\013\uffc6\015\uffc6\016\uffc6\017\uffc6\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" +
    "\uffc3\005\uffc3\006\uffc3\013\uffc3\014\110\015\uffc3\016\uffc3" +
    "\017\uffc3\020\113\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\070\002\uff86\005\uff86\006\uff86\013\uff86" +
    "\014\uff86\015\uff86\016\uff86\017\uff86\020\uff86\023\uff86\024" +
    "\uff86\025\uff86\026\uff86\027\uff86\030\uff86\031\uff86\032\uff86" +
    "\033\uff86\034\uff86\035\uff86\036\uff86\037\uff86\040\uff86\041" +
    "\uff86\042\uff86\043\uff86\044\uff86\001\002\000\064\002\uff81" +
    "\005\uff81\006\uff81\013\uff81\015\uff81\016\uff81\017\uff81\023" +
    "\uff81\024\uff81\025\uff81\026\uff81\027\uff81\030\uff81\031\uff81" +
    "\032\uff81\033\uff81\034\uff81\035\uff81\036\uff81\037\uff81\040" +
    "\uff81\041\uff81\042\uff81\043\uff81\044\uff81\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\044" +
    "\001\002\000\066\002\uffa2\005\uffa2\006\uffa2\013\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\070\002\uffa0\005\uffa0\006" +
    "\uffa0\013\uffa0\014\110\015\uffa0\016\uffa0\017\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" +
    "\004\056\023\001\002\000\074\002\uff9b\005\uff9b\006\uff9b" +
    "\012\115\013\uff9b\014\uff9b\015\uff9b\016\uff9b\017\uff9b\020" +
    "\uff9b\021\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\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\044\001\002\000\052\013\uffcc\016" +
    "\172\017\173\023\132\025\145\026\125\027\144\030\135" +
    "\031\134\032\143\033\127\034\137\035\130\036\140\037" +
    "\142\040\141\041\136\042\133\043\126\044\131\001\002" +
    "\000\070\002\uff92\005\uff92\006\uff92\013\uff92\014\uff92\015" +
    "\uff92\016\uff92\017\uff92\020\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\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\044\001\002\000\064\002\uffba\005\uffba\006\uffba" +
    "\013\uffba\015\uffba\016\uffba\017\uffba\023\132\024\uffba\025" +
    "\145\026\125\027\144\030\135\031\134\032\143\033\127" +
    "\034\137\035\130\036\140\037\142\040\141\041\136\042" +
    "\133\043\126\044\131\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\044\001\002\000\004" +
    "\013\uffc9\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\044\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\044\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" +
    "\044\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\044\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\044\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\044" +
    "\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\044\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\044\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\044\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\044\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\044\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\044\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\044\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\044\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\044\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" +
    "\044\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\044\001\002\000\064\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\031\134\032\143" +
    "\033\127\034\137\035\130\036\140\037\142\040\141\041" +
    "\136\042\133\043\126\044\131\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\142\040" +
    "\141\041\136\042\133\043\126\044\131\001\002\000\060" +
    "\002\uffb3\005\uffb3\006\uffb3\013\uffb3\015\uffb3\016\uffb3\017" +
    "\uffb3\023\uffb3\024\uffb3\025\uffb3\026\uffb3\027\144\030\135" +
    "\033\127\034\137\035\130\036\140\037\142\040\141\041" +
    "\136\042\133\043\126\044\131\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\uffae\036\uffae\037\uffae\040" +
    "\uffae\041\uffae\042\uffae\043\uffae\044\uffae\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\130\036\140\037" +
    "\142\040\uffab\041\uffab\042\uffab\043\uffab\044\uffab\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\uffaf\036" +
    "\uffaf\037\uffaf\040\uffaf\041\uffaf\042\uffaf\043\uffaf\044\uffaf" +
    "\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\142\040\141\041\136\042\133\043\126" +
    "\044\131\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\130\036\140\037\142\040\uffaa\041\uffaa\042\uffaa" +
    "\043\uffaa\044\uffaa\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\142\040\141\041\136" +
    "\042\133\043\126\044\131\001\002\000\060\002\uffb4\005" +
    "\uffb4\006\uffb4\013\uffb4\015\uffb4\016\uffb4\017\uffb4\023\uffb4" +
    "\024\uffb4\025\uffb4\026\uffb4\027\144\030\135\033\127\034" +
    "\137\035\130\036\140\037\142\040\141\041\136\042\133" +
    "\043\126\044\131\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\142\040\141\041\136" +
    "\042\uffad\043\uffad\044\131\001\002\000\046\023\132\024" +
    "\162\025\145\026\125\027\144\030\135\031\134\032\143" +
    "\033\127\034\137\035\130\036\140\037\142\040\141\041" +
    "\136\042\133\043\126\044\131\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\044\001\002" +
    "\000\064\002\uffb9\005\uffb9\006\uffb9\013\uffb9\015\uffb9\016" +
    "\uffb9\017\uffb9\023\132\024\uffb9\025\145\026\125\027\144" +
    "\030\135\031\134\032\143\033\127\034\137\035\130\036" +
    "\140\037\142\040\141\041\136\042\133\043\126\044\131" +
    "\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" +
    "\130\036\140\037\142\040\uffa9\041\uffa9\042\uffa9\043\uffa9" +
    "\044\uffa9\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\uffb0\036\uffb0\037\uffb0\040\uffb0\041\uffb0\042\uffb0" +
    "\043\uffb0\044\uffb0\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\130\036\140\037\142\040\141\041\136" +
    "\042\133\043\126\044\131\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\uffac\030\uffac\031\uffac\032" +
    "\uffac\033\uffac\034\uffac\035\130\036\140\037\142\040\141" +
    "\041\136\042\uffac\043\uffac\044\131\001\002\000\064\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\031" +
    "\134\032\143\033\127\034\137\035\130\036\140\037\142" +
    "\040\141\041\136\042\133\043\126\044\131\001\002\000" +
    "\070\002\uff91\005\uff91\006\uff91\013\uff91\014\uff91\015\uff91" +
    "\016\uff91\017\uff91\020\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\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\044\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\044\001\002" +
    "\000\004\013\uffcb\001\002\000\004\013\uffca\001\002\000" +
    "\066\002\uffa1\005\uffa1\006\uffa1\013\uffa1\015\uffa1\016\uffa1" +
    "\017\uffa1\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\046\015\200\023\132\025\145\026\125" +
    "\027\144\030\135\031\134\032\143\033\127\034\137\035" +
    "\130\036\140\037\142\040\141\041\136\042\133\043\126" +
    "\044\131\001\002\000\070\002\uff9f\005\uff9f\006\uff9f\013" +
    "\uff9f\014\uff9f\015\uff9f\016\uff9f\017\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\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\044\001" +
    "\002\000\064\002\uffbb\005\uffbb\006\uffbb\013\uffbb\015\uffbb" +
    "\016\uffbb\017\uffbb\023\132\024\uffbb\025\145\026\125\027" +
    "\144\030\135\031\134\032\143\033\127\034\137\035\130" +
    "\036\140\037\142\040\141\041\136\042\133\043\126\044" +
    "\131\001\002\000\006\012\206\014\204\001\002\000\036" +
    "\003\100\012\067\015\213\022\102\043\076\045\061\046" +
    "\066\050\060\051\107\052\106\053\101\054\062\055\071" +
    "\056\044\001\002\000\064\002\uff8d\005\uff8d\006\uff8d\013" +
    "\uff8d\015\uff8d\016\uff8d\017\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\036\003\121\012\067\013" +
    "\207\022\102\043\076\045\061\046\066\050\060\051\107" +
    "\052\106\053\101\054\062\055\071\056\044\001\002\000" +
    "\064\002\uff8e\005\uff8e\006\uff8e\013\uff8e\015\uff8e\016\uff8e" +
    "\017\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\004\013\211\001\002\000\064\002\uff8c\005\uff8c" +
    "\006\uff8c\013\uff8c\015\uff8c\016\uff8c\017\uff8c\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\046\015\215" +
    "\023\132\025\145\026\125\027\144\030\135\031\134\032" +
    "\143\033\127\034\137\035\130\036\140\037\142\040\141" +
    "\041\136\042\133\043\126\044\131\001\002\000\066\002" +
    "\uff8b\005\uff8b\006\uff8b\013\uff8b\014\204\015\uff8b\016\uff8b" +
    "\017\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\uff89\005\uff89\006\uff89\013\uff89\015\uff89" +
    "\016\uff89\017\uff89\023\uff89\024\uff89\025\uff89\026\uff89\027" +
    "\uff89\030\uff89\031\uff89\032\uff89\033\uff89\034\uff89\035\uff89" +
    "\036\uff89\037\uff89\040\uff89\041\uff89\042\uff89\043\uff89\044" +
    "\uff89\001\002\000\066\002\uff8a\005\uff8a\006\uff8a\013\uff8a" +
    "\014\204\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\064\002\uff88\005\uff88" +
    "\006\uff88\013\uff88\015\uff88\016\uff88\017\uff88\023\uff88\024" +
    "\uff88\025\uff88\026\uff88\027\uff88\030\uff88\031\uff88\032\uff88" +
    "\033\uff88\034\uff88\035\uff88\036\uff88\037\uff88\040\uff88\041" +
    "\uff88\042\uff88\043\uff88\044\uff88\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\004" +
    "\056\221\001\002\000\074\002\uff7e\005\uff7e\006\uff7e\012" +
    "\uff7e\013\uff7e\014\uff7e\015\uff7e\016\uff7e\017\uff7e\020\uff7c" +
    "\021\uff7e\023\uff7e\024\uff7e\025\uff7e\026\uff7e\027\uff7e\030" +
    "\uff7e\031\uff7e\032\uff7e\033\uff7e\034\uff7e\035\uff7e\036\uff7e" +
    "\037\uff7e\040\uff7e\041\uff7e\042\uff7e\043\uff7e\044\uff7e\001" +
    "\002\000\072\002\uff9e\005\uff9e\006\uff9e\012\223\013\uff9e" +
    "\014\uff9e\015\uff9e\016\uff9e\017\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\224\022\102\043\076\045\061\046\066\050" +
    "\060\051\107\052\106\053\101\054\062\055\071\056\044" +
    "\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\004\013\226\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\056\023\001\002" +
    "\000\074\002\uff9a\005\uff9a\006\uff9a\012\231\013\uff9a\014" +
    "\uff9a\015\uff9a\016\uff9a\017\uff9a\020\uff9a\021\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\036\003" +
    "\121\012\067\013\232\022\102\043\076\045\061\046\066" +
    "\050\060\051\107\052\106\053\101\054\062\055\071\056" +
    "\044\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\013\234" +
    "\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\066\002\uffa5\005" +
    "\uffa5\006\uffa5\013\uffa5\015\uffa5\016\uffa5\017\uffa5\021\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" +
    "\004\056\023\001\002\000\074\002\uff9c\005\uff9c\006\uff9c" +
    "\012\240\013\uff9c\014\uff9c\015\uff9c\016\uff9c\017\uff9c\020" +
    "\uff9c\021\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\036\003\121\012\067\013\241\022\102\043" +
    "\076\045\061\046\066\050\060\051\107\052\106\053\101" +
    "\054\062\055\071\056\044\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\243\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\046\013\245\023\132\025\145\026\125\027\144\030" +
    "\135\031\134\032\143\033\127\034\137\035\130\036\140" +
    "\037\142\040\141\041\136\042\133\043\126\044\131\001" +
    "\002\000\070\002\uff82\005\uff82\006\uff82\013\uff82\014\uff82" +
    "\015\uff82\016\uff82\017\uff82\020\uff82\023\uff82\024\uff82\025" +
    "\uff82\026\uff82\027\uff82\030\uff82\031\uff82\032\uff82\033\uff82" +
    "\034\uff82\035\uff82\036\uff82\037\uff82\040\uff82\041\uff82\042" +
    "\uff82\043\uff82\044\uff82\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\066\002\uffa4" +
    "\005\uffa4\006\uffa4\013\uffa4\015\uffa4\016\uffa4\017\uffa4\021" +
    "\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\036\003\121\012\067\013\253\022\102\043\076\045" +
    "\061\046\066\050\060\051\107\052\106\053\101\054\062" +
    "\055\071\056\044\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\044\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\125\027\144\030\135\031" +
    "\134\032\143\033\127\034\137\035\130\036\140\037\142" +
    "\040\141\041\136\042\133\043\126\044\131\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\004\013\255\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\064\002\uffa8\005\uffa8\006\uffa8\013" +
    "\uffa8\015\uffa8\016\uffa8\017\uffa8\023\uffa8\024\uffa8\025\uffa8" +
    "\026\uffa8\027\144\030\135\031\134\032\143\033\127\034" +
    "\137\035\130\036\140\037\142\040\141\041\136\042\133" +
    "\043\126\044\131\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\044\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\125\027\144\030\135\031" +
    "\134\032\143\033\127\034\137\035\130\036\140\037\142" +
    "\040\141\041\136\042\133\043\126\044\131\001\002\000" +
    "\066\002\uffa3\005\uffa3\006\uffa3\013\uffa3\015\uffa3\016\uffa3" +
    "\017\uffa3\021\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\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\044\001\002\000\064\002\uffbc\005\uffbc" +
    "\006\uffbc\013\uffbc\015\uffbc\016\uffbc\017\uffbc\023\132\024" +
    "\uffbc\025\145\026\125\027\144\030\135\031\134\032\143" +
    "\033\127\034\137\035\130\036\140\037\142\040\141\041" +
    "\136\042\133\043\126\044\131\001\002\000\034\003\266" +
    "\012\067\022\102\043\076\045\061\046\066\050\060\051" +
    "\107\052\106\053\101\054\062\055\071\056\044\001\002" +
    "\000\046\006\uffde\023\132\025\145\026\125\027\144\030" +
    "\135\031\134\032\143\033\127\034\137\035\130\036\140" +
    "\037\142\040\141\041\136\042\133\043\126\044\131\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\044\001\002\000\004\006\270\001\002" +
    "\000\042\003\277\007\275\010\273\011\300\012\067\022" +
    "\102\043\076\045\061\046\066\050\060\051\107\052\106" +
    "\053\101\054\062\055\071\056\044\001\002\000\004\002" +
    "\uffd7\001\002\000\052\002\uffd6\016\322\017\323\023\132" +
    "\025\145\026\125\027\144\030\135\031\134\032\143\033" +
    "\127\034\137\035\130\036\140\037\142\040\141\041\136" +
    "\042\133\043\126\044\131\001\002\000\040\002\uffd2\003" +
    "\100\012\067\016\uffd2\022\102\043\076\045\061\046\066" +
    "\050\060\051\107\052\106\053\101\054\062\055\071\056" +
    "\044\001\002\000\004\002\ufffe\001\002\000\004\002\uffdd" +
    "\001\002\000\004\002\uffdc\001\002\000\040\002\ufff5\003" +
    "\100\012\067\016\316\022\102\043\076\045\061\046\066" +
    "\050\060\051\107\052\106\053\101\054\062\055\071\056" +
    "\044\001\002\000\006\022\303\056\044\001\002\000\006" +
    "\002\uffd4\016\302\001\002\000\004\002\uffd3\001\002\000" +
    "\004\056\044\001\002\000\004\012\305\001\002\000\036" +
    "\003\121\012\067\013\306\022\102\043\076\045\061\046" +
    "\066\050\060\051\107\052\106\053\101\054\062\055\071" +
    "\056\044\001\002\000\006\002\uffd0\016\uffd0\001\002\000" +
    "\004\013\310\001\002\000\006\002\uffcf\016\uffcf\001\002" +
    "\000\004\012\312\001\002\000\036\003\121\012\067\013" +
    "\313\022\102\043\076\045\061\046\066\050\060\051\107" +
    "\052\106\053\101\054\062\055\071\056\044\001\002\000" +
    "\006\002\uffce\016\uffce\001\002\000\004\013\315\001\002" +
    "\000\006\002\uffcd\016\uffcd\001\002\000\040\003\320\010" +
    "\273\011\300\012\067\022\102\043\076\045\061\046\066" +
    "\050\060\051\107\052\106\053\101\054\062\055\071\056" +
    "\044\001\002\000\004\002\uffd9\001\002\000\036\003\100" +
    "\012\067\016\316\022\102\043\076\045\061\046\066\050" +
    "\060\051\107\052\106\053\101\054\062\055\071\056\044" +
    "\001\002\000\050\002\uffd1\016\uffd1\023\132\025\145\026" +
    "\125\027\144\030\135\031\134\032\143\033\127\034\137" +
    "\035\130\036\140\037\142\040\141\041\136\042\133\043" +
    "\126\044\131\001\002\000\042\002\uffd5\003\326\010\273" +
    "\011\300\012\067\022\102\043\076\045\061\046\066\050" +
    "\060\051\107\052\106\053\101\054\062\055\071\056\044" +
    "\001\002\000\040\003\320\010\273\011\300\012\067\022" +
    "\102\043\076\045\061\046\066\050\060\051\107\052\106" +
    "\053\101\054\062\055\071\056\044\001\002\000\004\002" +
    "\uffda\001\002\000\004\002\uffdb\001\002\000\040\002\uffd8" +
    "\003\100\012\067\016\316\022\102\043\076\045\061\046" +
    "\066\050\060\051\107\052\106\053\101\054\062\055\071" +
    "\056\044\001\002\000\004\006\330\001\002\000\042\003" +
    "\320\007\275\010\273\011\300\012\067\022\102\043\076" +
    "\045\061\046\066\050\060\051\107\052\106\053\101\054" +
    "\062\055\071\056\044\001\002\000\004\002\ufff6\001\002" +
    "\000\004\005\333\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\044\001\002\000\004\006" +
    "\335\001\002\000\042\003\320\007\275\010\273\011\300" +
    "\012\067\022\102\043\076\045\061\046\066\050\060\051" +
    "\107\052\106\053\101\054\062\055\071\056\044\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\044\001\002\000" +
    "\004\006\341\001\002\000\042\003\343\007\275\010\273" +
    "\011\300\012\067\022\102\043\076\045\061\046\066\050" +
    "\060\051\107\052\106\053\101\054\062\055\071\056\044" +
    "\001\002\000\004\002\ufff4\001\002\000\040\002\uffee\003" +
    "\100\012\067\016\316\022\102\043\076\045\061\046\066" +
    "\050\060\051\107\052\106\053\101\054\062\055\071\056" +
    "\044\001\002\000\004\006\345\001\002\000\042\003\320" +
    "\007\275\010\273\011\300\012\067\022\102\043\076\045" +
    "\061\046\066\050\060\051\107\052\106\053\101\054\062" +
    "\055\071\056\044\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\344\000\026\002\016\003\006\004\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\011\337\017\264\020" +
    "\074\021\071\022\103\023\102\024\056\025\072\026\104" +
    "\027\076\030\062\032\067\033\064\041\063\042\073\001" +
    "\001\000\014\005\023\006\027\007\026\010\024\041\025" +
    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
    "\001\000\004\052\331\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\006\037" +
    "\007\026\010\024\041\025\001\001\000\012\006\033\007" +
    "\026\010\024\041\025\001\001\000\002\001\001\000\002" +
    "\001\001\000\012\006\036\007\026\010\024\041\025\001" +
    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
    "\000\012\036\042\040\041\041\045\042\044\001\001\000" +
    "\004\037\051\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\053\001\001\000\002\001\001\000\036\017\055\020" +
    "\074\021\071\022\103\023\102\024\056\025\072\026\104" +
    "\027\076\030\062\032\067\033\064\041\063\042\073\001" +
    "\001\000\002\001\001\000\006\034\260\035\111\001\001" +
    "\000\002\001\001\000\036\017\255\020\074\021\071\022" +
    "\103\023\102\024\056\025\072\026\104\027\076\030\062" +
    "\032\067\033\064\041\063\042\073\001\001\000\002\001" +
    "\001\000\002\001\001\000\006\034\246\035\111\001\001" +
    "\000\002\001\001\000\036\017\245\020\074\021\071\022" +
    "\103\023\102\024\056\025\072\026\104\027\076\030\062" +
    "\032\067\033\064\041\063\042\073\001\001\000\036\017" +
    "\243\020\074\021\071\022\103\023\102\024\056\025\072" +
    "\026\104\027\076\030\062\032\067\033\064\041\063\042" +
    "\073\001\001\000\006\034\234\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\017\216\020\074\021\071" +
    "\022\103\023\102\024\056\025\072\026\104\027\076\030" +
    "\062\032\067\033\064\041\063\042\073\001\001\000\002" +
    "\001\001\000\036\017\121\020\074\021\071\022\103\023" +
    "\102\024\056\025\072\026\104\027\076\030\062\032\067" +
    "\033\064\041\063\042\073\001\001\000\002\001\001\000" +
    "\010\040\202\041\045\042\044\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\017\176\020\074" +
    "\021\071\022\103\023\102\024\056\025\072\026\104\027" +
    "\076\030\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\016\117" +
    "\017\115\020\074\021\071\022\103\023\102\024\056\025" +
    "\072\026\104\027\076\030\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\017\121\020\074\021\071\022\103" +
    "\023\102\024\056\025\072\026\104\027\076\030\062\032" +
    "\067\033\064\041\063\042\073\001\001\000\002\001\001" +
    "\000\040\016\123\017\115\020\074\021\071\022\103\023" +
    "\102\024\056\025\072\026\104\027\076\030\062\032\067" +
    "\033\064\041\063\042\073\001\001\000\002\001\001\000" +
    "\036\017\167\020\074\021\071\022\103\023\102\024\056" +
    "\025\072\026\104\027\076\030\062\032\067\033\064\041" +
    "\063\042\073\001\001\000\036\017\166\020\074\021\071" +
    "\022\103\023\102\024\056\025\072\026\104\027\076\030" +
    "\062\032\067\033\064\041\063\042\073\001\001\000\036" +
    "\017\165\020\074\021\071\022\103\023\102\024\056\025" +
    "\072\026\104\027\076\030\062\032\067\033\064\041\063" +
    "\042\073\001\001\000\036\017\164\020\074\021\071\022" +
    "\103\023\102\024\056\025\072\026\104\027\076\030\062" +
    "\032\067\033\064\041\063\042\073\001\001\000\036\017" +
    "\163\020\074\021\071\022\103\023\102\024\056\025\072" +
    "\026\104\027\076\030\062\032\067\033\064\041\063\042" +
    "\073\001\001\000\036\017\160\020\074\021\071\022\103" +
    "\023\102\024\056\025\072\026\104\027\076\030\062\032" +
    "\067\033\064\041\063\042\073\001\001\000\036\017\157" +
    "\020\074\021\071\022\103\023\102\024\056\025\072\026" +
    "\104\027\076\030\062\032\067\033\064\041\063\042\073" +
    "\001\001\000\036\017\156\020\074\021\071\022\103\023" +
    "\102\024\056\025\072\026\104\027\076\030\062\032\067" +
    "\033\064\041\063\042\073\001\001\000\036\017\155\020" +
    "\074\021\071\022\103\023\102\024\056\025\072\026\104" +
    "\027\076\030\062\032\067\033\064\041\063\042\073\001" +
    "\001\000\036\017\154\020\074\021\071\022\103\023\102" +
    "\024\056\025\072\026\104\027\076\030\062\032\067\033" +
    "\064\041\063\042\073\001\001\000\036\017\153\020\074" +
    "\021\071\022\103\023\102\024\056\025\072\026\104\027" +
    "\076\030\062\032\067\033\064\041\063\042\073\001\001" +
    "\000\036\017\152\020\074\021\071\022\103\023\102\024" +
    "\056\025\072\026\104\027\076\030\062\032\067\033\064" +
    "\041\063\042\073\001\001\000\036\017\151\020\074\021" +
    "\071\022\103\023\102\024\056\025\072\026\104\027\076" +
    "\030\062\032\067\033\064\041\063\042\073\001\001\000" +
    "\036\017\150\020\074\021\071\022\103\023\102\024\056" +
    "\025\072\026\104\027\076\030\062\032\067\033\064\041" +
    "\063\042\073\001\001\000\036\017\147\020\074\021\071" +
    "\022\103\023\102\024\056\025\072\026\104\027\076\030" +
    "\062\032\067\033\064\041\063\042\073\001\001\000\036" +
    "\017\146\020\074\021\071\022\103\023\102\024\056\025" +
    "\072\026\104\027\076\030\062\032\067\033\064\041\063" +
    "\042\073\001\001\000\036\017\145\020\074\021\071\022" +
    "\103\023\102\024\056\025\072\026\104\027\076\030\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\017\162\020\074\021" +
    "\071\022\103\023\102\024\056\025\072\026\104\027\076" +
    "\030\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\016\174\017\115\020\074\021\071\022\103" +
    "\023\102\024\056\025\072\026\104\027\076\030\062\032" +
    "\067\033\064\041\063\042\073\001\001\000\040\016\173" +
    "\017\115\020\074\021\071\022\103\023\102\024\056\025" +
    "\072\026\104\027\076\030\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" +
    "\017\201\020\074\021\071\022\103\023\102\024\056\025" +
    "\072\026\104\027\076\030\062\032\067\033\064\041\063" +
    "\042\073\001\001\000\002\001\001\000\004\031\204\001" +
    "\001\000\036\017\211\020\074\021\071\022\103\023\102" +
    "\024\056\025\072\026\104\027\076\030\062\032\067\033" +
    "\064\041\063\042\073\001\001\000\002\001\001\000\040" +
    "\016\207\017\115\020\074\021\071\022\103\023\102\024" +
    "\056\025\072\026\104\027\076\030\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\031\213" +
    "\001\001\000\002\001\001\000\004\031\215\001\001\000" +
    "\002\001\001\000\002\001\001\000\004\041\221\001\001" +
    "\000\002\001\001\000\002\001\001\000\040\016\224\017" +
    "\115\020\074\021\071\022\103\023\102\024\056\025\072" +
    "\026\104\027\076\030\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\227\001\001\000\002\001\001\000" +
    "\040\016\232\017\115\020\074\021\071\022\103\023\102" +
    "\024\056\025\072\026\104\027\076\030\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" +
    "\236\001\001\000\002\001\001\000\040\016\241\017\115" +
    "\020\074\021\071\022\103\023\102\024\056\025\072\026" +
    "\104\027\076\030\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\016\253\017\115\020\074\021" +
    "\071\022\103\023\102\024\056\025\072\026\104\027\076" +
    "\030\062\032\067\033\064\041\063\042\073\001\001\000" +
    "\036\017\251\020\074\021\071\022\103\023\102\024\056" +
    "\025\072\026\104\027\076\030\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\017\257\020\074\021\071\022\103\023\102\024\056" +
    "\025\072\026\104\027\076\030\062\032\067\033\064\041" +
    "\063\042\073\001\001\000\002\001\001\000\002\001\001" +
    "\000\036\017\262\020\074\021\071\022\103\023\102\024" +
    "\056\025\072\026\104\027\076\030\062\032\067\033\064" +
    "\041\063\042\073\001\001\000\002\001\001\000\040\011" +
    "\266\017\264\020\074\021\071\022\103\023\102\024\056" +
    "\025\072\026\104\027\076\030\062\032\067\033\064\041" +
    "\063\042\073\001\001\000\002\001\001\000\040\017\121" +
    "\020\074\021\071\022\103\023\102\024\056\025\072\026" +
    "\104\027\076\030\062\032\067\033\064\041\063\042\073" +
    "\053\326\001\001\000\002\001\001\000\046\012\273\013" +
    "\275\014\270\015\300\017\271\020\074\021\071\022\103" +
    "\023\102\024\056\025\072\026\104\027\076\030\062\032" +
    "\067\033\064\041\063\042\073\001\001\000\002\001\001" +
    "\000\002\001\001\000\036\017\320\020\074\021\071\022" +
    "\103\023\102\024\056\025\072\026\104\027\076\030\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\017\121" +
    "\020\074\021\071\022\103\023\102\024\056\025\072\026" +
    "\104\027\076\030\062\032\067\033\064\041\063\042\073" +
    "\001\001\000\010\040\303\041\045\042\044\001\001\000" +
    "\002\001\001\000\002\001\001\000\010\040\310\041\045" +
    "\042\044\001\001\000\002\001\001\000\040\016\306\017" +
    "\115\020\074\021\071\022\103\023\102\024\056\025\072" +
    "\026\104\027\076\030\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\016\313\017\115\020" +
    "\074\021\071\022\103\023\102\024\056\025\072\026\104" +
    "\027\076\030\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\013\316\014\270\015\300\017\271\020\074\021" +
    "\071\022\103\023\102\024\056\025\072\026\104\027\076" +
    "\030\062\032\067\033\064\041\063\042\073\001\001\000" +
    "\002\001\001\000\036\017\121\020\074\021\071\022\103" +
    "\023\102\024\056\025\072\026\104\027\076\030\062\032" +
    "\067\033\064\041\063\042\073\001\001\000\002\001\001" +
    "\000\044\013\324\014\270\015\300\017\271\020\074\021" +
    "\071\022\103\023\102\024\056\025\072\026\104\027\076" +
    "\030\062\032\067\033\064\041\063\042\073\001\001\000" +
    "\044\013\323\014\270\015\300\017\271\020\074\021\071" +
    "\022\103\023\102\024\056\025\072\026\104\027\076\030" +
    "\062\032\067\033\064\041\063\042\073\001\001\000\002" +
    "\001\001\000\002\001\001\000\036\017\121\020\074\021" +
    "\071\022\103\023\102\024\056\025\072\026\104\027\076" +
    "\030\062\032\067\033\064\041\063\042\073\001\001\000" +
    "\002\001\001\000\046\012\330\013\275\014\270\015\300" +
    "\017\271\020\074\021\071\022\103\023\102\024\056\025" +
    "\072\026\104\027\076\030\062\032\067\033\064\041\063" +
    "\042\073\001\001\000\002\001\001\000\002\001\001\000" +
    "\040\011\333\017\264\020\074\021\071\022\103\023\102" +
    "\024\056\025\072\026\104\027\076\030\062\032\067\033" +
    "\064\041\063\042\073\001\001\000\002\001\001\000\046" +
    "\012\335\013\275\014\270\015\300\017\271\020\074\021" +
    "\071\022\103\023\102\024\056\025\072\026\104\027\076" +
    "\030\062\032\067\033\064\041\063\042\073\001\001\000" +
    "\002\001\001\000\040\017\121\020\074\021\071\022\103" +
    "\023\102\024\056\025\072\026\104\027\076\030\062\032" +
    "\067\033\064\041\063\042\073\054\343\001\001\000\002" +
    "\001\001\000\046\012\341\013\275\014\270\015\300\017" +
    "\271\020\074\021\071\022\103\023\102\024\056\025\072" +
    "\026\104\027\076\030\062\032\067\033\064\041\063\042" +
    "\073\001\001\000\002\001\001\000\036\017\121\020\074" +
    "\021\071\022\103\023\102\024\056\025\072\026\104\027" +
    "\076\030\062\032\067\033\064\041\063\042\073\001\001" +
    "\000\002\001\001\000\046\012\345\013\275\014\270\015" +
    "\300\017\271\020\074\021\071\022\103\023\102\024\056" +
    "\025\072\026\104\027\076\030\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 133: // 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.peek()).left;
    int iright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    String i = (String)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.PATH, ileft, iright, i, p);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("path",32, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 132: // path ::= IDENTIFIER
            {
              ParseNode RESULT =null;
    int ileft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int iright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    String i = (String)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.PATH, ileft, iright, i, null);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("path",32, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 131: // simple_name ::= IDENTIFIER
            {
              ParseNode RESULT =null;
    int ileft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int iright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    String i = (String)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.IDENTIFIER, ileft, iright, i, null);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("simple_name",31, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 130: // 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.peek()).left;
    int iright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    String i = (String)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.IDENTIFIER, ileft, iright, i, p);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("name",30, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 129: // name ::= simple_name
            {
              ParseNode RESULT =null;
    int nleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int nright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode n = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = n;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("name",30, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 128: // null_expr ::= NULL_LITERAL
            {
              ParseNode RESULT =null;
    int nleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int nright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    Object n = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.NULL_LITERAL, nleft, nright);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("null_expr",25, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 127: // 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 = parser.getSymbolFactory().newSymbol("simple_expr",24, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 126: // simple_expr ::= DOLLAR
            {
              ParseNode RESULT =null;
    int sleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int sright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    Object s = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.DOLLAR, sleft, sright, s);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("simple_expr",24, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 125: // simple_expr ::= STRING_LITERAL
            {
              ParseNode RESULT =null;
    int sleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int sright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    String s = (String)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.STRING_LITERAL, sleft, sright, s);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("simple_expr",24, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 124: // simple_expr ::= BOOLEAN_LITERAL
            {
              ParseNode RESULT =null;
    int bleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int bright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    Boolean b = (Boolean)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT =  node(ParseNode.BOOLEAN_LITERAL, bleft, bright, b);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("simple_expr",24, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 123: // simple_expr ::= FLOAT_LITERAL
            {
              ParseNode RESULT =null;
    int fleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int fright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    Float f = (Float)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT =  node(ParseNode.FLOAT_LITERAL, fleft, fright, f);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("simple_expr",24, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 122: // simple_expr ::= INTEGER_LITERAL
            {
              ParseNode RESULT =null;
    int ileft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int iright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    Integer i = (Integer)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT =  node(ParseNode.INTEGER_LITERAL, ileft, iright, i);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("simple_expr",24, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 121: // new_array_idx_list ::= LSQUARE expr RSQUARE new_array_idx_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 asleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int asright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode as = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.COMMA, eleft, eright, e, as);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("new_array_idx_list",23, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 120: // new_array_idx_list ::= LSQUARE RSQUARE new_array_idx_list
            {
              ParseNode RESULT =null;
    int lleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int lright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    Object l = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int asleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int asright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode as = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.COMMA, lleft, lright, node(ParseNode.NOTHING, lleft, lright), as);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("new_array_idx_list",23, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 119: // new_array_idx_list ::= 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 = parser.getSymbolFactory().newSymbol("new_array_idx_list",23, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 118: // new_array_idx_list ::= LSQUARE RSQUARE
            {
              ParseNode RESULT =null;
    int lleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int lright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object l = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
     RESULT = node(ParseNode.NOTHING, lleft, lright);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("new_array_idx_list",23, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 117: // 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, null);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("new_expr",22, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 116: // new_expr ::= NEW name new_array_idx_list
            {
              ParseNode 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;
    ParseNode i = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int asleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int asright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode as = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.NEW, ileft, iright, i, null, as);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("new_expr",22, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 115: // 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, null);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("new_expr",22, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 114: // 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 = parser.getSymbolFactory().newSymbol("expr_meth_expr",21, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 113: // 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 = parser.getSymbolFactory().newSymbol("expr_meth_expr",21, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 112: // 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 = parser.getSymbolFactory().newSymbol("expr_meth_expr",21, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 111: // 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 = parser.getSymbolFactory().newSymbol("expr_meth_expr",21, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 110: // 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 = parser.getSymbolFactory().newSymbol("expr_meth_expr",21, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 109: // 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 = parser.getSymbolFactory().newSymbol("expr_meth_expr",21, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 108: // meth_expr ::= expr_meth_expr
            {
              ParseNode RESULT =null;
    int emeleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int emeright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode eme = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = eme;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("meth_expr",20, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 107: // 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 = parser.getSymbolFactory().newSymbol("meth_expr",20, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 106: // 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 = parser.getSymbolFactory().newSymbol("meth_expr",20, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 105: // 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 = parser.getSymbolFactory().newSymbol("meth_expr",20, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 104: // 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 = parser.getSymbolFactory().newSymbol("meth_expr",20, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 103: // 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.peek()).left;
    int fright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode f = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.FIELD, fleft, fright, f, efe);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr_field_expr",19, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 102: // 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.peek()).left;
    int fright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode f = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.FIELD, fleft, fright, f, me);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr_field_expr",19, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 101: // 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.peek()).left;
    int fright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode f = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.FIELD, fleft, fright, f, se);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr_field_expr",19, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 100: // field_expr ::= expr_field_expr
            {
              ParseNode RESULT =null;
    int efeleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int eferight = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode efe = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = efe;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("field_expr",18, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 99: // 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.peek()).left;
    int fright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode f = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.FIELD, fleft, fright, f, p);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("field_expr",18, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 98: // 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 = parser.getSymbolFactory().newSymbol("array_idx",27, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 97: // array_idx_list ::= array_idx
            {
              ParseNode RESULT =null;
    int aileft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int airight = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode ai = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = ai;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("array_idx_list",26, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 96: // 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.peek()).left;
    int ailright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode ail = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT =  node(ParseNode.SEMI, aileft, airight, ai, ail);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("array_idx_list",26, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 95: // 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.peek()).left;
    int ailright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode ail = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.ARRAY, meleft, meright, me, ail);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("array_expr",17, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 94: // 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.peek()).left;
    int ailright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode ail = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.ARRAY, feleft, feright, fe, ail);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("array_expr",17, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 93: // 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.peek()).left;
    int ailright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode ail = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.ARRAY, nameleft, nameright, name, ail);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("array_expr",17, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 92: // 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.peek()).left;
    int ailright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode ail = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.ARRAY, seleft, seright, se, ail);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("array_expr",17, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 91: // 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.peek()).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.UNOP, eleft, eright, node(ParseNode.UMINUS, oleft, oright), e);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("unary_oper_expr",16, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 90: // 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.peek()).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.UNOP, eleft, eright, node(ParseNode.TWIDDLE, oleft, oright), e);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("unary_oper_expr",16, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 89: // 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.peek()).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.UNOP, eleft, eright, node(ParseNode.NOT, oleft, oright), e);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("unary_oper_expr",16, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 88: // 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.peek()).left;
    int e2right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e2 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.BINOP, e1left, e1right, node(ParseNode.MOD, oleft, oright), e1, e2);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("binary_oper_expr",15, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 87: // 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.peek()).left;
    int e2right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e2 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.BINOP, e1left, e1right, node(ParseNode.DIV, oleft, oright), e1, e2);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("binary_oper_expr",15, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 86: // 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.peek()).left;
    int e2right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e2 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.BINOP, e1left, e1right, node(ParseNode.MUL, oleft, oright), e1, e2);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("binary_oper_expr",15, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 85: // 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.peek()).left;
    int e2right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e2 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.BINOP, e1left, e1right, node(ParseNode.MINUS, oleft, oright), e1, e2);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("binary_oper_expr",15, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 84: // 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.peek()).left;
    int e2right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e2 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.BINOP, e1left, e1right, node(ParseNode.PLUS, oleft, oright), e1, e2);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("binary_oper_expr",15, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 83: // 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.peek()).left;
    int e2right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e2 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.BINOP, e1left, e1right, node(ParseNode.BXOR, oleft, oright), e1, e2);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("binary_oper_expr",15, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 82: // 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.peek()).left;
    int e2right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e2 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.BINOP, e1left, e1right, node(ParseNode.BAND, oleft, oright), e1, e2);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("binary_oper_expr",15, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 81: // 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.peek()).left;
    int e2right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e2 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.BINOP, e1left, e1right, node(ParseNode.BOR, oleft, oright), e1, e2);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("binary_oper_expr",15, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 80: // 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.peek()).left;
    int e2right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e2 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.BINOP, e1left, e1right, node(ParseNode.GT, oleft, oright), e1, e2);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("binary_oper_expr",15, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 79: // 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.peek()).left;
    int e2right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e2 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.BINOP, e1left, e1right, node(ParseNode.GE, oleft, oright), e1, e2);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("binary_oper_expr",15, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 78: // 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.peek()).left;
    int e2right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e2 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.BINOP, e1left, e1right, node(ParseNode.NE, oleft, oright), e1, e2);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("binary_oper_expr",15, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 77: // 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.peek()).left;
    int e2right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e2 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.BINOP, e1left, e1right, node(ParseNode.EQ, oleft, oright), e1, e2);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("binary_oper_expr",15, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 76: // 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.peek()).left;
    int e2right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e2 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.BINOP, e1left, e1right, node(ParseNode.LE, oleft, oright), e1, e2);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("binary_oper_expr",15, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 75: // 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.peek()).left;
    int e2right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e2 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.BINOP, e1left, e1right, node(ParseNode.LT, oleft, oright), e1, e2);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("binary_oper_expr",15, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 74: // 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.peek()).left;
    int e2right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e2 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.BINOP, e1left, e1right, node(ParseNode.AND, oleft, oright), e1, e2);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("binary_oper_expr",15, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 73: // 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.peek()).left;
    int e2right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e2 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.BINOP, e1left, e1right, node(ParseNode.OR, oleft, oright), e1, e2);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("binary_oper_expr",15, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 72: // 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.peek()).left;
    int iffalseright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode iffalse = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.TERNOP, condleft, condright, cond, iftrue, iffalse);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("ternary_oper_expr",14, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 71: // 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.peek()).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     error("invalid expression", errleft, errright); RESULT = e;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr",13, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 70: // expr ::= array_expr ASSIGN expr
            {
              ParseNode RESULT =null;
    int aleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode a = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.ASSIGN, aleft, aright, a, e);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr",13, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 69: // 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.peek()).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.ASSIGN, fleft, fright, f, e);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr",13, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 68: // 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.peek()).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.ASSIGN, dleft, dright, node(ParseNode.DOLLAR, dleft, dright, d), e);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr",13, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 67: // 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.peek()).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.ASSIGN, sleft, sright, s, e);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr",13, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 66: // expr ::= simple_name
            {
              ParseNode RESULT =null;
    int nleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int nright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode n = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = n;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr",13, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 65: // expr ::= null_expr
            {
              ParseNode RESULT =null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = e;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr",13, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 64: // expr ::= simple_expr
            {
              ParseNode RESULT =null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = e;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr",13, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 63: // expr ::= new_expr
            {
              ParseNode RESULT =null;
    int neleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int neright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode ne = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = ne;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr",13, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 62: // expr ::= meth_expr
            {
              ParseNode RESULT =null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = e;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr",13, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 61: // expr ::= field_expr
            {
              ParseNode RESULT =null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = e;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr",13, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 60: // expr ::= array_expr
            {
              ParseNode RESULT =null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = e;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr",13, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 59: // expr ::= unary_oper_expr
            {
              ParseNode RESULT =null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = e;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr",13, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 58: // expr ::= binary_oper_expr
            {
              ParseNode RESULT =null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = e;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr",13, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 57: // expr ::= ternary_oper_expr
            {
              ParseNode RESULT =null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = e;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr",13, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 56: // 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.peek()).left;
    int elright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode el = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     error("invalid expression", errleft, errright);
       RESULT = el;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr_list",12, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 55: // 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.peek()).left;
    int elright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode el = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.COMMA, eleft, eright, e, el);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr_list",12, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 54: // 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.peek()).left;
    int elright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode el = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.COMMA, eleft, eright, e, el);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr_list",12, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 53: // expr_list ::= expr
            {
              ParseNode RESULT =null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = e;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr_list",12, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 52: // 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 = parser.getSymbolFactory().newSymbol("throw_return_expr",11, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 51: // 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 = parser.getSymbolFactory().newSymbol("throw_return_expr",11, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 50: // 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 = parser.getSymbolFactory().newSymbol("throw_return_expr",11, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 49: // 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 = parser.getSymbolFactory().newSymbol("throw_return_expr",11, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 48: // 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.peek()).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.RETURN, rleft, rright, e);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("throw_return_expr",11, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 47: // throw_return_expr ::= RETURN
            {
              ParseNode RESULT =null;
    int rleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int rright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    Object r = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.RETURN, rleft, rright, null);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("throw_return_expr",11, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 46: // action_expr ::= throw_return_expr SEMI
            {
              ParseNode RESULT =null;
    int treleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int treright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    ParseNode tre = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
     RESULT = tre;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("action_expr",10, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 45: // action_expr ::= throw_return_expr
            {
              ParseNode RESULT =null;
    int treleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int treright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode tre = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = tre;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("action_expr",10, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 44: // action_expr ::= expr SEMI
            {
              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 = parser.getSymbolFactory().newSymbol("action_expr",10, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 43: // action_expr ::= expr
            {
              ParseNode RESULT =null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = e;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("action_expr",10, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 42: // action_expr_list ::= action_expr
            {
              ParseNode RESULT =null;
    int aeleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int aeright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode ae = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = ae;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("action_expr_list",9, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 41: // 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.peek()).left;
    int errright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    Object err = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     error("invalid action", errleft, errright);
       RESULT = e;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("action_expr_list",9, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 40: // 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.peek()).left;
    int aelright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode ael = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     error("invalid action", errleft, errright);
       RESULT = ael;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("action_expr_list",9, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 39: // 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.peek()).left;
    int aelright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode ael = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.SEMI, eleft, eright, e, ael);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("action_expr_list",9, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 38: // 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.peek()).left;
    int aelright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode ael = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.SEMI, eleft, eright, e, ael);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("action_expr_list",9, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 37: // actions ::= action_expr_list
            {
              ParseNode RESULT =null;
    int aelleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int aelright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode ael = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = ael;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("actions",8, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 36: // actions ::= NOTHING
            {
              ParseNode RESULT =null;
    int nleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int nright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    Object n = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.NOTHING, nleft, nright);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("actions",8, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 35: // condition ::= expr
            {
              ParseNode RESULT =null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = e;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("condition",7, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 34: // arraydims ::= LSQUARE RSQUARE
            {
              Integer RESULT =null;
     RESULT =  1;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("arraydims",29, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

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

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 32: // typename ::= name
            {
              ParseNode RESULT =null;
    int tleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int tright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode t = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = t;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("typename",28, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 31: // 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.peek()).left;
    int dright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    Integer d = (Integer)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
   
            ParseNode tmp = t;
            for (int i = 0; i < d; i++) {
                tmp =  node(ParseNode.ARRAY, tleft, tright, tmp);
            }
            RESULT = tmp;
       
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("typename",28, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 30: // bind_sym ::= simple_name
            {
              ParseNode RESULT =null;
    int varleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int varright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode var = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = var;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("bind_sym",6, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 29: // 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.peek()).left;
    int typeright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode type = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.COLON, varleft, varright, var, type);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("bind_sym",6, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 28: // 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.peek()).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.ASSIGN, sleft, sright, s, e);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("binding",5, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 27: // bindings ::= binding
            {
              ParseNode RESULT =null;
    int bleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int bright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode b = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = b;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("bindings",4, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 26: // bindings ::= binding SEMI
            {
              ParseNode 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;
    ParseNode b = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
     RESULT = b;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("bindings",4, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), 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.peek()).left;
    int errright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    Object err = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     error("invalid binding", errleft, errright);
         RESULT = b;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("bindings",4, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), 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.peek()).left;
    int bsright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode bs = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     error("invalid binding", errleft, errright);
         RESULT = bs;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("bindings",4, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), 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.peek()).left;
    int bsright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode bs = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.COMMA, bleft, bright, b, bs);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("bindings",4, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), 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.peek()).left;
    int bsright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode bs = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.COMMA, bleft, bright, b, bs);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("bindings",4, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 21: // event ::= bindings
            {
              ParseNode RESULT =null;
    int bleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int bright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode b = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = b;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("event",3, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 20: // event ::= NOTHING
            {
              ParseNode RESULT =null;
    int nleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int nright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    Object n = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.NOTHING, nleft, nright);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("event",3, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), 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 = parser.getSymbolFactory().newSymbol("ca_error_in_action",39, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), 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
                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.peek()).left;
    int aright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode a = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.BIND, ileft, iright, null, null, a);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("ca_error_in_condition",38, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 17: // NT$2 ::=
            {
              ParseNode 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 = parser.getSymbolFactory().newSymbol("NT$2",42, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

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

              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("ca_error",37, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

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

              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("ca_error",37, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

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

              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("ca",2, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), 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.peek()).left;
    int aright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode a = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.BIND, cleft, cright, null, c, a);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("ca",2, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), 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 = parser.getSymbolFactory().newSymbol("eca_error_in_action",36, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), 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
                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.peek()).left;
    int aright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode a = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.BIND, eleft, eright, e, null, a);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("eca_error_in_condition",35, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-6)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 10: // NT$1 ::=
            {
              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 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 = parser.getSymbolFactory().newSymbol("NT$1",41, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), 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
                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.peek()).left;
    int aright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode a = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.BIND, bleft, bright, null, c, a);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("eca_error_in_event",34, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-6)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 8: // NT$0 ::=
            {
              ParseNode 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 = parser.getSymbolFactory().newSymbol("NT$0",40, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

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

              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("eca_error",33, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

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

              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("eca_error",33, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

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

              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("eca_error",33, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

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

              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("eca",1, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), 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.peek()).left;
    int aright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode a = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.BIND, eleft, eright, e, c, a);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("eca",1, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 2: // eca_rule ::= ca
            {
              ParseNode RESULT =null;
    int ruleleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int ruleright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode rule = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = rule;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("eca_rule",0, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), 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 = parser.getSymbolFactory().newSymbol("$START",0, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), 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.peek()).left;
    int ruleright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode rule = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = rule;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("eca_rule",0, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), 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.