
//----------------------------------------------------
// The following code was generated by CUP v0.10k
// Thu Jan 05 19:36:41 CET 2012
//----------------------------------------------------

package jasmin;

import java_cup.runtime.*;
import java_cup.*;
import jas.*;
import java.io.*;
import java.util.Hashtable;

/** CUP v0.10k generated parser.
  * @version Thu Jan 05 19:36:41 CET 2012
  */
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\277\000\002\030\017\000\002\002\004\000\002\046" +
    "\005\000\002\046\002\000\002\014\006\000\002\014\006" +
    "\000\002\003\003\000\002\133\002\000\002\132\004\000" +
    "\002\012\003\000\002\012\002\000\002\011\004\000\002" +
    "\011\003\000\002\010\003\000\002\010\003\000\002\010" +
    "\003\000\002\010\003\000\002\010\003\000\002\010\003" +
    "\000\002\010\003\000\002\010\003\000\002\010\003\000" +
    "\002\010\003\000\002\010\003\000\002\010\003\000\002" +
    "\010\003\000\002\010\003\000\002\052\005\000\002\052" +
    "\004\000\002\025\003\000\002\025\002\000\002\026\004" +
    "\000\002\026\003\000\002\027\005\000\002\111\003\000" +
    "\002\112\003\000\002\121\003\000\002\121\004\000\002" +
    "\023\003\000\002\023\002\000\002\021\004\000\002\021" +
    "\003\000\002\074\004\000\002\074\003\000\002\022\013" +
    "\000\002\022\014\000\002\022\014\000\002\022\015\000" +
    "\002\004\004\000\002\004\002\000\002\005\003\000\002" +
    "\005\003\000\002\005\003\000\002\043\003\000\002\043" +
    "\002\000\002\041\004\000\002\041\003\000\002\070\004" +
    "\000\002\070\003\000\002\042\005\000\002\042\004\000" +
    "\002\016\006\000\002\020\005\000\002\050\004\000\002" +
    "\050\003\000\002\134\002\000\002\047\005\000\002\051" +
    "\003\000\002\051\003\000\002\051\003\000\002\051\003" +
    "\000\002\051\002\000\002\031\004\000\002\017\004\000" +
    "\002\017\004\000\002\017\004\000\002\017\004\000\002" +
    "\017\004\000\002\017\004\000\002\017\004\000\002\017" +
    "\003\000\002\017\003\000\002\017\003\000\002\017\003" +
    "\000\002\017\003\000\002\017\003\000\002\106\003\000" +
    "\002\107\003\000\002\110\004\000\002\120\007\000\002" +
    "\124\010\000\002\125\004\000\002\125\003\000\002\123" +
    "\006\000\002\064\004\000\002\063\012\000\002\063\006" +
    "\000\002\032\004\000\002\055\003\000\002\062\003\000" +
    "\002\013\011\000\002\044\004\000\002\044\004\000\002" +
    "\044\004\000\002\044\004\000\002\024\003\000\002\024" +
    "\003\000\002\045\003\000\002\045\005\000\002\045\004" +
    "\000\002\045\004\000\002\045\004\000\002\045\005\000" +
    "\002\045\005\000\002\045\006\000\002\045\004\000\002" +
    "\015\004\000\002\015\004\000\002\033\005\000\002\034" +
    "\003\000\002\037\002\000\002\037\003\000\002\040\004" +
    "\000\002\040\003\000\002\036\006\000\002\035\005\000" +
    "\002\053\005\000\002\054\004\000\002\054\005\000\002" +
    "\060\002\000\002\060\003\000\002\061\004\000\002\061" +
    "\003\000\002\057\004\000\002\056\005\000\002\065\003" +
    "\000\002\065\002\000\002\066\004\000\002\066\003\000" +
    "\002\067\006\000\002\071\003\000\002\072\004\000\002" +
    "\072\003\000\002\073\006\000\002\075\003\000\002\076" +
    "\004\000\002\076\003\000\002\077\006\000\002\100\006" +
    "\000\002\100\002\000\002\101\004\000\002\101\003\000" +
    "\002\102\012\000\002\103\005\000\002\104\004\000\002" +
    "\104\002\000\002\105\007\000\002\105\002\000\002\006" +
    "\004\000\002\006\002\000\002\007\005\000\002\007\002" +
    "\000\002\113\003\000\002\113\003\000\002\126\003\000" +
    "\002\126\003\000\002\127\003\000\002\127\002\000\002" +
    "\114\010\000\002\130\003\000\002\130\002\000\002\115" +
    "\004\000\002\115\003\000\002\116\011\000\002\131\003" +
    "\000\002\131\002\000\002\117\004\000\002\117\003\000" +
    "\002\122\007\000\002\122\007\000\002\122\007\000\002" +
    "\122\007\000\002\122\007\000\002\122\007\000\002\122" +
    "\007\000\002\122\007\000\002\122\007\000\002\122\010" +
    "\000\002\122\007\000\002\122\012\000\002\122\012" });

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

  /** Parse-action table. */
  protected static final short[][] _action_table = 
    unpackFromStrings(new String[] {
    "\000\u0169\000\010\005\ufffe\016\004\022\ufffe\001\002\000" +
    "\004\117\u016a\001\002\000\006\005\011\022\010\001\002" +
    "\000\004\002\007\001\002\000\004\002\000\001\002\000" +
    "\040\072\ufffa\073\ufffa\074\ufffa\075\ufffa\076\ufffa\077\ufffa" +
    "\100\ufffa\101\ufffa\102\ufffa\103\ufffa\104\ufffa\105\ufffa\106" +
    "\ufffa\107\ufffa\117\ufffa\001\002\000\040\072\ufffa\073\ufffa" +
    "\074\ufffa\075\ufffa\076\ufffa\077\ufffa\100\ufffa\101\ufffa\102" +
    "\ufffa\103\ufffa\104\ufffa\105\ufffa\106\ufffa\107\ufffa\117\ufffa" +
    "\001\002\000\006\014\015\015\014\001\002\000\032\002" +
    "\uffe3\007\uffe3\012\uffe3\021\023\024\uffe3\027\uffe3\031\uffe3" +
    "\032\uffe3\033\uffe3\034\uffe3\035\uffe3\036\uffe3\001\002\000" +
    "\004\114\021\001\002\000\004\117\016\001\002\000\006" +
    "\070\ufffb\114\ufffb\001\002\000\004\114\020\001\002\000" +
    "\032\002\uffe6\007\uffe6\012\uffe6\021\uffe6\024\uffe6\027\uffe6" +
    "\031\uffe6\032\uffe6\033\uffe6\034\uffe6\035\uffe6\036\uffe6\001" +
    "\002\000\032\002\uffe5\007\uffe5\012\uffe5\021\uffe5\024\uffe5" +
    "\027\uffe5\031\uffe5\032\uffe5\033\uffe5\034\uffe5\035\uffe5\036" +
    "\uffe5\001\002\000\032\002\uffe1\007\uffe1\012\uffe1\021\uffe1" +
    "\024\uffe1\027\uffe1\031\uffe1\032\uffe1\033\uffe1\034\uffe1\035" +
    "\uffe1\036\uffe1\001\002\000\004\117\016\001\002\000\032" +
    "\002\uffe4\007\uffe4\012\uffe4\021\023\024\uffe4\027\uffe4\031" +
    "\uffe4\032\uffe4\033\uffe4\034\uffe4\035\uffe4\036\uffe4\001\002" +
    "\000\030\002\uff79\007\uff79\012\uff79\024\031\027\uff79\031" +
    "\uff79\032\uff79\033\uff79\034\uff79\035\uff79\036\uff79\001\002" +
    "\000\026\002\uff66\007\uff66\012\uff66\027\uff66\031\036\032" +
    "\uff66\033\uff66\034\uff66\035\uff66\036\uff66\001\002\000\030" +
    "\002\uff7a\007\uff7a\012\uff7a\024\031\027\uff7a\031\uff7a\032" +
    "\uff7a\033\uff7a\034\uff7a\035\uff7a\036\uff7a\001\002\000\030" +
    "\002\uff77\007\uff77\012\uff77\024\uff77\027\uff77\031\uff77\032" +
    "\uff77\033\uff77\034\uff77\035\uff77\036\uff77\001\002\000\004" +
    "\117\032\001\002\000\004\116\033\001\002\000\004\114" +
    "\034\001\002\000\030\002\uff76\007\uff76\012\uff76\024\uff76" +
    "\027\uff76\031\uff76\032\uff76\033\uff76\034\uff76\035\uff76\036" +
    "\uff76\001\002\000\030\002\uff78\007\uff78\012\uff78\024\uff78" +
    "\027\uff78\031\uff78\032\uff78\033\uff78\034\uff78\035\uff78\036" +
    "\uff78\001\002\000\004\114\u0160\001\002\000\024\002\uff6c" +
    "\007\uff6c\012\uff6c\027\040\032\uff6c\033\uff6c\034\uff6c\035" +
    "\uff6c\036\uff6c\001\002\000\004\114\u0150\001\002\000\022" +
    "\002\uff64\007\uff64\012\uff64\032\043\033\uff64\034\uff64\035" +
    "\uff64\036\uff64\001\002\000\020\002\uff62\007\uff62\012\uff62" +
    "\033\051\034\uff62\035\uff62\036\uff62\001\002\000\004\116" +
    "\044\001\002\000\004\116\045\001\002\000\004\116\046" +
    "\001\002\000\004\114\047\001\002\000\020\002\uff65\007" +
    "\uff65\012\uff65\033\uff65\034\uff65\035\uff65\036\uff65\001\002" +
    "\000\016\002\uffdf\007\uffdf\012\uffdf\034\uffdf\035\uffdf\036" +
    "\uffdf\001\002\000\004\114\u014f\001\002\000\016\002\uff60" +
    "\007\uff60\012\uff60\034\055\035\uff60\036\uff60\001\002\000" +
    "\014\002\uffde\007\uffde\012\uffde\035\uffde\036\uffde\001\002" +
    "\000\014\002\uff5a\007\uff5a\012\uff5a\035\062\036\065\001" +
    "\002\000\004\116\056\001\002\000\004\114\057\001\002" +
    "\000\016\002\uff61\007\uff61\012\uff61\025\uff61\035\uff61\036" +
    "\uff61\001\002\000\004\114\u0149\001\002\000\010\002\uffdd" +
    "\007\uffdd\012\uffdd\001\002\000\004\114\uff5f\001\002\000" +
    "\014\002\uff5b\007\uff5b\012\uff5b\035\062\036\065\001\002" +
    "\000\010\002\uffda\007\070\012\uffda\001\002\000\004\114" +
    "\uff5e\001\002\000\006\002\uffcb\012\156\001\002\000\012" +
    "\002\uffd6\007\uffd6\012\uffd6\025\147\001\002\000\040\072" +
    "\ufffa\073\ufffa\074\ufffa\075\ufffa\076\ufffa\077\ufffa\100\ufffa" +
    "\101\ufffa\102\ufffa\103\ufffa\104\ufffa\105\ufffa\106\ufffa\107" +
    "\ufffa\116\ufffa\001\002\000\010\002\uffd8\007\uffd8\012\uffd8" +
    "\001\002\000\010\002\uffdb\007\070\012\uffdb\001\002\000" +
    "\010\002\uffd9\007\uffd9\012\uffd9\001\002\000\004\116\120" +
    "\001\002\000\044\006\ufff7\072\077\073\114\074\111\075" +
    "\103\076\112\077\104\100\101\101\100\102\113\103\110" +
    "\104\107\105\105\106\106\107\076\116\ufff7\117\ufff7\001" +
    "\002\000\044\006\uffe7\072\uffe7\073\uffe7\074\uffe7\075\uffe7" +
    "\076\uffe7\077\uffe7\100\uffe7\101\uffe7\102\uffe7\103\uffe7\104" +
    "\uffe7\105\uffe7\106\uffe7\107\uffe7\116\uffe7\117\uffe7\001\002" +
    "\000\044\006\uffea\072\uffea\073\uffea\074\uffea\075\uffea\076" +
    "\uffea\077\uffea\100\uffea\101\uffea\102\uffea\103\uffea\104\uffea" +
    "\105\uffea\106\uffea\107\uffea\116\uffea\117\uffea\001\002\000" +
    "\044\006\ufff1\072\ufff1\073\ufff1\074\ufff1\075\ufff1\076\ufff1" +
    "\077\ufff1\100\ufff1\101\ufff1\102\ufff1\103\ufff1\104\ufff1\105" +
    "\ufff1\106\ufff1\107\ufff1\116\ufff1\117\ufff1\001\002\000\044" +
    "\006\ufff4\072\ufff4\073\ufff4\074\ufff4\075\ufff4\076\ufff4\077" +
    "\ufff4\100\ufff4\101\ufff4\102\ufff4\103\ufff4\104\ufff4\105\ufff4" +
    "\106\ufff4\107\ufff4\116\ufff4\117\ufff4\001\002\000\044\006" +
    "\ufff5\072\ufff5\073\ufff5\074\ufff5\075\ufff5\076\ufff5\077\ufff5" +
    "\100\ufff5\101\ufff5\102\ufff5\103\ufff5\104\ufff5\105\ufff5\106" +
    "\ufff5\107\ufff5\116\ufff5\117\ufff5\001\002\000\044\006\uffec" +
    "\072\uffec\073\uffec\074\uffec\075\uffec\076\uffec\077\uffec\100" +
    "\uffec\101\uffec\102\uffec\103\uffec\104\uffec\105\uffec\106\uffec" +
    "\107\uffec\116\uffec\117\uffec\001\002\000\044\006\ufff2\072" +
    "\ufff2\073\ufff2\074\ufff2\075\ufff2\076\ufff2\077\ufff2\100\ufff2" +
    "\101\ufff2\102\ufff2\103\ufff2\104\ufff2\105\ufff2\106\ufff2\107" +
    "\ufff2\116\ufff2\117\ufff2\001\002\000\044\006\uffe9\072\uffe9" +
    "\073\uffe9\074\uffe9\075\uffe9\076\uffe9\077\uffe9\100\uffe9\101" +
    "\uffe9\102\uffe9\103\uffe9\104\uffe9\105\uffe9\106\uffe9\107\uffe9" +
    "\116\uffe9\117\uffe9\001\002\000\044\006\uffe8\072\uffe8\073" +
    "\uffe8\074\uffe8\075\uffe8\076\uffe8\077\uffe8\100\uffe8\101\uffe8" +
    "\102\uffe8\103\uffe8\104\uffe8\105\uffe8\106\uffe8\107\uffe8\116" +
    "\uffe8\117\uffe8\001\002\000\044\006\uffee\072\uffee\073\uffee" +
    "\074\uffee\075\uffee\076\uffee\077\uffee\100\uffee\101\uffee\102" +
    "\uffee\103\uffee\104\uffee\105\uffee\106\uffee\107\uffee\116\uffee" +
    "\117\uffee\001\002\000\044\006\uffed\072\uffed\073\uffed\074" +
    "\uffed\075\uffed\076\uffed\077\uffed\100\uffed\101\uffed\102\uffed" +
    "\103\uffed\104\uffed\105\uffed\106\uffed\107\uffed\116\uffed\117" +
    "\uffed\001\002\000\044\006\uffeb\072\uffeb\073\uffeb\074\uffeb" +
    "\075\uffeb\076\uffeb\077\uffeb\100\uffeb\101\uffeb\102\uffeb\103" +
    "\uffeb\104\uffeb\105\uffeb\106\uffeb\107\uffeb\116\uffeb\117\uffeb" +
    "\001\002\000\044\006\ufff3\072\ufff3\073\ufff3\074\ufff3\075" +
    "\ufff3\076\ufff3\077\ufff3\100\ufff3\101\ufff3\102\ufff3\103\ufff3" +
    "\104\ufff3\105\ufff3\106\ufff3\107\ufff3\116\ufff3\117\ufff3\001" +
    "\002\000\044\006\uffef\072\uffef\073\uffef\074\uffef\075\uffef" +
    "\076\uffef\077\uffef\100\uffef\101\uffef\102\uffef\103\uffef\104" +
    "\uffef\105\uffef\106\uffef\107\uffef\116\uffef\117\uffef\001\002" +
    "\000\044\006\ufff0\072\ufff0\073\ufff0\074\ufff0\075\ufff0\076" +
    "\ufff0\077\ufff0\100\ufff0\101\ufff0\102\ufff0\103\ufff0\104\ufff0" +
    "\105\ufff0\106\ufff0\107\ufff0\116\ufff0\117\ufff0\001\002\000" +
    "\044\006\ufff8\072\077\073\114\074\111\075\103\076\112" +
    "\077\104\100\101\101\100\102\113\103\110\104\107\105" +
    "\105\106\106\107\076\116\ufff8\117\ufff8\001\002\000\010" +
    "\006\ufff9\116\ufff9\117\ufff9\001\002\000\044\006\ufff6\072" +
    "\ufff6\073\ufff6\074\ufff6\075\ufff6\076\ufff6\077\ufff6\100\ufff6" +
    "\101\ufff6\102\ufff6\103\ufff6\104\ufff6\105\ufff6\106\ufff6\107" +
    "\ufff6\116\ufff6\117\ufff6\001\002\000\004\117\121\001\002" +
    "\000\010\031\uffd0\113\122\114\uffd0\001\002\000\010\116" +
    "\141\121\143\122\144\001\002\000\006\031\125\114\124" +
    "\001\002\000\022\002\uff62\007\uff62\012\uff62\025\uff62\033" +
    "\051\034\uff62\035\uff62\036\uff62\001\002\000\004\114\126" +
    "\001\002\000\022\002\uff62\007\uff62\012\uff62\025\uff62\033" +
    "\051\034\uff62\035\uff62\036\uff62\001\002\000\020\002\uff60" +
    "\007\uff60\012\uff60\025\uff60\034\055\035\uff60\036\uff60\001" +
    "\002\000\016\002\uff5a\007\uff5a\012\uff5a\025\uff5a\035\062" +
    "\036\065\001\002\000\012\002\uffd4\007\uffd4\012\uffd4\025" +
    "\uffd4\001\002\000\016\002\uff5b\007\uff5b\012\uff5b\025\uff5b" +
    "\035\062\036\065\001\002\000\012\002\uffd2\007\uffd2\012" +
    "\uffd2\025\uffd2\001\002\000\020\002\uff60\007\uff60\012\uff60" +
    "\025\uff60\034\055\035\uff60\036\uff60\001\002\000\016\002" +
    "\uff5a\007\uff5a\012\uff5a\025\uff5a\035\062\036\065\001\002" +
    "\000\012\002\uffd5\007\uffd5\012\uffd5\025\uffd5\001\002\000" +
    "\016\002\uff5b\007\uff5b\012\uff5b\025\uff5b\035\062\036\065" +
    "\001\002\000\012\002\uffd3\007\uffd3\012\uffd3\025\uffd3\001" +
    "\002\000\006\031\uffcd\114\uffcd\001\002\000\006\031\uffd1" +
    "\114\uffd1\001\002\000\006\031\uffcf\114\uffcf\001\002\000" +
    "\006\031\uffce\114\uffce\001\002\000\010\002\uffd7\007\uffd7" +
    "\012\uffd7\001\002\000\012\002\uff6f\007\uff6f\012\uff6f\025" +
    "\uff6f\001\002\000\004\117\152\001\002\000\012\002\uff71" +
    "\007\uff71\012\uff71\025\147\001\002\000\012\002\uff70\007" +
    "\uff70\012\uff70\025\uff70\001\002\000\004\116\153\001\002" +
    "\000\004\114\154\001\002\000\012\002\uff6e\007\uff6e\012" +
    "\uff6e\025\uff6e\001\002\000\004\002\001\001\002\000\040" +
    "\072\ufffa\073\ufffa\074\ufffa\075\ufffa\076\ufffa\077\ufffa\100" +
    "\ufffa\101\ufffa\102\ufffa\103\ufffa\104\ufffa\105\ufffa\106\ufffa" +
    "\107\ufffa\117\ufffa\001\002\000\010\002\uffc7\012\uffc7\026" +
    "\u013f\001\002\000\054\003\uffc0\004\uffc0\006\166\010\uffc0" +
    "\011\uffc0\013\uffc0\017\uffc0\020\uffc0\023\uffc0\031\uffc0\033" +
    "\uffc0\034\uffc0\035\uffc0\036\uffc0\063\uffc0\064\uffc0\110\uffc0" +
    "\111\uffc0\114\uffc0\117\uffc0\120\uffc0\001\002\000\006\002" +
    "\uffc9\012\uffc9\001\002\000\006\002\uffcc\012\156\001\002" +
    "\000\006\002\uffca\012\uffca\001\002\000\052\003\216\004" +
    "\203\010\201\011\220\013\221\017\231\020\177\023\207" +
    "\031\227\033\225\034\200\035\062\036\065\063\232\064" +
    "\224\110\215\111\212\114\uffba\117\175\120\211\001\002" +
    "\000\054\003\uffc0\004\uffc0\006\166\010\uffc0\011\uffc0\013" +
    "\uffc0\017\uffc0\020\uffc0\023\uffc0\031\uffc0\033\uffc0\034\uffc0" +
    "\035\uffc0\036\uffc0\063\uffc0\064\uffc0\110\uffc0\111\uffc0\114" +
    "\uffc0\117\uffc0\120\uffc0\001\002\000\004\071\171\001\002" +
    "\000\054\003\uffc1\004\uffc1\006\uffc1\010\uffc1\011\uffc1\013" +
    "\uffc1\017\uffc1\020\uffc1\023\uffc1\031\uffc1\033\uffc1\034\uffc1" +
    "\035\uffc1\036\uffc1\063\uffc1\064\uffc1\110\uffc1\111\uffc1\114" +
    "\uffc1\117\uffc1\120\uffc1\001\002\000\010\002\uffc5\012\uffc5" +
    "\026\uffc5\001\002\000\004\114\172\001\002\000\010\002" +
    "\uffc3\012\uffc3\026\uffc3\001\002\000\054\003\uffc2\004\uffc2" +
    "\006\uffc2\010\uffc2\011\uffc2\013\uffc2\017\uffc2\020\uffc2\023" +
    "\uffc2\031\uffc2\033\uffc2\034\uffc2\035\uffc2\036\uffc2\063\uffc2" +
    "\064\uffc2\110\uffc2\111\uffc2\114\uffc2\117\uffc2\120\uffc2\001" +
    "\002\000\010\002\uffc6\012\uffc6\026\uffc6\001\002\000\004" +
    "\115\u013c\001\002\000\004\114\uffac\001\002\000\004\121" +
    "\u0134\001\002\000\004\116\u0132\001\002\000\004\117\u0130" +
    "\001\002\000\004\114\uffbb\001\002\000\004\117\016\001" +
    "\002\000\004\114\u0121\001\002\000\004\114\uffbd\001\002" +
    "\000\004\114\u0120\001\002\000\004\117\u011d\001\002\000" +
    "\004\114\uffad\001\002\000\014\114\uff96\116\u0115\117\u0114" +
    "\121\u0116\122\u0117\001\002\000\004\121\u0106\001\002\000" +
    "\004\114\uffae\001\002\000\004\114\uffb1\001\002\000\004" +
    "\114\365\001\002\000\004\114\uffbc\001\002\000\004\114" +
    "\uffaf\001\002\000\004\121\364\001\002\000\004\117\356" +
    "\001\002\000\004\114\uffbe\001\002\000\004\114\uff98\001" +
    "\002\000\006\035\062\036\065\001\002\000\004\114\uffaa" +
    "\001\002\000\004\114\uff97\001\002\000\004\114\uffab\001" +
    "\002\000\004\114\uffb0\001\002\000\004\117\016\001\002" +
    "\000\004\062\233\001\002\000\034\043\253\044\240\045" +
    "\244\046\237\047\246\050\250\051\242\052\241\053\251" +
    "\054\247\055\245\056\243\057\252\001\002\000\004\006" +
    "\235\001\002\000\004\063\236\001\002\000\004\114\uffa4" +
    "\001\002\000\004\116\341\001\002\000\004\116\336\001" +
    "\002\000\004\116\333\001\002\000\004\116\330\001\002" +
    "\000\004\116\325\001\002\000\004\116\322\001\002\000" +
    "\004\116\316\001\002\000\004\116\313\001\002\000\004" +
    "\116\276\001\002\000\004\116\273\001\002\000\004\116" +
    "\262\001\002\000\004\116\257\001\002\000\004\116\254" +
    "\001\002\000\004\121\255\001\002\000\004\114\256\001" +
    "\002\000\006\006\uff4f\062\uff4f\001\002\000\004\116\260" +
    "\001\002\000\004\114\261\001\002\000\006\006\uff47\062" +
    "\uff47\001\002\000\004\114\263\001\002\000\006\006\uff52" +
    "\062\233\001\002\000\004\006\270\001\002\000\006\006" +
    "\uff53\062\233\001\002\000\006\006\uff50\062\uff50\001\002" +
    "\000\006\006\uff51\062\uff51\001\002\000\004\060\271\001" +
    "\002\000\004\114\272\001\002\000\006\006\uff44\062\uff44" +
    "\001\002\000\010\116\141\121\143\122\144\001\002\000" +
    "\004\114\275\001\002\000\006\006\uff4a\062\uff4a\001\002" +
    "\000\004\114\277\001\002\000\004\042\301\001\002\000" +
    "\004\006\310\001\002\000\004\116\302\001\002\000\004" +
    "\114\303\001\002\000\006\006\uff52\062\233\001\002\000" +
    "\004\006\305\001\002\000\004\042\306\001\002\000\004" +
    "\114\307\001\002\000\006\006\uff54\042\uff54\001\002\000" +
    "\004\061\311\001\002\000\004\114\312\001\002\000\006" +
    "\006\uff43\062\uff43\001\002\000\004\121\314\001\002\000" +
    "\004\114\315\001\002\000\006\006\uff4b\062\uff4b\001\002" +
    "\000\004\116\317\001\002\000\004\116\320\001\002\000" +
    "\004\114\321\001\002\000\006\006\uff46\062\uff46\001\002" +
    "\000\004\121\323\001\002\000\004\114\324\001\002\000" +
    "\006\006\uff4c\062\uff4c\001\002\000\004\116\326\001\002" +
    "\000\004\114\327\001\002\000\006\006\uff45\062\uff45\001" +
    "\002\000\010\116\141\121\143\122\144\001\002\000\004" +
    "\114\332\001\002\000\006\006\uff48\062\uff48\001\002\000" +
    "\010\116\141\121\143\122\144\001\002\000\004\114\335" +
    "\001\002\000\006\006\uff49\062\uff49\001\002\000\004\121" +
    "\337\001\002\000\004\114\340\001\002\000\006\006\uff4d" +
    "\062\uff4d\001\002\000\004\121\342\001\002\000\004\114" +
    "\343\001\002\000\006\006\uff4e\062\uff4e\001\002\000\004" +
    "\114\uff9e\001\002\000\004\114\uffb5\001\002\000\004\114" +
    "\347\001\002\000\006\035\062\036\065\001\002\000\010" +
    "\006\uffa5\035\uffa5\036\uffa5\001\002\000\010\006\352\035" +
    "\062\036\065\001\002\000\004\064\354\001\002\000\010" +
    "\006\uffa6\035\uffa6\036\uffa6\001\002\000\004\114\uffa7\001" +
    "\002\000\004\114\uffb3\001\002\000\012\116\360\117\357" +
    "\121\361\122\362\001\002\000\004\114\uff9b\001\002\000" +
    "\004\114\uff99\001\002\000\004\114\uff9c\001\002\000\004" +
    "\114\uff9a\001\002\000\004\114\uffb6\001\002\000\004\114" +
    "\uff9f\001\002\000\006\112\uff8a\121\uff8a\001\002\000\006" +
    "\112\uff89\121\372\001\002\000\004\114\uff8d\001\002\000" +
    "\004\112\u0101\001\002\000\006\112\uff86\121\uff86\001\002" +
    "\000\004\115\375\001\002\000\006\112\uff88\121\372\001" +
    "\002\000\006\112\uff87\121\uff87\001\002\000\004\117\376" +
    "\001\002\000\004\114\377\001\002\000\006\112\uff85\121" +
    "\uff85\001\002\000\004\114\uff8b\001\002\000\004\115\u0102" +
    "\001\002\000\004\117\u0103\001\002\000\004\114\uff84\001" +
    "\002\000\006\112\uff80\117\u010b\001\002\000\004\114\uff8c" +
    "\001\002\000\006\114\u0107\121\u0108\001\002\000\006\112" +
    "\uff82\117\uff82\001\002\000\004\114\u0109\001\002\000\006" +
    "\112\uff81\117\uff81\001\002\000\004\112\u0110\001\002\000" +
    "\004\114\u010f\001\002\000\006\112\uff7f\117\u010b\001\002" +
    "\000\006\112\uff7d\117\uff7d\001\002\000\006\112\uff7e\117" +
    "\uff7e\001\002\000\006\112\uff7c\117\uff7c\001\002\000\004" +
    "\115\u0112\001\002\000\004\114\uff83\001\002\000\004\117" +
    "\u0113\001\002\000\004\114\uff7b\001\002\000\010\114\uff92" +
    "\117\u011b\121\u011c\001\002\000\006\114\uff8e\117\u0119\001" +
    "\002\000\006\114\uff94\121\u0118\001\002\000\004\114\uff93" +
    "\001\002\000\004\114\uff95\001\002\000\004\117\u011a\001" +
    "\002\000\004\114\uff8f\001\002\000\004\114\uff90\001\002" +
    "\000\004\114\uff91\001\002\000\004\116\u011f\001\002\000" +
    "\004\114\uffb2\001\002\000\004\114\uffa3\001\002\000\054" +
    "\003\uffbf\004\uffbf\006\uffbf\010\uffbf\011\uffbf\013\uffbf\017" +
    "\uffbf\020\uffbf\023\uffbf\031\uffbf\033\uffbf\034\uffbf\035\uffbf" +
    "\036\uffbf\063\uffbf\064\uffbf\110\uffbf\111\uffbf\114\uffbf\117" +
    "\uffbf\120\uffbf\001\002\000\004\042\301\001\002\000\006" +
    "\006\u0125\042\301\001\002\000\006\006\uff55\042\uff55\001" +
    "\002\000\006\006\uff56\042\uff56\001\002\000\004\041\u0126" +
    "\001\002\000\004\114\uffa8\001\002\000\004\114\uffb4\001" +
    "\002\000\004\070\u0129\001\002\000\004\117\u012a\001\002" +
    "\000\004\065\u012b\001\002\000\004\117\u012c\001\002\000" +
    "\004\066\u012d\001\002\000\004\117\u012e\001\002\000\004" +
    "\114\uff9d\001\002\000\004\114\uffb7\001\002\000\004\121" +
    "\u0131\001\002\000\004\114\uffa0\001\002\000\004\114\uffa9" +
    "\001\002\000\004\114\uffb8\001\002\000\004\067\u0135\001" +
    "\002\000\004\117\u0136\001\002\000\004\117\u0137\001\002" +
    "\000\006\070\u0138\114\uffa1\001\002\000\004\117\u0139\001" +
    "\002\000\004\065\u013a\001\002\000\004\117\u013b\001\002" +
    "\000\004\114\uffa2\001\002\000\004\114\uffb9\001\002\000" +
    "\006\002\uffc8\012\uffc8\001\002\000\010\002\uff73\012\uff73" +
    "\026\uff73\001\002\000\004\117\u0142\001\002\000\010\002" +
    "\uff75\012\uff75\026\u013f\001\002\000\010\002\uff74\012\uff74" +
    "\026\uff74\001\002\000\004\116\u0143\001\002\000\004\114" +
    "\u0144\001\002\000\010\002\uff72\012\uff72\026\uff72\001\002" +
    "\000\004\117\u0146\001\002\000\004\114\u0147\001\002\000" +
    "\054\003\uffc4\004\uffc4\006\uffc4\010\uffc4\011\uffc4\013\uffc4" +
    "\017\uffc4\020\uffc4\023\uffc4\031\uffc4\033\uffc4\034\uffc4\035" +
    "\uffc4\036\uffc4\063\uffc4\064\uffc4\110\uffc4\111\uffc4\114\uffc4" +
    "\117\uffc4\120\uffc4\001\002\000\010\002\uffdc\007\uffdc\012" +
    "\uffdc\001\002\000\006\006\uff57\042\301\001\002\000\006" +
    "\006\uff58\042\301\001\002\000\004\006\u014c\001\002\000" +
    "\004\041\u014d\001\002\000\004\114\u014e\001\002\000\020" +
    "\002\uff59\006\uff59\007\uff59\012\uff59\025\uff59\035\uff59\036" +
    "\uff59\001\002\000\020\002\uff63\007\uff63\012\uff63\025\uff63" +
    "\034\uff63\035\uff63\036\uff63\001\002\000\004\030\u0152\001" +
    "\002\000\006\006\uff6a\030\uff6a\001\002\000\004\116\u0159" +
    "\001\002\000\006\006\u0155\030\u0152\001\002\000\006\006" +
    "\uff6b\030\uff6b\001\002\000\004\027\u0157\001\002\000\022" +
    "\002\uff6d\007\uff6d\012\uff6d\032\uff6d\033\uff6d\034\uff6d\035" +
    "\uff6d\036\uff6d\001\002\000\004\114\u0158\001\002\000\022" +
    "\002\uff68\007\uff68\012\uff68\032\uff68\033\uff68\034\uff68\035" +
    "\uff68\036\uff68\001\002\000\004\116\u015a\001\002\000\004" +
    "\116\u015b\001\002\000\040\006\ufffa\072\ufffa\073\ufffa\074" +
    "\ufffa\075\ufffa\076\ufffa\077\ufffa\100\ufffa\101\ufffa\102\ufffa" +
    "\103\ufffa\104\ufffa\105\ufffa\106\ufffa\107\ufffa\001\002\000" +
    "\004\006\u015d\001\002\000\004\030\u015e\001\002\000\004" +
    "\114\u015f\001\002\000\006\006\uff69\030\uff69\001\002\000" +
    "\024\002\uff67\007\uff67\012\uff67\027\uff67\032\uff67\033\uff67" +
    "\034\uff67\035\uff67\036\uff67\001\002\000\032\002\uffe2\007" +
    "\uffe2\012\uffe2\021\uffe2\024\uffe2\027\uffe2\031\uffe2\032\uffe2" +
    "\033\uffe2\034\uffe2\035\uffe2\036\uffe2\001\002\000\004\114" +
    "\u0163\001\002\000\032\002\uffe0\007\uffe0\012\uffe0\021\uffe0" +
    "\024\uffe0\027\uffe0\031\uffe0\032\uffe0\033\uffe0\034\uffe0\035" +
    "\uffe0\036\uffe0\001\002\000\004\117\016\001\002\000\004" +
    "\114\u0166\001\002\000\006\014\ufffd\015\ufffd\001\002\000" +
    "\004\117\016\001\002\000\004\114\u0169\001\002\000\006" +
    "\014\ufffc\015\ufffc\001\002\000\004\114\u016b\001\002\000" +
    "\006\005\uffff\022\uffff\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\u0169\000\006\030\005\046\004\001\001\000\002\001" +
    "\001\000\004\014\011\001\001\000\002\001\001\000\002" +
    "\001\001\000\006\132\u0166\133\074\001\001\000\006\132" +
    "\u0163\133\074\001\001\000\004\052\012\001\001\000\010" +
    "\025\024\026\023\027\021\001\001\000\002\001\001\000" +
    "\004\003\016\001\001\000\002\001\001\000\002\001\001" +
    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
    "\004\003\u0161\001\001\000\004\027\u0160\001\001\000\010" +
    "\065\025\066\026\067\027\001\001\000\004\104\036\001" +
    "\001\000\004\067\034\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\100\040" +
    "\001\001\000\002\001\001\000\004\105\041\001\001\000" +
    "\006\006\047\111\051\001\001\000\002\001\001\000\002" +
    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
    "\001\000\002\001\001\000\002\001\001\000\006\007\052" +
    "\112\053\001\001\000\002\001\001\000\012\113\057\114" +
    "\062\121\063\127\060\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\113\057\114\u0147\001\001" +
    "\000\012\021\071\022\066\023\065\074\070\001\001\000" +
    "\002\001\001\000\014\016\157\041\161\042\156\043\154" +
    "\070\160\001\001\000\010\075\144\076\147\077\145\001" +
    "\001\000\006\132\073\133\074\001\001\000\002\001\001" +
    "\000\006\022\066\074\072\001\001\000\002\001\001\000" +
    "\002\001\001\000\010\010\101\011\114\012\115\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" +
    "\000\002\001\001\000\002\001\001\000\004\010\116\001" +
    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
    "\000\004\004\122\001\001\000\004\005\141\001\001\000" +
    "\002\001\001\000\004\006\133\001\001\000\002\001\001" +
    "\000\004\006\126\001\001\000\004\007\127\001\001\000" +
    "\010\113\057\114\131\127\130\001\001\000\002\001\001" +
    "\000\006\113\057\114\132\001\001\000\002\001\001\000" +
    "\004\007\134\001\001\000\010\113\057\114\136\127\135" +
    "\001\001\000\002\001\001\000\006\113\057\114\137\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\077\150\001\001" +
    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
    "\002\001\001\000\002\001\001\000\006\132\u0144\133\074" +
    "\001\001\000\010\071\u013c\072\u013f\073\u013d\001\001\000" +
    "\012\020\167\047\166\050\164\134\163\001\001\000\002" +
    "\001\001\000\010\016\157\042\156\070\162\001\001\000" +
    "\002\001\001\000\034\015\225\017\204\024\221\031\201" +
    "\045\222\051\205\106\213\107\227\110\216\113\203\120" +
    "\212\123\207\124\175\001\001\000\010\020\173\047\172" +
    "\134\163\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\063\u0132\001\001\000\002\001\001\000\004" +
    "\032\u012e\001\001\000\002\001\001\000\006\003\u0127\013" +
    "\u0126\001\001\000\002\001\001\000\002\001\001\000\002" +
    "\001\001\000\004\064\u011d\001\001\000\002\001\001\000" +
    "\002\001\001\000\006\053\u0104\054\u0103\001\001\000\002" +
    "\001\001\000\002\001\001\000\006\033\366\034\365\001" +
    "\001\000\002\001\001\000\002\001\001\000\004\055\362" +
    "\001\001\000\004\044\354\001\001\000\002\001\001\000" +
    "\002\001\001\000\004\113\345\001\001\000\002\001\001" +
    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
    "\006\003\343\062\344\001\001\000\004\122\233\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" +
    "\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\010\117\264\122\265\131\263" +
    "\001\001\000\002\001\001\000\004\122\266\001\001\000" +
    "\002\001\001\000\002\001\001\000\002\001\001\000\002" +
    "\001\001\000\002\001\001\000\004\005\273\001\001\000" +
    "\002\001\001\000\002\001\001\000\002\001\001\000\004" +
    "\116\277\001\001\000\002\001\001\000\002\001\001\000" +
    "\002\001\001\000\010\117\264\122\265\131\303\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" +
    "\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\005\330\001\001\000\002\001\001\000" +
    "\002\001\001\000\004\005\333\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\010\113\057\114\347\125\350\001\001\000\002" +
    "\001\001\000\006\113\057\114\352\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\010\036\370\037\367\040" +
    "\372\001\001\000\002\001\001\000\004\035\377\001\001" +
    "\000\002\001\001\000\002\001\001\000\004\036\373\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\010\057\u010c\060\u0109" +
    "\061\u010b\001\001\000\002\001\001\000\002\001\001\000" +
    "\002\001\001\000\002\001\001\000\002\001\001\000\004" +
    "\056\u0110\001\001\000\002\001\001\000\004\057\u010d\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\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\115\u0121\116\u0122\001\001\000\004" +
    "\116\u0123\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\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\000\002\001\001\000\002\001\001\000" +
    "\002\001\001\000\004\073\u0140\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\010\115\u0149\116\u0122\130\u014a\001\001\000" +
    "\004\116\u0123\001\001\000\002\001\001\000\002\001\001" +
    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
    "\006\101\u0152\102\u0150\001\001\000\002\001\001\000\002" +
    "\001\001\000\006\102\u0153\103\u0155\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\132\u015b\133\074\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\003\u0164\001\001\000\002\001\001\000\002\001" +
    "\001\000\004\003\u0167\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 1;}

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

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


  /** User initialization code. */
  public void user_init() throws java.lang.Exception
    {

	action_obj.scanner = scanner;
	action_obj.classFile = classFile;

    }

  /** Scan to get the next Symbol. */
  public java_cup.runtime.Symbol scan()
    throws java.lang.Exception
    {

    return scanner.next_token();

    }



	// parser code

	public Scanner scanner;
	public ClassFile classFile;
	
	public void report_error(String message, Object info)  {
    	classFile.report_error("Warning - " + message);
	}

	public void report_fatal_error(String message, Object info)  {
    	classFile.report_error("Error - " + message);
    	// System.exit(-1);
	}

	parser(ClassFile classFile, Scanner scanner) {
	    super();

	    this.scanner = scanner;
	    this.classFile = classFile;
	}

}

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


    short access_val;
    public Scanner scanner;
    public ClassFile classFile;

  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 190: // elem_val_pair ::= DELEM ANN_KIND Str SEP annotation DEND DANNOT_ELEM SEP 
            {
              Object RESULT = null;
		int nameleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)).left;
		int nameright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)).right;
		String name = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-5)).value;
		int attrleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left;
		int attrright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right;
		Object attr = (Object)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value;
		
        RESULT = classFile.makeAnnotElem(name, '@', attr);
    
              CUP$parser$result = new java_cup.runtime.Symbol(80/*elem_val_pair*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-7)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 189: // elem_val_pair ::= DELEM ARR_KIND Str SEP elem_val_pair_list_opt DEND DARR_ELEM SEP 
            {
              Object RESULT = null;
		int nameleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)).left;
		int nameright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)).right;
		String name = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-5)).value;
		int listleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left;
		int listright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right;
		Object list = (Object)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value;
		
        RESULT = classFile.makeArrayElem(name, '[', list);
    
              CUP$parser$result = new java_cup.runtime.Symbol(80/*elem_val_pair*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-7)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 188: // elem_val_pair ::= DELEM CLS_KIND Str Str SEP 
            {
              Object RESULT = null;
		int nameleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
		int nameright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
		String name = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
		int descleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
		int descright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
		String desc = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
		
        RESULT = classFile.makeClassElem(name, 'c', desc);
    
              CUP$parser$result = new java_cup.runtime.Symbol(80/*elem_val_pair*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 187: // elem_val_pair ::= DELEM ENUM_KIND Str Str Str SEP 
            {
              Object RESULT = null;
		int nameleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left;
		int nameright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right;
		String name = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value;
		int tnameleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
		int tnameright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
		String tname = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
		int cnameleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
		int cnameright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
		String cname = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
		
        RESULT = classFile.makeEnumElem(name, 'e', tname, cname);
    
              CUP$parser$result = new java_cup.runtime.Symbol(80/*elem_val_pair*/, ((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 186: // elem_val_pair ::= DELEM STR_KIND Str Str SEP 
            {
              Object RESULT = null;
		int nameleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
		int nameright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
		String name = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
		int valleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
		int valright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
		String val = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
		
        RESULT = classFile.makeConstantElem(name, 's', val);
    
              CUP$parser$result = new java_cup.runtime.Symbol(80/*elem_val_pair*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 185: // elem_val_pair ::= DELEM DOUB_KIND Str item SEP 
            {
              Object RESULT = null;
		int nameleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
		int nameright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
		String name = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
		int valleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
		int valright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
		Object val = (Object)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
		
        RESULT = classFile.makeConstantElem(name, 'D', val);
    
              CUP$parser$result = new java_cup.runtime.Symbol(80/*elem_val_pair*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 184: // elem_val_pair ::= DELEM FLOAT_KIND Str item SEP 
            {
              Object RESULT = null;
		int nameleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
		int nameright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
		String name = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
		int valleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
		int valright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
		Object val = (Object)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
		
        RESULT = classFile.makeConstantElem(name, 'F', val);
    
              CUP$parser$result = new java_cup.runtime.Symbol(80/*elem_val_pair*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 183: // elem_val_pair ::= DELEM LONG_KIND Str item SEP 
            {
              Object RESULT = null;
		int nameleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
		int nameright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
		String name = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
		int valleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
		int valright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
		Object val = (Object)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
		
        RESULT = classFile.makeConstantElem(name, 'J', val);
    
              CUP$parser$result = new java_cup.runtime.Symbol(80/*elem_val_pair*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 182: // elem_val_pair ::= DELEM BOOL_KIND Str Int SEP 
            {
              Object RESULT = null;
		int nameleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
		int nameright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
		String name = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
		int valleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
		int valright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
		Integer val = (Integer)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
		
        RESULT = classFile.makeConstantElem(name, 'Z', val);
    
              CUP$parser$result = new java_cup.runtime.Symbol(80/*elem_val_pair*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 181: // elem_val_pair ::= DELEM CHAR_KIND Str Int SEP 
            {
              Object RESULT = null;
		int nameleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
		int nameright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
		String name = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
		int valleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
		int valright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
		Integer val = (Integer)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
		
        RESULT = classFile.makeConstantElem(name, 'C', val);
    
              CUP$parser$result = new java_cup.runtime.Symbol(80/*elem_val_pair*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 180: // elem_val_pair ::= DELEM BYTE_KIND Str Int SEP 
            {
              Object RESULT = null;
		int nameleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
		int nameright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
		String name = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
		int valleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
		int valright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
		Integer val = (Integer)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
		
        RESULT = classFile.makeConstantElem(name, 'B', val);
    
              CUP$parser$result = new java_cup.runtime.Symbol(80/*elem_val_pair*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 179: // elem_val_pair ::= DELEM SHORT_KIND Str Int SEP 
            {
              Object RESULT = null;
		int nameleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
		int nameright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
		String name = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
		int valleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
		int valright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
		Integer val = (Integer)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
		
        RESULT = classFile.makeConstantElem(name, 'S', val);
    
              CUP$parser$result = new java_cup.runtime.Symbol(80/*elem_val_pair*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 178: // elem_val_pair ::= DELEM INT_KIND Str Int SEP 
            {
              Object RESULT = null;
		int nameleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
		int nameright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
		String name = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
		int valleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
		int valright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
		Integer val = (Integer)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
		
        RESULT = classFile.makeConstantElem(name, 'I', val);
    
              CUP$parser$result = new java_cup.runtime.Symbol(80/*elem_val_pair*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 177: // elem_val_pair_list ::= elem_val_pair 
            {
              Object RESULT = null;
		int elemleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
		int elemright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
		Object elem = (Object)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
		
        RESULT = classFile.makeNewElemValPairList(elem);
    
              CUP$parser$result = new java_cup.runtime.Symbol(77/*elem_val_pair_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 176: // elem_val_pair_list ::= elem_val_pair_list elem_val_pair 
            {
              Object RESULT = null;
		int listleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
		int listright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
		Object list = (Object)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
		int elemleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
		int elemright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
		Object elem = (Object)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
		
        RESULT = classFile.mergeNewElemValPair(list, elem);
    
              CUP$parser$result = new java_cup.runtime.Symbol(77/*elem_val_pair_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 175: // elem_val_pair_list_opt ::= 
            {
              Object RESULT = null;
		
        RESULT = null;
    
              CUP$parser$result = new java_cup.runtime.Symbol(87/*elem_val_pair_list_opt*/, ((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 174: // elem_val_pair_list_opt ::= elem_val_pair_list 
            {
              Object RESULT = null;
		int listleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
		int listright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
		Object list = (Object)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
		
        RESULT = list;
    
              CUP$parser$result = new java_cup.runtime.Symbol(87/*elem_val_pair_list_opt*/, ((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 173: // annotation ::= DANNOTATION Str SEP elem_val_pair_list_opt DEND DANNOTATION SEP 
            {
              Object RESULT = null;
		int annotation_typeleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)).left;
		int annotation_typeright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)).right;
		String annotation_type = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-5)).value;
		int elemsleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left;
		int elemsright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right;
		Object elems = (Object)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value;
		
        RESULT = classFile.makeAnnotation(annotation_type, elems);
    
              CUP$parser$result = new java_cup.runtime.Symbol(76/*annotation*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-6)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 172: // annotation_list ::= annotation 
            {
              Object RESULT = null;
		int elemleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
		int elemright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
		Object elem = (Object)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
		
        RESULT = classFile.makeNewAnnotationList(elem);
    
              CUP$parser$result = new java_cup.runtime.Symbol(75/*annotation_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 171: // annotation_list ::= annotation_list annotation 
            {
              Object RESULT = null;
		int listleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
		int listright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
		Object list = (Object)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
		int elemleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
		int elemright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
		Object elem = (Object)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
		
        RESULT = classFile.mergeNewAnnotation(list, elem);
    
              CUP$parser$result = new java_cup.runtime.Symbol(75/*annotation_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 170: // annotation_list_opt ::= 
            {
              Object RESULT = null;
		
        RESULT = null;
    
              CUP$parser$result = new java_cup.runtime.Symbol(86/*annotation_list_opt*/, ((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 169: // annotation_list_opt ::= annotation_list 
            {
              Object RESULT = null;
		int listleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
		int listright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
		Object list = (Object)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
		
        RESULT = list;
    
              CUP$parser$result = new java_cup.runtime.Symbol(86/*annotation_list_opt*/, ((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 168: // annotation_attr ::= visibility_type SEP annotation_list_opt DEND DANNOTATION_ATTR SEP 
            {
              Object RESULT = null;
		int tvalleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)).left;
		int tvalright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)).right;
		Object tval = (Object)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-5)).value;
		int listleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left;
		int listright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right;
		Object list = (Object)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value;
		
        RESULT = classFile.makeVisibilityAnnotation(tval, list);
    
              CUP$parser$result = new java_cup.runtime.Symbol(74/*annotation_attr*/, ((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 167: // annotation_attr_opt ::= 
            {
              Object RESULT = null;
		
        RESULT = null; /* empty */
    
              CUP$parser$result = new java_cup.runtime.Symbol(85/*annotation_attr_opt*/, ((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 166: // annotation_attr_opt ::= annotation_attr 
            {
              Object RESULT = null;
		int attrleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
		int attrright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
		Object attr = (Object)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
		  
        RESULT = attr;
    
              CUP$parser$result = new java_cup.runtime.Symbol(85/*annotation_attr_opt*/, ((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 165: // param_visibility_type ::= DRUNTIME_PARAM_INVISIBLE 
            {
              Object RESULT = null;
		 RESULT = "RuntimeInvisibleParameter"; 
              CUP$parser$result = new java_cup.runtime.Symbol(84/*param_visibility_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 164: // param_visibility_type ::= DRUNTIME_PARAM_VISIBLE 
            {
              Object RESULT = null;
		 RESULT = "RuntimeVisibleParameter"; 
              CUP$parser$result = new java_cup.runtime.Symbol(84/*param_visibility_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 163: // visibility_type ::= DRUNTIME_INVISIBLE 
            {
              Object RESULT = null;
		 RESULT = "RuntimeInvisible"; 
              CUP$parser$result = new java_cup.runtime.Symbol(73/*visibility_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 162: // visibility_type ::= DRUNTIME_VISIBLE 
            {
              Object RESULT = null;
		 RESULT = "RuntimeVisible"; 
              CUP$parser$result = new java_cup.runtime.Symbol(73/*visibility_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 161: // signature_attr ::= 
            {
              Object RESULT = null;
		
        /* empty */ RESULT = null;
    
              CUP$parser$result = new java_cup.runtime.Symbol(5/*signature_attr*/, ((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 160: // signature_attr ::= DSIG_ATTR Str SEP 
            {
              Object RESULT = null;
		int sigleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
		int sigright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
		String sig = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
		
        RESULT = sig;
    
              CUP$parser$result = new java_cup.runtime.Symbol(5/*signature_attr*/, ((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 159: // deprecated_attr ::= 
            {
              Object RESULT = null;
		
        /* empty */ RESULT = null;
    
              CUP$parser$result = new java_cup.runtime.Symbol(4/*deprecated_attr*/, ((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 158: // deprecated_attr ::= DDEPRECATED SEP 
            {
              Object RESULT = null;
		
        RESULT = "deprecated";
    
              CUP$parser$result = new java_cup.runtime.Symbol(4/*deprecated_attr*/, ((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 157: // encl_meth_attr ::= 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(67/*encl_meth_attr*/, ((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 156: // encl_meth_attr ::= DENCLOSING_METH Str Str Str SEP 
            {
              Object RESULT = null;
		int cleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left;
		int cright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right;
		String c = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value;
		int mleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
		int mright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
		String m = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
		int sleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
		int sright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
		String s = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
		
        classFile.addEnclMethAttr(c, m, s);
    
              CUP$parser$result = new java_cup.runtime.Symbol(67/*encl_meth_attr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 155: // synth_attr ::= 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(66/*synth_attr*/, ((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 154: // synth_attr ::= DSYNTHETIC SEP 
            {
              Object RESULT = null;
		
        classFile.addClassSynthAttr();
    
              CUP$parser$result = new java_cup.runtime.Symbol(66/*synth_attr*/, ((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 153: // end_inner_class_attr ::= DEND DINNER_CLASS_ATTR SEP 
            {
              Object RESULT = null;
		
        classFile.endInnerClassAttr();
    
              CUP$parser$result = new java_cup.runtime.Symbol(65/*end_inner_class_attr*/, ((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 152: // inner_class_attr_spec ::= DINNER_CLASS_SPEC_ATTR Str Str Str access DEND DINNER_CLASS_SPEC_ATTR SEP 
            {
              Object RESULT = null;
		int aleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-6)).left;
		int aright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-6)).right;
		String a = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-6)).value;
		int bleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)).left;
		int bright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)).right;
		String b = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-5)).value;
		int cleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left;
		int cright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).right;
		String c = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-4)).value;
		int dleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left;
		int dright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right;
		Short d = (Short)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value;
		
        classFile.addInnerClassSpec(a, b, c, (short)d.intValue());
    
              CUP$parser$result = new java_cup.runtime.Symbol(64/*inner_class_attr_spec*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-7)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 151: // inner_class_attr_list ::= inner_class_attr_spec 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(63/*inner_class_attr_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 150: // inner_class_attr_list ::= inner_class_attr_list inner_class_attr_spec 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(63/*inner_class_attr_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 149: // inner_class_attr ::= 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(62/*inner_class_attr*/, ((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 148: // inner_class_attr ::= DINNER_CLASS_ATTR SEP inner_class_attr_list end_inner_class_attr 
            {
              Object RESULT = null;
		
        classFile.addInnerClassAttr();
    
              CUP$parser$result = new java_cup.runtime.Symbol(62/*inner_class_attr*/, ((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 147: // field_attr_spec ::= DFIELD_ATTR Word Str SEP 
            {
              Object RESULT = null;
		int wleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
		int wright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
		String w = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
		int vleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
		int vright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
		String v = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
		
		 byte[] data = Base64.decode(v.toCharArray());
                classFile.addGenericAttrToField(w, data);
          
              CUP$parser$result = new java_cup.runtime.Symbol(61/*field_attr_spec*/, ((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 146: // field_attr_list ::= field_attr_spec 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(60/*field_attr_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 145: // field_attr_list ::= field_attr_list field_attr_spec 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(60/*field_attr_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 144: // field_attrs ::= field_attr_list 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(59/*field_attrs*/, ((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 143: // method_attr_spec ::= DMETHOD_ATTR Word Str SEP 
            {
              Object RESULT = null;
		int wleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
		int wright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
		String w = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
		int vleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
		int vright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
		String v = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
		
		 byte[] data = Base64.decode(v.toCharArray());
                classFile.addGenericAttrToMethod(w, data);	
          
              CUP$parser$result = new java_cup.runtime.Symbol(57/*method_attr_spec*/, ((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 142: // method_attr_list ::= method_attr_spec 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(56/*method_attr_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 141: // method_attr_list ::= method_attr_list method_attr_spec 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(56/*method_attr_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 140: // method_attrs ::= method_attr_list 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(55/*method_attrs*/, ((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 139: // class_attr_spec ::= DCLASS_ATTR Word Str SEP 
            {
              Object RESULT = null;
		int wleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
		int wright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
		String w = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
		int vleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
		int vright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
		String v = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
		
		byte[] data = Base64.decode(v.toCharArray());
                classFile.addGenericAttrToClass(new GenericAttr(w, data));             
          
              CUP$parser$result = new java_cup.runtime.Symbol(53/*class_attr_spec*/, ((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 138: // class_attr_list ::= class_attr_spec 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(52/*class_attr_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 137: // class_attr_list ::= class_attr_list class_attr_spec 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(52/*class_attr_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 136: // class_attrs ::= 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(51/*class_attrs*/, ((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 135: // class_attrs ::= class_attr_list 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(51/*class_attrs*/, ((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 134: // table_default ::= DEFAULT COLON Word 
            {
              Object RESULT = null;
		int wleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
		int wright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
		String w = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
		
            classFile.endTableswitch(w);
        
              CUP$parser$result = new java_cup.runtime.Symbol(44/*table_default*/, ((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 133: // table_entry ::= Word SEP 
            {
              Object RESULT = null;
		int wleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
		int wright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
		String w = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
		
            classFile.addTableswitch(w);
        
              CUP$parser$result = new java_cup.runtime.Symbol(45/*table_entry*/, ((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 132: // table_list ::= table_entry 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(47/*table_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 131: // table_list ::= table_list table_entry 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(47/*table_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 130: // table_list_t ::= table_list 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(46/*table_list_t*/, ((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 129: // table_list_t ::= 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(46/*table_list_t*/, ((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 128: // table_args ::= Int Int SEP 
            {
              Object RESULT = null;
		int lowleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
		int lowright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
		Integer low = (Integer)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
		int highleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
		int highright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
		Integer high = (Integer)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
		
            classFile.newTableswitch(low.intValue(), high.intValue());
        
              CUP$parser$result = new java_cup.runtime.Symbol(42/*table_args*/, ((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 127: // table_args ::= Int SEP 
            {
              Object RESULT = null;
		int lowleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
		int lowright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
		Integer low = (Integer)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
		
            classFile.newTableswitch(low.intValue());
        
              CUP$parser$result = new java_cup.runtime.Symbol(42/*table_args*/, ((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 126: // table ::= table_args table_list_t table_default 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(41/*table*/, ((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 125: // lookup_default ::= DEFAULT COLON Word 
            {
              Object RESULT = null;
		int wleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
		int wright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
		String w = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
		 classFile.endLookupswitch(w); 
              CUP$parser$result = new java_cup.runtime.Symbol(27/*lookup_default*/, ((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 124: // lookup_entry ::= Int COLON Word SEP 
            {
              Object RESULT = null;
		int ileft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left;
		int iright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right;
		Integer i = (Integer)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value;
		int wleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
		int wright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
		String w = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
		
            classFile.addLookupswitch(i.intValue(), w);
        
              CUP$parser$result = new java_cup.runtime.Symbol(28/*lookup_entry*/, ((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 123: // lookup_list ::= lookup_entry 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(30/*lookup_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 122: // lookup_list ::= lookup_list lookup_entry 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(30/*lookup_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 121: // lookup_list_t ::= lookup_list 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(29/*lookup_list_t*/, ((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 120: // lookup_list_t ::= 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(29/*lookup_list_t*/, ((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 119: // lookup_args ::= SEP 
            {
              Object RESULT = null;
		 classFile.newLookupswitch(); 
              CUP$parser$result = new java_cup.runtime.Symbol(26/*lookup_args*/, ((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 118: // lookup ::= lookup_args lookup_list_t lookup_default 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(25/*lookup*/, ((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 117: // complex_instruction ::= TABLESWITCH table 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(11/*complex_instruction*/, ((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 116: // complex_instruction ::= LOOKUPSWITCH lookup 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(11/*complex_instruction*/, ((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 115: // simple_instruction ::= Insn Str 
            {
              Object RESULT = null;
		int ileft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
		int iright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
		String i = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
		int nleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
		int nright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
		String n = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
		
            classFile.plantString(i, n);
        
              CUP$parser$result = new java_cup.runtime.Symbol(35/*simple_instruction*/, ((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 114: // simple_instruction ::= Insn Str Word Word 
            {
              Object RESULT = null;
		int ileft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left;
		int iright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right;
		String i = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value;
		int n1left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
		int n1right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
		String n1 = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
		int n2left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
		int n2right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
		String n2 = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
		int n3left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
		int n3right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
		String n3 = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
		
            classFile.plant(i, n1, n2, n3);
        
              CUP$parser$result = new java_cup.runtime.Symbol(35/*simple_instruction*/, ((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 113: // simple_instruction ::= Insn Word Word 
            {
              Object RESULT = null;
		int ileft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
		int iright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
		String i = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
		int n1left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
		int n1right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
		String n1 = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
		int n2left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
		int n2right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
		String n2 = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
		
            classFile.plant(i, n1, n2);
        
              CUP$parser$result = new java_cup.runtime.Symbol(35/*simple_instruction*/, ((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 112: // simple_instruction ::= Insn Word Int 
            {
              Object RESULT = null;
		int ileft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
		int iright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
		String i = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
		int nleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
		int nright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
		String n = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
		int n2left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
		int n2right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
		Integer n2 = (Integer)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
		
            classFile.plant(i, n, n2.intValue());
        
              CUP$parser$result = new java_cup.runtime.Symbol(35/*simple_instruction*/, ((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 111: // simple_instruction ::= Insn Word 
            {
              Object RESULT = null;
		int ileft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
		int iright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
		String i = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
		int nleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
		int nright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
		String n = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
		
            classFile.plant(i, n);
        
              CUP$parser$result = new java_cup.runtime.Symbol(35/*simple_instruction*/, ((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 110: // simple_instruction ::= Insn Num 
            {
              Object RESULT = null;
		int ileft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
		int iright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
		String i = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
		int nleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
		int nright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
		Number n = (Number)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
		
            classFile.plant(i, n);
        
              CUP$parser$result = new java_cup.runtime.Symbol(35/*simple_instruction*/, ((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 109: // simple_instruction ::= Insn Int 
            {
              Object RESULT = null;
		int ileft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
		int iright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
		String i = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
		int nleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
		int nright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
		Integer n = (Integer)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
		
            classFile.plant(i, n.intValue());
        
              CUP$parser$result = new java_cup.runtime.Symbol(35/*simple_instruction*/, ((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 108: // simple_instruction ::= Insn Int Int 
            {
              Object RESULT = null;
		int ileft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
		int iright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
		String i = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
		int n1left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
		int n1right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
		Integer n1 = (Integer)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
		int n2left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
		int n2right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
		Integer n2 = (Integer)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
		
            classFile.plant(i, n1.intValue(), n2.intValue());
        
              CUP$parser$result = new java_cup.runtime.Symbol(35/*simple_instruction*/, ((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 107: // simple_instruction ::= Insn 
            {
              Object RESULT = null;
		int ileft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
		int iright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
		String i = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
		
            classFile.plant(i);
        
              CUP$parser$result = new java_cup.runtime.Symbol(35/*simple_instruction*/, ((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 106: // instruction ::= complex_instruction 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(18/*instruction*/, ((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 105: // instruction ::= simple_instruction 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(18/*instruction*/, ((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 104: // set_expr ::= Word Str 
            {
              Object RESULT = null;
		int nameleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
		int nameright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
		String name = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
		int vleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
		int vright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
		String v = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
		 scanner.dict.put(name, v); 
              CUP$parser$result = new java_cup.runtime.Symbol(34/*set_expr*/, ((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 103: // set_expr ::= Word Num 
            {
              Object RESULT = null;
		int nameleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
		int nameright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
		String name = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
		int vleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
		int vright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
		Number v = (Number)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
		 scanner.dict.put(name, v); 
              CUP$parser$result = new java_cup.runtime.Symbol(34/*set_expr*/, ((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 102: // set_expr ::= Word Word 
            {
              Object RESULT = null;
		int nameleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
		int nameright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
		String name = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
		int vleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
		int vright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
		String v = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
		 scanner.dict.put(name, v); 
              CUP$parser$result = new java_cup.runtime.Symbol(34/*set_expr*/, ((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 101: // set_expr ::= Word Int 
            {
              Object RESULT = null;
		int nameleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
		int nameright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
		String name = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
		int vleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
		int vright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
		Integer v = (Integer)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
		 scanner.dict.put(name, v); 
              CUP$parser$result = new java_cup.runtime.Symbol(34/*set_expr*/, ((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 100: // catch_expr ::= classname FROM Word TO Word USING Word 
            {
              Object RESULT = null;
		int aclassleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-6)).left;
		int aclassright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-6)).right;
		String aclass = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-6)).value;
		int fromlableft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left;
		int fromlabright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).right;
		String fromlab = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-4)).value;
		int tolableft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
		int tolabright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
		String tolab = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
		int branchlableft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
		int branchlabright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
		String branchlab = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
		
            classFile.addCatch(aclass,
                            fromlab, tolab,
                            branchlab);
        
              CUP$parser$result = new java_cup.runtime.Symbol(9/*catch_expr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-6)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 99: // throws_expr ::= classname 
            {
              Object RESULT = null;
		int sleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
		int sright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
		String s = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
		
            classFile.addThrow(s);
        
              CUP$parser$result = new java_cup.runtime.Symbol(48/*throws_expr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 98: // line_expr ::= Int 
            {
              Object RESULT = null;
		int vleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
		int vright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
		Integer v = (Integer)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
		 classFile.addLine(v.intValue()); 
              CUP$parser$result = new java_cup.runtime.Symbol(43/*line_expr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 97: // limit_expr ::= Word Int 
            {
              Object RESULT = null;
		int wleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
		int wright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
		String w = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
		int vleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
		int vright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
		Integer v = (Integer)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
		
        // .limit locals
        if (w.equals("locals")
                 || w.equals("vars")) // "vars" for historic reasons
            classFile.setVarSize((short)v.intValue());
        // .limit stack
        else if (w.equals("stack"))
            classFile.setStackSize((short)v.intValue());
        else
            classFile.report_error(".limit expected \"stack\" or \"locals\", but got "
                          + w);
      
              CUP$parser$result = new java_cup.runtime.Symbol(24/*limit_expr*/, ((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 96: // var_expr ::= Int IS Word Word 
            {
              Object RESULT = null;
		int regleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left;
		int regright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right;
		Integer reg = (Integer)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value;
		int nameleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
		int nameright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
		String name = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
		int sigleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
		int sigright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
		String sig = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
		
             classFile.addVar(null, null, name, sig, reg.intValue());
        
              CUP$parser$result = new java_cup.runtime.Symbol(49/*var_expr*/, ((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 95: // var_expr ::= Int IS Word Word FROM Word TO Word 
            {
              Object RESULT = null;
		int regleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-7)).left;
		int regright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-7)).right;
		Integer reg = (Integer)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-7)).value;
		int nameleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)).left;
		int nameright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)).right;
		String name = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-5)).value;
		int sigleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left;
		int sigright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).right;
		String sig = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-4)).value;
		int slableft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
		int slabright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
		String slab = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
		int elableft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
		int elabright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
		String elab = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
		
             classFile.addVar(slab, elab, name,
                            sig, reg.intValue());
        
              CUP$parser$result = new java_cup.runtime.Symbol(49/*var_expr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-7)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 94: // code_attr_expr ::= Word Str 
            {
              Object RESULT = null;
		int wleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
		int wright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
		String w = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
		int vleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
		int vright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
		String v = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
		
               classFile.addSootCodeAttr(w, v);    
          
              CUP$parser$result = new java_cup.runtime.Symbol(50/*code_attr_expr*/, ((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 93: // meth_annotation_default_attr ::= DANNOT_DEFAULT elem_val_pair DEND DANNOT_DEFAULT 
            {
              Object RESULT = null;
		int defleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
		int defright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
		Object def = (Object)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
		
        classFile.addMethAnnotDefault(def);
    
              CUP$parser$result = new java_cup.runtime.Symbol(81/*meth_annotation_default_attr*/, ((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 92: // annotation_attr_list ::= annotation_attr 
            {
              Object RESULT = null;
		int elemleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
		int elemright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
		Object elem = (Object)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
		
        RESULT = classFile.makeNewAnnotAttrList(elem);
    
              CUP$parser$result = new java_cup.runtime.Symbol(83/*annotation_attr_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 91: // annotation_attr_list ::= annotation_attr_list annotation_attr 
            {
              Object RESULT = null;
		int listleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
		int listright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
		Object list = (Object)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
		int elemleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
		int elemright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
		Object elem = (Object)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
		
        RESULT = classFile.mergeNewAnnotAttr(list, elem);
    
              CUP$parser$result = new java_cup.runtime.Symbol(83/*annotation_attr_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 90: // meth_param_annotation_attr ::= DPARAM_ANNOT_ATTR visibility_type SEP annotation_attr_list DEND DPARAM_ANNOT_ATTR 
            {
              Object RESULT = null;
		int kindleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left;
		int kindright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).right;
		Object kind = (Object)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-4)).value;
		int listleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
		int listright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
		Object list = (Object)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
		
        RESULT = classFile.makeParameterVisibilityAnnotation(kind, list);
        if(kind.equals("RuntimeVisible"))
        	classFile.addMethParamAnnotAttrVisible(RESULT);
        else
            classFile.addMethParamAnnotAttrInvisible(RESULT);        
    
              CUP$parser$result = new java_cup.runtime.Symbol(82/*meth_param_annotation_attr*/, ((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 89: // meth_annotation_attr ::= visibility_type SEP annotation_list DEND DANNOTATION_ATTR 
            {
              Object RESULT = null;
		int tvalleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left;
		int tvalright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).right;
		Object tval = (Object)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-4)).value;
		int listleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
		int listright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
		Object list = (Object)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
		
        RESULT = classFile.makeVisibilityAnnotation(tval, list);
        if(tval.equals("RuntimeVisible"))
        	classFile.addMethAnnotAttrVisible(RESULT);
        else
            classFile.addMethAnnotAttrInvisible(RESULT);        
    
              CUP$parser$result = new java_cup.runtime.Symbol(78/*meth_annotation_attr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 88: // meth_sig_attr ::= DSIG_ATTR Str 
            {
              Object RESULT = null;
		int sleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
		int sright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
		String s = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
		
        classFile.addMethSigAttr(s);
    
              CUP$parser$result = new java_cup.runtime.Symbol(70/*meth_sig_attr*/, ((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 87: // meth_depr_attr ::= DDEPRECATED 
            {
              Object RESULT = null;
		
        classFile.addMethDeprAttr();
    
              CUP$parser$result = new java_cup.runtime.Symbol(69/*meth_depr_attr*/, ((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 86: // meth_synth_attr ::= DSYNTHETIC 
            {
              Object RESULT = null;
		
        classFile.addMethSynthAttr();
    
              CUP$parser$result = new java_cup.runtime.Symbol(68/*meth_synth_attr*/, ((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 85: // directive ::= meth_param_annotation_attr 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(13/*directive*/, ((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 84: // directive ::= meth_annotation_default_attr 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(13/*directive*/, ((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 83: // directive ::= meth_annotation_attr 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(13/*directive*/, ((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 82: // directive ::= meth_sig_attr 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(13/*directive*/, ((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 81: // directive ::= meth_depr_attr 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(13/*directive*/, ((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 80: // directive ::= meth_synth_attr 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(13/*directive*/, ((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 79: // directive ::= DCODE_ATTR code_attr_expr 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(13/*directive*/, ((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 78: // directive ::= DSET set_expr 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(13/*directive*/, ((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 77: // directive ::= DCATCH catch_expr 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(13/*directive*/, ((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 76: // directive ::= DTHROWS throws_expr 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(13/*directive*/, ((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 75: // directive ::= DLINE line_expr 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(13/*directive*/, ((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 74: // directive ::= DLIMIT limit_expr 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(13/*directive*/, ((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 73: // directive ::= DVAR var_expr 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(13/*directive*/, ((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 72: // label ::= Word COLON 
            {
              Object RESULT = null;
		int labelleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
		int labelright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
		String label = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
		
            classFile.plantLabel(label);
        
              CUP$parser$result = new java_cup.runtime.Symbol(23/*label*/, ((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 71: // stmnt ::= 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(39/*stmnt*/, ((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 70: // stmnt ::= label 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(39/*stmnt*/, ((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 69: // stmnt ::= error 
            {
              Object RESULT = null;

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

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 68: // stmnt ::= directive 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(39/*stmnt*/, ((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 67: // stmnt ::= instruction 
            {
              Object RESULT = null;

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

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 66: // statement ::= NT$1 stmnt SEP 
            {
              Object RESULT = null;
              // propagate RESULT from NT$1
              if ( ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value != null )
                RESULT = (Object) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;

              CUP$parser$result = new java_cup.runtime.Symbol(37/*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 65: // NT$1 ::= 
            {
              Object RESULT = null;
 classFile.setLine(scanner.token_line_num); 
              CUP$parser$result = new java_cup.runtime.Symbol(90/*NT$1*/, ((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 64: // statements ::= statement 
            {
              Object RESULT = null;

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

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 63: // statements ::= statements statement 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(38/*statements*/, ((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 62: // endmethod ::= DEND METHOD SEP 
            {
              Object RESULT = null;
		
            classFile.endMethod();
        
              CUP$parser$result = new java_cup.runtime.Symbol(14/*endmethod*/, ((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 61: // defmethod ::= DMETHOD access Word SEP 
            {
              Object RESULT = null;
		int ileft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
		int iright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
		Short i = (Short)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
		int nameleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
		int nameright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
		String name = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
		
            String split[] = ScannerUtils.splitMethodSignature(name);
            classFile.newMethod(split[0], split[1], i.intValue());
        
              CUP$parser$result = new java_cup.runtime.Symbol(12/*defmethod*/, ((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 60: // method_spec ::= defmethod endmethod 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(32/*method_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 59: // method_spec ::= defmethod statements endmethod 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(32/*method_spec*/, ((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 58: // method_item ::= method_spec 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(54/*method_item*/, ((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: // method_item ::= method_spec method_attrs 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(54/*method_item*/, ((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 56: // method_list ::= method_item 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(31/*method_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 55: // method_list ::= method_list method_item 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(31/*method_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 54: // methods ::= 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(33/*methods*/, ((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 53: // methods ::= method_list 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(33/*methods*/, ((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: // item ::= Str 
            {
              Object RESULT = null;
		int sleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
		int sright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
		String s = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
		 RESULT = s; 
              CUP$parser$result = new java_cup.runtime.Symbol(3/*item*/, ((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: // item ::= Num 
            {
              Object RESULT = null;
		int nleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
		int nright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
		Number n = (Number)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
		 RESULT = n; 
              CUP$parser$result = new java_cup.runtime.Symbol(3/*item*/, ((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: // item ::= Int 
            {
              Object RESULT = null;
		int ileft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
		int iright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
		Integer i = (Integer)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
		 RESULT = i; 
              CUP$parser$result = new java_cup.runtime.Symbol(3/*item*/, ((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: // optional_default ::= 
            {
              Object RESULT = null;
		 RESULT = null; 
              CUP$parser$result = new java_cup.runtime.Symbol(2/*optional_default*/, ((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 48: // optional_default ::= EQ item 
            {
              Object RESULT = null;
		int vleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
		int vright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
		Object v = (Object)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
		 RESULT = v; 
              CUP$parser$result = new java_cup.runtime.Symbol(2/*optional_default*/, ((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 47: // field_spec ::= DFIELD access Str Word optional_default DSYNTHETIC SEP deprecated_attr signature_attr annotation_attr annotation_attr 
            {
              Object RESULT = null;
		int aleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-9)).left;
		int aright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-9)).right;
		Short a = (Short)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-9)).value;
		int nameleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-8)).left;
		int nameright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-8)).right;
		String name = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-8)).value;
		int sigleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-7)).left;
		int sigright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-7)).right;
		String sig = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-7)).value;
		int vleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-6)).left;
		int vright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-6)).right;
		Object v = (Object)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-6)).value;
		int dep_attrleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left;
		int dep_attrright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right;
		Object dep_attr = (Object)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value;
		int sig_attrleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
		int sig_attrright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
		Object sig_attr = (Object)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
		int vis_annot_attr1left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
		int vis_annot_attr1right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
		Object vis_annot_attr1 = (Object)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
		int vis_annot_attr2left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
		int vis_annot_attr2right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
		Object vis_annot_attr2 = (Object)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
		
            classFile.addField((short)a.intValue(), name, sig, v, "synth", dep_attr, sig_attr, vis_annot_attr1, vis_annot_attr2);
        
              CUP$parser$result = new java_cup.runtime.Symbol(16/*field_spec*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-10)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 46: // field_spec ::= DFIELD access Str Word optional_default SEP deprecated_attr signature_attr annotation_attr annotation_attr 
            {
              Object RESULT = null;
		int aleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-8)).left;
		int aright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-8)).right;
		Short a = (Short)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-8)).value;
		int nameleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-7)).left;
		int nameright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-7)).right;
		String name = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-7)).value;
		int sigleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-6)).left;
		int sigright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-6)).right;
		String sig = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-6)).value;
		int vleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)).left;
		int vright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)).right;
		Object v = (Object)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-5)).value;
		int dep_attrleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left;
		int dep_attrright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right;
		Object dep_attr = (Object)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value;
		int sig_attrleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
		int sig_attrright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
		Object sig_attr = (Object)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
		int vis_annot_attr1left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
		int vis_annot_attr1right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
		Object vis_annot_attr1 = (Object)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
		int vis_annot_attr2left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
		int vis_annot_attr2right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
		Object vis_annot_attr2 = (Object)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
		
            classFile.addField((short)a.intValue(), name, sig, v, dep_attr, sig_attr, vis_annot_attr1, vis_annot_attr2);
        
              CUP$parser$result = new java_cup.runtime.Symbol(16/*field_spec*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-9)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 45: // field_spec ::= DFIELD access Str Word optional_default DSYNTHETIC SEP deprecated_attr signature_attr annotation_attr_opt 
            {
              Object RESULT = null;
		int aleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-8)).left;
		int aright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-8)).right;
		Short a = (Short)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-8)).value;
		int nameleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-7)).left;
		int nameright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-7)).right;
		String name = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-7)).value;
		int sigleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-6)).left;
		int sigright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-6)).right;
		String sig = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-6)).value;
		int vleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)).left;
		int vright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)).right;
		Object v = (Object)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-5)).value;
		int dep_attrleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
		int dep_attrright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
		Object dep_attr = (Object)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
		int sig_attrleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
		int sig_attrright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
		Object sig_attr = (Object)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
		int vis_annot_attrleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
		int vis_annot_attrright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
		Object vis_annot_attr = (Object)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
		
            classFile.addField((short)a.intValue(), name, sig, v, "synth", dep_attr, sig_attr, vis_annot_attr, null);
        
              CUP$parser$result = new java_cup.runtime.Symbol(16/*field_spec*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-9)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 44: // field_spec ::= DFIELD access Str Word optional_default SEP deprecated_attr signature_attr annotation_attr_opt 
            {
              Object RESULT = null;
		int aleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-7)).left;
		int aright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-7)).right;
		Short a = (Short)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-7)).value;
		int nameleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-6)).left;
		int nameright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-6)).right;
		String name = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-6)).value;
		int sigleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)).left;
		int sigright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)).right;
		String sig = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-5)).value;
		int vleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left;
		int vright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).right;
		Object v = (Object)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-4)).value;
		int dep_attrleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
		int dep_attrright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
		Object dep_attr = (Object)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
		int sig_attrleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
		int sig_attrright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
		Object sig_attr = (Object)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
		int vis_annot_attrleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
		int vis_annot_attrright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
		Object vis_annot_attr = (Object)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
		
            classFile.addField((short)a.intValue(), name, sig, v, dep_attr, sig_attr, vis_annot_attr, null);
        
              CUP$parser$result = new java_cup.runtime.Symbol(16/*field_spec*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-8)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 43: // field_item ::= field_spec 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(58/*field_item*/, ((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 42: // field_item ::= field_spec field_attrs 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(58/*field_item*/, ((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 41: // field_list ::= field_item 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(15/*field_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 40: // field_list ::= field_list field_item 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(15/*field_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 39: // fields ::= 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(17/*fields*/, ((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 38: // fields ::= field_list 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(17/*fields*/, ((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 37: // class_annotation_attr ::= annotation_attr annotation_attr 
            {
              Object RESULT = null;
		int annot_attrleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
		int annot_attrright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
		Object annot_attr = (Object)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
		int annot_attr2left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
		int annot_attr2right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
		Object annot_attr2 = (Object)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
		
        if(((VisibilityAnnotationAttr)annot_attr).getKind().equals("RuntimeVisible"))
        	classFile.addClassAnnotAttrVisible(annot_attr);
        else
            classFile.addClassAnnotAttrInvisible(annot_attr);
        if(((VisibilityAnnotationAttr)annot_attr2).getKind().equals("RuntimeVisible"))
        	classFile.addClassAnnotAttrVisible(annot_attr2);
        else
            classFile.addClassAnnotAttrInvisible(annot_attr2);        
    
              CUP$parser$result = new java_cup.runtime.Symbol(79/*class_annotation_attr*/, ((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 36: // class_annotation_attr ::= annotation_attr_opt 
            {
              Object RESULT = null;
		int annot_attrleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
		int annot_attrright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
		Object annot_attr = (Object)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
		
    	if(annot_attr!=null) {
	        if(((VisibilityAnnotationAttr)annot_attr).getKind().equals("RuntimeVisible"))
	        	classFile.addClassAnnotAttrVisible(annot_attr);
	        else
	            classFile.addClassAnnotAttrInvisible(annot_attr);
	    }
    
              CUP$parser$result = new java_cup.runtime.Symbol(79/*class_annotation_attr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 35: // class_sig_attr ::= signature_attr 
            {
              Object RESULT = null;
		int sig_attrleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
		int sig_attrright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
		Object sig_attr = (Object)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
		
        classFile.addClassSigAttr(sig_attr);
    
              CUP$parser$result = new java_cup.runtime.Symbol(72/*class_sig_attr*/, ((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: // class_depr_attr ::= deprecated_attr 
            {
              Object RESULT = null;
		int dep_attrleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
		int dep_attrright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
		Object dep_attr = (Object)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
		
        classFile.addClassDeprAttr(dep_attr);
    
              CUP$parser$result = new java_cup.runtime.Symbol(71/*class_depr_attr*/, ((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: // implements_spec ::= DIMPLEMENTS classname SEP 
            {
              Object RESULT = null;
		int nameleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
		int nameright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
		String name = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
		 classFile.addInterface(name); 
              CUP$parser$result = new java_cup.runtime.Symbol(21/*implements_spec*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 32: // implements_list ::= implements_spec 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(20/*implements_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 31: // implements_list ::= implements_list implements_spec 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(20/*implements_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 30: // impls ::= 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(19/*impls*/, ((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 29: // impls ::= implements_list 
            {
              Object RESULT = null;

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

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 28: // super_spec ::= DNOSUPER SEP 
            {
              Object RESULT = null;
		
            classFile.setNoSuperClass();
        
              CUP$parser$result = new java_cup.runtime.Symbol(40/*super_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 27: // super_spec ::= DSUPER classname SEP 
            {
              Object RESULT = null;
		int nameleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
		int nameright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
		String name = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
		
            classFile.setSuperClass(name);
        
              CUP$parser$result = new java_cup.runtime.Symbol(40/*super_spec*/, ((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 26: // access_item ::= ENUM 
            {
              Object RESULT = null;
		 access_val |= RuntimeConstants.ACC_ENUM; 
              CUP$parser$result = new java_cup.runtime.Symbol(6/*access_item*/, ((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: // access_item ::= ANNOTATION 
            {
              Object RESULT = null;
		 access_val |= RuntimeConstants.ACC_ANNOTATION; 
              CUP$parser$result = new java_cup.runtime.Symbol(6/*access_item*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 24: // access_item ::= STRICTFP 
            {
              Object RESULT = null;
		 access_val |= RuntimeConstants.ACC_STRICTFP; 
              CUP$parser$result = new java_cup.runtime.Symbol(6/*access_item*/, ((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 23: // access_item ::= ABSTRACT 
            {
              Object RESULT = null;
		 access_val |= RuntimeConstants.ACC_ABSTRACT; 
              CUP$parser$result = new java_cup.runtime.Symbol(6/*access_item*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 22: // access_item ::= INTERFACE 
            {
              Object RESULT = null;
		 access_val |= RuntimeConstants.ACC_INTERFACE; 
              CUP$parser$result = new java_cup.runtime.Symbol(6/*access_item*/, ((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: // access_item ::= NATIVE 
            {
              Object RESULT = null;
		 access_val |= RuntimeConstants.ACC_NATIVE; 
              CUP$parser$result = new java_cup.runtime.Symbol(6/*access_item*/, ((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: // access_item ::= TRANSIENT 
            {
              Object RESULT = null;
		 access_val |= RuntimeConstants.ACC_TRANSIENT; 
              CUP$parser$result = new java_cup.runtime.Symbol(6/*access_item*/, ((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: // access_item ::= VOLATILE 
            {
              Object RESULT = null;
		 access_val |= RuntimeConstants.ACC_VOLATILE; 
              CUP$parser$result = new java_cup.runtime.Symbol(6/*access_item*/, ((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 18: // access_item ::= SYNCHRONIZED 
            {
              Object RESULT = null;
		 access_val |= RuntimeConstants.ACC_SYNCHRONIZED; 
              CUP$parser$result = new java_cup.runtime.Symbol(6/*access_item*/, ((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 17: // access_item ::= FINAL 
            {
              Object RESULT = null;
		 access_val |= RuntimeConstants.ACC_FINAL; 
              CUP$parser$result = new java_cup.runtime.Symbol(6/*access_item*/, ((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: // access_item ::= STATIC 
            {
              Object RESULT = null;
		 access_val |= RuntimeConstants.ACC_STATIC; 
              CUP$parser$result = new java_cup.runtime.Symbol(6/*access_item*/, ((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: // access_item ::= PROTECTED 
            {
              Object RESULT = null;
		 access_val |= RuntimeConstants.ACC_PROTECTED; 
              CUP$parser$result = new java_cup.runtime.Symbol(6/*access_item*/, ((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 14: // access_item ::= PRIVATE 
            {
              Object RESULT = null;
		 access_val |= RuntimeConstants.ACC_PRIVATE; 
              CUP$parser$result = new java_cup.runtime.Symbol(6/*access_item*/, ((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: // access_item ::= PUBLIC 
            {
              Object RESULT = null;
		 access_val |= RuntimeConstants.ACC_PUBLIC; 
              CUP$parser$result = new java_cup.runtime.Symbol(6/*access_item*/, ((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 12: // access_items ::= access_item 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(7/*access_items*/, ((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: // access_items ::= access_items access_item 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(7/*access_items*/, ((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 10: // access_list ::= 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(8/*access_list*/, ((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 9: // access_list ::= access_items 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(8/*access_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 8: // access ::= NT$0 access_list 
            {
              Short RESULT = null;
              // propagate RESULT from NT$0
              if ( ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value != null )
                RESULT = (Short) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
		 RESULT = new Short(access_val); 
              CUP$parser$result = new java_cup.runtime.Symbol(88/*access*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 7: // NT$0 ::= 
            {
              Object RESULT = null;
 access_val = 0; 
              CUP$parser$result = new java_cup.runtime.Symbol(89/*NT$0*/, ((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 6: // classname ::= Word 
            {
              String RESULT = null;
		int wleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
		int wright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
		String w = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
		 RESULT = ScannerUtils.convertDots(w); 
              CUP$parser$result = new java_cup.runtime.Symbol(1/*classname*/, ((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 5: // class_spec ::= DINTERFACE access classname SEP 
            {
              Object RESULT = null;
		int aleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
		int aright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
		Short a = (Short)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
		int nameleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
		int nameright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
		String name = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
		
            classFile.setClass(name,
                (short)(a.intValue() |
                        RuntimeConstants.ACC_INTERFACE));
        
              CUP$parser$result = new java_cup.runtime.Symbol(10/*class_spec*/, ((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 4: // class_spec ::= DCLASS access classname SEP 
            {
              Object RESULT = null;
		int aleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
		int aright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
		Short a = (Short)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
		int nameleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
		int nameright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
		String name = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
		
            classFile.setClass(name,
                (short)(a.intValue() | RuntimeConstants.ACC_SUPER));
        
              CUP$parser$result = new java_cup.runtime.Symbol(10/*class_spec*/, ((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 3: // source_spec ::= 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(36/*source_spec*/, ((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 2: // source_spec ::= DSOURCE Word SEP 
            {
              Object RESULT = null;
		int wleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
		int wright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
		String w = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
		 classFile.setSource(w); 
              CUP$parser$result = new java_cup.runtime.Symbol(36/*source_spec*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 1: // $START ::= jas_file 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;
		Object start_val = (Object)((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;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 0: // jas_file ::= source_spec class_spec super_spec impls class_attrs synth_attr inner_class_attr encl_meth_attr class_depr_attr class_sig_attr class_annotation_attr fields methods 
            {
              Object RESULT = null;

              CUP$parser$result = new java_cup.runtime.Symbol(22/*jas_file*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-12)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
            }
          return CUP$parser$result;

          default:
            {
              throw new Exception(
                 "Invalid action number found in internal parse table");
            }

        }
    }
}

