/*
 File: test_components.cpp
 Date and Time: Fri Jan 30 18:55:27 2015 
*/
#include "test_components.h"
using namespace NS_yacco2_T_enum;// enumerate
using namespace NS_yacco2_err_symbols;// error symbols
using namespace NS_yacco2_k_symbols;// lrk 
using namespace NS_yacco2_terminals;// terminals
using namespace NS_yacco2_characters;// rc 
using namespace yacco2;// yacco2 library
using namespace NS_test_components;// grammar's ns
// first set terminals
fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
 no_rules_entries_ = 8;
 per_rule_s_table_[0] =  new Per_rule_s_reuse_table();
 per_rule_s_table_[1] =  new Per_rule_s_reuse_table();
 per_rule_s_table_[2] =  new Per_rule_s_reuse_table();
 per_rule_s_table_[3] =  new Per_rule_s_reuse_table();
 per_rule_s_table_[4] =  new Per_rule_s_reuse_table();
 per_rule_s_table_[5] =  new Per_rule_s_reuse_table();
 per_rule_s_table_[6] =  new Per_rule_s_reuse_table();
 per_rule_s_table_[7] =  new Per_rule_s_reuse_table();
}
  Ctest_components::
  Ctest_components()
    :yacco2::CAbs_fsm
      ("test_components.lex"
      ,"1.0"
      ,"17 Apr 2001"
      ,true
      ,"Tester: lexical stage constructing tokens for syntax parser."
      ,"Fri Jan 30 18:55:27 2015 "
      ,S1_Ctest_components){
    
  }
 
Ctest_components::~Ctest_components(){

  for(int x = 0;x < 8;++x){
   ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
  }
} 

  bool Ctest_components::failed(){
      return false;
  }
  void Ctest_components::op(){
}
int Ctest_components::rhs_to_rules_mapping_[69] = {
 -1
 ,0 // subrule 1 for rule 1
 ,0 // subrule 2 for rule 1
 ,1 // subrule 3 for rule 2
 ,1 // subrule 4 for rule 2
 ,2 // subrule 5 for rule 3
 ,2 // subrule 6 for rule 3
 ,2 // subrule 7 for rule 3
 ,2 // subrule 8 for rule 3
 ,2 // subrule 9 for rule 3
 ,3 // subrule 10 for rule 4
 ,3 // subrule 11 for rule 4
 ,3 // subrule 12 for rule 4
 ,3 // subrule 13 for rule 4
 ,3 // subrule 14 for rule 4
 ,3 // subrule 15 for rule 4
 ,3 // subrule 16 for rule 4
 ,3 // subrule 17 for rule 4
 ,3 // subrule 18 for rule 4
 ,3 // subrule 19 for rule 4
 ,3 // subrule 20 for rule 4
 ,3 // subrule 21 for rule 4
 ,3 // subrule 22 for rule 4
 ,3 // subrule 23 for rule 4
 ,4 // subrule 24 for rule 5
 ,4 // subrule 25 for rule 5
 ,4 // subrule 26 for rule 5
 ,4 // subrule 27 for rule 5
 ,4 // subrule 28 for rule 5
 ,4 // subrule 29 for rule 5
 ,4 // subrule 30 for rule 5
 ,4 // subrule 31 for rule 5
 ,4 // subrule 32 for rule 5
 ,4 // subrule 33 for rule 5
 ,4 // subrule 34 for rule 5
 ,4 // subrule 35 for rule 5
 ,5 // subrule 36 for rule 6
 ,5 // subrule 37 for rule 6
 ,5 // subrule 38 for rule 6
 ,5 // subrule 39 for rule 6
 ,5 // subrule 40 for rule 6
 ,5 // subrule 41 for rule 6
 ,5 // subrule 42 for rule 6
 ,5 // subrule 43 for rule 6
 ,5 // subrule 44 for rule 6
 ,5 // subrule 45 for rule 6
 ,5 // subrule 46 for rule 6
 ,5 // subrule 47 for rule 6
 ,5 // subrule 48 for rule 6
 ,5 // subrule 49 for rule 6
 ,6 // subrule 50 for rule 7
 ,6 // subrule 51 for rule 7
 ,6 // subrule 52 for rule 7
 ,6 // subrule 53 for rule 7
 ,6 // subrule 54 for rule 7
 ,6 // subrule 55 for rule 7
 ,6 // subrule 56 for rule 7
 ,6 // subrule 57 for rule 7
 ,6 // subrule 58 for rule 7
 ,6 // subrule 59 for rule 7
 ,6 // subrule 60 for rule 7
 ,6 // subrule 61 for rule 7
 ,6 // subrule 62 for rule 7
 ,6 // subrule 63 for rule 7
 ,6 // subrule 64 for rule 7
 ,7 // subrule 65 for rule 8
 ,7 // subrule 66 for rule 8
 ,7 // subrule 67 for rule 8
 ,7 // subrule 68 for rule 8
}; 
Rpass3::Rpass3(yacco2::Parser* P)
 :CAbs_lr1_sym
  ("Rpass3",0,Ctest_components::R_Rpass3_,P,false,false){
}

