diff options
Diffstat (limited to 'web/yacco2/compiler/grammars/unq_str.h')
-rw-r--r-- | web/yacco2/compiler/grammars/unq_str.h | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/web/yacco2/compiler/grammars/unq_str.h b/web/yacco2/compiler/grammars/unq_str.h new file mode 100644 index 0000000000..35e82d2845 --- /dev/null +++ b/web/yacco2/compiler/grammars/unq_str.h @@ -0,0 +1,98 @@ +/* + File: unq_str.h + Date and Time: Fri Jan 30 18:55:27 2015 +*/ +#ifndef __unq_str_h__ +#define __unq_str_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" +extern yacco2::Thread_entry ITH_unq_str; + +extern yacco2::State S1_Cunq_str; +namespace NS_unq_str { +yacco2::THR _YACCO2_CALL_TYPE +TH_unq_str(yacco2::Parser* Caller);// called thread +yacco2::THR_result _YACCO2_CALL_TYPE +PROC_TH_unq_str(yacco2::Parser* Caller);// called thread's twin the procedure +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_[3]; +}; +class Cunq_str: public yacco2::CAbs_fsm { + public: + enum rules_and_subrules{ + start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T + ,R_Runq_str_ = 569//start_of_rule_list + 0 + ,rhs1_Runq_str_ = 1 + ,R_Rchr_ = 570//start_of_rule_list + 2 + ,rhs1_Rchr_ = 2 + ,rhs2_Rchr_ = 3 + ,R_Rall_shift_ = 571//start_of_rule_list + 4 + ,rhs1_Rall_shift_ = 4 + }; + //no of la sets = 1 + //no of states = 5 + Cunq_str(); + ~Cunq_str(); + 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_[5]; + + public: + bool la_bnds_fnd(CAbs_lr1_sym* Sym){ + using namespace NS_yacco2_terminals; + int id = Sym->enumerated_id__; + switch (id){ + case T_Enum::T_raw_open_brace_: break; + case T_Enum::T_raw_close_brace_: break; + case T_Enum::T_raw_lf_: break; + case T_Enum::T_raw_cr_: break; + case T_Enum::T_LR1_eog_: break; + case T_Enum::T_T_eol_: break; + case T_Enum::T_raw_ht_: break; + case T_Enum::T_raw_sp_: break; + case T_Enum::T_raw_vt_: break; + case T_Enum::T_raw_ff_: break; + case T_Enum::T_raw_dbl_quote_: break; + default:{ + return false; + } + } + return true; + }; + std::string c_; + + }; +struct Runq_str; +struct Rchr; +struct Rall_shift; +struct Runq_str:public yacco2::CAbs_lr1_sym { + Runq_str(yacco2::Parser* P); + public: + void sr1(); +}; + +struct Rchr:public yacco2::CAbs_lr1_sym { + Rchr(yacco2::Parser* P); + public: +}; + +struct Rall_shift:public yacco2::CAbs_lr1_sym { + Rall_shift(yacco2::Parser* P); + public: + void sr1(); +}; + +} // end of namespace + +#endif |