write_broadcast_distribution_table_grammar() : write_broadcast_distribution_table_grammar::base_type( write_broadcast_distribution_table_rule) { write_broadcast_distribution_table_rule = broadcast_distribution_table_rule << unused_grammar_; broadcast_distribution_table_rule = broadcast_distribution_table_grammar_; write_broadcast_distribution_table_rule.name("write_broadcast_distribution_table_rule"); broadcast_distribution_table_rule.name("broadcast_distribution_table_rule"); }
void debug(rule<Iterator, T0, T1, T2>& r) { typedef rule<Iterator, T0, T1, T2> rule_type; typedef debug_handler< Iterator , typename rule_type::context_type , typename rule_type::skipper_type , simple_trace> debug_handler; r.f = debug_handler(r.f, simple_trace(), r.name()); }
void debug(rule<Iterator, T1, T2, T3, T4>& r, F f) { typedef rule<Iterator, T1, T2, T3, T4> rule_type; typedef debug_handler< Iterator , typename rule_type::context_type , typename rule_type::skipper_type , F> debug_handler; r.f = debug_handler(r.f, f, r.name()); }
void debug(rule<OutputIterator, T1, T2, T3, T4>& r, F f) { typedef rule<OutputIterator, T1, T2, T3, T4> rule_type; typedef debug_handler< OutputIterator , typename rule_type::context_type , typename rule_type::delimiter_type , typename rule_type::properties , F> debug_handler; r.f = debug_handler(r.f, f, r.name()); }
void debug(rule<Iterator, T1, T2, T3, T4>& r) { typedef rule<Iterator, T1, T2, T3, T4> rule_type; typedef debug_handler< Iterator , typename rule_type::context_type , typename rule_type::skipper_type , simple_trace> debug_handler; typedef typename qi::detail::get_simple_trace<Iterator>::type trace; r.f = debug_handler(r.f, trace(), r.name()); }
void debug(rule<OutputIterator, T1, T2, T3, T4>& r) { typedef rule<OutputIterator, T1, T2, T3, T4> rule_type; typedef debug_handler< OutputIterator , typename rule_type::context_type , typename rule_type::delimiter_type , typename rule_type::properties , simple_trace> debug_handler; typedef typename karma::detail::get_simple_trace<OutputIterator>::type trace; r.f = debug_handler(r.f, trace(), r.name()); }
frame_grammar() : frame_grammar::base_type(possible_frame_rule){ possible_frame_rule = confirmed_request_grammar_ | unconfirmed_request_grammar_ | simple_ack_grammar_ | complex_ack_grammar_ | segment_ack_grammar_ | error_grammar_ | reject_grammar_ | abort_grammar_ | eps; possible_frame_rule.name("possible_frame_rule"); /* debug(possible_frame_rule); */ }
void mk_array_instantiation::instantiate_rule(const rule& r, rule_set & dest) { //Reset everything selects.reset(); eq_classes.reset(); cnt = src_manager->get_counter().get_max_rule_var(r)+1; done_selects.reset(); ownership.reset(); expr_ref_vector phi(m); expr_ref_vector preds(m); expr_ref new_head = create_head(to_app(r.get_head())); unsigned nb_predicates = r.get_uninterpreted_tail_size(); unsigned tail_size = r.get_tail_size(); for(unsigned i=0;i<nb_predicates;i++) { preds.push_back(r.get_tail(i)); } for(unsigned i=nb_predicates;i<tail_size;i++) { phi.push_back(r.get_tail(i)); } //Retrieve selects for(unsigned i=0;i<phi.size();i++) retrieve_selects(phi[i].get()); //Rewrite the predicates expr_ref_vector new_tail(m); for(unsigned i=0;i<preds.size();i++) { new_tail.append(instantiate_pred(to_app(preds[i].get()))); } new_tail.append(phi); for(obj_map<expr, var*>::iterator it = done_selects.begin(); it!=done_selects.end(); ++it) { expr_ref tmp(m); tmp = &it->get_key(); new_tail.push_back(m.mk_eq(it->get_value(), tmp)); } proof_ref pr(m); src_manager->mk_rule(m.mk_implies(m.mk_and(new_tail.size(), new_tail.c_ptr()), new_head), pr, dest, r.name()); }