void Rpass3::op(){
  sstrace_rulesss
 
    using namespace NS_yacco2_k_symbols;
    ADD_TOKEN_TO_PRODUCER_QUEUE(*yacco2::PTR_LR1_eog__);   
    ADD_TOKEN_TO_PRODUCER_QUEUE(*yacco2::PTR_LR1_eog__);  
  
}
Relems::Relems(yacco2::Parser* P)
 :CAbs_lr1_sym
  ("Relems",0,Ctest_components::R_Relems_,P,false,false){
}

Rtoken::Rtoken(yacco2::Parser* P)
 :CAbs_lr1_sym
  ("Rtoken",0,Ctest_components::R_Rtoken_,P,false,false){
}

yacco2::THR _YACCO2_CALL_TYPE
NS_test_components::AR_Rtoken_grp1(yacco2::Parser* Caller_pp){
 yacco2::KCHARP ar_name = "AR_Rtoken_grp1";
#include "war_begin_code.h"
 
	using namespace NS_yacco2_T_enum;
 int kw_id(0);
 int kw_id_len(0);
 int unstr(0);
 int unstr_len(0);
   for(i=1;i<=ie;++i){
     switch(Caller_pp->pp_accept_queue__[i].accept_token__->enumerated_id__){
      case T_Enum::T_T_unquoted_string_:{
         unstr=i;
        T_unquoted_string* unq = 
         (T_unquoted_string*)Caller_pp->pp_accept_queue__[i].accept_token__;
        unstr_len = unq->unquoted_string()->size(); 
        continue;     
      }
      case T_Enum::T_T_identifier_:{
         kw_id=i;
        T_identifier* id = (T_identifier*)Caller_pp->pp_accept_queue__[i].accept_token__;
        kw_id_len = id->identifier()->size(); 
        continue;     
      }
      default:{
        kw_id=i;
        kw_id_len = 4048;//fake it: too many kws so make it longest 
        continue;     
      }

     }
   }
   // out of for loop
   if(unstr_len > kw_id_len){
    i = unstr;
    goto arbitrated_parameter;
   }else{
    i = kw_id;
    goto arbitrated_parameter;
	  }
  
#include "war_end_code.h"
}

Rtoken_grp1::Rtoken_grp1(yacco2::Parser* P)
 :CAbs_lr1_sym
  ("Rtoken_grp1",0,Ctest_components::R_Rtoken_grp1_,P,false,false){
}

void Rtoken_grp1::sr1(){
  struct SF{
   LR1_parallel_operator* p1__;
   State* s1__;
   bool abort1__;
   Rule_s_reuse_entry* rule_s_reuse_entry1__;
   T_eocode* p2__;
   State* s2__;
   bool abort2__;
   Rule_s_reuse_entry* rule_s_reuse_entry2__;
  };
  SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
  
      ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
    
}

void Rtoken_grp1::sr2(){
  struct SF{
   LR1_parallel_operator* p1__;
   State* s1__;
   bool abort1__;
   Rule_s_reuse_entry* rule_s_reuse_entry1__;
   T_angled_string* p2__;
   State* s2__;
   bool abort2__;
   Rule_s_reuse_entry* rule_s_reuse_entry2__;
  };
  SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
  
      ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
    
}

