/* File: o2_lcl_opt.cpp Date and Time: Fri Jan 30 18:55:16 2015 */ #include "o2_lcl_opt.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_o2_lcl_opt;// grammar's ns // first set terminals fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){ no_rules_entries_ = 4; 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(); } Co2_lcl_opt:: Co2_lcl_opt() :yacco2::CAbs_fsm ("o2_lcl_opt.lex" ,"1.1" ,"18 Oct. 2003" ,false ,"\\O2's individual command line option recognizer." ,"Fri Jan 30 18:55:16 2015 " ,S1_Co2_lcl_opt){ } Co2_lcl_opt::~Co2_lcl_opt(){ for(int x = 0;x < 4;++x){ ///delete fsm_rules_reuse_table.per_rule_s_table_[x]; } } bool Co2_lcl_opt::failed(){ CAbs_lr1_sym* sym = new Err_bad_cmd_lne_opt; sym->set_rc(*parser__->start_token__,__FILE__,__LINE__); RSVP_FSM(sym); return true; } void Co2_lcl_opt::op(){ } int Co2_lcl_opt::rhs_to_rules_mapping_[12] = { -1 ,0 // subrule 1 for rule 1 ,1 // subrule 2 for rule 2 ,2 // subrule 3 for rule 3 ,2 // subrule 4 for rule 3 ,2 // subrule 5 for rule 3 ,2 // subrule 6 for rule 3 ,2 // subrule 7 for rule 3 ,2 // subrule 8 for rule 3 ,3 // subrule 9 for rule 4 ,3 // subrule 10 for rule 4 ,3 // subrule 11 for rule 4 }; Ro2_lcl_opt::Ro2_lcl_opt(yacco2::Parser* P) :CAbs_lr1_sym ("Ro2_lcl_opt",0,Co2_lcl_opt::R_Ro2_lcl_opt_,P,false,false){ } void Ro2_lcl_opt::sr1(){ struct SF{ Rminus* p1__; State* s1__; bool abort1__; Rule_s_reuse_entry* rule_s_reuse_entry1__; Rspec_parm* p2__; State* s2__; bool abort2__; Rule_s_reuse_entry* rule_s_reuse_entry2__; Rmust_lint* p3__; State* s3__; bool abort3__; Rule_s_reuse_entry* rule_s_reuse_entry3__; }; SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(3); sf->p2__->rtn_parm_->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__); RSVP(sf->p2__->rtn_parm_); } Rminus::Rminus(yacco2::Parser* P) :CAbs_lr1_sym ("Rminus",0,Co2_lcl_opt::R_Rminus_,P,false,false){ } Rspec_parm::Rspec_parm(yacco2::Parser* P) :CAbs_lr1_sym ("Rspec_parm",0,Co2_lcl_opt::R_Rspec_parm_,P,false,false){ } void Rspec_parm::sr1(){ rtn_parm_ = new T_option_t; } void Rspec_parm::sr2(){ rtn_parm_ = new T_option_p; } void Rspec_parm::sr3(){ rtn_parm_ = new Err_bad_cmd_lne_opt; rtn_parm_->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__); } void Rspec_parm::sr4(){ rtn_parm_ = new T_option_err; } void Rspec_parm::sr5(){ rtn_parm_ = new Err_bad_cmd_lne_opt; rtn_parm_->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__); } void Rspec_parm::sr6(){ rtn_parm_ = new Err_bad_cmd_lne_opt; rtn_parm_->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__); } Rmust_lint::Rmust_lint(yacco2::Parser* P) :CAbs_lr1_sym ("Rmust_lint",0,Co2_lcl_opt::R_Rmust_lint_,P,false,false){ } void Rmust_lint::sr3(){ parser()->set_abort_parse(true); }