Lines Matching full:trees
545 // Most declarations own a semicolon in syntax trees, but not in clang AST.
564 /// A collection of trees covering the input tokens.
567 /// node and update the list of trees accordingly.
581 Trees.insert(Trees.end(), {&T, L});
587 auto It = Trees.lower_bound(Range.begin());
588 assert(It != Trees.end() && "no node found");
590 assert((std::next(It) == Trees.end() ||
601 auto BeginChildren = Trees.lower_bound(Range.begin());
602 assert((BeginChildren == Trees.end() ||
606 auto EndChildren = Trees.lower_bound(Range.end());
608 (EndChildren == Trees.end() || EndChildren->first == Range.end()) &&
611 auto BelongsToList = [](decltype(Trees)::value_type KV) {
634 auto BeginChildren = Trees.lower_bound(FirstToken);
636 assert((BeginChildren == Trees.end() ||
639 auto EndChildren = Trees.lower_bound(Tokens.end());
641 (EndChildren == Trees.end() || EndChildren->first == Tokens.end()) &&
656 Trees.erase(BeginChildren, EndChildren);
657 Trees.insert({FirstToken, Node});
662 assert(Trees.size() == 1);
663 auto *Root = Trees.begin()->second;
664 Trees = {};
670 for (auto It = Trees.begin(); It != Trees.end(); ++It) {
672 It != Trees.end()
688 std::map<const syntax::Token *, syntax::Node *> Trees;
803 // Some statements are not yet handled by syntax trees.
870 // Some expressions are not yet handled by syntax trees.