
//----------------------------------------------------
// The following code was generated by CUP v0.10k
// Fri Jan 26 10:11:19 PST 2007
//----------------------------------------------------

package code.loader.parser.txtParser;

import java_cup.runtime.*;
import java.util.*;
import code.type.*;
import code.symbols.*;
import code.instr.*;

/** CUP v0.10k generated parser.
  * @version Fri Jan 26 10:11:19 PST 2007
  */
public class TxtCupParser extends java_cup.runtime.lr_parser {

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

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

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

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

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

  /** Action encapsulation object initializer. */
  protected void init_actions()
    {
      action_obj = new CUP$TxtCupParser$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$TxtCupParser$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
    {
 Token tmp = jlexer.yylex();
             // System.out.println(tmp.sym+" "+tmp.parse_state+" "+tmp.value);
             return tmp; 
    }



/** We can't use the usual setScanner/getScanner mechanism, because our
 lexer doesn't quite match the Lexer interface. */

Yylex jlexer;
public TxtCupParser(Yylex jlexer) {
  super();
  this.jlexer = jlexer;
}

public void syntax_error(java_cup.runtime.Symbol current) {} // override default message

public void unrecovered_syntax_error(java_cup.runtime.Symbol current) throws ParseError {
  report_fatal_error("Error at line " + current.left + ": Parse Syntax error",current);
}

public void report_fatal_error(String message, java_cup.runtime.Symbol info) throws ParseError {
 done_parsing();
 throw new ParseError(message);
}


}

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


  // All these are data members describing the module being parsed.
  Vector importedv=new Vector();
  Vector symbolv=new Vector();
  Boolean compiled = null;
  String source = null;
  String name = null;
  Integer timestamp = null ; // a dummy variable to make things more meaningful
  // Order of the elements of 'a' is important.
  Object [] a = {importedv, symbolv, compiled, source,name,timestamp};

  private final TxtCupParser parser;

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

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