void Rtoken_grp1::sr3(){
  struct SF{
   LR1_parallel_operator* p1__;
   State* s1__;
   bool abort1__;
   Rule_s_reuse_entry* rule_s_reuse_entry1__;
   Err_bad_char* p2__;
   State* s2__;
   bool abort2__;
   Rule_s_reuse_entry* rule_s_reuse_entry2__;
  };
  SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
  
      ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
    
}

void Rtoken_grp1::sr4(){
  struct SF{
   LR1_parallel_operator* p1__;
   State* s1__;
   bool abort1__;
   Rule_s_reuse_entry* rule_s_reuse_entry1__;
   T_comment* p2__;
   State* s2__;
   bool abort2__;
   Rule_s_reuse_entry* rule_s_reuse_entry2__;
  };
  SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
  
      ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
    
}

void Rtoken_grp1::sr5(){
  struct SF{
   LR1_parallel_operator* p1__;
   State* s1__;
   bool abort1__;
   Rule_s_reuse_entry* rule_s_reuse_entry1__;
   T_c_literal* p2__;
   State* s2__;
   bool abort2__;
   Rule_s_reuse_entry* rule_s_reuse_entry2__;
  };
  SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
  
      ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
    
}

void Rtoken_grp1::sr6(){
  struct SF{
   LR1_parallel_operator* p1__;
   State* s1__;
   bool abort1__;
   Rule_s_reuse_entry* rule_s_reuse_entry1__;
   T_c_string* p2__;
   State* s2__;
   bool abort2__;
   Rule_s_reuse_entry* rule_s_reuse_entry2__;
  };
  SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
  
      ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
    
}

void Rtoken_grp1::sr7(){
  struct SF{
   LR1_parallel_operator* p1__;
   State* s1__;
   bool abort1__;
   Rule_s_reuse_entry* rule_s_reuse_entry1__;
   T_2colon* p2__;
   State* s2__;
   bool abort2__;
   Rule_s_reuse_entry* rule_s_reuse_entry2__;
  };
  SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
  
      ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
    
}

void Rtoken_grp1::sr8(){
  struct SF{
   LR1_parallel_operator* p1__;
   State* s1__;
   bool abort1__;
   Rule_s_reuse_entry* rule_s_reuse_entry1__;
   T_eol* p2__;
   State* s2__;
   bool abort2__;
   Rule_s_reuse_entry* rule_s_reuse_entry2__;
  };
  SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
   // token stream marker
      ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
    
}

void Rtoken_grp1::sr9(){
  struct SF{
   LR1_parallel_operator* p1__;
   State* s1__;
   bool abort1__;
   Rule_s_reuse_entry* rule_s_reuse_entry1__;
   T_esc_seq* p2__;
   State* s2__;
   bool abort2__;
   Rule_s_reuse_entry* rule_s_reuse_entry2__;
  };
  SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
   // token stream marker
      ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
    
}

void Rtoken_grp1::sr10(){
  struct SF{
   LR1_parallel_operator* p1__;
   State* s1__;
   bool abort1__;
   Rule_s_reuse_entry* rule_s_reuse_entry1__;
   T_identifier* p2__;
   State* s2__;
   bool abort2__;
   Rule_s_reuse_entry* rule_s_reuse_entry2__;
  };
  SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
  
      ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
    
}

void Rtoken_grp1::sr11(){
  struct SF{
   LR1_parallel_operator* p1__;
   State* s1__;
   bool abort1__;
   Rule_s_reuse_entry* rule_s_reuse_entry1__;
   T_int_no* p2__;
   State* s2__;
   bool abort2__;
   Rule_s_reuse_entry* rule_s_reuse_entry2__;
  };
  SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
  
      ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
    
}

void Rtoken_grp1::sr12(){
  struct SF{
   LR1_parallel_operator* p1__;
   State* s1__;
   bool abort1__;
   Rule_s_reuse_entry* rule_s_reuse_entry1__;
   T_ws* p2__;
   State* s2__;
   bool abort2__;
   Rule_s_reuse_entry* rule_s_reuse_entry2__;
  };
  SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
   
      ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
    
}

