
//----------------------------------------------------
// The following code was generated by CUP v0.10k
// Fri Jul 23 12:24:21 PDT 2004
//----------------------------------------------------

package TauIL.parser;

import TauIL.lexer.*;
import TauIL.absyn.*;
import TauIL.error.*;
import java_cup.runtime.*;

/** CUP v0.10k generated parser.
  * @version Fri Jul 23 12:24:21 PDT 2004
  */
public class Parser extends java_cup.runtime.lr_parser {

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

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

  /** Production table. */
  protected static final short _production_table[][] = 
    unpackFromStrings(new String[] {
    "\000\100\000\002\002\004\000\002\003\004\000\002\004" +
    "\006\000\002\004\003\000\002\005\003\000\002\005\004" +
    "\000\002\006\005\000\002\007\003\000\002\007\003\000" +
    "\002\011\003\000\002\011\003\000\002\011\003\000\002" +
    "\013\003\000\002\013\005\000\002\012\003\000\002\012" +
    "\004\000\002\010\003\000\002\014\003\000\002\014\004" +
    "\000\002\015\010\000\002\017\003\000\002\017\003\000" +
    "\002\017\003\000\002\016\006\000\002\020\006\000\002" +
    "\020\006\000\002\020\003\000\002\023\003\000\002\023" +
    "\004\000\002\024\004\000\002\024\004\000\002\024\005" +
    "\000\002\025\003\000\002\025\003\000\002\026\003\000" +
    "\002\026\003\000\002\021\006\000\002\027\003\000\002" +
    "\027\004\000\002\030\003\000\002\030\004\000\002\032" +
    "\004\000\002\031\003\000\002\031\005\000\002\033\005" +
    "\000\002\035\003\000\002\035\003\000\002\035\003\000" +
    "\002\035\003\000\002\035\003\000\002\035\003\000\002" +
    "\034\003\000\002\034\003\000\002\034\003\000\002\034" +
    "\003\000\002\034\003\000\002\034\003\000\002\034\003" +
    "\000\002\034\003\000\002\034\003\000\002\034\003\000" +
    "\002\022\005\000\002\022\003\000\002\036\002" });

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

