
//----------------------------------------------------
// The following code was generated by CUP v0.10g
// Mon Apr 24 09:34:59 EDT 2000
//----------------------------------------------------

import java_cup.runtime.*;
import java.lang.*;
import java.util.*;

public class Mic1Parser extends java_cup.runtime.lr_parser {

  /** constructor */
  public Mic1Parser() {super();}

  /** production table */
  protected static final short _production_table[][] = {
        {0, 2},     {1, 1},     {2, 2},     {2, 0},     {3, 2}, 
        {3, 2},     {3, 1},     {4, 2},     {4, 1},     {4, 1}, 
        {5, 3},     {5, 2},     {6, 3},     {6, 2},     {6, 1}, 
        {7, 1},     {7, 1},     {7, 1},     {7, 1},     {8, 1}, 
        {8, 1},     {8, 1},     {9, 1},     {9, 1},     {9, 1}, 
        {10, 10},     {11, 1},     {11, 1},     {12, 4},     {13, 3}, 
        {13, 1},     {14, 2},     {16, 3},     {16, 1},     {17, 1}, 
        {17, 1},     {17, 1},     {18, 1},     {18, 1},     {18, 1}, 
        {18, 1},     {18, 1},     {18, 1},     {18, 1},     {18, 1}, 
        {18, 1},     {19, 1},     {19, 4},     {19, 4},     {20, 3}, 
        {20, 3},     {20, 3},     {20, 3},     {20, 2},     {20, 2}, 
        {20, 3},     {20, 3},     {20, 3},     {20, 3},     {20, 3}, 
        {20, 2},     {20, 3},     {20, 5},     {20, 5},     {20, 1}, 
        {20, 1},     {20, 2},     {20, 1},     {20, 1},     {22, 1}, 
        {22, 1},     {22, 1},     {22, 1},     {22, 1},     {22, 1}, 
        {22, 1},     {22, 1},     {22, 1},     {21, 1},     {15, 1}
      };

  /** access to production table */
  public short[][] production_table() {return _production_table;}

