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

@@ -20,6 +20,9 @@ struct RuleImpl {
int new_id; 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) { std::pair<Token_Iterator, bool> operator()(Token_Iterator iter, Token_Iterator end, TokenPtr parent) {
return rule(iter, end, parent, keep, new_id); return rule(iter, end, parent, keep, new_id);
@@ -54,9 +57,9 @@ struct Rule {
RuleImplPtr impl; RuleImplPtr impl;
Rule() : impl(new RuleImpl()) {} Rule() : impl(new RuleImpl()) {}
Rule(int id) : impl(new RuleImpl()) { impl->new_id = id; } Rule(int id) : impl(new RuleImpl(id)) {}
Rule(RuleFun fun) : impl(new RuleImpl()) { impl->rule = fun; } Rule(RuleFun fun) : impl(new RuleImpl(fun)) {}
Rule(RuleFun fun, bool keep) : impl(new RuleImpl()) { impl->rule = fun; impl->keep = keep; } Rule(RuleFun fun, bool keep) : impl(new RuleImpl(fun, keep)) {}
std::pair<Token_Iterator, bool> operator()(Token_Iterator iter, Token_Iterator end, TokenPtr parent) { std::pair<Token_Iterator, bool> operator()(Token_Iterator iter, Token_Iterator end, TokenPtr parent) {
return (*impl)(iter, end, parent); return (*impl)(iter, end, parent);