  /** Parse-action table. */
  protected static final short[][] _action_table = 
    unpackFromStrings(new String[] {
    "\000\143\000\006\035\007\041\uffc2\001\002\000\004\002" +
    "\145\001\002\000\004\041\036\001\002\000\006\037\ufffe" +
    "\041\ufffe\001\002\000\004\021\010\001\002\000\006\047" +
    "\014\050\013\001\002\000\010\054\023\055\021\056\022" +
    "\001\002\000\010\022\016\047\014\050\013\001\002\000" +
    "\020\022\ufffa\051\ufffa\052\ufffa\053\ufffa\054\ufffa\055\ufffa" +
    "\056\ufffa\001\002\000\020\022\ufff9\051\ufff9\052\ufff9\053" +
    "\ufff9\054\ufff9\055\ufff9\056\ufff9\001\002\000\010\022\ufffd" +
    "\047\ufffd\050\ufffd\001\002\000\006\037\uffff\041\uffff\001" +
    "\002\000\010\022\ufffc\047\ufffc\050\ufffc\001\002\000\006" +
    "\004\024\017\025\001\002\000\006\004\ufff7\017\ufff7\001" +
    "\002\000\006\004\ufff6\017\ufff6\001\002\000\006\004\ufff8" +
    "\017\ufff8\001\002\000\014\004\ufff1\020\ufff1\022\ufff1\047" +
    "\ufff1\050\ufff1\001\002\000\004\004\024\001\002\000\010" +
    "\022\ufff5\047\ufff5\050\ufff5\001\002\000\010\022\ufffb\047" +
    "\ufffb\050\ufffb\001\002\000\006\004\ufff3\020\ufff3\001\002" +
    "\000\006\004\024\020\033\001\002\000\006\004\ufff2\020" +
    "\ufff2\001\002\000\010\022\ufff4\047\ufff4\050\ufff4\001\002" +
    "\000\006\002\ufff0\041\036\001\002\000\004\002\000\001" +
    "\002\000\010\042\041\043\037\044\040\001\002\000\004" +
    "\045\uffed\001\002\000\004\045\uffeb\001\002\000\004\045" +
    "\uffec\001\002\000\004\045\043\001\002\000\004\005\044" +
    "\001\002\000\010\035\uffc2\036\045\037\uffc2\001\002\000" +
    "\004\021\122\001\002\000\006\035\uffe7\037\uffe7\001\002" +
    "\000\006\035\007\037\uffc2\001\002\000\004\046\051\001" +
    "\002\000\006\002\uffee\041\uffee\001\002\000\004\037\053" +
    "\001\002\000\004\021\062\001\002\000\006\040\057\046" +
    "\uffc2\001\002\000\004\046\uffea\001\002\000\004\046\uffc3" +
    "\001\002\000\004\021\060\001\002\000\004\022\061\001" +
    "\002\000\004\046\uffc4\001\002\000\030\004\074\023\065" +
    "\024\070\025\064\026\103\027\072\030\063\031\075\032" +
    "\067\033\102\034\066\001\002\000\016\010\uffc9\011\uffc9" +
    "\012\uffc9\013\uffc9\014\uffc9\015\uffc9\001\002\000\016\010" +
    "\uffcc\011\uffcc\012\uffcc\013\uffcc\014\uffcc\015\uffcc\001\002" +
    "\000\016\010\uffce\011\uffce\012\uffce\013\uffce\014\uffce\015" +
    "\uffce\001\002\000\016\010\uffc5\011\uffc5\012\uffc5\013\uffc5" +
    "\014\uffc5\015\uffc5\001\002\000\016\010\uffc7\011\uffc7\012" +
    "\uffc7\013\uffc7\014\uffc7\015\uffc7\001\002\000\016\010\uffcd" +
    "\011\uffcd\012\uffcd\013\uffcd\014\uffcd\015\uffcd\001\002\000" +
    "\032\004\074\022\120\023\065\024\070\025\064\026\103" +
    "\027\072\030\063\031\075\032\067\033\102\034\066\001" +
    "\002\000\016\010\uffca\011\uffca\012\uffca\013\uffca\014\uffca" +
    "\015\uffca\001\002\000\034\004\uffd7\016\uffd7\022\uffd7\023" +
    "\uffd7\024\uffd7\025\uffd7\026\uffd7\027\uffd7\030\uffd7\031\uffd7" +
    "\032\uffd7\033\uffd7\034\uffd7\001\002\000\004\007\117\001" +
    "\002\000\016\010\uffc8\011\uffc8\012\uffc8\013\uffc8\014\uffc8" +
    "\015\uffc8\001\002\000\032\004\uffdc\022\uffdc\023\uffdc\024" +
    "\uffdc\025\uffdc\026\uffdc\027\uffdc\030\uffdc\031\uffdc\032\uffdc" +
    "\033\uffdc\034\uffdc\001\002\000\034\004\uffda\016\105\022" +
    "\uffda\023\uffda\024\uffda\025\uffda\026\uffda\027\uffda\030\uffda" +
    "\031\uffda\032\uffda\033\uffda\034\uffda\001\002\000\016\010" +
    "\107\011\110\012\112\013\113\014\115\015\114\001\002" +
    "\000\026\023\065\024\070\025\064\026\103\027\072\030" +
    "\063\031\075\032\067\033\102\034\066\001\002\000\016" +
    "\010\uffc6\011\uffc6\012\uffc6\013\uffc6\014\uffc6\015\uffc6\001" +
    "\002\000\016\010\uffcb\011\uffcb\012\uffcb\013\uffcb\014\uffcb" +
    "\015\uffcb\001\002\000\034\004\uffd9\016\105\022\uffd9\023" +
    "\uffd9\024\uffd9\025\uffd9\026\uffd9\027\uffd9\030\uffd9\031\uffd9" +
    "\032\uffd9\033\uffd9\034\uffd9\001\002\000\026\023\065\024" +
    "\070\025\064\026\103\027\072\030\063\031\075\032\067" +
    "\033\102\034\066\001\002\000\034\004\uffd6\016\uffd6\022" +
    "\uffd6\023\uffd6\024\uffd6\025\uffd6\026\uffd6\027\uffd6\030\uffd6" +
    "\031\uffd6\032\uffd6\033\uffd6\034\uffd6\001\002\000\004\006" +
    "\uffd4\001\002\000\004\006\uffd3\001\002\000\004\006\116" +
    "\001\002\000\004\006\uffd2\001\002\000\004\006\uffd1\001" +
    "\002\000\004\006\uffcf\001\002\000\004\006\uffd0\001\002" +
    "\000\034\004\uffd5\016\uffd5\022\uffd5\023\uffd5\024\uffd5\025" +
    "\uffd5\026\uffd5\027\uffd5\030\uffd5\031\uffd5\032\uffd5\033\uffd5" +
    "\034\uffd5\001\002\000\026\023\uffd8\024\uffd8\025\uffd8\026" +
    "\uffd8\027\uffd8\030\uffd8\031\uffd8\032\uffd8\033\uffd8\034\uffd8" +
    "\001\002\000\006\040\uffdd\046\uffdd\001\002\000\032\004" +
    "\uffdb\022\uffdb\023\uffdb\024\uffdb\025\uffdb\026\uffdb\027\uffdb" +
    "\030\uffdb\031\uffdb\032\uffdb\033\uffdb\034\uffdb\001\002\000" +
    "\012\003\123\051\125\052\124\053\130\001\002\000\004" +
    "\022\143\001\002\000\006\047\014\050\013\001\002\000" +
    "\006\054\140\057\136\001\002\000\012\022\uffe6\051\uffe6" +
    "\052\uffe6\053\uffe6\001\002\000\012\022\134\051\125\052" +
    "\124\053\130\001\002\000\006\060\133\061\131\001\002" +
    "\000\012\022\uffe0\051\uffe0\052\uffe0\053\uffe0\001\002\000" +
    "\012\022\uffe3\051\uffe3\052\uffe3\053\uffe3\001\002\000\012" +
    "\022\uffe1\051\uffe1\052\uffe1\053\uffe1\001\002\000\006\035" +
    "\uffe9\037\uffe9\001\002\000\012\022\uffe5\051\uffe5\052\uffe5" +
    "\053\uffe5\001\002\000\004\005\uffde\001\002\000\004\005" +
    "\141\001\002\000\004\005\uffdf\001\002\000\012\022\uffe2" +
    "\051\uffe2\052\uffe2\053\uffe2\001\002\000\012\022\uffe4\051" +
    "\uffe4\052\uffe4\053\uffe4\001\002\000\006\035\uffe8\037\uffe8" +
    "\001\002\000\004\002\uffef\001\002\000\004\002\001\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\143\000\010\003\003\004\004\036\005\001\001\000" +
    "\002\001\001\000\006\014\034\015\033\001\001\000\002" +
    "\001\001\000\002\001\001\000\010\005\011\006\014\007" +
    "\010\001\001\000\004\011\017\001\001\000\006\006\016" +
    "\007\010\001\001\000\002\001\001\000\002\001\001\000" +
    "\002\001\001\000\002\001\001\000\002\001\001\000\006" +
    "\010\025\013\026\001\001\000\002\001\001\000\002\001" +
    "\001\000\002\001\001\000\002\001\001\000\006\010\027" +
    "\012\030\001\001\000\002\001\001\000\002\001\001\000" +
    "\002\001\001\000\004\010\031\001\001\000\002\001\001" +
    "\000\002\001\001\000\006\014\143\015\033\001\001\000" +
    "\002\001\001\000\004\017\041\001\001\000\002\001\001" +
    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
    "\002\001\001\000\010\016\047\020\046\036\045\001\001" +
    "\000\002\001\001\000\002\001\001\000\006\004\051\036" +
    "\005\001\001\000\002\001\001\000\002\001\001\000\004" +
    "\021\053\001\001\000\002\001\001\000\006\022\054\036" +
    "\055\001\001\000\002\001\001\000\002\001\001\000\002" +
    "\001\001\000\002\001\001\000\002\001\001\000\016\027" +
    "\070\030\075\031\076\032\100\033\072\034\077\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\014" +
    "\030\120\031\076\032\100\033\072\034\077\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\035" +
    "\110\001\001\000\010\031\103\033\072\034\077\001\001" +
    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
    "\006\033\105\034\077\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\006\023\126\024\125\001\001\000\002" +
    "\001\001\000\004\007\141\001\001\000\004\026\136\001" +
    "\001\000\002\001\001\000\004\024\134\001\001\000\004" +
    "\025\131\001\001\000\002\001\001\000\002\001\001\000" +
    "\002\001\001\000\002\001\001\000\002\001\001\000\002" +
    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
    "\000\002\001\001" });

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

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