  /** parse action table */
  protected static final short[][] _action_table = {
    /*0*/{0,-4,2,6,4,17,5,43,6,21,15,37,16,29,17,20,18,26,19,40,21,31,22,10,23,4,24,39,25,11,26,3,27,8,28,41,29,25,30,24,31,45,32,34,33,12,34,23,37,16,38,18,39,5,40,33,-1,0},
    /*1*/{2,-23,13,-23,-1,0},
    /*2*/{2,-70,3,-70,4,-70,8,-70,9,-39,10,-70,13,-70,35,-70,36,-70,-1,0},
    /*3*/{9,-37,-1,0},
    /*4*/{15,117,-1,0},
    /*5*/{0,-7,2,-7,4,-7,5,-7,6,-7,15,-7,16,-7,17,-7,18,-7,19,-7,21,-7,22,-7,23,-7,24,-7,25,-7,26,-7,27,-7,28,-7,29,-7,30,-7,31,-7,32,-7,33,-7,34,-7,37,-7,38,-7,39,-7,40,-7,-1,0},
    /*6*/{2,-9,-1,0},
    /*7*/{2,-71,3,-71,4,-71,8,-71,9,-40,10,-71,13,-71,35,-71,36,-71,-1,0},
    /*8*/{2,-15,13,115,-1,0},
    /*9*/{9,-36,-1,0},
    /*10*/{9,-38,-1,0},
    /*11*/{2,-79,3,-79,8,-79,9,-46,10,-79,13,-79,35,-79,36,-79,-1,0},
    /*12*/{0,-2,-1,0},
    /*13*/{2,-25,13,-25,-1,0},
    /*14*/{2,-66,3,106,8,-66,10,-66,13,-66,35,107,36,108,-1,0},
    /*15*/{24,39,26,101,27,98,28,105,29,104,30,102,31,99,32,97,33,53,34,23,-1,0},
    /*16*/{6,95,33,53,-1,0},
    /*17*/{2,-80,13,-80,-1,0},
    /*18*/{9,93,-1,0},
    /*19*/{2,-21,13,-21,-1,0},
    /*20*/{2,-69,8,-69,10,-69,13,-69,-1,0},
    /*21*/{2,-16,13,-16,-1,0},
    /*22*/{2,-73,3,-73,4,-73,8,-73,10,-73,13,-73,35,-73,36,-73,-1,0},
    /*23*/{2,-76,3,-76,4,-76,8,-76,9,-43,10,-76,13,-76,35,-76,36,-76,-1,0},
    /*24*/{2,-75,3,-75,4,-75,8,-75,9,-42,10,-75,13,-75,35,-75,36,-75,-1,0},
    /*25*/{2,-22,13,-22,-1,0},
    /*26*/{0,-4,2,6,4,17,5,43,6,21,15,37,16,29,17,20,18,26,19,40,21,31,22,10,23,4,24,39,25,11,26,3,27,8,28,41,29,25,30,24,31,45,32,34,33,12,34,23,37,16,38,18,39,5,40,33,-1,0},
    /*27*/{0,91,-1,0},
    /*28*/{2,-20,13,-20,-1,0},
    /*29*/{2,-24,13,-24,-1,0},
    /*30*/{11,85,15,84,-1,0},
    /*31*/{2,-19,13,-19,-1,0},
    /*32*/{4,17,5,43,6,21,16,29,17,20,18,26,19,40,21,31,22,10,23,4,24,39,25,11,26,3,27,8,28,41,29,25,30,24,31,45,32,34,33,12,34,23,37,16,38,18,-1,0},
    /*33*/{2,-78,3,-78,4,-78,8,-78,9,-45,10,-78,13,-78,35,-78,36,-78,-1,0},
    /*34*/{2,82,-1,0},
    /*35*/{2,-34,13,-34,-1,0},
    /*36*/{2,-10,4,17,5,43,6,21,16,29,17,20,18,26,19,40,21,31,22,10,23,4,24,39,25,11,26,3,27,8,28,41,29,25,30,24,31,45,32,34,33,12,34,23,37,16,38,18,-1,0},
    /*37*/{2,-47,8,74,10,75,13,-47,-1,0},
    /*38*/{2,-72,3,-72,4,-72,8,-72,10,-72,13,-72,35,-72,36,-72,-1,0},
    /*39*/{11,63,-1,0},
    /*40*/{2,-74,3,-74,4,-74,8,-74,9,-41,10,-74,13,-74,35,-74,36,-74,-1,0},
    /*41*/{2,-18,13,-18,-1,0},
    /*42*/{2,-68,8,-68,10,-68,13,-68,-1,0},
    /*43*/{2,62,-1,0},
    /*44*/{2,-77,3,-77,4,-77,8,-77,9,-44,10,-77,13,-77,35,-77,36,-77,-1,0},
    /*45*/{2,-65,3,50,4,49,8,-65,10,-65,13,-65,35,51,36,52,-1,0},
    /*46*/{2,-17,13,-17,-1,0},
    /*47*/{9,-35,-1,0},
    /*48*/{6,60,33,53,-1,0},
    /*49*/{6,56,33,53,-1,0},
    /*50*/{33,53,-1,0},
    /*51*/{33,53,-1,0},
    /*52*/{2,-79,3,-79,8,-79,10,-79,13,-79,-1,0},
    /*53*/{2,-51,8,-51,10,-51,13,-51,-1,0},
    /*54*/{2,-53,8,-53,10,-53,13,-53,-1,0},
    /*55*/{2,-58,8,-58,10,-58,13,-58,-1,0},
    /*56*/{2,-56,3,58,8,-56,10,-56,13,-56,-1,0},
    /*57*/{6,59,-1,0},
    /*58*/{2,-63,8,-63,10,-63,13,-63,-1,0},
    /*59*/{2,-62,8,-62,10,-62,13,-62,-1,0},
    /*60*/{2,-60,8,-60,10,-60,13,-60,-1,0},
    /*61*/{0,-6,2,-6,4,-6,5,-6,6,-6,15,-6,16,-6,17,-6,18,-6,19,-6,21,-6,22,-6,23,-6,24,-6,25,-6,26,-6,27,-6,28,-6,29,-6,30,-6,31,-6,32,-6,33,-6,34,-6,37,-6,38,-6,39,-6,40,-6,-1,0},
    /*62*/{22,66,23,65,-1,0},
    /*63*/{12,67,-1,0},
    /*64*/{12,-28,-1,0},
    /*65*/{12,-27,-1,0},
    /*66*/{21,68,-1,0},
    /*67*/{15,69,-1,0},
    /*68*/{13,70,-1,0},
    /*69*/{20,71,-1,0},
    /*70*/{21,72,-1,0},
    /*71*/{15,73,-1,0},
    /*72*/{2,-26,13,-26,-1,0},
    /*73*/{8,78,-1,0},
    /*74*/{10,76,-1,0},
    /*75*/{6,77,-1,0},
    /*76*/{2,-49,13,-49,-1,0},
    /*77*/{7,79,-1,0},
    /*78*/{2,-48,13,-48,-1,0},
    /*79*/{2,-8,-1,0},
    /*80*/{2,-65,3,50,4,49,8,-65,10,-65,13,-65,35,51,36,52,-1,0},
    /*81*/{0,-5,2,-5,4,-5,5,-5,6,-5,15,-5,16,-5,17,-5,18,-5,19,-5,21,-5,22,-5,23,-5,24,-5,25,-5,26,-5,27,-5,28,-5,29,-5,30,-5,31,-5,32,-5,33,-5,34,-5,37,-5,38,-5,39,-5,40,-5,-1,0},
    /*82*/{2,-12,-1,0},
    /*83*/{2,-32,13,-32,-1,0},
    /*84*/{24,87,-1,0},
    /*85*/{12,90,-1,0},
    /*86*/{12,-31,35,88,-1,0},
    /*87*/{14,89,-1,0},
    /*88*/{12,-30,-1,0},
    /*89*/{2,-29,13,-29,-1,0},
    /*90*/{0,-1,-1,0},
    /*91*/{0,-3,-1,0},
    /*92*/{4,17,5,43,6,21,22,10,23,4,24,39,25,11,26,3,27,8,28,41,29,25,30,24,31,45,32,34,33,12,34,23,37,16,-1,0},
    /*93*/{2,-33,13,-33,-1,0},
    /*94*/{2,-67,8,-67,10,-67,13,-67,-1,0},
    /*95*/{2,-61,8,-61,10,-61,13,-61,-1,0},
    /*96*/{2,-78,3,-78,8,-78,10,-78,13,-78,-1,0},
    /*97*/{2,-71,3,-71,8,-71,10,-71,13,-71,-1,0},
    /*98*/{2,-77,3,-77,8,-77,10,-77,13,-77,-1,0},
    /*99*/{2,-55,8,-55,10,-55,13,-55,-1,0},
    /*100*/{2,-70,3,-70,8,-70,10,-70,13,-70,-1,0},
    /*101*/{2,-76,3,-76,8,-76,10,-76,13,-76,-1,0},
    /*102*/{2,-54,8,-54,10,-54,13,-54,-1,0},
    /*103*/{2,-75,3,-75,8,-75,10,-75,13,-75,-1,0},
    /*104*/{2,-74,3,-74,8,-74,10,-74,13,-74,-1,0},
    /*105*/{6,111,24,39,26,101,27,98,28,105,29,104,30,102,31,99,32,97,34,23,-1,0},
    /*106*/{24,39,26,101,27,98,28,105,29,104,30,102,31,99,32,97,34,23,-1,0},
    /*107*/{24,39,26,101,27,98,28,105,29,104,30,102,31,99,32,97,34,23,-1,0},
    /*108*/{2,-50,8,-50,10,-50,13,-50,-1,0},
    /*109*/{2,-52,8,-52,10,-52,13,-52,-1,0},
    /*110*/{2,-59,8,-59,10,-59,13,-59,-1,0},
    /*111*/{2,-57,3,113,8,-57,10,-57,13,-57,-1,0},
    /*112*/{6,114,-1,0},
    /*113*/{2,-64,8,-64,10,-64,13,-64,-1,0},
    /*114*/{2,-14,4,17,5,43,6,21,16,29,17,20,18,26,19,40,21,31,22,10,23,4,24,39,25,11,26,3,27,8,28,41,29,25,30,24,31,45,32,34,33,12,34,23,37,16,38,18,-1,0},
    /*115*/{2,-13,-1,0},
    /*116*/{14,118,-1,0},
    /*117*/{2,-11,-1,0},
  };

