Cleaned up constructors and corrected missing defaults.

This commit is contained in:
Jonathan Turner
2009-05-29 17:59:13 +00:00
parent 22654b5754
commit adea19b2a3

View File

@@ -19,7 +19,10 @@ struct RuleImpl {
bool keep;
int new_id;
RuleImpl() : keep(true), new_id(-1) { }
RuleImpl() : keep(true), new_id(-1) {}
RuleImpl(int id) : keep(true), new_id(id) {}
RuleImpl(RuleFun fun) : rule(fun), keep(true), new_id(-1) {}
RuleImpl(RuleFun fun, bool keep_match) : rule(fun), keep(keep_match), new_id(-1) {}
std::pair<Token_Iterator, bool> operator()(Token_Iterator iter, Token_Iterator end, TokenPtr parent) {
return rule(iter, end, parent, keep, new_id);
@@ -53,10 +56,10 @@ std::pair<Token_Iterator, bool> Nop_Rule
struct Rule {
RuleImplPtr impl;
Rule() : impl(new RuleImpl()) { }
Rule(int id) : impl(new RuleImpl()) { impl->new_id = id; }
Rule(RuleFun fun) : impl(new RuleImpl()) { impl->rule = fun; }
Rule(RuleFun fun, bool keep) : impl(new RuleImpl()) { impl->rule = fun; impl->keep = keep; }
Rule() : impl(new RuleImpl()) {}
Rule(int id) : impl(new RuleImpl(id)) {}
Rule(RuleFun fun) : impl(new RuleImpl(fun)) {}
Rule(RuleFun fun, bool keep) : impl(new RuleImpl(fun, keep)) {}
std::pair<Token_Iterator, bool> operator()(Token_Iterator iter, Token_Iterator end, TokenPtr parent) {
return (*impl)(iter, end, parent);