  /** Action encapsulation object initializer. */
  protected void init_actions()
    {
      action_obj = new CUP$Parser$actions(this);
    }

  /** Invoke a user supplied parse action. */
  public java_cup.runtime.Symbol do_action(
    int                        act_num,
    java_cup.runtime.lr_parser parser,
    java.util.Stack            stack,
    int                        top)
    throws java.lang.Exception
  {
    /* call code in generated class */
    return action_obj.CUP$Parser$do_action(act_num, parser, stack, top);
  }

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

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

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


 
	ErrorMessage errors;

	public Parser(Scanner s, ErrorMessage errors) {
		super(s);
		this.errors = errors;
	}

}

/** Cup generated class to encapsulate user supplied action code.*/
class CUP$Parser$actions {
  private final Parser parser;

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

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

      /* select the action based on the action number */
      switch (CUP$Parser$act_num)
        {
          /*. . . . . . . . . . . . . . . . . . . .*/
          case 63: // empty ::= 
            {
              Object RESULT = null;

              CUP$Parser$result = new java_cup.runtime.Symbol(28/*empty*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 62: // anti_conditions ::= empty 
            {
              StatementList RESULT = null;

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

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 61: // anti_conditions ::= ANTICONDS LCOLBRACE RCOLBRACE 
            {
              StatementList RESULT = null;
		 RESULT = new StatementList(null); 
              CUP$Parser$result = new java_cup.runtime.Symbol(16/*anti_conditions*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 60: // field ::= COUNTS_CALL 
            {
              Field RESULT = null;
		 RESULT = new Field(Field.COUNTS_CALL); 
              CUP$Parser$result = new java_cup.runtime.Symbol(26/*field*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 59: // field ::= USECS_CALL 
            {
              Field RESULT = null;
		 RESULT = new Field(Field.USECS_CALL); 
              CUP$Parser$result = new java_cup.runtime.Symbol(26/*field*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 58: // field ::= STDDEV 
            {
              Field RESULT = null;
		 RESULT = new Field(Field.STDDEV); 
              CUP$Parser$result = new java_cup.runtime.Symbol(26/*field*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 57: // field ::= TOTCOUNT 
            {
              Field RESULT = null;
		 RESULT = new Field(Field.TOTCOUNT); 
              CUP$Parser$result = new java_cup.runtime.Symbol(26/*field*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 56: // field ::= COUNT 
            {
              Field RESULT = null;
		 RESULT = new Field(Field.COUNT); 
              CUP$Parser$result = new java_cup.runtime.Symbol(26/*field*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 55: // field ::= CUMUSEC 
            {
              Field RESULT = null;
		 RESULT = new Field(Field.CUMUSEC); 
              CUP$Parser$result = new java_cup.runtime.Symbol(26/*field*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 54: // field ::= USEC 
            {
              Field RESULT = null;
		 RESULT = new Field(Field.USEC); 
              CUP$Parser$result = new java_cup.runtime.Symbol(26/*field*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 53: // field ::= PERCENT 
            {
              Field RESULT = null;
		 RESULT = new Field(Field.PERCENT); 
              CUP$Parser$result = new java_cup.runtime.Symbol(26/*field*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 52: // field ::= NUMSUBRS 
            {
              Field RESULT = null;
		 RESULT = new Field(Field.NUMSUBRS); 
              CUP$Parser$result = new java_cup.runtime.Symbol(26/*field*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 51: // field ::= NUMCALLS 
            {
              Field RESULT = null;
		 RESULT = new Field(Field.NUMCALLS); 
              CUP$Parser$result = new java_cup.runtime.Symbol(26/*field*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 50: // operator ::= NEQ 
            {
              Operator RESULT = null;
		 RESULT = new Operator(Operator.NEQ); 
              CUP$Parser$result = new java_cup.runtime.Symbol(27/*operator*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 49: // operator ::= LTEQ 
            {
              Operator RESULT = null;
		 RESULT = new Operator(Operator.LTEQ); 
              CUP$Parser$result = new java_cup.runtime.Symbol(27/*operator*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 48: // operator ::= GTEQ 
            {
              Operator RESULT = null;
		 RESULT = new Operator(Operator.GTEQ); 
              CUP$Parser$result = new java_cup.runtime.Symbol(27/*operator*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 47: // operator ::= GT 
            {
              Operator RESULT = null;
		 RESULT = new Operator(Operator.GT); 
              CUP$Parser$result = new java_cup.runtime.Symbol(27/*operator*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 46: // operator ::= LT 
            {
              Operator RESULT = null;
		 RESULT = new Operator(Operator.LT); 
              CUP$Parser$result = new java_cup.runtime.Symbol(27/*operator*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 45: // operator ::= EQ 
            {
              Operator RESULT = null;
		 RESULT = new Operator(Operator.EQ); 
              CUP$Parser$result = new java_cup.runtime.Symbol(27/*operator*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 44: // op_statement ::= field operator NUM 
            {
              OperatorStatement RESULT = null;
		int fleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left;
		int fright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right;
		Field f = (Field)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value;
		int opleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
		int opright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
		Operator op = (Operator)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
		int numleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
		int numright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
		DoubleToken num = (DoubleToken)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
		 RESULT = new OperatorStatement(f, op, new Literal(num.value.doubleValue())); 
              CUP$Parser$result = new java_cup.runtime.Symbol(25/*op_statement*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 43: // statement ::= statement AND op_statement 
            {
              ListManager RESULT = null;
		int stleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left;
		int stright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right;
		ListManager st = (ListManager)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value;
		int opstleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
		int opstright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
		OperatorStatement opst = (OperatorStatement)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
		 st.insert(new MultiStatement(opst)); RESULT = st;  
              CUP$Parser$result = new java_cup.runtime.Symbol(23/*statement*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 42: // statement ::= op_statement 
            {
              ListManager RESULT = null;
		int opstleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
		int opstright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
		OperatorStatement opst = (OperatorStatement)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
		 RESULT = new ListManager(new MultiStatement(opst), ListManager.QUEUE); 
              CUP$Parser$result = new java_cup.runtime.Symbol(23/*statement*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 41: // group ::= ID COLON 
            {
              Group RESULT = null;
		int idleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
		int idright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
		StringToken id = (StringToken)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
		 RESULT = new Group(id.string); 
              CUP$Parser$result = new java_cup.runtime.Symbol(24/*group*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 40: // cond ::= group statement 
            {
              MultiStatement RESULT = null;
		int gleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
		int gright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
		Group g = (Group)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
		int stleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
		int stright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
		ListManager st = (ListManager)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
		 MultiStatement list = (MultiStatement) st.retrieve(); list.setGroup(g); RESULT = list; 
              CUP$Parser$result = new java_cup.runtime.Symbol(22/*cond*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 39: // cond ::= statement 
            {
              MultiStatement RESULT = null;
		int stleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
		int stright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
		ListManager st = (ListManager)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
		 RESULT = (MultiStatement) st.retrieve(); 
              CUP$Parser$result = new java_cup.runtime.Symbol(22/*cond*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 38: // cond_list ::= cond_list cond 
            {
              ListManager RESULT = null;
		int colsleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
		int colsright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
		ListManager cols = (ListManager)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
		int coleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
		int coright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
		MultiStatement co = (MultiStatement)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
		 cols.insert(new StatementList(co)); RESULT = cols; 
              CUP$Parser$result = new java_cup.runtime.Symbol(21/*cond_list*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 37: // cond_list ::= cond 
            {
              ListManager RESULT = null;
		int coleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
		int coright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
		MultiStatement co = (MultiStatement)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
		 RESULT = new ListManager(new StatementList(co), ListManager.QUEUE); 
              CUP$Parser$result = new java_cup.runtime.Symbol(21/*cond_list*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 36: // conditions ::= CONDS LCOLBRACE cond_list RCOLBRACE 
            {
              StatementList RESULT = null;
		int colsleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
		int colsright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
		ListManager cols = (ListManager)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
		 RESULT = (StatementList) cols.retrieve(); 
              CUP$Parser$result = new java_cup.runtime.Symbol(15/*conditions*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 35: // dir_use ::= DB 
            {
              Integer RESULT = null;
		 RESULT = new Integer(Directive.DB); 
              CUP$Parser$result = new java_cup.runtime.Symbol(20/*dir_use*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 34: // dir_use ::= FILE 
            {
              Integer RESULT = null;
		 RESULT = new Integer(Directive.FILE); 
              CUP$Parser$result = new java_cup.runtime.Symbol(20/*dir_use*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 33: // dir_type ::= PDT 
            {
              Integer RESULT = null;
		 RESULT = new Integer(Directive.PDT); 
              CUP$Parser$result = new java_cup.runtime.Symbol(19/*dir_type*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 32: // dir_type ::= TAU_PROFILE 
            {
              Integer RESULT = null;
		 RESULT = new Integer(Directive.TAU_PROFILE); 
              CUP$Parser$result = new java_cup.runtime.Symbol(19/*dir_type*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 31: // direct ::= USE dir_use STRING 
            {
              Directive RESULT = null;
		int duleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
		int duright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
		Integer du = (Integer)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
		int strleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
		int strright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
		StringToken str = (StringToken)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
		 Directive d = new Directive(Directive.USE, du.intValue());
								   d.setArgument(str.string); 
								   RESULT = d; 
              CUP$Parser$result = new java_cup.runtime.Symbol(18/*direct*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 30: // direct ::= TYPE dir_type 
            {
              Directive RESULT = null;
		int dtleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
		int dtright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
		Integer dt = (Integer)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
		 RESULT = new Directive(Directive.TYPE, dt.intValue()); 
              CUP$Parser$result = new java_cup.runtime.Symbol(18/*direct*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 29: // direct ::= TARGET dec_type 
            {
              Directive RESULT = null;
		int dtleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
		int dtright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
		Integer dt = (Integer)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
		 RESULT = new Directive(Directive.TARGET, dt.intValue()); 
              CUP$Parser$result = new java_cup.runtime.Symbol(18/*direct*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 28: // dir_list ::= dir_list direct 
            {
              ListManager RESULT = null;
		int dirlsleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
		int dirlsright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
		ListManager dirls = (ListManager)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
		int dirleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
		int dirright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
		Directive dir = (Directive)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
		 dirls.insert(new DirectiveList(dir)); RESULT = dirls; 
              CUP$Parser$result = new java_cup.runtime.Symbol(17/*dir_list*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 27: // dir_list ::= direct 
            {
              ListManager RESULT = null;
		int dirleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
		int dirright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
		Directive dir = (Directive)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
		 RESULT = new ListManager(new DirectiveList(dir), ListManager.QUEUE); 
              CUP$Parser$result = new java_cup.runtime.Symbol(17/*dir_list*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 26: // directives ::= empty 
            {
              DirectiveList RESULT = null;

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

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 25: // directives ::= DIRS LCOLBRACE error RCOLBRACE 
            {
              DirectiveList RESULT = null;
		 System.out.println("ERROR IN DIRECTIVES BLOCK"); RESULT = null; 
              CUP$Parser$result = new java_cup.runtime.Symbol(14/*directives*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 24: // directives ::= DIRS LCOLBRACE dir_list RCOLBRACE 
            {
              DirectiveList RESULT = null;
		int dirlsleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
		int dirlsright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
		ListManager dirls = (ListManager)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
		 RESULT = (DirectiveList) dirls.retrieve(); 
              CUP$Parser$result = new java_cup.runtime.Symbol(14/*directives*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 23: // inst_body ::= directives decs conditions anti_conditions 
            {
              Instrumentation RESULT = null;
		int dirleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).left;
		int dirright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).right;
		DirectiveList dir = (DirectiveList)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-3)).value;
		int decleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left;
		int decright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right;
		DecList dec = (DecList)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value;
		int coleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
		int coright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
		StatementList co = (StatementList)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
		int acoleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
		int acoright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
		StatementList aco = (StatementList)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
		 RESULT = new Instrumentation(dir, dec, co, aco); 
              CUP$Parser$result = new java_cup.runtime.Symbol(12/*inst_body*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 22: // data_type ::= RUNTIME 
            {
              Integer RESULT = null;
		 RESULT = new Integer(Instrumentation.RUNTIME); 
              CUP$Parser$result = new java_cup.runtime.Symbol(13/*data_type*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 21: // data_type ::= STATIC 
            {
              Integer RESULT = null;
		 RESULT = new Integer(Instrumentation.STATIC); 
              CUP$Parser$result = new java_cup.runtime.Symbol(13/*data_type*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 20: // data_type ::= PROFILE 
            {
              Integer RESULT = null;
		 RESULT = new Integer(Instrumentation.PROFILE); 
              CUP$Parser$result = new java_cup.runtime.Symbol(13/*data_type*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 19: // inst_block ::= INSTRUMENT data_type AS STRING inst_body END 
            {
              Instrumentation RESULT = null;
		int dtleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-4)).left;
		int dtright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-4)).right;
		Integer dt = (Integer)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-4)).value;
		int strleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left;
		int strright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right;
		StringToken str = (StringToken)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value;
		int instleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
		int instright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
		Instrumentation inst = (Instrumentation)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
		 inst.setDataType(dt.intValue()); 
											   inst.setFileName(str.string); 
											   RESULT = inst; 
              CUP$Parser$result = new java_cup.runtime.Symbol(11/*inst_block*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-5)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 18: // inst_list ::= inst_block inst_list 
            {
              ListManager RESULT = null;
		int instbleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
		int instbright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
		Instrumentation instb = (Instrumentation)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
		int instlsleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
		int instlsright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
		ListManager instls = (ListManager)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
		 instls.insert(new InstrumentationList(instb)); RESULT = instls; 
              CUP$Parser$result = new java_cup.runtime.Symbol(10/*inst_list*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 17: // inst_list ::= inst_block 
            {
              ListManager RESULT = null;
		int instbleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
		int instbright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
		Instrumentation instb = (Instrumentation)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
		 RESULT = new ListManager(new InstrumentationList(instb), ListManager.STACK); 
              CUP$Parser$result = new java_cup.runtime.Symbol(10/*inst_list*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 16: // entity ::= ID 
            {
              Entity RESULT = null;
		int idleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
		int idright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
		StringToken id = (StringToken)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
		 RESULT = new Entity(id.string); 
              CUP$Parser$result = new java_cup.runtime.Symbol(6/*entity*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 15: // entity_list ::= entity_list entity 
            {
              ListManager RESULT = null;
		int entlsleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
		int entlsright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
		ListManager entls = (ListManager)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
		int entleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
		int entright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
		Entity ent = (Entity)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
		 entls.insert(new EntityList(ent)); RESULT = entls; 
              CUP$Parser$result = new java_cup.runtime.Symbol(8/*entity_list*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 14: // entity_list ::= entity 
            {
              ListManager RESULT = null;
		int entleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
		int entright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
		Entity ent = (Entity)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
		 RESULT = new ListManager(new EntityList(ent), ListManager.QUEUE); 
              CUP$Parser$result = new java_cup.runtime.Symbol(8/*entity_list*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 13: // entities ::= LBRACE entity_list RBRACE 
            {
              EntityList RESULT = null;
		int entlsleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
		int entlsright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
		ListManager entls = (ListManager)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
		 RESULT = (EntityList) entls.retrieve(); 
              CUP$Parser$result = new java_cup.runtime.Symbol(9/*entities*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 12: // entities ::= entity 
            {
              EntityList RESULT = null;
		int entleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
		int entright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
		Entity ent = (Entity)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
		 RESULT = new EntityList(ent); 
              CUP$Parser$result = new java_cup.runtime.Symbol(9/*entities*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 11: // entity_type ::= GROUP 
            {
              Integer RESULT = null;
		 RESULT = new Integer(Entity.GROUP); 
              CUP$Parser$result = new java_cup.runtime.Symbol(7/*entity_type*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 10: // entity_type ::= EVENT 
            {
              Integer RESULT = null;
		 RESULT = new Integer(Entity.EVENT); 
              CUP$Parser$result = new java_cup.runtime.Symbol(7/*entity_type*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 9: // entity_type ::= FILE 
            {
              Integer RESULT = null;
		 RESULT = new Integer(Entity.FILE); 
              CUP$Parser$result = new java_cup.runtime.Symbol(7/*entity_type*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 8: // dec_type ::= EXCLUDE 
            {
              Integer RESULT = null;
		 RESULT = new Integer(IncludeDec.EXCLUDE); 
              CUP$Parser$result = new java_cup.runtime.Symbol(5/*dec_type*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 7: // dec_type ::= INCLUDE 
            {
              Integer RESULT = null;
		 RESULT = new Integer(IncludeDec.INCLUDE); 
              CUP$Parser$result = new java_cup.runtime.Symbol(5/*dec_type*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 6: // dec ::= dec_type entity_type entities 
            {
              Declaration RESULT = null;
		int dtleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left;
		int dtright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right;
		Integer dt = (Integer)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value;
		int etleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
		int etright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
		Integer et = (Integer)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
		int entsleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
		int entsright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
		EntityList ents = (EntityList)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
		 RESULT = new IncludeDec(dt.intValue(), et.intValue(), ents); 
              CUP$Parser$result = new java_cup.runtime.Symbol(4/*dec*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 5: // dec_list ::= dec_list dec 
            {
              ListManager RESULT = null;
		int declsleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
		int declsright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
		ListManager decls = (ListManager)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
		int decleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
		int decright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
		Declaration dec = (Declaration)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
		 decls.insert(new DecList(dec)); RESULT = decls; 
              CUP$Parser$result = new java_cup.runtime.Symbol(3/*dec_list*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 4: // dec_list ::= dec 
            {
              ListManager RESULT = null;
		int decleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
		int decright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
		Declaration dec = (Declaration)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
		 RESULT = new ListManager(new DecList(dec), ListManager.QUEUE); 
              CUP$Parser$result = new java_cup.runtime.Symbol(3/*dec_list*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 3: // decs ::= empty 
            {
              DecList RESULT = null;

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

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 2: // decs ::= DECS LCOLBRACE dec_list RCOLBRACE 
            {
              DecList RESULT = null;
		int declsleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
		int declsright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
		ListManager decls = (ListManager)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
		 RESULT = (DecList) decls.retrieve(); 
              CUP$Parser$result = new java_cup.runtime.Symbol(2/*decs*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 1: // inst_spec ::= decs inst_list 
            {
              AbstractSyntaxTree RESULT = null;
		int decleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
		int decright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
		DecList dec = (DecList)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
		int instleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left;
		int instright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right;
		ListManager inst = (ListManager)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value;
		 RESULT = new AbstractSyntaxTree(dec, (InstrumentationList) inst.retrieve()); 
              CUP$Parser$result = new java_cup.runtime.Symbol(1/*inst_spec*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT);
            }
          return CUP$Parser$result;

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

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

        }
    }
}