  /** access to parse action table */
  public short[][] action_table() {return _action_table;}

  /** reduce_goto table */
  protected static final short[][] _reduce_table = {
    /*0*/{1,27,2,12,3,26,4,34,5,43,6,6,7,8,8,21,9,46,10,1,12,29,14,13,15,31,16,41,17,18,18,47,19,35,20,37,21,14,22,45,-1,-1},
    /*1*/{-1,-1},
    /*2*/{-1,-1},
    /*3*/{-1,-1},
    /*4*/{-1,-1},
    /*5*/{-1,-1},
    /*6*/{-1,-1},
    /*7*/{-1,-1},
    /*8*/{-1,-1},
    /*9*/{-1,-1},
    /*10*/{-1,-1},
    /*11*/{-1,-1},
    /*12*/{-1,-1},
    /*13*/{-1,-1},
    /*14*/{-1,-1},
    /*15*/{21,99,22,102,-1,-1},
    /*16*/{21,95,-1,-1},
    /*17*/{-1,-1},
    /*18*/{-1,-1},
    /*19*/{-1,-1},
    /*20*/{-1,-1},
    /*21*/{-1,-1},
    /*22*/{-1,-1},
    /*23*/{-1,-1},
    /*24*/{-1,-1},
    /*25*/{-1,-1},
    /*26*/{2,91,3,26,4,34,5,43,6,6,7,8,8,21,9,46,10,1,12,29,14,13,15,31,16,41,17,18,18,47,19,35,20,37,21,14,22,45,-1,-1},
    /*27*/{-1,-1},
    /*28*/{-1,-1},
    /*29*/{-1,-1},
    /*30*/{-1,-1},
    /*31*/{-1,-1},
    /*32*/{6,82,7,8,8,21,9,46,10,1,12,29,14,13,15,31,16,41,17,18,18,47,19,35,20,37,21,14,22,80,-1,-1},
    /*33*/{-1,-1},
    /*34*/{-1,-1},
    /*35*/{-1,-1},
    /*36*/{6,79,7,8,8,21,9,46,10,1,12,29,14,13,15,31,16,41,17,18,18,47,19,35,20,37,21,14,22,80,-1,-1},
    /*37*/{-1,-1},
    /*38*/{-1,-1},
    /*39*/{-1,-1},
    /*40*/{-1,-1},
    /*41*/{-1,-1},
    /*42*/{-1,-1},
    /*43*/{-1,-1},
    /*44*/{-1,-1},
    /*45*/{-1,-1},
    /*46*/{-1,-1},
    /*47*/{-1,-1},
    /*48*/{21,60,-1,-1},
    /*49*/{21,56,-1,-1},
    /*50*/{21,54,-1,-1},
    /*51*/{21,53,-1,-1},
    /*52*/{-1,-1},
    /*53*/{-1,-1},
    /*54*/{-1,-1},
    /*55*/{-1,-1},
    /*56*/{-1,-1},
    /*57*/{-1,-1},
    /*58*/{-1,-1},
    /*59*/{-1,-1},
    /*60*/{-1,-1},
    /*61*/{-1,-1},
    /*62*/{11,63,-1,-1},
    /*63*/{-1,-1},
    /*64*/{-1,-1},
    /*65*/{-1,-1},
    /*66*/{-1,-1},
    /*67*/{-1,-1},
    /*68*/{-1,-1},
    /*69*/{-1,-1},
    /*70*/{-1,-1},
    /*71*/{-1,-1},
    /*72*/{-1,-1},
    /*73*/{-1,-1},
    /*74*/{-1,-1},
    /*75*/{-1,-1},
    /*76*/{-1,-1},
    /*77*/{-1,-1},
    /*78*/{-1,-1},
    /*79*/{-1,-1},
    /*80*/{-1,-1},
    /*81*/{-1,-1},
    /*82*/{-1,-1},
    /*83*/{-1,-1},
    /*84*/{13,85,-1,-1},
    /*85*/{-1,-1},
    /*86*/{-1,-1},
    /*87*/{-1,-1},
    /*88*/{-1,-1},
    /*89*/{-1,-1},
    /*90*/{-1,-1},
    /*91*/{-1,-1},
    /*92*/{16,93,17,18,18,47,19,35,20,37,21,14,22,80,-1,-1},
    /*93*/{-1,-1},
    /*94*/{-1,-1},
    /*95*/{-1,-1},
    /*96*/{-1,-1},
    /*97*/{-1,-1},
    /*98*/{-1,-1},
    /*99*/{-1,-1},
    /*100*/{-1,-1},
    /*101*/{-1,-1},
    /*102*/{-1,-1},
    /*103*/{-1,-1},
    /*104*/{-1,-1},
    /*105*/{22,111,-1,-1},
    /*106*/{22,109,-1,-1},
    /*107*/{22,108,-1,-1},
    /*108*/{-1,-1},
    /*109*/{-1,-1},
    /*110*/{-1,-1},
    /*111*/{-1,-1},
    /*112*/{-1,-1},
    /*113*/{-1,-1},
    /*114*/{6,115,7,8,8,21,9,46,10,1,12,29,14,13,15,31,16,41,17,18,18,47,19,35,20,37,21,14,22,80,-1,-1},
    /*115*/{-1,-1},
    /*116*/{-1,-1},
    /*117*/{-1,-1},
  };

