Compute item set transitions

This commit is contained in:
Max Brunsfeld 2013-11-20 19:00:20 -08:00
parent 100ab56779
commit 99c216f78a
23 changed files with 250 additions and 55 deletions

View file

@ -7,7 +7,12 @@ namespace tree_sitter {
Seq::Seq(rule_ptr left, rule_ptr right) : left(left), right(right) {};
rule_ptr seq(const std::initializer_list<rule_ptr> &rules) {
return build_binary_rule_tree<Seq>(rules);
rule_ptr result;
for (auto rule : rules)
result = (result.get() && typeid(*result) != typeid(Blank)) ?
std::make_shared<Seq>(result, rule) :
rule;
return result;
}
TransitionMap<Rule> Seq::transitions() const {