void Rtoken_grp1::sr13(){
  struct SF{
   LR1_parallel_operator* p1__;
   State* s1__;
   bool abort1__;
   Rule_s_reuse_entry* rule_s_reuse_entry1__;
   T_unquoted_string* p2__;
   State* s2__;
   bool abort2__;
   Rule_s_reuse_entry* rule_s_reuse_entry2__;
  };
  SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
   
      ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
    
}

void Rtoken_grp1::sr14(){
  struct SF{
   LR1_parallel_operator* p1__;
   State* s1__;
   bool abort1__;
   Rule_s_reuse_entry* rule_s_reuse_entry1__;
   CAbs_lr1_sym* p2__;
   State* s2__;
   bool abort2__;
   Rule_s_reuse_entry* rule_s_reuse_entry2__;
  };
  SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
  
      ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
      rule_info__.parser__->set_abort_parse(true);      
    
}

Rtoken_grp2::Rtoken_grp2(yacco2::Parser* P)
 :CAbs_lr1_sym
  ("Rtoken_grp2",0,Ctest_components::R_Rtoken_grp2_,P,false,false){
}

void Rtoken_grp2::sr1(){
  struct SF{
   LR1_parallel_operator* p1__;
   State* s1__;
   bool abort1__;
   Rule_s_reuse_entry* rule_s_reuse_entry1__;
   Err_bad_eos* p2__;
   State* s2__;
   bool abort2__;
   Rule_s_reuse_entry* rule_s_reuse_entry2__;
  };
  SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
  
      ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
      rule_info__.parser__->set_abort_parse(true);
    
}

void Rtoken_grp2::sr2(){
  struct SF{
   LR1_parallel_operator* p1__;
   State* s1__;
   bool abort1__;
   Rule_s_reuse_entry* rule_s_reuse_entry1__;
   Err_comment_overrun* p2__;
   State* s2__;
   bool abort2__;
   Rule_s_reuse_entry* rule_s_reuse_entry2__;
  };
  SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
  
      ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
      rule_info__.parser__->set_abort_parse(true);
    
}

void Rtoken_grp2::sr3(){
  struct SF{
   LR1_parallel_operator* p1__;
   State* s1__;
   bool abort1__;
   Rule_s_reuse_entry* rule_s_reuse_entry1__;
   Err_bad_esc* p2__;
   State* s2__;
   bool abort2__;
   Rule_s_reuse_entry* rule_s_reuse_entry2__;
  };
  SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
  
      ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
      rule_info__.parser__->set_abort_parse(true);
    
}

void Rtoken_grp2::sr4(){
  struct SF{
   LR1_parallel_operator* p1__;
   State* s1__;
   bool abort1__;
   Rule_s_reuse_entry* rule_s_reuse_entry1__;
   T_fsm* p2__;
   State* s2__;
   bool abort2__;
   Rule_s_reuse_entry* rule_s_reuse_entry2__;
  };
  SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
  
      ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
    
}

void Rtoken_grp2::sr5(){
  struct SF{
   LR1_parallel_operator* p1__;
   State* s1__;
   bool abort1__;
   Rule_s_reuse_entry* rule_s_reuse_entry1__;
   T_fsm_id* p2__;
   State* s2__;
   bool abort2__;
   Rule_s_reuse_entry* rule_s_reuse_entry2__;
  };
  SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
  
      ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
    
}

void Rtoken_grp2::sr6(){
  struct SF{
   LR1_parallel_operator* p1__;
   State* s1__;
   bool abort1__;
   Rule_s_reuse_entry* rule_s_reuse_entry1__;
   T_fsm_filename* p2__;
   State* s2__;
   bool abort2__;
   Rule_s_reuse_entry* rule_s_reuse_entry2__;
  };
  SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
  
      ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
    
}

