Cleaned up constructors and corrected missing defaults.
This commit is contained in:
@@ -19,7 +19,10 @@ struct RuleImpl {
|
|||||||
bool keep;
|
bool keep;
|
||||||
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);
|
||||||
@@ -53,10 +56,10 @@ std::pair<Token_Iterator, bool> Nop_Rule
|
|||||||
struct Rule {
|
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);
|
||||||
|
Reference in New Issue
Block a user