public static String parseAction(String stmts, int funcType, int funcNum)
      throws RecognitionException, TokenStreamException {
    // m_requiresClear = true;
    m_funcType = funcType;
    m_funcNum = funcNum;
    OalLexer lexer = new OalLexer(new StringReader(stmts));
    OalParser parser;
    parser = new OalParser(arrayModelRoot, lexer);
    try {
      switch (funcType) {
        case ACTIVITY_TYPE_FUNC:
          parser.m_oal_context = new Oal_validate(ContainerUtil.getContainer(m_testFunc[funcNum]));
          m_testFunc[funcNum].setAction_semantics_internal(stmts);
          parser.action(m_testFunc[funcNum].getSync_id(), Oalconstants_c.FUNCTION_TYPE);
          break;
        case ACTIVITY_TYPE_BRG:
          parser.m_oal_context = new Oal_validate(ContainerUtil.getContainer(m_testBrg[funcNum]));
          m_testBrg[funcNum].setAction_semantics_internal(stmts);
          parser.action(m_testBrg[funcNum].getBrg_id(), Oalconstants_c.BRIDGE_TYPE);
          break;
        case ACTIVITY_TYPE_CB_OP:
          parser.m_oal_context = new Oal_validate(ContainerUtil.getContainer(m_testCBTfr[funcNum]));
          m_testCBTfr[funcNum].setAction_semantics_internal(stmts);
          parser.action(m_testCBTfr[funcNum].getTfr_id(), Oalconstants_c.OPERATION_TYPE);
          break;
        case ACTIVITY_TYPE_INT_RO:
          parser.m_oal_context =
              new Oal_validate(ContainerUtil.getContainer(m_testReqOpr[funcNum]));
          m_testReqOpr[funcNum].setAction_semantics_internal(stmts);
          parser.action(m_testReqOpr[funcNum].getId(), Oalconstants_c.REQ_OPERATION_TYPE);
          break;
        case ACTIVITY_TYPE_INT_PO:
          parser.m_oal_context =
              new Oal_validate(ContainerUtil.getContainer(m_testProvOpr[funcNum]));
          m_testProvOpr[funcNum].setAction_semantics_internal(stmts);
          parser.action(m_testProvOpr[funcNum].getId(), Oalconstants_c.PROV_OPERATION_TYPE);
          break;

        case ACTIVITY_TYPE_ArraySTATE:
          parser.m_oal_context =
              new Oal_validate(ContainerUtil.getContainer(m_arrayStateAction[funcNum]));
          TransitionActionBody_c tab2 =
              TransitionActionBody_c.getOneACT_TABOnR688(m_arrayStateAction[funcNum]);
          if (tab2 != null) {
            Body_c body = Body_c.getOneACT_ACTOnR698(tab2);
            body.Dispose();
          }
          m_arrayStateAction[funcNum].setAction_semantics_internal(stmts);
          parser.action(m_arrayStateAction[funcNum].getAct_id(), Oalconstants_c.STATE_TYPE);
          break;
        default:
          fail("parseAction: Unknown Activity type constant");
      }
    } catch (TokenStreamException e) {
      Block_c.Clearcurrentscope(arrayModelRoot, parser.m_oal_context.m_act_id);
      if (e instanceof TokenStreamRecognitionException) {
        TokenStreamRecognitionException tsre = (TokenStreamRecognitionException) e;
        parser.reportError(tsre.recog);
      } else {
        fail("Token stream exception in parser");
      }
    } catch (RecognitionException e) {
      Block_c.Clearcurrentscope(arrayModelRoot, parser.m_oal_context.m_act_id);
      parser.reportError(e);
    } catch (InterruptedException ie) {
    }
    return parser.m_output;
  }
 public static String parseAction(String stmts, int funcType, int funcNum) {
   m_requiresClear = true;
   m_funcType = funcType;
   m_funcNum = funcNum;
   OalLexer lexer = new OalLexer(new StringReader(stmts));
   OalParser parser = new OalParser(modelRoot, lexer);
   try {
     switch (funcType) {
       case ACTIVITY_TYPE_FUNC:
         parser.m_oal_context = new Oal_validate(ContainerUtil.getContainer(m_testFunc[funcNum]));
         m_testFunc[funcNum].setAction_semantics_internal(stmts);
         parser.action(m_testFunc[funcNum].getSync_id(), Oalconstants_c.FUNCTION_TYPE);
         break;
       case ACTIVITY_TYPE_BRG:
         parser.m_oal_context = new Oal_validate(ContainerUtil.getContainer(m_testBrg[funcNum]));
         m_testBrg[funcNum].setAction_semantics_internal(stmts);
         parser.action(m_testBrg[funcNum].getBrg_id(), Oalconstants_c.BRIDGE_TYPE);
         break;
       case ACTIVITY_TYPE_CB_OP:
         parser.m_oal_context = new Oal_validate(ContainerUtil.getContainer(m_testCBTfr[funcNum]));
         m_testCBTfr[funcNum].setAction_semantics_internal(stmts);
         parser.action(m_testCBTfr[funcNum].getTfr_id(), Oalconstants_c.OPERATION_TYPE);
         break;
       case ACTIVITY_TYPE_IB_OP:
         parser.m_oal_context = new Oal_validate(ContainerUtil.getContainer(m_testIBTfr[funcNum]));
         m_testIBTfr[funcNum].setAction_semantics_internal(stmts);
         parser.action(m_testIBTfr[funcNum].getTfr_id(), Oalconstants_c.OPERATION_TYPE);
         break;
       case ACTIVITY_TYPE_MDA:
         parser.m_oal_context = new Oal_validate(ContainerUtil.getContainer(m_testMDA[funcNum]));
         m_testMDA[funcNum].setAction_semantics_internal(stmts);
         parser.action(m_testMDA[funcNum].getAttr_id(), Oalconstants_c.MDA_TYPE);
         break;
       case ACTIVITY_TYPE_STATE:
         parser.m_oal_context =
             new Oal_validate(ContainerUtil.getContainer(m_testAction[funcNum]));
         TransitionActionBody_c tab =
             TransitionActionBody_c.getOneACT_TABOnR688(m_testAction[funcNum]);
         if (tab != null) {
           Body_c body = Body_c.getOneACT_ACTOnR698(tab);
           body.Dispose();
         }
         m_testAction[funcNum].setAction_semantics_internal(stmts);
         parser.action(m_testAction[funcNum].getAct_id(), Oalconstants_c.STATE_TYPE);
         break;
       case ACTIVITY_TYPE_TRANSITION:
         parser.m_oal_context =
             new Oal_validate(ContainerUtil.getContainer(m_testAction[funcNum]));
         // This test action can have both forms of Action body associated
         StateActionBody_c sab = StateActionBody_c.getOneACT_SABOnR691(m_testAction[funcNum]);
         if (sab != null) {
           Body_c body = Body_c.getOneACT_ACTOnR698(sab);
           body.Dispose();
         }
         m_testAction[funcNum].setAction_semantics_internal(stmts);
         parser.action(m_testAction[funcNum].getAct_id(), Oalconstants_c.TRANSITION_TYPE);
         break;
       default:
         fail("parseAction: Unknown Activity type constant");
     }
   } catch (TokenStreamException e) {
     Block_c.Clearcurrentscope(modelRoot, parser.m_oal_context.m_act_id);
     if (e instanceof TokenStreamRecognitionException) {
       TokenStreamRecognitionException tsre = (TokenStreamRecognitionException) e;
       parser.reportError(tsre.recog);
     } else {
       fail("Token stream exception in parser");
     }
   } catch (RecognitionException e) {
     Block_c.Clearcurrentscope(modelRoot, parser.m_oal_context.m_act_id);
     parser.reportError(e);
   } catch (InterruptedException ie) {
   }
   return parser.m_output;
 }