void Rtoken_grp2::sr7(){
  struct SF{
   LR1_parallel_operator* p1__;
   State* s1__;
   bool abort1__;
   Rule_s_reuse_entry* rule_s_reuse_entry1__;
   T_fsm_namespace* p2__;
   State* s2__;
   bool abort2__;
   Rule_s_reuse_entry* rule_s_reuse_entry2__;
  };
  SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
  
      ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
    
}

void Rtoken_grp2::sr8(){
  struct SF{
   LR1_parallel_operator* p1__;
   State* s1__;
   bool abort1__;
   Rule_s_reuse_entry* rule_s_reuse_entry1__;
   T_fsm_class* p2__;
   State* s2__;
   bool abort2__;
   Rule_s_reuse_entry* rule_s_reuse_entry2__;
  };
  SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
  
      ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
    
}

void Rtoken_grp2::sr9(){
  struct SF{
   LR1_parallel_operator* p1__;
   State* s1__;
   bool abort1__;
   Rule_s_reuse_entry* rule_s_reuse_entry1__;
   T_fsm_version* p2__;
   State* s2__;
   bool abort2__;
   Rule_s_reuse_entry* rule_s_reuse_entry2__;
  };
  SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
  
      ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
    
}

void Rtoken_grp2::sr10(){
  struct SF{
   LR1_parallel_operator* p1__;
   State* s1__;
   bool abort1__;
   Rule_s_reuse_entry* rule_s_reuse_entry1__;
   T_fsm_date* p2__;
   State* s2__;
   bool abort2__;
   Rule_s_reuse_entry* rule_s_reuse_entry2__;
  };
  SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
  
      ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
    
}

void Rtoken_grp2::sr11(){
  struct SF{
   LR1_parallel_operator* p1__;
   State* s1__;
   bool abort1__;
   Rule_s_reuse_entry* rule_s_reuse_entry1__;
   T_fsm_debug* p2__;
   State* s2__;
   bool abort2__;
   Rule_s_reuse_entry* rule_s_reuse_entry2__;
  };
  SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
  
      ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
    
}

void Rtoken_grp2::sr12(){
  struct SF{
   LR1_parallel_operator* p1__;
   State* s1__;
   bool abort1__;
   Rule_s_reuse_entry* rule_s_reuse_entry1__;
   T_fsm_comments* p2__;
   State* s2__;
   bool abort2__;
   Rule_s_reuse_entry* rule_s_reuse_entry2__;
  };
  SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
  
      ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
    
}

Rtoken_grp3::Rtoken_grp3(yacco2::Parser* P)
 :CAbs_lr1_sym
  ("Rtoken_grp3",0,Ctest_components::R_Rtoken_grp3_,P,false,false){
}

void Rtoken_grp3::sr1(){
  struct SF{
   LR1_parallel_operator* p1__;
   State* s1__;
   bool abort1__;
   Rule_s_reuse_entry* rule_s_reuse_entry1__;
   T_raw_characters* p2__;
   State* s2__;
   bool abort2__;
   Rule_s_reuse_entry* rule_s_reuse_entry2__;
  };
  SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
  
      ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
    
}

void Rtoken_grp3::sr2(){
  struct SF{
   LR1_parallel_operator* p1__;
   State* s1__;
   bool abort1__;
   Rule_s_reuse_entry* rule_s_reuse_entry1__;
   T_lr1_constant_symbols* p2__;
   State* s2__;
   bool abort2__;
   Rule_s_reuse_entry* rule_s_reuse_entry2__;
  };
  SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
  
      ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
    
}

void Rtoken_grp3::sr3(){
  struct SF{
   LR1_parallel_operator* p1__;
   State* s1__;
   bool abort1__;
   Rule_s_reuse_entry* rule_s_reuse_entry1__;
   T_error_symbols* p2__;
   State* s2__;
   bool abort2__;
   Rule_s_reuse_entry* rule_s_reuse_entry2__;
  };
  SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
  
      ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
    
}

void Rtoken_grp3::sr4(){
  struct SF{
   LR1_parallel_operator* p1__;
   State* s1__;
   bool abort1__;
   Rule_s_reuse_entry* rule_s_reuse_entry1__;
   T_AD* p2__;
   State* s2__;
   bool abort2__;
   Rule_s_reuse_entry* rule_s_reuse_entry2__;
  };
  SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
  
      ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
    
}

