Move shared rule pointer factories into individual rule files
This commit is contained in:
parent
8a0a442a24
commit
040ec86000
19 changed files with 102 additions and 76 deletions
|
|
@ -15,7 +15,16 @@ namespace tree_sitter {
|
|||
};
|
||||
|
||||
typedef std::shared_ptr<const Rule> rule_ptr;
|
||||
|
||||
std::ostream& operator<<(std::ostream& stream, const Rule &rule);
|
||||
|
||||
template <typename RuleClass>
|
||||
rule_ptr build_binary_rule_tree(const std::initializer_list<rule_ptr> &rules) {
|
||||
rule_ptr result(nullptr);
|
||||
for (auto it = rules.end() - 1; it >= rules.begin(); --it)
|
||||
result = result.get() ? std::make_shared<RuleClass>(*it, result) : *it;
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue