/* File: pager_2sym.cpp Date and Time: Sat Jan 31 11:58:48 2015 */ #include "pager_2.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_pager_2;// grammar's ns // first set terminals // monolithic grammar --- no thread void Cpager_2::reduce_rhs_of_rule (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no]; Per_rule_s_reuse_table* rule_reuse_tbl_ptr = fsm_rules_reuse_table.per_rule_s_table_[reducing_rule]; Rule_s_reuse_entry* re(0); find_a_recycled_rule(rule_reuse_tbl_ptr,&re); (*Recycled_rule) = re; fnd_re: switch (Sub_rule_no){ case rhs1_Rs_:{ Rs* sym; if(re->rule_ == 0){ sym = new Rs(parser__); re->rule_ = sym; }else{ sym = (Rs*)re->rule_; } // no rule's constructor directive (*Recycled_rule)->rule_ = sym; sym->rule_info__.rhs_no_of_parms__ = 2; return;} case rhs1_Rg_:{ Rg* sym; if(re->rule_ == 0){ sym = new Rg(parser__); re->rule_ = sym; }else{ sym = (Rg*)re->rule_; } // no rule's constructor directive (*Recycled_rule)->rule_ = sym; sym->rule_info__.rhs_no_of_parms__ = 3; return;} case rhs2_Rg_:{ Rg* sym; if(re->rule_ == 0){ sym = new Rg(parser__); re->rule_ = sym; }else{ sym = (Rg*)re->rule_; } // no rule's constructor directive (*Recycled_rule)->rule_ = sym; sym->rule_info__.rhs_no_of_parms__ = 3; return;} case rhs3_Rg_:{ Rg* sym; if(re->rule_ == 0){ sym = new Rg(parser__); re->rule_ = sym; }else{ sym = (Rg*)re->rule_; } // no rule's constructor directive (*Recycled_rule)->rule_ = sym; sym->rule_info__.rhs_no_of_parms__ = 3; return;} case rhs4_Rg_:{ Rg* sym; if(re->rule_ == 0){ sym = new Rg(parser__); re->rule_ = sym; }else{ sym = (Rg*)re->rule_; } // no rule's constructor directive (*Recycled_rule)->rule_ = sym; sym->rule_info__.rhs_no_of_parms__ = 3; return;} case rhs5_Rg_:{ Rg* sym; if(re->rule_ == 0){ sym = new Rg(parser__); re->rule_ = sym; }else{ sym = (Rg*)re->rule_; } // no rule's constructor directive (*Recycled_rule)->rule_ = sym; sym->rule_info__.rhs_no_of_parms__ = 3; return;} case rhs6_Rg_:{ Rg* sym; if(re->rule_ == 0){ sym = new Rg(parser__); re->rule_ = sym; }else{ sym = (Rg*)re->rule_; } // no rule's constructor directive (*Recycled_rule)->rule_ = sym; sym->rule_info__.rhs_no_of_parms__ = 3; return;} case rhs7_Rg_:{ Rg* sym; if(re->rule_ == 0){ sym = new Rg(parser__); re->rule_ = sym; }else{ sym = (Rg*)re->rule_; } // no rule's constructor directive (*Recycled_rule)->rule_ = sym; sym->rule_info__.rhs_no_of_parms__ = 4; return;} case rhs8_Rg_:{ Rg* sym; if(re->rule_ == 0){ sym = new Rg(parser__); re->rule_ = sym; }else{ sym = (Rg*)re->rule_; } // no rule's constructor directive (*Recycled_rule)->rule_ = sym; sym->rule_info__.rhs_no_of_parms__ = 4; return;} case rhs1_Rw_:{ Rw* sym; if(re->rule_ == 0){ sym = new Rw(parser__); re->rule_ = sym; }else{ sym = (Rw*)re->rule_; } // no rule's constructor directive (*Recycled_rule)->rule_ = sym; sym->rule_info__.rhs_no_of_parms__ = 3; return;} case rhs1_Rv_:{ Rv* sym; if(re->rule_ == 0){ sym = new Rv(parser__); re->rule_ = sym; }else{ sym = (Rv*)re->rule_; } // no rule's constructor directive (*Recycled_rule)->rule_ = sym; sym->rule_info__.rhs_no_of_parms__ = 3; return;} case rhs1_Rx_:{ Rx* sym; if(re->rule_ == 0){ sym = new Rx(parser__); re->rule_ = sym; }else{ sym = (Rx*)re->rule_; } // no rule's constructor directive (*Recycled_rule)->rule_ = sym; sym->rule_info__.rhs_no_of_parms__ = 5; return;} case rhs2_Rx_:{ Rx* sym; if(re->rule_ == 0){ sym = new Rx(parser__); re->rule_ = sym; }else{ sym = (Rx*)re->rule_; } // no rule's constructor directive (*Recycled_rule)->rule_ = sym; sym->rule_info__.rhs_no_of_parms__ = 2; return;} case rhs1_Ry_:{ Ry* sym; if(re->rule_ == 0){ sym = new Ry(parser__); re->rule_ = sym; }else{ sym = (Ry*)re->rule_; } // no rule's constructor directive (*Recycled_rule)->rule_ = sym; sym->rule_info__.rhs_no_of_parms__ = 5; return;} case rhs2_Ry_:{ Ry* sym; if(re->rule_ == 0){ sym = new Ry(parser__); re->rule_ = sym; }else{ sym = (Ry*)re->rule_; } // no rule's constructor directive (*Recycled_rule)->rule_ = sym; sym->rule_info__.rhs_no_of_parms__ = 2; return;} case rhs1_Ru_:{ Ru* sym; if(re->rule_ == 0){ sym = new Ru(parser__); re->rule_ = sym; }else{ sym = (Ru*)re->rule_; } // no rule's constructor directive (*Recycled_rule)->rule_ = sym; sym->rule_info__.rhs_no_of_parms__ = 3; return;} case rhs2_Ru_:{ Ru* sym; if(re->rule_ == 0){ sym = new Ru(parser__); re->rule_ = sym; }else{ sym = (Ru*)re->rule_; } // no rule's constructor directive (*Recycled_rule)->rule_ = sym; sym->rule_info__.rhs_no_of_parms__ = 1; return;} case rhs1_Re_:{ Re* sym; if(re->rule_ == 0){ sym = new Re(parser__); re->rule_ = sym; }else{ sym = (Re*)re->rule_; } // no rule's constructor directive (*Recycled_rule)->rule_ = sym; sym->rule_info__.rhs_no_of_parms__ = 1; return;} case rhs2_Re_:{ Re* sym; if(re->rule_ == 0){ sym = new Re(parser__); re->rule_ = sym; }else{ sym = (Re*)re->rule_; } // no rule's constructor directive (*Recycled_rule)->rule_ = sym; sym->rule_info__.rhs_no_of_parms__ = 1; return;} case rhs3_Re_:{ Re* sym; if(re->rule_ == 0){ sym = new Re(parser__); re->rule_ = sym; }else{ sym = (Re*)re->rule_; } // no rule's constructor directive (*Recycled_rule)->rule_ = sym; sym->rule_info__.rhs_no_of_parms__ = 1; return;} case rhs4_Re_:{ Re* sym; if(re->rule_ == 0){ sym = new Re(parser__); re->rule_ = sym; }else{ sym = (Re*)re->rule_; } // no rule's constructor directive (*Recycled_rule)->rule_ = sym; sym->rule_info__.rhs_no_of_parms__ = 1; return;} case rhs1_Rc_:{ Rc* sym; if(re->rule_ == 0){ sym = new Rc(parser__); re->rule_ = sym; }else{ sym = (Rc*)re->rule_; } // no rule's constructor directive (*Recycled_rule)->rule_ = sym; sym->rule_info__.rhs_no_of_parms__ = 1; return;} case rhs2_Rc_:{ Rc* sym; if(re->rule_ == 0){ sym = new Rc(parser__); re->rule_ = sym; }else{ sym = (Rc*)re->rule_; } // no rule's constructor directive (*Recycled_rule)->rule_ = sym; sym->rule_info__.rhs_no_of_parms__ = 1; return;} case rhs1_Rp_:{ Rp* sym; if(re->rule_ == 0){ sym = new Rp(parser__); re->rule_ = sym; }else{ sym = (Rp*)re->rule_; } // no rule's constructor directive (*Recycled_rule)->rule_ = sym; sym->rule_info__.rhs_no_of_parms__ = 1; return;} default: return; } }