void Rtoken_grp3::sr5(){
  struct SF{
   LR1_parallel_operator* p1__;
   State* s1__;
   bool abort1__;
   Rule_s_reuse_entry* rule_s_reuse_entry1__;
   T_AB* p2__;
   State* s2__;
   bool abort2__;
   Rule_s_reuse_entry* rule_s_reuse_entry2__;
  };
  SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
  
      ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
    
}

void Rtoken_grp3::sr6(){
  struct SF{
   LR1_parallel_operator* p1__;
   State* s1__;
   bool abort1__;
   Rule_s_reuse_entry* rule_s_reuse_entry1__;
   T_parallel_parser* p2__;
   State* s2__;
   bool abort2__;
   Rule_s_reuse_entry* rule_s_reuse_entry2__;
  };
  SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
  
      ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
    
}

void Rtoken_grp3::sr7(){
  struct SF{
   LR1_parallel_operator* p1__;
   State* s1__;
   bool abort1__;
   Rule_s_reuse_entry* rule_s_reuse_entry1__;
   T_parallel_la_boundary* p2__;
   State* s2__;
   bool abort2__;
   Rule_s_reuse_entry* rule_s_reuse_entry2__;
  };
  SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
  
      ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
    
}

void Rtoken_grp3::sr8(){
  struct SF{
   LR1_parallel_operator* p1__;
   State* s1__;
   bool abort1__;
   Rule_s_reuse_entry* rule_s_reuse_entry1__;
   T_parallel_thread_function* p2__;
   State* s2__;
   bool abort2__;
   Rule_s_reuse_entry* rule_s_reuse_entry2__;
  };
  SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
  
      ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
    
}

void Rtoken_grp3::sr9(){
  struct SF{
   LR1_parallel_operator* p1__;
   State* s1__;
   bool abort1__;
   Rule_s_reuse_entry* rule_s_reuse_entry1__;
   T_parallel_control_monitor* p2__;
   State* s2__;
   bool abort2__;
   Rule_s_reuse_entry* rule_s_reuse_entry2__;
  };
  SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
  
      ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
    
}

void Rtoken_grp3::sr10(){
  struct SF{
   LR1_parallel_operator* p1__;
   State* s1__;
   bool abort1__;
   Rule_s_reuse_entry* rule_s_reuse_entry1__;
   T_terminals* p2__;
   State* s2__;
   bool abort2__;
   Rule_s_reuse_entry* rule_s_reuse_entry2__;
  };
  SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
  
      ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
    
}

void Rtoken_grp3::sr11(){
  struct SF{
   LR1_parallel_operator* p1__;
   State* s1__;
   bool abort1__;
   Rule_s_reuse_entry* rule_s_reuse_entry1__;
   T_enumeration* p2__;
   State* s2__;
   bool abort2__;
   Rule_s_reuse_entry* rule_s_reuse_entry2__;
  };
  SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
  
      ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
    
}

void Rtoken_grp3::sr12(){
  struct SF{
   LR1_parallel_operator* p1__;
   State* s1__;
   bool abort1__;
   Rule_s_reuse_entry* rule_s_reuse_entry1__;
   T_file_name* p2__;
   State* s2__;
   bool abort2__;
   Rule_s_reuse_entry* rule_s_reuse_entry2__;
  };
  SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
  
      ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
    
}

void Rtoken_grp3::sr13(){
  struct SF{
   LR1_parallel_operator* p1__;
   State* s1__;
   bool abort1__;
   Rule_s_reuse_entry* rule_s_reuse_entry1__;
   T_name_space* p2__;
   State* s2__;
   bool abort2__;
   Rule_s_reuse_entry* rule_s_reuse_entry2__;
  };
  SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
  
      ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
    
}

void Rtoken_grp3::sr14(){
  struct SF{
   LR1_parallel_operator* p1__;
   State* s1__;
   bool abort1__;
   Rule_s_reuse_entry* rule_s_reuse_entry1__;
   T_sym_class* p2__;
   State* s2__;
   bool abort2__;
   Rule_s_reuse_entry* rule_s_reuse_entry2__;
  };
  SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
  
      ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
    
}

