/* File: o2_lcl_opts.h Date and Time: Fri Jan 30 18:55:17 2015 */ #ifndef __o2_lcl_opts_h__ #define __o2_lcl_opts_h__ 1 #include "yacco2.h" #include "yacco2_T_enumeration.h" #include "yacco2_k_symbols.h" #include "yacco2_err_symbols.h" #include "yacco2_terminals.h" #include "yacco2_characters.h" #include "o2_lcl_opt.h" #include "ws.h" #include "eol.h" #include "c_comments.h" #include "xc_str.h" #include "unq_str.h" // monolithic grammar: no thread extern yacco2::State S1_Co2_lcl_opts; namespace NS_o2_lcl_opts { using namespace NS_yacco2_T_enum;// enumerate using namespace yacco2; struct fsm_rules_reuse_table_type{ fsm_rules_reuse_table_type(); int no_rules_entries_; Per_rule_s_reuse_table* per_rule_s_table_[9]; }; class Co2_lcl_opts: public yacco2::CAbs_fsm { public: enum rules_and_subrules{ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T ,R_Ryacco2_options_ = 569//start_of_rule_list + 0 ,rhs1_Ryacco2_options_ = 1 ,R_Reog_ = 570//start_of_rule_list + 2 ,rhs1_Reog_ = 2 ,rhs2_Reog_ = 3 ,R_Rws_k_ = 571//start_of_rule_list + 4 ,rhs1_Rws_k_ = 4 ,rhs2_Rws_k_ = 5 ,R_Rws_k_s_ = 572//start_of_rule_list + 6 ,rhs1_Rws_k_s_ = 6 ,rhs2_Rws_k_s_ = 7 ,R_Rws_ = 573//start_of_rule_list + 8 ,rhs1_Rws_ = 8 ,rhs2_Rws_ = 9 ,rhs3_Rws_ = 10 ,rhs4_Rws_ = 11 ,R_Rfile_ = 574//start_of_rule_list + 10 ,rhs1_Rfile_ = 12 ,rhs2_Rfile_ = 13 ,rhs3_Rfile_ = 14 ,rhs4_Rfile_ = 15 ,R_Rparms_epi_ = 575//start_of_rule_list + 12 ,rhs1_Rparms_epi_ = 16 ,rhs2_Rparms_epi_ = 17 ,R_Rparms_ = 576//start_of_rule_list + 14 ,rhs1_Rparms_ = 18 ,rhs2_Rparms_ = 19 ,R_Rspec_parm_ = 577//start_of_rule_list + 16 ,rhs1_Rspec_parm_ = 20 ,rhs2_Rspec_parm_ = 21 ,rhs3_Rspec_parm_ = 22 ,rhs4_Rspec_parm_ = 23 }; //no of la sets = 4 //no of states = 32 Co2_lcl_opts(); ~Co2_lcl_opts(); void op(); bool failed(); void reduce_rhs_of_rule (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule); fsm_rules_reuse_table_type fsm_rules_reuse_table; static int rhs_to_rules_mapping_[24]; public: yacco2::CHAR err_sw_;yacco2::CHAR t_sw_; yacco2::CHAR prt_sw_; std::string file_to_compile_; yacco2::UINT parm_cnt_; }; struct Ryacco2_options; struct Reog; struct Rws_k; struct Rws_k_s; struct Rws; struct Rfile; struct Rparms_epi; struct Rparms; struct Rspec_parm; struct Ryacco2_options:public yacco2::CAbs_lr1_sym { Ryacco2_options(yacco2::Parser* P); void op(); public: }; struct Reog:public yacco2::CAbs_lr1_sym { Reog(yacco2::Parser* P); public: void sr2(); }; struct Rws_k:public yacco2::CAbs_lr1_sym { Rws_k(yacco2::Parser* P); public: }; struct Rws_k_s:public yacco2::CAbs_lr1_sym { Rws_k_s(yacco2::Parser* P); public: }; struct Rws:public yacco2::CAbs_lr1_sym { Rws(yacco2::Parser* P); public: void sr2(); void sr3(); void sr4(); }; struct Rfile:public yacco2::CAbs_lr1_sym { Rfile(yacco2::Parser* P); public: void edit_file(CAbs_lr1_sym* Sym); public: void sr1(); void sr2(); void sr3(); void sr4(); }; struct Rparms_epi:public yacco2::CAbs_lr1_sym { Rparms_epi(yacco2::Parser* P); public: }; struct Rparms:public yacco2::CAbs_lr1_sym { Rparms(yacco2::Parser* P); public: }; struct Rspec_parm:public yacco2::CAbs_lr1_sym { Rspec_parm(yacco2::Parser* P); public: void sr1(); void sr2(); void sr3(); void sr4(); }; } // end of namespace #endif