  /** access to reduce_goto table */
  public short[][] reduce_table() {return _reduce_table;}

  /** instance of action encapsulation class */
  protected CUP$Mic1Parser$actions action_obj;

  /** action encapsulation object initializer */
  protected void init_actions()
    {
      action_obj = new CUP$Mic1Parser$actions();
    }

  /** 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$Mic1Parser$do_action(act_num, parser, stack, top);
  }

  /** start state */
  public int start_state() {return 0;}
  /** start production */
  public int start_production() {return 0;}

  /** EOF Symbol index */
  public int EOF_sym() {return 0;}

  /** error Symbol index */
  public int error_sym() {return 1;}


  /** scan to get the next Symbol */
  public java_cup.runtime.Symbol scan()
    throws java.lang.Exception
    {
 return Mic1Scanner.next_token(); 
    }
}

/** Cup generated class to encapsulate user supplied action code.*/
class CUP$Mic1Parser$actions {

 
private Mic1Parse mic1parse = new Mic1Parse() ; 
private Mic1Statement s = new Mic1Statement() ; 
private int instructionCount = 0 ; 


  /** Constructor */
  CUP$Mic1Parser$actions() { }

  /** Method with the actual generated action code. */
  public final java_cup.runtime.Symbol CUP$Mic1Parser$do_action(
    int                        CUP$Mic1Parser$act_num,
    java_cup.runtime.lr_parser CUP$Mic1Parser$parser,
    java.util.Stack            CUP$Mic1Parser$stack,
    int                        CUP$Mic1Parser$top)
    throws java.lang.Exception
    {
      /* Symbol object for return from actions */
      java_cup.runtime.Symbol CUP$Mic1Parser$result;

      /* select the action based on the action number */
      switch (CUP$Mic1Parser$act_num)
        {
          /*. . . . . . . . . . . . . . . . . . . .*/
          case 79: // nop_statement ::= NOP 
            {
              Object RESULT = null;

              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(15/*nop_statement*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 78: // a_term ::= H 
            {
              Object RESULT = null;

              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(21/*a_term*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 77: // b_term ::= OPC 
            {
              Object RESULT = null;
		 s.i.B = Mic1Instruction.B_OPC ; 
              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(22/*b_term*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 76: // b_term ::= TOS 
            {
              Object RESULT = null;
		 s.i.B = Mic1Instruction.B_TOS ; 
              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(22/*b_term*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 75: // b_term ::= CPP 
            {
              Object RESULT = null;
		 s.i.B = Mic1Instruction.B_CPP ; 
              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(22/*b_term*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 74: // b_term ::= LV 
            {
              Object RESULT = null;
		 s.i.B = Mic1Instruction.B_LV ; 
              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(22/*b_term*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 73: // b_term ::= SP 
            {
              Object RESULT = null;
		 s.i.B = Mic1Instruction.B_SP ; 
              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(22/*b_term*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 72: // b_term ::= MBRU 
            {
              Object RESULT = null;
		 s.i.B = Mic1Instruction.B_MBRU ; 
              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(22/*b_term*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 71: // b_term ::= MBR 
            {
              Object RESULT = null;
		 s.i.B = Mic1Instruction.B_MBR ; 
              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(22/*b_term*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 70: // b_term ::= PC 
            {
              Object RESULT = null;
		 s.i.B = Mic1Instruction.B_PC ; 
              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(22/*b_term*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 69: // b_term ::= MDR 
            {
              Object RESULT = null;
		 s.i.B = Mic1Instruction.B_MDR ; 
              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(22/*b_term*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 68: // operation ::= ONE 
            {
              Object RESULT = null;
		 s.i.F0 = false ; s.i.F1 = true ;
   s.i.ENA = false ; s.i.ENB = false ; s.i.INVA = false ; s.i.INC = true ; 
              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(20/*operation*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 67: // operation ::= ZERO 
            {
              Object RESULT = null;
		 s.i.F0 = false ; s.i.F1 = true ;
   s.i.ENA = false ; s.i.ENB = false ; s.i.INVA = false ; s.i.INC = false ; 
              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(20/*operation*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 66: // operation ::= MINUS ONE 
            {
              Object RESULT = null;
		 s.i.F0 = false ; s.i.F1 = true ;
   s.i.ENA = false ; s.i.ENB = false ; s.i.INVA = true ; s.i.INC = false ; 
              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(20/*operation*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 65: // operation ::= a_term 
            {
              Object RESULT = null;
		 s.i.F0 = false ; s.i.F1 = true ;
   s.i.ENA = true ; s.i.ENB = false ; s.i.INVA = false ; s.i.INC = false ; 
              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(20/*operation*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 64: // operation ::= b_term 
            {
              Object RESULT = null;
		 s.i.F0 = false ; s.i.F1 = true ;
   s.i.ENA = false ; s.i.ENB = true ; s.i.INVA = false ; s.i.INC = false ; 
              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(20/*operation*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 63: // operation ::= a_term PLUS b_term PLUS ONE 
            {
              Object RESULT = null;
		 s.i.F0 = true ; s.i.F1 = true ; 
   s.i.ENA = true ; s.i.ENB = true ; s.i.INVA = false ; s.i.INC = true ; 
              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(20/*operation*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-4)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 62: // operation ::= b_term PLUS a_term PLUS ONE 
            {
              Object RESULT = null;
		 s.i.F0 = true ; s.i.F1 = true ; 
   s.i.ENA = true ; s.i.ENB = true ; s.i.INVA = false ; s.i.INC = true ; 
              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(20/*operation*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-4)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 61: // operation ::= b_term MINUS ONE 
            {
              Object RESULT = null;
		 s.i.F0 = true ; s.i.F1 = true ;
   s.i.ENA = false ; s.i.ENB = true ; s.i.INVA = true ; s.i.INC = false ; 
              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(20/*operation*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 60: // operation ::= MINUS a_term 
            {
              Object RESULT = null;
		 s.i.F0 = true ; s.i.F1 = true ;
   s.i.ENA = true ; s.i.ENB = false ; s.i.INVA = true ; s.i.INC = true ; 
              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(20/*operation*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 59: // operation ::= b_term MINUS a_term 
            {
              Object RESULT = null;
		 s.i.F0 = true ; s.i.F1 = true ;
   s.i.ENA = true ; s.i.ENB = true ; s.i.INVA = true ; s.i.INC = true ; 
              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(20/*operation*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 58: // operation ::= a_term PLUS ONE 
            {
              Object RESULT = null;
		 s.i.F0 = true ; s.i.F1 = true ;
   s.i.ENA = true ; s.i.ENB = false ; s.i.INVA = false ; s.i.INC = true ; 
              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(20/*operation*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 57: // operation ::= b_term PLUS ONE 
            {
              Object RESULT = null;
		 s.i.F0 = true ; s.i.F1 = true ;
   s.i.ENA = false ; s.i.ENB = true ; s.i.INVA = false ; s.i.INC = true ; 
              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(20/*operation*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 56: // operation ::= a_term PLUS b_term 
            {
              Object RESULT = null;
		 s.i.F0 = true ; s.i.F1 = true ;
   s.i.ENA = true ; s.i.ENB = true ; s.i.INVA = false ; s.i.INC = false ; 
              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(20/*operation*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 55: // operation ::= b_term PLUS a_term 
            {
              Object RESULT = null;
		 s.i.F0 = true ; s.i.F1 = true ;
   s.i.ENA = true ; s.i.ENB = true ; s.i.INVA = false ; s.i.INC = false ; 
              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(20/*operation*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 54: // operation ::= NOT a_term 
            {
              Object RESULT = null;
		 s.i.F0 = false ; s.i.F1 = true ;
   s.i.ENA = true ; s.i.ENB = false ; s.i.INVA = true ; s.i.INC = false ; 
              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(20/*operation*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 53: // operation ::= NOT b_term 
            {
              Object RESULT = null;
		 s.i.F0 = true ; s.i.F1 = false ;
   s.i.ENA = false ; s.i.ENB = true ; s.i.INVA = false ; s.i.INC = false ; 
              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(20/*operation*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 52: // operation ::= b_term OR a_term 
            {
              Object RESULT = null;
		 s.i.F0 = false ; s.i.F1 = true ;
   s.i.ENA = true ; s.i.ENB = true ; s.i.INVA = false ; s.i.INC = false ; 
              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(20/*operation*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 51: // operation ::= a_term OR b_term 
            {
              Object RESULT = null;
		 s.i.F0 = false ; s.i.F1 = true ;
   s.i.ENA = true ; s.i.ENB = true ; s.i.INVA = false ; s.i.INC = false ; 
              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(20/*operation*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 50: // operation ::= b_term AND a_term 
            {
              Object RESULT = null;
		 s.i.F0 = false ; s.i.F1 = false ;
   s.i.ENA = true ; s.i.ENB = true ; s.i.INVA = false ; s.i.INC = false ; 
              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(20/*operation*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 49: // operation ::= a_term AND b_term 
            {
              Object RESULT = null;
		 s.i.F0 = false ; s.i.F1 = false ;
   s.i.ENA = true ; s.i.ENB = true ; s.i.INVA = false ; s.i.INC = false ; 
              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(20/*operation*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 48: // expr ::= operation GREATERTHAN GREATERTHAN ONE 
            {
              Object RESULT = null;
		 s.i.SRA1 = true ; 
              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(19/*expr*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-3)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 47: // expr ::= operation LESSTHAN LESSTHAN EIGHT 
            {
              Object RESULT = null;
		 s.i.SLL8 = true ; 
              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(19/*expr*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-3)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 46: // expr ::= operation 
            {
              Object RESULT = null;

              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(19/*expr*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 45: // c_register ::= H 
            {
              Object RESULT = null;
		 s.i.H = true ; 
              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(18/*c_register*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 44: // c_register ::= OPC 
            {
              Object RESULT = null;
		 s.i.OPC = true ; 
              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(18/*c_register*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 43: // c_register ::= TOS 
            {
              Object RESULT = null;
		 s.i.TOS = true ; 
              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(18/*c_register*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 42: // c_register ::= CPP 
            {
              Object RESULT = null;
		 s.i.CPP = true ; 
              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(18/*c_register*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 41: // c_register ::= LV 
            {
              Object RESULT = null;
		 s.i.LV = true ; 
              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(18/*c_register*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 40: // c_register ::= SP 
            {
              Object RESULT = null;
		 s.i.SP = true ; 
              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(18/*c_register*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 39: // c_register ::= PC 
            {
              Object RESULT = null;
		 s.i.PC = true ; 
              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(18/*c_register*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 38: // c_register ::= MDR 
            {
              Object RESULT = null;
		 s.i.MDR = true ; 
              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(18/*c_register*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 37: // c_register ::= MAR 
            {
              Object RESULT = null;
		 s.i.MAR = true ; 
              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(18/*c_register*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 36: // target ::= Z 
            {
              Object RESULT = null;

              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(17/*target*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 35: // target ::= N 
            {
              Object RESULT = null;

              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(17/*target*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 34: // target ::= c_register 
            {
              Object RESULT = null;

              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(17/*target*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 33: // assignment_statement ::= expr 
            {
              Object RESULT = null;

              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(16/*assignment_statement*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 32: // assignment_statement ::= target EQUALS assignment_statement 
            {
              Object RESULT = null;

              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(16/*assignment_statement*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 31: // goto_statement ::= GOTO label 
            {
              Object RESULT = null;
		int lleft = ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).left;
		int lright = ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right;
		String l = (String)((java_cup.runtime.Symbol) CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).value;
		 s.gotoLabel = l ; 
              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(14/*goto_statement*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 30: // mb_expr ::= MBR 
            {
              Object RESULT = null;
		 s.i.NEXT_ADDRESS = 0 ; 
              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(13/*mb_expr*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 29: // mb_expr ::= MBR OR address 
            {
              Object RESULT = null;
		int aleft = ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).left;
		int aright = ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right;
		Integer a = (Integer)((java_cup.runtime.Symbol) CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).value;
		 s.i.NEXT_ADDRESS = a.intValue() ; 
              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(13/*mb_expr*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 28: // multiway_branch_statement ::= GOTO LPAREN mb_expr RPAREN 
            {
              Object RESULT = null;
		 s.i.JMPC = true ; 
              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(12/*multiway_branch_statement*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-3)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 27: // condition ::= Z 
            {
              Object RESULT = null;
		 s.i.JAMZ = true ; 
              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(11/*condition*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 26: // condition ::= N 
            {
              Object RESULT = null;
		 s.i.JAMN = true ; 
              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(11/*condition*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 25: // if_statement ::= IF LPAREN condition RPAREN GOTO label SEMI ELSE GOTO label 
            {
              Object RESULT = null;
		int gleft = ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-4)).left;
		int gright = ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-4)).right;
		String g = (String)((java_cup.runtime.Symbol) CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-4)).value;
		int eleft = ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).left;
		int eright = ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right;
		String e = (String)((java_cup.runtime.Symbol) CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).value;
		 s.gotoLabel = g ; s.elseLabel = e ; 
              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(10/*if_statement*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-9)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 24: // control_statement ::= goto_statement 
            {
              Object RESULT = null;
		 s.isGoto = true; 
              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(9/*control_statement*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 23: // control_statement ::= multiway_branch_statement 
            {
              Object RESULT = null;
		 s.isMultiway = true ; 
              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(9/*control_statement*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 22: // control_statement ::= if_statement 
            {
              Object RESULT = null;
		 s.isIf = true ; 
              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(9/*control_statement*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 21: // io_statement ::= fetch 
            {
              Object RESULT = null;
		 s.i.FETCH = true ; 
              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(8/*io_statement*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 20: // io_statement ::= wr 
            {
              Object RESULT = null;
		 s.i.WRITE = true ; 
              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(8/*io_statement*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 19: // io_statement ::= rd 
            {
              Object RESULT = null;
		 s.i.READ = true ; 
              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(8/*io_statement*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 18: // statement ::= nop_statement 
            {
              Object RESULT = null;

              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(7/*statement*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 17: // statement ::= assignment_statement 
            {
              Object RESULT = null;

              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(7/*statement*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 16: // statement ::= control_statement 
            {
              Object RESULT = null;

              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(7/*statement*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 15: // statement ::= io_statement 
            {
              Object RESULT = null;

              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(7/*statement*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 14: // statement_sequence ::= statement 
            {
              Object RESULT = null;

              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(6/*statement_sequence*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 13: // statement_sequence ::= statement SEMI 
            {
              Object RESULT = null;

              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(6/*statement_sequence*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 12: // statement_sequence ::= statement SEMI statement_sequence 
            {
              Object RESULT = null;

              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(6/*statement_sequence*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 11: // directive ::= DOTDEFAULT statement_sequence 
            {
              Object RESULT = null;
		 mic1parse.defaultStatement = s ; s = new Mic1Statement() ; 
              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(5/*directive*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 10: // directive ::= DOTLABEL label address 
            {
              Object RESULT = null;
		int lleft = ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-1)).left;
		int lright = ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-1)).right;
		String l = (String)((java_cup.runtime.Symbol) CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-1)).value;
		int aleft = ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).left;
		int aright = ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right;
		Integer a = (Integer)((java_cup.runtime.Symbol) CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).value;
		 mic1parse.add_label( l , a ) ; 
              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(5/*directive*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 9: // instruction ::= label 
            {
              Object RESULT = null;
		int lleft = ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).left;
		int lright = ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right;
		String l = (String)((java_cup.runtime.Symbol) CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).value;
		 s.label = l ; 
   mic1parse.add_statement( s ) ; s = new Mic1Statement() ; 
              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(4/*instruction*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 8: // instruction ::= statement_sequence 
            {
              Object RESULT = null;
		 s.label = new String( "%" + instructionCount ) ; 
   mic1parse.add_statement( s ) ; s = new Mic1Statement() ; 
              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(4/*instruction*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 7: // instruction ::= label statement_sequence 
            {
              Object RESULT = null;
		int lleft = ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-1)).left;
		int lright = ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-1)).right;
		String l = (String)((java_cup.runtime.Symbol) CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-1)).value;
		 s.label = l ; 
   mic1parse.add_statement( s ) ; s = new Mic1Statement() ; 
              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(4/*instruction*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 6: // line ::= EOL 
            {
              Object RESULT = null;

              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(3/*line*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 5: // line ::= directive EOL 
            {
              Object RESULT = null;

              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(3/*line*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 4: // line ::= instruction EOL 
            {
              Object RESULT = null;
		 instructionCount ++ ; 
              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(3/*line*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 3: // line_sequence ::= 
            {
              Object RESULT = null;

              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(2/*line_sequence*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 2: // line_sequence ::= line line_sequence 
            {
              Object RESULT = null;

              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(2/*line_sequence*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 1: // program ::= line_sequence 
            {
              Mic1Parse RESULT = null;
		 RESULT = mic1parse ; 
              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(1/*program*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          return CUP$Mic1Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 0: // $START ::= program EOF 
            {
              Object RESULT = null;
		int start_valleft = ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-1)).left;
		int start_valright = ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-1)).right;
		Mic1Parse start_val = (Mic1Parse)((java_cup.runtime.Symbol) CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-1)).value;
		RESULT = start_val;
              CUP$Mic1Parser$result = new java_cup.runtime.Symbol(0/*$START*/, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$Mic1Parser$stack.elementAt(CUP$Mic1Parser$top-0)).right, RESULT);
            }
          /* ACCEPT */
          CUP$Mic1Parser$parser.done_parsing();
          return CUP$Mic1Parser$result;

          /* . . . . . .*/
          default:
            throw new Exception(
               "Invalid action number found in internal parse table");

        }
    }
}