Rtoken_grp4::Rtoken_grp4(yacco2::Parser* P)
 :CAbs_lr1_sym
  ("Rtoken_grp4",0,Ctest_components::R_Rtoken_grp4_,P,false,false){
}

void Rtoken_grp4::sr1(){
  struct SF{
   LR1_parallel_operator* p1__;
   State* s1__;
   bool abort1__;
   Rule_s_reuse_entry* rule_s_reuse_entry1__;
   T_rules* p2__;
   State* s2__;
   bool abort2__;
   Rule_s_reuse_entry* rule_s_reuse_entry2__;
  };
  SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
  
      ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
    
}

void Rtoken_grp4::sr2(){
  struct SF{
   LR1_parallel_operator* p1__;
   State* s1__;
   bool abort1__;
   Rule_s_reuse_entry* rule_s_reuse_entry1__;
   T_lhs* p2__;
   State* s2__;
   bool abort2__;
   Rule_s_reuse_entry* rule_s_reuse_entry2__;
  };
  SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
  
      ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
    
}

void Rtoken_grp4::sr3(){
  struct SF{
   LR1_parallel_operator* p1__;
   State* s1__;
   bool abort1__;
   Rule_s_reuse_entry* rule_s_reuse_entry1__;
   T_user_declaration* p2__;
   State* s2__;
   bool abort2__;
   Rule_s_reuse_entry* rule_s_reuse_entry2__;
  };
  SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
  
      ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
    
}

void Rtoken_grp4::sr4(){
  struct SF{
   LR1_parallel_operator* p1__;
   State* s1__;
   bool abort1__;
   Rule_s_reuse_entry* rule_s_reuse_entry1__;
   T_user_prefix_declaration* p2__;
   State* s2__;
   bool abort2__;
   Rule_s_reuse_entry* rule_s_reuse_entry2__;
  };
  SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
  
      ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
    
}

void Rtoken_grp4::sr5(){
  struct SF{
   LR1_parallel_operator* p1__;
   State* s1__;
   bool abort1__;
   Rule_s_reuse_entry* rule_s_reuse_entry1__;
   T_user_suffix_declaration* p2__;
   State* s2__;
   bool abort2__;
   Rule_s_reuse_entry* rule_s_reuse_entry2__;
  };
  SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
  
      ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
    
}

void Rtoken_grp4::sr6(){
  struct SF{
   LR1_parallel_operator* p1__;
   State* s1__;
   bool abort1__;
   Rule_s_reuse_entry* rule_s_reuse_entry1__;
   T_constructor* p2__;
   State* s2__;
   bool abort2__;
   Rule_s_reuse_entry* rule_s_reuse_entry2__;
  };
  SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
  
      ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
    
}

void Rtoken_grp4::sr7(){
  struct SF{
   LR1_parallel_operator* p1__;
   State* s1__;
   bool abort1__;
   Rule_s_reuse_entry* rule_s_reuse_entry1__;
   T_destructor* p2__;
   State* s2__;
   bool abort2__;
   Rule_s_reuse_entry* rule_s_reuse_entry2__;
  };
  SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
  
      ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
    
}

void Rtoken_grp4::sr8(){
  struct SF{
   LR1_parallel_operator* p1__;
   State* s1__;
   bool abort1__;
   Rule_s_reuse_entry* rule_s_reuse_entry1__;
   T_op* p2__;
   State* s2__;
   bool abort2__;
   Rule_s_reuse_entry* rule_s_reuse_entry2__;
  };
  SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
  
      ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
    
}

void Rtoken_grp4::sr9(){
  struct SF{
   LR1_parallel_operator* p1__;
   State* s1__;
   bool abort1__;
   Rule_s_reuse_entry* rule_s_reuse_entry1__;
   T_user_implementation* p2__;
   State* s2__;
   bool abort2__;
   Rule_s_reuse_entry* rule_s_reuse_entry2__;
  };
  SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
  
      ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
    
}

