/* File: knu3.h Date and Time: Tue Nov 4 18:08:44 2008 */ #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" #ifndef __knu3_h__ #define __knu3_h__ 1 // monolithic grammar: no thread extern yacco2::State S1_Cknu3; namespace NS_knu3 { 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_[5]; }; struct reuse_rule1_table_type {// for rule: RS reuse_rule1_table_type():no_rule_s_entries_(1){}; int no_rule_s_entries_; Rule_s_reuse_entry entry_1_; }; struct reuse_rule2_table_type {// for rule: RB reuse_rule2_table_type():no_rule_s_entries_(1){}; int no_rule_s_entries_; Rule_s_reuse_entry entry_1_; }; struct reuse_rule3_table_type {// for rule: RL reuse_rule3_table_type():no_rule_s_entries_(2){}; int no_rule_s_entries_; Rule_s_reuse_entry entry_1_; Rule_s_reuse_entry entry_2_; }; struct reuse_rule4_table_type {// for rule: RR reuse_rule4_table_type():no_rule_s_entries_(2){}; int no_rule_s_entries_; Rule_s_reuse_entry entry_1_; Rule_s_reuse_entry entry_2_; }; struct reuse_rule5_table_type {// for rule: RN reuse_rule5_table_type():no_rule_s_entries_(3){}; int no_rule_s_entries_; Rule_s_reuse_entry entry_1_; Rule_s_reuse_entry entry_2_; Rule_s_reuse_entry entry_3_; }; class Cknu3: public yacco2::CAbs_fsm { public: enum rules_and_subrules{ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T ,R_RS_ = 571//start_of_rule_list + 5 ,rhs1_RS_ = 1 ,R_RB_ = 572//start_of_rule_list + 5 ,rhs1_RB_ = 2 ,rhs2_RB_ = 3 ,R_RL_ = 573//start_of_rule_list + 5 ,rhs1_RL_ = 4 ,rhs2_RL_ = 5 ,R_RR_ = 574//start_of_rule_list + 5 ,rhs1_RR_ = 6 ,rhs2_RR_ = 7 ,R_RN_ = 575//start_of_rule_list + 5 ,rhs1_RN_ = 8 ,rhs2_RN_ = 9 }; //no of la sets = 3 //no of states = 17 Cknu3(); ~Cknu3(); void op(); bool failed(); void reduce_rhs_of_rule (yacco2::UINT Sub_rule_no,yacco2::Recycled_rule_struct* Recycled_rule); fsm_rules_reuse_table_type fsm_rules_reuse_table; static int rhs_to_rules_mapping_[10]; }; struct RS; struct RB; struct RL; struct RR; struct RN; struct RS:public yacco2::CAbs_lr1_sym { RS(yacco2::Parser* P); public: }; struct RB:public yacco2::CAbs_lr1_sym { RB(yacco2::Parser* P); public: }; struct RL:public yacco2::CAbs_lr1_sym { RL(yacco2::Parser* P); public: }; struct RR:public yacco2::CAbs_lr1_sym { RR(yacco2::Parser* P); public: }; struct RN:public yacco2::CAbs_lr1_sym { RN(yacco2::Parser* P); public: }; } // end of namespace #endif