      /* select the action based on the action number */
      switch (CUP$TxtCupParser$act_num)
        {
          /*. . . . . . . . . . . . . . . . . . . .*/
          case 65: // codeBlocks ::= codeBlocks codeBlock 
            {
              Vector RESULT = null;
		int cbsleft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-1)).left;
		int cbsright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-1)).right;
		Vector cbs = (Vector)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-1)).value;
		int cleft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left;
		int cright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right;
		Vector c = (Vector)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).value;
		  
                              Object [] oa = c.toArray();
                              Instruction [] ia = new Instruction[oa.length];
                              for(int i=0;i<oa.length;++i)
                                  ia[i] = (Instruction)oa[i];
                              cbs.add(ia); RESULT = cbs; 
                            
              CUP$TxtCupParser$result = new java_cup.runtime.Symbol(31/*codeBlocks*/, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, RESULT);
            }
          return CUP$TxtCupParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 64: // codeBlocks ::= codeBlock 
            {
              Vector RESULT = null;
		int cleft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left;
		int cright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right;
		Vector c = (Vector)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).value;
		
                              Vector v = new Vector();
                              Object [] oa = c.toArray();
                              Instruction [] ia = new Instruction[oa.length];
                              for(int i=0;i<oa.length;++i)
                                  ia[i] = (Instruction)oa[i];
                              v.add(ia); RESULT = v;
                            
              CUP$TxtCupParser$result = new java_cup.runtime.Symbol(31/*codeBlocks*/, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, RESULT);
            }
          return CUP$TxtCupParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 63: // intArgs ::= intArgs INTEGER 
            {
              Vector RESULT = null;
		int iavleft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-1)).left;
		int iavright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-1)).right;
		Vector iav = (Vector)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-1)).value;
		int ileft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left;
		int iright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right;
		Integer i = (Integer)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).value;
		 iav.add(i); RESULT = iav; 
              CUP$TxtCupParser$result = new java_cup.runtime.Symbol(30/*intArgs*/, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, RESULT);
            }
          return CUP$TxtCupParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 62: // intArgs ::= INTEGER 
            {
              Vector RESULT = null;
		int ileft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left;
		int iright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right;
		Integer i = (Integer)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).value;
		 Vector iav = new Vector();
                               iav.add(i); 
                               RESULT = iav; 
              CUP$TxtCupParser$result = new java_cup.runtime.Symbol(30/*intArgs*/, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, RESULT);
            }
          return CUP$TxtCupParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 61: // sig_symbol_name ::= UNQUAL_ID 
            {
              String RESULT = null;
		int idleft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left;
		int idright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right;
		String id = (String)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).value;
		 RESULT = id; 
              CUP$TxtCupParser$result = new java_cup.runtime.Symbol(29/*sig_symbol_name*/, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, RESULT);
            }
          return CUP$TxtCupParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 60: // instr ::= STOREVAR INTEGER 
            {
              Instruction RESULT = null;
		int ileft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left;
		int iright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right;
		Integer i = (Integer)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).value;
		 RESULT = new StoreVar(i.intValue()); 
              CUP$TxtCupParser$result = new java_cup.runtime.Symbol(28/*instr*/, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, RESULT);
            }
          return CUP$TxtCupParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 59: // instr ::= RESIDUATE 
            {
              Instruction RESULT = null;
		 RESULT = Residuate.singleton; 
              CUP$TxtCupParser$result = new java_cup.runtime.Symbol(28/*instr*/, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, RESULT);
            }
          return CUP$TxtCupParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 58: // instr ::= REPLACE 
            {
              Instruction RESULT = null;
		 RESULT = Replace.singleton; 
              CUP$TxtCupParser$result = new java_cup.runtime.Symbol(28/*instr*/, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, RESULT);
            }
          return CUP$TxtCupParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 57: // instr ::= PUSH 
            {
              Instruction RESULT = null;
		 RESULT = Push.singleton; 
              CUP$TxtCupParser$result = new java_cup.runtime.Symbol(28/*instr*/, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, RESULT);
            }
          return CUP$TxtCupParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 56: // instr ::= POP 
            {
              Instruction RESULT = null;
		 RESULT = Pop.singleton; 
              CUP$TxtCupParser$result = new java_cup.runtime.Symbol(28/*instr*/, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, RESULT);
            }
          return CUP$TxtCupParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 55: // instr ::= NARROW 
            {
              Instruction RESULT = null;
		 RESULT = Narrow.singleton; 
              CUP$TxtCupParser$result = new java_cup.runtime.Symbol(28/*instr*/, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, RESULT);
            }
          return CUP$TxtCupParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 54: // instr ::= MAKEVAR INTEGER 
            {
              Instruction RESULT = null;
		int ileft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left;
		int iright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right;
		Integer i = (Integer)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).value;
		 RESULT = new MakeVar(i.intValue()); 
              CUP$TxtCupParser$result = new java_cup.runtime.Symbol(28/*instr*/, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, RESULT);
            }
          return CUP$TxtCupParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 53: // instr ::= MAKETERM sig_symbol_name UNQUAL_ID 
            {
              Instruction RESULT = null;
		int idleft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-1)).left;
		int idright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-1)).right;
		String id = (String)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-1)).value;
		int module_nameleft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left;
		int module_nameright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right;
		String module_name = (String)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).value;
		 RESULT = new MakeTerm(module_name, id); 
              CUP$TxtCupParser$result = new java_cup.runtime.Symbol(28/*instr*/, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, RESULT);
            }
          return CUP$TxtCupParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 52: // instr ::= MAKEPARTIAL INTEGER sig_symbol_name UNQUAL_ID 
            {
              Instruction RESULT = null;
		int ileft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-2)).left;
		int iright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-2)).right;
		Integer i = (Integer)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-2)).value;
		int idleft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-1)).left;
		int idright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-1)).right;
		String id = (String)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-1)).value;
		int module_nameleft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left;
		int module_nameright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right;
		String module_name = (String)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).value;
		 RESULT = new MakePartial(module_name,id, i.intValue()); 
              CUP$TxtCupParser$result = new java_cup.runtime.Symbol(28/*instr*/, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-3)).left, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, RESULT);
            }
          return CUP$TxtCupParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 51: // instr ::= MAKEFLOAT FLOAT 
            {
              Instruction RESULT = null;
		int ileft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left;
		int iright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right;
		Float i = (Float)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).value;
		 RESULT = new MakeFloat(i.floatValue()); 
              CUP$TxtCupParser$result = new java_cup.runtime.Symbol(28/*instr*/, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, RESULT);
            }
          return CUP$TxtCupParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 50: // instr ::= MAKEINT INTEGER 
            {
              Instruction RESULT = null;
		int ileft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left;
		int iright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right;
		Integer i = (Integer)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).value;
		 RESULT = new MakeInt(i.intValue()); 
              CUP$TxtCupParser$result = new java_cup.runtime.Symbol(28/*instr*/, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, RESULT);
            }
          return CUP$TxtCupParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 49: // instr ::= MAKECHAR INTEGER 
            {
              Instruction RESULT = null;
		int ileft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left;
		int iright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right;
		Integer i = (Integer)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).value;
		 RESULT = new MakeChar((char)(i.intValue())); 
              CUP$TxtCupParser$result = new java_cup.runtime.Symbol(28/*instr*/, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, RESULT);
            }
          return CUP$TxtCupParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 48: // instr ::= MAKEANON 
            {
              Instruction RESULT = null;
		 RESULT = MakeAnon.singleton; 
              CUP$TxtCupParser$result = new java_cup.runtime.Symbol(28/*instr*/, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, RESULT);
            }
          return CUP$TxtCupParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 47: // instr ::= MAKEREF 
            {
              Instruction RESULT = null;
		 RESULT = MakeRef.singleton; 
              CUP$TxtCupParser$result = new java_cup.runtime.Symbol(28/*instr*/, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, RESULT);
            }
          return CUP$TxtCupParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 46: // instr ::= LOAD intArgs 
            {
              Instruction RESULT = null;
		int iavleft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left;
		int iavright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right;
		Vector iav = (Vector)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).value;
		
                              Object [] oa = iav.toArray();
                              byte [] ba = new byte[oa.length];
                              for(int i=0;i<oa.length;++i) {
                                  Integer it = (Integer)oa[i];
                                  ba[i] = (byte)it.intValue();
                              }
                              RESULT = new Load(ba);
                            
              CUP$TxtCupParser$result = new java_cup.runtime.Symbol(28/*instr*/, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, RESULT);
            }
          return CUP$TxtCupParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 45: // instr ::= FAIL 
            {
              Instruction RESULT = null;
		 RESULT = Fail.singleton; 
              CUP$TxtCupParser$result = new java_cup.runtime.Symbol(28/*instr*/, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, RESULT);
            }
          return CUP$TxtCupParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 44: // instr ::= CHOICE 
            {
              Instruction RESULT = null;
		 RESULT = Choice.singleton; 
              CUP$TxtCupParser$result = new java_cup.runtime.Symbol(28/*instr*/, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, RESULT);
            }
          return CUP$TxtCupParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 43: // instr ::= BRANCH LCUBRA codeBlocks RCUBRA 
            {
              Instruction RESULT = null;
		int cbsleft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-1)).left;
		int cbsright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-1)).right;
		Vector cbs = (Vector)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-1)).value;
		
                              Object [] oa = cbs.toArray();
                              Instruction [][] aia = new Instruction[oa.length][];
                              for(int i=0;i<oa.length;++i)
                                  aia[i] = (Instruction [])oa[i];
                              RESULT = new Branch(aia);
                            
              CUP$TxtCupParser$result = new java_cup.runtime.Symbol(28/*instr*/, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-3)).left, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, RESULT);
            }
          return CUP$TxtCupParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 42: // instrs ::= instrs instr 
            {
              Vector RESULT = null;
		int isleft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-1)).left;
		int isright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-1)).right;
		Vector is = (Vector)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-1)).value;
		int ileft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left;
		int iright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right;
		Instruction i = (Instruction)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).value;
		
                               //Debug instructions in non-debug mode will
                               //be null and should be removed from the instruction
                               //stream.  This allows us to put debug instructions
                               //into libraries and then remove them at load time
                               //when not debugging.
                               if (i != null){
                                 is.add(i);
                               }
                               RESULT = is;
                            
              CUP$TxtCupParser$result = new java_cup.runtime.Symbol(27/*instrs*/, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, RESULT);
            }
          return CUP$TxtCupParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 41: // instrs ::= 
            {
              Vector RESULT = null;
		 Vector v = new Vector(); RESULT = v; 
              CUP$TxtCupParser$result = new java_cup.runtime.Symbol(27/*instrs*/, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, RESULT);
            }
          return CUP$TxtCupParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 40: // codeBlock ::= LCUBRA instrs RCUBRA 
            {
              Vector RESULT = null;
		int isleft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-1)).left;
		int isright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-1)).right;
		Vector is = (Vector)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-1)).value;
		 RESULT = is; 
              CUP$TxtCupParser$result = new java_cup.runtime.Symbol(26/*codeBlock*/, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, RESULT);
            }
          return CUP$TxtCupParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 39: // type_fun ::= ARROW LPAREN typeExp COMMA typeExp RPAREN 
            {
              FunctionType RESULT = null;
		int te1left = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-3)).left;
		int te1right = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-3)).right;
		TypeExpression te1 = (TypeExpression)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-3)).value;
		int te2left = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-1)).left;
		int te2right = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-1)).right;
		TypeExpression te2 = (TypeExpression)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-1)).value;
		 RESULT = TypeFactory.makeFunctionType(te1, te2); 
              CUP$TxtCupParser$result = new java_cup.runtime.Symbol(25/*type_fun*/, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-5)).left, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, RESULT);
            }
          return CUP$TxtCupParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 38: // typeExpList ::= COMMA typeExp typeExpList 
            {
              Vector RESULT = null;
		int teleft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-1)).left;
		int teright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-1)).right;
		TypeExpression te = (TypeExpression)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-1)).value;
		int telleft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left;
		int telright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right;
		Vector tel = (Vector)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).value;
		
                                Vector list = new Vector() ;
                                list.add(te);
                                Object [] a = tel.toArray() ;
                                for ( int i=0; i<a.length;++i)
                                    list.add(a[i]);
                                RESULT = list ;
                            
              CUP$TxtCupParser$result = new java_cup.runtime.Symbol(23/*typeExpList*/, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, RESULT);
            }
          return CUP$TxtCupParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 37: // typeExpList ::= 
            {
              Vector RESULT = null;
		 RESULT = new Vector() ; 
              CUP$TxtCupParser$result = new java_cup.runtime.Symbol(23/*typeExpList*/, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, RESULT);
            }
          return CUP$TxtCupParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 36: // type_args ::= LPAREN typeExp typeExpList RPAREN 
            {
              Vector RESULT = null;
		int teleft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-2)).left;
		int teright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-2)).right;
		TypeExpression te = (TypeExpression)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-2)).value;
		int telleft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-1)).left;
		int telright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-1)).right;
		Vector tel = (Vector)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-1)).value;
		
                                Vector tas = new Vector() ;
                                tas.add(te) ;
                                Object [] tes = tel.toArray() ;
                                for ( int i=0;i<tes.length;++i)
                                    tas.add ( tes[i] ) ;
                                RESULT = tas ;
                            
              CUP$TxtCupParser$result = new java_cup.runtime.Symbol(22/*type_args*/, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-3)).left, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, RESULT);
            }
          return CUP$TxtCupParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 35: // qualtype_name ::= UNQUAL_ID DOT UNQUAL_ID 
            {
              Object RESULT = null;
		int modleft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-2)).left;
		int modright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-2)).right;
		String mod = (String)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-2)).value;
		int symbleft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left;
		int symbright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right;
		String symb = (String)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).value;
		 RESULT = mod+"."+symb;
                            
              CUP$TxtCupParser$result = new java_cup.runtime.Symbol(11/*qualtype_name*/, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, RESULT);
            }
          return CUP$TxtCupParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 34: // type_constructorApplication ::= qualtype_name type_args 
            {
              TypeConstructorApplication RESULT = null;
		int idleft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-1)).left;
		int idright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-1)).right;
		Object id = (Object)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-1)).value;
		int targsleft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left;
		int targsright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right;
		Vector targs = (Vector)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).value;
		
                                    Object [] oa = targs.toArray();
                                    TypeExpression [] tea = new TypeExpression[oa.length];
                                    for(int i=0;i<oa.length;++i)
                                        tea[i] = (TypeExpression)oa[i];
                                    RESULT = TypeFactory.makeApplicationType(id.toString(), tea);
                                  
              CUP$TxtCupParser$result = new java_cup.runtime.Symbol(21/*type_constructorApplication*/, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, RESULT);
            }
          return CUP$TxtCupParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 33: // typeExp ::= type_fun 
            {
              TypeExpression RESULT = null;
		int tfleft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left;
		int tfright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right;
		FunctionType tf = (FunctionType)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).value;
		 RESULT = tf; 
              CUP$TxtCupParser$result = new java_cup.runtime.Symbol(24/*typeExp*/, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, RESULT);
            }
          return CUP$TxtCupParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 32: // typeExp ::= type_constructorApplication 
            {
              TypeExpression RESULT = null;
		int tcaleft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left;
		int tcaright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right;
		TypeConstructorApplication tca = (TypeConstructorApplication)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).value;
		 RESULT = tca; 
              CUP$TxtCupParser$result = new java_cup.runtime.Symbol(24/*typeExp*/, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, RESULT);
            }
          return CUP$TxtCupParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 31: // typeExp ::= qualtype_name 
            {
              TypeExpression RESULT = null;
		int idleft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left;
		int idright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right;
		Object id = (Object)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).value;
		 RESULT = TypeFactory.makeSimpleType(id.toString()) ; 
              CUP$TxtCupParser$result = new java_cup.runtime.Symbol(24/*typeExp*/, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, RESULT);
            }
          return CUP$TxtCupParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 30: // typeExp ::= INTEGER 
            {
              TypeExpression RESULT = null;
		int varnumleft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left;
		int varnumright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right;
		Integer varnum = (Integer)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).value;
		 RESULT = TypeFactory.makeTypeVariable(varnum.intValue()); 
              CUP$TxtCupParser$result = new java_cup.runtime.Symbol(24/*typeExp*/, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, RESULT);
            }
          return CUP$TxtCupParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 29: // associativityPrecedence ::= NONASSOC INTEGER 
            {
              Object[] RESULT = null;
		int ileft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left;
		int iright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right;
		Integer i = (Integer)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).value;
		 Object [] ap = {new Integer(code.symbols.DataSymbol.NonAssoc), i}; RESULT = ap; 
              CUP$TxtCupParser$result = new java_cup.runtime.Symbol(20/*associativityPrecedence*/, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, RESULT);
            }
          return CUP$TxtCupParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 28: // associativityPrecedence ::= RIGHT INTEGER 
            {
              Object[] RESULT = null;
		int ileft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left;
		int iright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right;
		Integer i = (Integer)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).value;
		 Object [] ap = {new Integer(code.symbols.DataSymbol.Right), i}; RESULT = ap; 
              CUP$TxtCupParser$result = new java_cup.runtime.Symbol(20/*associativityPrecedence*/, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, RESULT);
            }
          return CUP$TxtCupParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 27: // associativityPrecedence ::= LEFT INTEGER 
            {
              Object[] RESULT = null;
		int ileft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left;
		int iright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right;
		Integer i = (Integer)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).value;
		 Object [] ap = {new Integer(code.symbols.DataSymbol.Left), i}; RESULT = ap; 
              CUP$TxtCupParser$result = new java_cup.runtime.Symbol(20/*associativityPrecedence*/, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, RESULT);
            }
          return CUP$TxtCupParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 26: // associativityPrecedence ::= 
            {
              Object[] RESULT = null;
		 Object [] ap = { new Integer(code.symbols.DataSymbol.NonInfix), new Integer(code.symbols.DataSymbol.NonInfix) }; RESULT = ap; 
              CUP$TxtCupParser$result = new java_cup.runtime.Symbol(20/*associativityPrecedence*/, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, RESULT);
            }
          return CUP$TxtCupParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 25: // kind ::= INTEGER 
            {
              Integer RESULT = null;
		int kleft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left;
		int kright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right;
		Integer k = (Integer)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).value;
		 RESULT = k; 
              CUP$TxtCupParser$result = new java_cup.runtime.Symbol(19/*kind*/, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, RESULT);
            }
          return CUP$TxtCupParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 24: // arity ::= INTEGER 
            {
              Integer RESULT = null;
		int arileft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left;
		int ariright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right;
		Integer ari = (Integer)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).value;
		 RESULT = ari; 
              CUP$TxtCupParser$result = new java_cup.runtime.Symbol(18/*arity*/, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, RESULT);
            }
          return CUP$TxtCupParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 23: // staticNestingDepth ::= INTEGER 
            {
              Integer RESULT = null;
		int depthleft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left;
		int depthright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right;
		Integer depth = (Integer)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).value;
		 RESULT = depth; 
              CUP$TxtCupParser$result = new java_cup.runtime.Symbol(17/*staticNestingDepth*/, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, RESULT);
            }
          return CUP$TxtCupParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 22: // operation_symbol_name ::= UNQUAL_ID 
            {
              String RESULT = null;
		int idleft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left;
		int idright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right;
		String id = (String)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).value;
		 RESULT = id; 
              CUP$TxtCupParser$result = new java_cup.runtime.Symbol(13/*operation_symbol_name*/, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, RESULT);
            }
          return CUP$TxtCupParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 21: // constructor_symbol_name ::= UNQUAL_ID 
            {
              String RESULT = null;
		int idleft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left;
		int idright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right;
		String id = (String)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).value;
		 RESULT = id; 
              CUP$TxtCupParser$result = new java_cup.runtime.Symbol(12/*constructor_symbol_name*/, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, RESULT);
            }
          return CUP$TxtCupParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 20: // operation ::= OPERATION operation_symbol_name staticNestingDepth arity associativityPrecedence visibility COLONCOLON typeExp codeBlock 
            {
              OperationSymbol RESULT = null;
		int osnleft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-7)).left;
		int osnright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-7)).right;
		String osn = (String)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-7)).value;
		int depthleft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-6)).left;
		int depthright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-6)).right;
		Integer depth = (Integer)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-6)).value;
		int arileft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-5)).left;
		int ariright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-5)).right;
		Integer ari = (Integer)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-5)).value;
		int apleft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-4)).left;
		int apright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-4)).right;
		Object[] ap = (Object[])((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-4)).value;
		int vleft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-3)).left;
		int vright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-3)).right;
		Integer v = (Integer)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-3)).value;
		int teleft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-1)).left;
		int teright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-1)).right;
		TypeExpression te = (TypeExpression)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-1)).value;
		int cleft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left;
		int cright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right;
		Vector c = (Vector)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).value;
		
        	                    Object [] oa = c.toArray();
	                            Instruction [] ia = new Instruction[oa.length];
                                for(int i=0;i<oa.length;++i)
                                    ia[i] = (Instruction)oa[i];
                                RESULT = new OperationSymbol(name,osn, depth.intValue(), ari.intValue(), ((Integer)ap[0]).intValue(), ((Integer)ap[1]).intValue(), v.intValue(), te, ia);
                            
              CUP$TxtCupParser$result = new java_cup.runtime.Symbol(16/*operation*/, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-8)).left, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, RESULT);
            }
          return CUP$TxtCupParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 19: // constructor ::= CONSTRUCTOR constructor_symbol_name staticNestingDepth arity kind associativityPrecedence visibility COLONCOLON typeExp 
            {
              ConstructorSymbol RESULT = null;
		int csnleft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-7)).left;
		int csnright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-7)).right;
		String csn = (String)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-7)).value;
		int depthleft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-6)).left;
		int depthright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-6)).right;
		Integer depth = (Integer)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-6)).value;
		int arileft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-5)).left;
		int ariright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-5)).right;
		Integer ari = (Integer)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-5)).value;
		int kleft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-4)).left;
		int kright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-4)).right;
		Integer k = (Integer)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-4)).value;
		int apleft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-3)).left;
		int apright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-3)).right;
		Object[] ap = (Object[])((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-3)).value;
		int vleft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-2)).left;
		int vright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-2)).right;
		Integer v = (Integer)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-2)).value;
		int teleft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left;
		int teright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right;
		TypeExpression te = (TypeExpression)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).value;
		
                              RESULT = new ConstructorSymbol(name,csn, depth.intValue(), ari.intValue(), k.intValue(), ((Integer)ap[0]).intValue(), ((Integer)ap[1]).intValue(), v.intValue(), te);
                            
              CUP$TxtCupParser$result = new java_cup.runtime.Symbol(15/*constructor*/, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-8)).left, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, RESULT);
            }
          return CUP$TxtCupParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 18: // visibility ::= PRIVATE 
            {
              Integer RESULT = null;
		 RESULT = new Integer(code.symbols.Symbol.Private); 
              CUP$TxtCupParser$result = new java_cup.runtime.Symbol(14/*visibility*/, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, RESULT);
            }
          return CUP$TxtCupParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 17: // visibility ::= PUBLIC 
            {
              Integer RESULT = null;
		 RESULT = new Integer(code.symbols.Symbol.Public); 
              CUP$TxtCupParser$result = new java_cup.runtime.Symbol(14/*visibility*/, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, RESULT);
            }
          return CUP$TxtCupParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 16: // visibility ::= 
            {
              Integer RESULT = null;
		 RESULT = new Integer(code.symbols.Symbol.DefaultVisibility); 
              CUP$TxtCupParser$result = new java_cup.runtime.Symbol(14/*visibility*/, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, RESULT);
            }
          return CUP$TxtCupParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 15: // type ::= TYPE UNQUAL_ID INTEGER visibility 
            {
              TypeSymbol RESULT = null;
		int tsnleft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-2)).left;
		int tsnright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-2)).right;
		String tsn = (String)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-2)).value;
		int type_arityleft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-1)).left;
		int type_arityright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-1)).right;
		Integer type_arity = (Integer)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-1)).value;
		int vleft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left;
		int vright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right;
		Integer v = (Integer)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).value;
		
                              RESULT = new TypeSymbol(name,tsn,type_arity.intValue(),v.intValue());
                            
              CUP$TxtCupParser$result = new java_cup.runtime.Symbol(10/*type*/, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-3)).left, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, RESULT);
            }
          return CUP$TxtCupParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 14: // symbol ::= operation 
            {
              code.symbols.Symbol RESULT = null;
		int oleft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left;
		int oright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right;
		OperationSymbol o = (OperationSymbol)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).value;
		 RESULT = o; 
              CUP$TxtCupParser$result = new java_cup.runtime.Symbol(9/*symbol*/, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, RESULT);
            }
          return CUP$TxtCupParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 13: // symbol ::= constructor 
            {
              code.symbols.Symbol RESULT = null;
		int cleft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left;
		int cright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right;
		ConstructorSymbol c = (ConstructorSymbol)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).value;
		 RESULT = c; 
              CUP$TxtCupParser$result = new java_cup.runtime.Symbol(9/*symbol*/, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, RESULT);
            }
          return CUP$TxtCupParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 12: // symbol ::= type 
            {
              code.symbols.Symbol RESULT = null;
		int tleft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left;
		int tright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right;
		TypeSymbol t = (TypeSymbol)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).value;
		 RESULT = t; 
              CUP$TxtCupParser$result = new java_cup.runtime.Symbol(9/*symbol*/, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, RESULT);
            }
          return CUP$TxtCupParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 11: // imported ::= IMPORT UNQUAL_ID 
            {
              String RESULT = null;
		int module_nameleft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left;
		int module_nameright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right;
		String module_name = (String)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).value;
		 RESULT = module_name; 
              CUP$TxtCupParser$result = new java_cup.runtime.Symbol(8/*imported*/, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, RESULT);
            }
          return CUP$TxtCupParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 10: // imported_or_symbol ::= symbol 
            {
              Object RESULT = null;
		int sleft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left;
		int sright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right;
		code.symbols.Symbol s = (code.symbols.Symbol)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).value;
		 symbolv.add(s); 
              CUP$TxtCupParser$result = new java_cup.runtime.Symbol(7/*imported_or_symbol*/, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, RESULT);
            }
          return CUP$TxtCupParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 9: // imported_or_symbol ::= imported 
            {
              Object RESULT = null;
		int ileft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left;
		int iright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right;
		String i = (String)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).value;
		 importedv.add(i); 
              CUP$TxtCupParser$result = new java_cup.runtime.Symbol(7/*imported_or_symbol*/, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, RESULT);
            }
          return CUP$TxtCupParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 8: // imported_symbol ::= imported_or_symbol 
            {
              Vector[] RESULT = null;

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

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 7: // imported_symbol ::= imported_symbol imported_or_symbol 
            {
              Vector[] RESULT = null;

              CUP$TxtCupParser$result = new java_cup.runtime.Symbol(6/*imported_symbol*/, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, RESULT);
            }
          return CUP$TxtCupParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 6: // timestamp ::= TIME INTEGER 
            {
              Object RESULT = null;
		int tsleft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left;
		int tsright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right;
		Integer ts = (Integer)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).value;
		 timestamp = ts; a[5] = timestamp; 
              CUP$TxtCupParser$result = new java_cup.runtime.Symbol(5/*timestamp*/, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, RESULT);
            }
          return CUP$TxtCupParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 5: // bool ::= FALSE 
            {
              Object RESULT = null;
		 compiled = new Boolean(false); a[2] = compiled ;  
              CUP$TxtCupParser$result = new java_cup.runtime.Symbol(4/*bool*/, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, RESULT);
            }
          return CUP$TxtCupParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 4: // bool ::= TRUE 
            {
              Object RESULT = null;
		 compiled = new Boolean(true); a[2] = compiled ; 
              CUP$TxtCupParser$result = new java_cup.runtime.Symbol(4/*bool*/, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, RESULT);
            }
          return CUP$TxtCupParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 3: // compiled ::= COMPILED bool 
            {
              Object RESULT = null;

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

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 2: // name ::= NAME UNQUAL_ID 
            {
              Object RESULT = null;
		int module_nameleft = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).left;
		int module_nameright = ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right;
		String module_name = (String)((java_cup.runtime.Symbol) CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).value;
		 name = module_name ; a[4] = module_name; 
              CUP$TxtCupParser$result = new java_cup.runtime.Symbol(2/*name*/, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, RESULT);
            }
          return CUP$TxtCupParser$result;

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

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 0: // module ::= name compiled timestamp imported_symbol 
            {
              Object RESULT = null;
		 RESULT = a; 
              CUP$TxtCupParser$result = new java_cup.runtime.Symbol(1/*module*/, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-3)).left, ((java_cup.runtime.Symbol)CUP$TxtCupParser$stack.elementAt(CUP$TxtCupParser$top-0)).right, RESULT);
            }
          return CUP$TxtCupParser$result;

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

        }
    }
}