void Rtoken_grp4::sr10(){
  struct SF{
   LR1_parallel_operator* p1__;
   State* s1__;
   bool abort1__;
   Rule_s_reuse_entry* rule_s_reuse_entry1__;
   T_user_imp_tbl* p2__;
   State* s2__;
   bool abort2__;
   Rule_s_reuse_entry* rule_s_reuse_entry2__;
  };
  SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
  
      ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
    
}

void Rtoken_grp4::sr11(){
  struct SF{
   LR1_parallel_operator* p1__;
   State* s1__;
   bool abort1__;
   Rule_s_reuse_entry* rule_s_reuse_entry1__;
   T_user_imp_sym* p2__;
   State* s2__;
   bool abort2__;
   Rule_s_reuse_entry* rule_s_reuse_entry2__;
  };
  SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
  
      ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
    
}

void Rtoken_grp4::sr12(){
  struct SF{
   LR1_parallel_operator* p1__;
   State* s1__;
   bool abort1__;
   Rule_s_reuse_entry* rule_s_reuse_entry1__;
   T_constant_defs* p2__;
   State* s2__;
   bool abort2__;
   Rule_s_reuse_entry* rule_s_reuse_entry2__;
  };
  SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
  
      ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
    
}

void Rtoken_grp4::sr13(){
  struct SF{
   LR1_parallel_operator* p1__;
   State* s1__;
   bool abort1__;
   Rule_s_reuse_entry* rule_s_reuse_entry1__;
   T_terminals_refs* p2__;
   State* s2__;
   bool abort2__;
   Rule_s_reuse_entry* rule_s_reuse_entry2__;
  };
  SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
  
      ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
    
}

void Rtoken_grp4::sr14(){
  struct SF{
   LR1_parallel_operator* p1__;
   State* s1__;
   bool abort1__;
   Rule_s_reuse_entry* rule_s_reuse_entry1__;
   T_terminals_sufx* p2__;
   State* s2__;
   bool abort2__;
   Rule_s_reuse_entry* rule_s_reuse_entry2__;
  };
  SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
  
      ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
    
}

void Rtoken_grp4::sr15(){
  struct SF{
   LR1_parallel_operator* p1__;
   State* s1__;
   bool abort1__;
   Rule_s_reuse_entry* rule_s_reuse_entry1__;
   T_lrk_sufx* p2__;
   State* s2__;
   bool abort2__;
   Rule_s_reuse_entry* rule_s_reuse_entry2__;
  };
  SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
  
      ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
    
}

Rtoken_grp5::Rtoken_grp5(yacco2::Parser* P)
 :CAbs_lr1_sym
  ("Rtoken_grp5",0,Ctest_components::R_Rtoken_grp5_,P,false,false){
}

void Rtoken_grp5::sr1(){
  struct SF{
   LR1_parallel_operator* p1__;
   State* s1__;
   bool abort1__;
   Rule_s_reuse_entry* rule_s_reuse_entry1__;
   T_arbitrator_code* p2__;
   State* s2__;
   bool abort2__;
   Rule_s_reuse_entry* rule_s_reuse_entry2__;
  };
  SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
  
      ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
    
}

void Rtoken_grp5::sr2(){
  struct SF{
   LR1_parallel_operator* p1__;
   State* s1__;
   bool abort1__;
   Rule_s_reuse_entry* rule_s_reuse_entry1__;
   T_NULL* p2__;
   State* s2__;
   bool abort2__;
   Rule_s_reuse_entry* rule_s_reuse_entry2__;
  };
  SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
  
      ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
    
}

void Rtoken_grp5::sr3(){
  struct SF{
   LR1_parallel_operator* p1__;
   State* s1__;
   bool abort1__;
   Rule_s_reuse_entry* rule_s_reuse_entry1__;
   T_failed* p2__;
   State* s2__;
   bool abort2__;
   Rule_s_reuse_entry* rule_s_reuse_entry2__;
  };
  SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
  
      ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
    
}

void Rtoken_grp5::sr4(){
  struct SF{
   CAbs_lr1_sym* p1__;
   State* s1__;
   bool abort1__;
   Rule_s_reuse_entry* rule_s_reuse_entry1__;
  };
  SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
  
      ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p1__);
    
}

