Lines Matching full:builder
706 explicit BuildTreeVisitor(ASTContext &Context, syntax::TreeBuilder &Builder)
707 : Builder(Builder), Context(Context) {}
721 Builder.foldNode(Builder.getDeclarationRange(D),
738 Builder.getTemplateRange(C),
739 Builder.findToken(C->getExternKeywordLoc()),
740 Builder.findToken(C->getTemplateKeywordLoc()), Declaration, C);
746 Builder.getDeclarationRange(S),
747 Builder.findToken(S->getTemplateParameters()->getTemplateLoc()),
748 Builder.getDeclarationRange(S->getTemplatedDecl()), S);
765 auto DeclarationRange = Builder.getDeclarationRange(C);
767 Builder.foldNode(DeclarationRange, Result, nullptr);
771 const auto *TemplateKW = Builder.findToken(L.getTemplateLoc());
793 Builder.markChildToken(S->getLBracLoc(), NodeRole::OpenParen);
795 Builder.markStmtChild(Child, NodeRole::Statement);
796 Builder.markChildToken(S->getRBracLoc(), NodeRole::CloseParen);
798 Builder.foldNode(Builder.getStmtRange(S),
805 Builder.foldNode(Builder.getStmtRange(S),
858 Builder.noticeDeclWithoutSemicolon(D);
873 Builder.foldNode(Builder.getExprRange(E),
906 Builder.findToken(TokLoc)->text(Context.getSourceManager());
922 Builder.markChildToken(S->getBeginLoc(), syntax::NodeRole::LiteralToken);
923 Builder.foldNode(Builder.getExprRange(S), buildUserDefinedLiteral(S), S);
985 Builder.getRange(getLocalSourceRange(NNSLoc)).drop_back();
991 Builder.markChildToken(NameSpecifierTokens.begin(),
994 Builder.foldNode(NameSpecifierTokens, NS, nullptr);
1004 Builder.foldNode(NameSpecifierTokens, NS, nullptr);
1015 // Builder.markChild(TypeLoc, syntax::NodeRole);
1016 Builder.foldNode(NameSpecifierTokens, NS, nullptr);
1035 Builder.markChild(NS, syntax::NodeRole::ListElement);
1036 Builder.markChildToken(It.getEndLoc(), syntax::NodeRole::ListDelimiter);
1038 Builder.foldNode(Builder.getRange(QualifierLoc.getSourceRange()),
1049 Builder.markChild(QualifierLoc, syntax::NodeRole::Qualifier);
1051 Builder.markChildToken(TemplateKeywordLoc,
1056 Builder.foldNode(Builder.getRange(UnqualifiedIdLoc), TheUnqualifiedId,
1058 Builder.markChild(TheUnqualifiedId, syntax::NodeRole::UnqualifiedId);
1064 Builder.foldNode(
1065 Builder.getRange(IdExpressionBeginLoc, UnqualifiedIdLoc.getEnd()),
1085 Builder.markChild(TheIdExpression, syntax::NodeRole::Member);
1087 Builder.markExprChild(S->getBase(), syntax::NodeRole::Object);
1088 Builder.markChildToken(S->getOperatorLoc(), syntax::NodeRole::AccessToken);
1090 Builder.foldNode(Builder.getExprRange(S),
1112 Builder.markChildToken(S->getLocation(),
1114 Builder.foldNode(Builder.getExprRange(S),
1121 Builder.markChildToken(S->getLParen(), syntax::NodeRole::OpenParen);
1122 Builder.markExprChild(S->getSubExpr(), syntax::NodeRole::SubExpression);
1123 Builder.markChildToken(S->getRParen(), syntax::NodeRole::CloseParen);
1124 Builder.foldNode(Builder.getExprRange(S),
1130 Builder.markChildToken(S->getLocation(), syntax::NodeRole::LiteralToken);
1131 Builder.foldNode(Builder.getExprRange(S),
1137 Builder.markChildToken(S->getLocation(), syntax::NodeRole::LiteralToken);
1138 Builder.foldNode(Builder.getExprRange(S),
1144 Builder.markChildToken(S->getLocation(), syntax::NodeRole::LiteralToken);
1145 Builder.foldNode(Builder.getExprRange(S),
1151 Builder.markChildToken(S->getBeginLoc(), syntax::NodeRole::LiteralToken);
1152 Builder.foldNode(Builder.getExprRange(S),
1158 Builder.markChildToken(S->getLocation(), syntax::NodeRole::LiteralToken);
1159 Builder.foldNode(Builder.getExprRange(S),
1165 Builder.markChildToken(S->getLocation(), syntax::NodeRole::LiteralToken);
1166 Builder.foldNode(Builder.getExprRange(S),
1172 Builder.markChildToken(S->getOperatorLoc(),
1174 Builder.markExprChild(S->getSubExpr(), syntax::NodeRole::Operand);
1177 Builder.foldNode(Builder.getExprRange(S),
1181 Builder.foldNode(Builder.getExprRange(S),
1189 Builder.markExprChild(S->getLHS(), syntax::NodeRole::LeftHandSide);
1190 Builder.markChildToken(S->getOperatorLoc(),
1192 Builder.markExprChild(S->getRHS(), syntax::NodeRole::RightHandSide);
1193 Builder.foldNode(Builder.getExprRange(S),
1204 Builder.markExprChild(Arg, syntax::NodeRole::ListElement);
1206 std::next(Builder.findToken(Arg->getEndLoc()));
1208 Builder.markChildToken(DelimiterToken, syntax::NodeRole::ListDelimiter);
1213 Builder.foldNode(Builder.getRange((*Args.begin())->getBeginLoc(),
1221 Builder.markExprChild(S->getCallee(), syntax::NodeRole::Callee);
1224 std::next(Builder.findToken(S->getCallee()->getEndLoc()));
1228 Builder.markChildToken(LParenToken, syntax::NodeRole::OpenParen);
1230 Builder.markChild(buildCallArguments(S->arguments()),
1233 Builder.markChildToken(S->getRParenLoc(), syntax::NodeRole::CloseParen);
1235 Builder.foldNode(Builder.getRange(S->getSourceRange()),
1274 Builder.markExprChild(S->getArg(0), syntax::NodeRole::LeftHandSide);
1275 Builder.markChildToken(S->getOperatorLoc(),
1277 Builder.markExprChild(S->getArg(1), syntax::NodeRole::RightHandSide);
1278 Builder.foldNode(Builder.getExprRange(S),
1282 Builder.markChildToken(S->getOperatorLoc(),
1284 Builder.markExprChild(S->getArg(0), syntax::NodeRole::Operand);
1285 Builder.foldNode(Builder.getExprRange(S),
1290 Builder.markChildToken(S->getOperatorLoc(),
1292 Builder.markExprChild(S->getArg(0), syntax::NodeRole::Operand);
1293 Builder.foldNode(Builder.getExprRange(S),
1298 Builder.markExprChild(S->getArg(0), syntax::NodeRole::Callee);
1301 std::next(Builder.findToken(S->getArg(0)->getEndLoc()));
1305 Builder.markChildToken(LParenToken, syntax::NodeRole::OpenParen);
1307 Builder.markChild(buildCallArguments(CallExpr::arg_range(
1311 Builder.markChildToken(S->getRParenLoc(), syntax::NodeRole::CloseParen);
1313 Builder.foldNode(Builder.getRange(S->getSourceRange()),
1327 auto Tokens = Builder.getDeclarationRange(S);
1334 Builder.foldNode(Tokens, new (allocator()) syntax::NamespaceDefinition, S);
1348 Builder.markChildToken(L.getLParenLoc(), syntax::NodeRole::OpenParen);
1349 Builder.markChildToken(L.getRParenLoc(), syntax::NodeRole::CloseParen);
1350 Builder.foldNode(Builder.getRange(L.getLParenLoc(), L.getRParenLoc()),
1357 Builder.markChildToken(L.getLBracketLoc(), syntax::NodeRole::OpenParen);
1358 Builder.markExprChild(L.getSizeExpr(), syntax::NodeRole::Size);
1359 Builder.markChildToken(L.getRBracketLoc(), syntax::NodeRole::CloseParen);
1360 Builder.foldNode(Builder.getRange(L.getLBracketLoc(), L.getRBracketLoc()),
1368 Builder.markChild(P, syntax::NodeRole::ListElement);
1369 const auto *DelimiterToken = std::next(Builder.findToken(P->getEndLoc()));
1371 Builder.markChildToken(DelimiterToken, syntax::NodeRole::ListDelimiter);
1375 Builder.foldNode(Builder.getRange(Params.front()->getBeginLoc(),
1382 Builder.markChildToken(L.getLParenLoc(), syntax::NodeRole::OpenParen);
1384 Builder.markChild(buildParameterDeclarationList(L.getParams()),
1387 Builder.markChildToken(L.getRParenLoc(), syntax::NodeRole::CloseParen);
1388 Builder.foldNode(Builder.getRange(L.getLParenLoc(), L.getEndLoc()),
1399 Builder.markChild(TrailingReturnTokens, syntax::NodeRole::TrailingReturn);
1415 Builder.foldNode(Builder.getRange(SR),
1424 Builder.foldNode(Builder.getStmtRange(S),
1430 Builder.foldNode(Builder.getStmtRange(S),
1436 Builder.markChildToken(S->getSwitchLoc(),
1438 Builder.markStmtChild(S->getBody(), syntax::NodeRole::BodyStatement);
1439 Builder.foldNode(Builder.getStmtRange(S),
1445 Builder.markChildToken(S->getKeywordLoc(),
1447 Builder.markExprChild(S->getLHS(), syntax::NodeRole::CaseValue);
1448 Builder.markStmtChild(S->getSubStmt(), syntax::NodeRole::BodyStatement);
1449 Builder.foldNode(Builder.getStmtRange(S),
1455 Builder.markChildToken(S->getKeywordLoc(),
1457 Builder.markStmtChild(S->getSubStmt(), syntax::NodeRole::BodyStatement);
1458 Builder.foldNode(Builder.getStmtRange(S),
1464 Builder.markChildToken(S->getIfLoc(), syntax::NodeRole::IntroducerKeyword);
1468 Builder.markStmtChild(ConditionStatement, syntax::NodeRole::Condition);
1469 Builder.markStmtChild(S->getThen(), syntax::NodeRole::ThenStatement);
1470 Builder.markChildToken(S->getElseLoc(), syntax::NodeRole::ElseKeyword);
1471 Builder.markStmtChild(S->getElse(), syntax::NodeRole::ElseStatement);
1472 Builder.foldNode(Builder.getStmtRange(S),
1478 Builder.markChildToken(S->getForLoc(), syntax::NodeRole::IntroducerKeyword);
1479 Builder.markStmtChild(S->getBody(), syntax::NodeRole::BodyStatement);
1480 Builder.foldNode(Builder.getStmtRange(S),
1486 Builder.markChildToken(S->getWhileLoc(),
1488 Builder.markStmtChild(S->getBody(), syntax::NodeRole::BodyStatement);
1489 Builder.foldNode(Builder.getStmtRange(S),
1495 Builder.markChildToken(S->getContinueLoc(),
1497 Builder.foldNode(Builder.getStmtRange(S),
1503 Builder.markChildToken(S->getBreakLoc(),
1505 Builder.foldNode(Builder.getStmtRange(S),
1511 Builder.markChildToken(S->getReturnLoc(),
1513 Builder.markExprChild(S->getRetValue(), syntax::NodeRole::ReturnValue);
1514 Builder.foldNode(Builder.getStmtRange(S),
1520 Builder.markChildToken(S->getForLoc(), syntax::NodeRole::IntroducerKeyword);
1521 Builder.markStmtChild(S->getBody(), syntax::NodeRole::BodyStatement);
1522 Builder.foldNode(Builder.getStmtRange(S),
1528 Builder.foldNode(Builder.getDeclarationRange(S),
1534 Builder.markExprChild(S->getAssertExpr(), syntax::NodeRole::Condition);
1535 Builder.markExprChild(S->getMessage(), syntax::NodeRole::Message);
1536 Builder.foldNode(Builder.getDeclarationRange(S),
1542 Builder.foldNode(Builder.getDeclarationRange(S),
1549 Builder.foldNode(Builder.getDeclarationRange(S),
1555 Builder.foldNode(Builder.getDeclarationRange(S),
1561 Builder.foldNode(Builder.getDeclarationRange(S),
1567 Builder.foldNode(Builder.getDeclarationRange(S),
1573 Builder.foldNode(Builder.getDeclarationRange(S),
1579 Builder.foldNode(Builder.getDeclarationRange(S),
1589 Builder.sourceManager(), D->getTypeSourceInfo()->getTypeLoc(),
1595 Builder.markChild(new (allocator()) syntax::DeclaratorList,
1597 Builder.foldNode(Builder.getDeclarationRange(D),
1603 Builder.foldNode(Builder.getRange(Range), N, nullptr);
1604 Builder.markChild(N, syntax::NodeRole::ListElement);
1606 if (!Builder.isResponsibleForCreatingDeclaration(D)) {
1609 const auto *DelimiterToken = std::next(Builder.findToken(Range.getEnd()));
1611 Builder.markChildToken(DelimiterToken, syntax::NodeRole::ListDelimiter);
1614 auto DeclarationRange = Builder.getDeclarationRange(D);
1615 Builder.foldList(DeclarationRange, DL, nullptr);
1617 Builder.markChild(DL, syntax::NodeRole::Declarators);
1618 Builder.foldNode(DeclarationRange,
1635 Builder.foldNode(Builder.getRange(ReturnDeclaratorRange),
1640 auto Return = Builder.getRange(ReturnedType.getSourceRange());
1644 Builder.markChildToken(Arrow, syntax::NodeRole::ArrowToken);
1646 Builder.markChild(ReturnDeclarator, syntax::NodeRole::Declarator);
1648 Builder.foldNode(Tokens, R, L);
1658 Builder.markChildToken(ExternKW, syntax::NodeRole::ExternKeyword);
1659 Builder.markChildToken(TemplateKW, syntax::NodeRole::IntroducerKeyword);
1660 Builder.markChild(InnerDeclaration, syntax::NodeRole::Declaration);
1661 Builder.foldNode(
1669 Builder.markChildToken(TemplateKW, syntax::NodeRole::IntroducerKeyword);
1672 Builder.foldNode(Range, N, From);
1673 Builder.markChild(N, syntax::NodeRole::Declaration);
1678 llvm::BumpPtrAllocator &allocator() { return Builder.allocator(); }
1680 syntax::TreeBuilder &Builder;
1757 TreeBuilder Builder(A, TBTM);
1758 BuildTreeVisitor(Context, Builder).TraverseAST(Context);
1759 return std::move(Builder).finalize();