Lines Matching defs:Tok
27 static bool mustBreakAfterAttributes(const FormatToken &Tok,
33 return Tok.NewlinesBefore > 0;
59 static bool canBeObjCSelectorComponent(const FormatToken &Tok) {
60 return Tok.Tok.getIdentifierInfo();
82 static bool isKeywordWithCondition(const FormatToken &Tok) {
83 return Tok.isOneOf(tok::kw_if, tok::kw_for, tok::kw_while, tok::kw_switch,
88 static bool isCppAttribute(bool IsCpp, const FormatToken &Tok) {
89 if (!IsCpp || !Tok.startsSequence(tok::l_square, tok::l_square))
92 if (Tok.Previous && Tok.Previous->is(tok::at))
94 const FormatToken *AttrTok = Tok.Next->Next;
165 if (BeforeLess->Tok.isLiteral())
229 CurrentToken->Tok.setLength(1);
231 if (Next && Next->Tok.isLiteral())
293 switch (CurrentToken->Tok.getKind()) {
509 for (FormatToken *Tok = &OpeningParen; Tok != CurrentToken;
510 Tok = Tok->Next) {
511 if (Tok->is(TT_BinaryOperator) && Tok->isPointerOrReference())
512 Tok->setType(TT_PointerOrReference);
578 for (auto *Tok = OpeningParen.Next;
579 Tok != CurrentToken &&
580 !Tok->isOneOf(tok::equal, tok::l_paren, tok::l_brace);
581 Tok = Tok->Next) {
582 if (Tok->isPointerOrReference())
583 Tok->setFinalizedType(TT_PointerOrReference);
611 FormatToken *Tok = CurrentToken;
614 updateParameterCount(&OpeningParen, Tok);
621 bool isCSharpAttributeSpecifier(const FormatToken &Tok) {
626 if (Tok.Previous && Tok.Previous->is(tok::identifier))
630 if (Tok.Previous && Tok.Previous->is(tok::r_square)) {
631 auto *MatchingParen = Tok.Previous->MatchingParen;
636 const FormatToken *AttrTok = Tok.Next;
714 (getBinOpPrecedence(Parent->Tok.getKind(), true, true) >
894 FormatToken *Tok = CurrentToken;
905 updateParameterCount(Left, Tok);
910 updateParameterCount(Left, Tok);
1006 bool isTableGenDAGArgBreakingOperator(const FormatToken &Tok) {
1012 if (Tok.isNot(tok::identifier) ||
1013 Tok.isOneOf(TT_TableGenBangOperator, TT_TableGenCondOperator)) {
1017 if (!Tok.Next || Tok.Next->is(tok::colon))
1019 return llvm::is_contained(Opes, Tok.TokenText.str());
1078 FormatToken *Tok = CurrentToken;
1081 if (Tok->isOneOf(tok::numeric_constant, tok::string_literal,
1087 if (Tok->is(tok::l_brace)) {
1088 Scopes.push_back(getScopeType(*Tok));
1092 if (Tok->is(tok::l_square)) {
1093 Tok->setType(TT_TableGenListOpener);
1096 if (Tok->is(tok::less)) {
1104 if (Tok->is(tok::l_paren)) {
1105 Tok->setType(TT_TableGenDAGArgOpener);
1106 return parseTableGenDAGArgAndList(Tok);
1109 if (Tok->is(TT_TableGenBangOperator)) {
1126 if (Tok->is(TT_TableGenCondOperator)) {
1135 if (Tok->is(tok::identifier)) {
1220 if (Previous->Tok.getIdentifierInfo() ||
1301 FormatToken *Tok = CurrentToken;
1305 if (Tok->is(TT_VerilogTableItem))
1308 if (Tok->is(TT_TableGenMultiLineString))
1310 switch (bool IsIf = false; Tok->Tok.getKind()) {
1313 if (!Tok->Previous && Line.MustBeDeclaration)
1314 Tok->setType(TT_ObjCMethodSpecifier);
1317 if (!Tok->Previous)
1321 if (Tok->isTypeFinalized())
1335 Tok->setType(TT_JsTypeColon);
1340 Tok->setType(TT_AttributeColon);
1344 Tok->setType(TT_CSharpNamedArgumentColon);
1347 } else if (Style.isVerilog() && Tok->isNot(TT_BinaryOperator)) {
1350 if (Keywords.isVerilogEnd(*Tok->Previous) ||
1351 Keywords.isVerilogBegin(*Tok->Previous)) {
1352 Tok->setType(TT_VerilogBlockLabelColon);
1354 Tok->setType(TT_BitFieldColon);
1356 Tok->setType(TT_DictLiteral);
1361 Tok->setType(TT_CaseLabelColon);
1370 Tok->setType(TT_ModulePartitionColon);
1372 Tok->setType(TT_InlineASMColon);
1374 Tok->setType(TT_DictLiteral);
1376 if (FormatToken *Previous = Tok->getPreviousNonComment())
1381 Tok->setType(TT_ObjCMethodExpr);
1382 const FormatToken *BeforePrevious = Tok->Previous->Previous;
1387 Tok->Previous->is(tok::identifier) && Tok->Previous->is(TT_Unknown);
1396 Tok->Previous->setType(TT_SelectorName);
1398 Contexts.back().FirstObjCSelectorName = Tok->Previous;
1399 } else if (Tok->Previous->ColumnWidth >
1402 Tok->Previous->ColumnWidth;
1404 Tok->Previous->ParameterIndex =
1409 Tok->setType(TT_RangeBasedForLoopColon);
1410 for (auto *Prev = Tok->Previous;
1417 Tok->setType(TT_GenericSelectionColon);
1419 Tok->setType(TT_BitFieldColon);
1423 FormatToken *Prev = Tok->getPreviousNonComment();
1428 Tok->setType(TT_CtorInitializerColon);
1435 Tok->setType(TT_CtorInitializerColon);
1437 Tok->setType(TT_InheritanceColon);
1441 } else if (canBeObjCSelectorComponent(*Tok->Previous) && Tok->Next &&
1442 (Tok->Next->isOneOf(tok::r_paren, tok::comma) ||
1443 (canBeObjCSelectorComponent(*Tok->Next) && Tok->Next->Next &&
1444 Tok->Next->Next->is(tok::colon)))) {
1447 Tok->setType(TT_ObjCMethodExpr);
1455 Tok->setType(TT_JsTypeOperator);
1482 if ((Tok->Previous && Tok->Previous->is(tok::period)) ||
1483 (Tok->Next && Tok->Next->is(tok::colon))) {
1504 if (Tok->Previous && Tok->Previous->is(tok::r_paren) &&
1505 Tok->Previous->MatchingParen &&
1506 Tok->Previous->MatchingParen->is(TT_OverloadedOperatorLParen)) {
1507 Tok->Previous->setType(TT_OverloadedOperator);
1508 Tok->Previous->MatchingParen->setType(TT_OverloadedOperator);
1509 Tok->setType(TT_OverloadedOperatorLParen);
1519 const FormatToken *Prev = Tok->getPreviousNonComment();
1556 Tok->setType(TT_VerilogInstancePortLParen);
1564 !Tok->isOneOf(TT_TypeDeclarationParen, TT_RequiresExpressionLParen)) {
1565 if (const auto *Previous = Tok->Previous;
1570 Tok->MightBeFunctionDeclParen = true;
1576 Tok->setType(TT_TableGenListOpener);
1582 if (Tok->is(TT_RequiresExpressionLBrace))
1585 FormatToken *Previous = Tok->getPreviousNonComment();
1589 Scopes.push_back(getScopeType(*Tok));
1595 Tok->setType(TT_TemplateOpener);
1602 (Style.Language == FormatStyle::LK_Proto && Tok->Previous &&
1603 Tok->Previous->isOneOf(TT_SelectorName, TT_DictLiteral))) {
1604 Tok->setType(TT_DictLiteral);
1605 FormatToken *Previous = Tok->getPreviousNonComment();
1610 Tok->setType(TT_TemplateOpener);
1612 Tok->setType(TT_BinaryOperator);
1613 NonTemplateLess.insert(Tok);
1614 CurrentToken = Tok;
1626 if (Tok->Previous)
1630 if (Style.Language != FormatStyle::LK_TextProto && Tok->is(TT_Unknown))
1631 Tok->setType(TT_BinaryOperator);
1632 if (Tok->Previous && Tok->Previous->is(TT_TemplateCloser))
1633 Tok->SpacesRequiredBefore = 1;
1670 if (Style.isJavaScript() && Tok->Next &&
1671 Tok->Next->isOneOf(tok::semi, tok::comma, tok::colon, tok::r_paren,
1677 Tok->setType(TT_JsTypeOptionalQuestion);
1691 if (Tok->Next &&
1692 (Tok->Next->startsSequence(tok::question, tok::r_paren) ||
1693 Tok->Next->startsSequence(tok::question, tok::greater) ||
1694 Tok->Next->startsSequence(tok::question, tok::identifier,
1696 Tok->setType(TT_CSharpNullable);
1701 if (Tok->Next && Tok->Next->is(tok::identifier) && Tok->Next->Next &&
1702 Tok->Next->Next->is(tok::equal)) {
1703 Tok->setType(TT_CSharpNullable);
1713 (!Tok->Next ||
1714 !Tok->Next->isOneOf(tok::identifier, tok::string_literal) ||
1715 !Tok->Next->Next ||
1716 !Tok->Next->Next->isOneOf(tok::colon, tok::question))) {
1717 Tok->setType(TT_CSharpNullable);
1729 Tok->setType(TT_CtorInitializerComma);
1732 Tok->setType(TT_InheritanceComma);
1735 Tok->setType(TT_VerilogInstancePortComma);
1740 Tok->setFinalizedType(TT_VerilogAssignComma);
1753 if (Style.isVerilog() && Keywords.isVerilogEndOfLabel(*Tok) &&
1759 if (Tok->isOneOf(Keywords.kw___has_include,
1763 if (Style.isCSharp() && Tok->is(Keywords.kw_where) && Tok->Next &&
1764 Tok->Next->isNot(tok::l_paren)) {
1765 Tok->setType(TT_CSharpGenericTypeConstraint);
1767 if (!Tok->getPreviousNonComment())
1771 if (Tok->is(Keywords.kw_assert)) {
1774 } else if (Tok->isOneOf(Keywords.kw_def, Keywords.kw_defm) &&
1775 (!Tok->Next ||
1776 !Tok->Next->isOneOf(tok::colon, tok::l_brace))) {
1784 if (Tok->isNot(TT_LambdaArrow) && Tok->Previous &&
1785 Tok->Previous->is(tok::kw_noexcept)) {
1786 Tok->setType(TT_TrailingReturnArrow);
1905 if (!CurrentToken->Tok.getIdentifierInfo())
1911 switch (CurrentToken->Tok.getIdentifierInfo()->getPPKeywordID()) {
1938 FormatToken *Tok = CurrentToken;
1940 if (Tok->is(tok::l_paren)) {
1942 } else if (Tok->isOneOf(Keywords.kw___has_include,
1967 IdentifierInfo *Info = CurrentToken->Tok.getIdentifierInfo();
2052 bool isClosureImportStatement(const FormatToken &Tok) {
2055 return Tok.TokenText == "goog" && Tok.Next && Tok.Next->is(tok::period) &&
2056 Tok.Next->Next &&
2057 (Tok.Next->Next->TokenText == "module" ||
2058 Tok.Next->Next->TokenText == "provide" ||
2059 Tok.Next->Next->TokenText == "require" ||
2060 Tok.Next->Next->TokenText == "requireType" ||
2061 Tok.Next->Next->TokenText == "forwardDeclare") &&
2062 Tok.Next->Next->Next && Tok.Next->Next->Next->is(tok::l_paren);
2195 const FormatToken *Tok = Line.First->getNextNonComment();
2196 assert(Tok); // Current token is on the same line.
2197 if (Tok->isNot(TT_TemplateOpener)) {
2210 Tok = Tok->MatchingParen;
2211 if (!Tok)
2213 Tok = Tok->getNextNonComment();
2214 if (!Tok)
2217 if (Tok->isOneOf(tok::kw_class, tok::kw_enum, tok::kw_struct,
2370 Current.Previous->Tok.isLiteral()) {
2468 Current.Tok.setKind(tok::unknown);
2510 switch (Current.Next->Tok.getObjCKeywordID()) {
2573 /// Take a guess at whether \p Tok starts a name of a function or
2576 /// This is a heuristic based on whether \p Tok is an identifier following
2578 bool isStartOfName(const FormatToken &Tok) {
2583 if (Tok.isNot(tok::identifier) || !Tok.Previous)
2586 if (const auto *NextNonComment = Tok.getNextNonComment();
2595 if (Tok.Previous->isOneOf(TT_LeadingJavaAnnotation, Keywords.kw_instanceof,
2599 if (Style.isJavaScript() && Tok.Previous->is(Keywords.kw_in))
2603 FormatToken *PreviousNotConst = Tok.getPreviousNonComment();
2671 bool lParenStartsCppCast(const FormatToken &Tok) {
2676 FormatToken *LeftOfParens = Tok.getPreviousNonComment();
2692 bool rParenEndsCast(const FormatToken &Tok) {
2693 assert(Tok.is(tok::r_paren));
2695 if (!Tok.MatchingParen || !Tok.Previous)
2702 const auto *LParen = Tok.MatchingParen;
2703 const auto *BeforeRParen = Tok.Previous;
2704 const auto *AfterRParen = Tok.Next;
2728 auto MayBeArrayDelete = [](FormatToken *Tok) -> FormatToken * {
2729 if (Tok->isNot(tok::r_square))
2732 Tok = Tok->getPreviousNonComment();
2733 if (!Tok || Tok->isNot(tok::l_square))
2736 Tok = Tok->getPreviousNonComment();
2737 if (!Tok || Tok->isNot(tok::kw_delete))
2739 return Tok;
2748 if (LeftOfParens->Tok.getIdentifierInfo() && LeftOfParens->Previous &&
2755 if (LeftOfParens->Tok.getIdentifierInfo() &&
2794 (AfterRParen->Tok.isLiteral() &&
2799 auto IsNonVariableTemplate = [](const FormatToken &Tok) {
2800 if (Tok.isNot(TT_TemplateCloser))
2802 const auto *Less = Tok.MatchingParen;
2823 if (const auto *Tok = T->MatchingParen->Previous;
2824 Tok && Tok->isAttribute()) {
2825 T = Tok->Previous;
2860 for (const auto *Token = LParen->Next; Token != &Tok; Token = Token->Next)
2931 bool determineUnaryOperatorByUsage(const FormatToken &Tok) {
2932 const FormatToken *PrevToken = Tok.getPreviousNonComment();
2968 TokenType determineStarAmpUsage(const FormatToken &Tok, bool IsExpression,
2974 if (Style.isCSharp() && Tok.is(tok::ampamp))
2982 if (Tok.is(tok::star))
2984 return determineUnaryOperatorByUsage(Tok) ? TT_UnaryOperator
2988 const FormatToken *PrevToken = Tok.getPreviousNonComment();
2993 if (PrevToken->isOneOf(tok::kw_new, tok::kw_delete) && Tok.is(tok::ampamp))
2996 const FormatToken *NextToken = Tok.getNextNonComment();
3016 if (determineUnaryOperatorByUsage(Tok))
3036 if (PrevToken->is(tok::r_brace) && Tok.is(tok::star) &&
3044 if (PrevToken->Tok.isLiteral() ||
3053 if (NextNonParen && (NextNonParen->Tok.isLiteral() ||
3062 if (InTemplateArgument && NextToken->Tok.isAnyIdentifier())
3067 if (Tok.is(tok::ampamp) &&
3074 if (NextToken->Tok.isAnyIdentifier()) {
3097 if (Tok.is(tok::amp) && PrevToken && PrevToken->Tok.isAnyIdentifier() &&
3099 NextToken && NextToken->Tok.isAnyIdentifier()) {
3115 TokenType determinePlusMinusCaretUsage(const FormatToken &Tok) {
3116 if (determineUnaryOperatorByUsage(Tok))
3119 const FormatToken *PrevToken = Tok.getPreviousNonComment();
3131 TokenType determineIncrementUsage(const FormatToken &Tok) {
3132 const FormatToken *PrevToken = Tok.getPreviousNonComment();
3449 FormatToken *Tok = Start;
3451 if (Tok->is(Keywords.kw_assign))
3452 Tok = Tok->getNextNonComment();
3461 while (Tok) {
3462 FormatToken *Next = Tok->getNextNonComment();
3464 if (Tok->is(tok::hash)) {
3466 First = Tok;
3467 Tok = Next;
3468 if (Tok)
3469 Tok = Tok->getNextNonComment();
3470 } else if (Tok->is(tok::hashhash)) {
3472 Tok = Next;
3473 if (Tok)
3474 Tok = Tok->getNextNonComment();
3475 } else if (Keywords.isVerilogQualifier(*Tok) ||
3476 Keywords.isVerilogIdentifier(*Tok)) {
3477 First = Tok;
3478 Tok = Next;
3480 while (Tok && Tok->isOneOf(tok::period, tok::coloncolon) &&
3481 (Tok = Tok->getNextNonComment())) {
3482 if (Keywords.isVerilogIdentifier(*Tok))
3483 Tok = Tok->getNextNonComment();
3486 Tok = nullptr;
3487 } else if (Tok->is(tok::l_paren)) {
3497 Tok->setType(TT_VerilogStrength);
3498 Tok = Tok->MatchingParen;
3499 if (Tok) {
3500 Tok->setType(TT_VerilogStrength);
3501 Tok = Tok->getNextNonComment();
3506 } else if (Tok->is(Keywords.kw_verilogHash)) {
3511 Tok = Next->getNextNonComment();
3520 while (Tok && Tok->is(tok::l_square) && (Tok = Tok->MatchingParen))
3521 Tok = Tok->getNextNonComment();
3522 if (Tok && (Tok->is(tok::hash) || Keywords.isVerilogIdentifier(*Tok)))
3523 Second = Tok;
3609 for (const auto *Tok = Line.First; Tok; Tok = Tok->Next)
3610 Result = std::max(Result, Tok->NestingLevel);
3618 for (FormatToken *Tok = Line.getFirstNonComment(), *Name = nullptr; Tok;
3619 Tok = Tok->getNextNonComment()) {
3621 if (Tok->is(tok::l_square) && Tok->is(TT_AttributeSquare)) {
3622 Tok = Tok->MatchingParen;
3623 if (!Tok)
3630 if (Tok->is(tok::l_paren) && Tok->is(TT_Unknown) && Tok->MatchingParen) {
3631 OpeningParen = Tok;
3638 if (Tok->isOneOf(tok::kw_friend, tok::kw_inline, tok::kw_virtual,
3644 if (Tok->is(tok::coloncolon)) {
3645 Tok = Tok->Next;
3646 if (!Tok)
3651 while (Tok->startsSequence(tok::identifier, tok::coloncolon)) {
3652 assert(Tok->Next);
3653 Tok = Tok->Next->Next;
3654 if (!Tok)
3659 if (Tok->is(tok::tilde)) {
3660 Tok = Tok->Next;
3661 if (!Tok)
3666 if (Tok->isNot(tok::identifier) || Tok->isNot(TT_Unknown))
3669 Name = Tok;
3675 // Checks if Tok is a constructor/destructor name qualified by its class name.
3676 static bool isCtorOrDtorName(const FormatToken *Tok) {
3677 assert(Tok && Tok->is(tok::identifier));
3678 const auto *Prev = Tok->Previous;
3687 return Prev->Previous->TokenText == Tok->TokenText;
3729 auto *Tok = getFunctionName(Line, OpeningParen);
3730 if (Tok && ((!ScopeStack.empty() && ScopeStack.back() == ST_Class) ||
3731 Line.endsWith(TT_FunctionLBrace) || isCtorOrDtorName(Tok))) {
3732 Tok->setFinalizedType(TT_CtorDtorDeclName);
3759 if (!Current.Tok.getIdentifierInfo())
3819 if (Previous.Tok.getIdentifierInfo() &&
3889 for (const FormatToken *Tok = Next->Next; Tok && Tok != ClosingParen;
3890 Tok = Tok->Next) {
3891 if (Tok->is(TT_TypeDeclarationParen))
3893 if (Tok->isOneOf(tok::l_paren, TT_TemplateOpener) && Tok->MatchingParen) {
3894 Tok = Tok->MatchingParen;
3897 if (Tok->is(tok::kw_const) || Tok->isTypeName(LangOpts) ||
3898 Tok->isOneOf(TT_PointerOrReference, TT_StartOfName, tok::ellipsis)) {
3901 if (Tok->isOneOf(tok::l_brace, TT_ObjCMethodExpr) || Tok->Tok.isLiteral())
3957 for (auto *Tok = FirstNonComment ? FirstNonComment->Next : nullptr; Tok;
3958 Tok = Tok->Next) {
3959 if (Tok->is(TT_StartOfName))
3961 if (Tok->Previous->EndsCppAttributeGroup)
3962 AfterLastAttribute = Tok;
3963 if (const bool IsCtorOrDtor = Tok->is(TT_CtorDtorDeclName);
3965 isFunctionDeclarationName(LangOpts, *Tok, Line, ClosingParen)) {
3967 Tok->setFinalizedType(TT_FunctionDeclarationName);
3984 auto *Tok = Line.Last->Previous;
3985 while (Tok->isNot(tok::r_brace))
3986 Tok = Tok->Previous;
3987 if (auto *LBrace = Tok->MatchingParen; LBrace) {
3989 Tok->setBlockKind(BK_Block);
4005 for (const auto *Tok = FirstNonComment; Tok; Tok = Tok->Next) {
4006 if (Tok->isNot(tok::kw_operator))
4009 Tok = Tok->Next;
4010 } while (Tok && Tok->isNot(TT_OverloadedOperatorLParen));
4011 if (!Tok || !Tok->MatchingParen)
4013 const auto *LeftParen = Tok;
4014 for (Tok = Tok->Next; Tok && Tok != LeftParen->MatchingParen;
4015 Tok = Tok->Next) {
4016 if (Tok->isNot(tok::identifier))
4018 auto *Next = Tok->Next;
4025 Tok = Next;
4029 for (auto *Tok = ClosingParen->Next; Tok; Tok = Tok->Next) {
4030 if (Tok->is(TT_CtorInitializerColon))
4032 if (Tok->is(tok::arrow)) {
4033 Tok->setType(TT_TrailingReturnArrow);
4036 if (Tok->isNot(TT_TrailingAnnotation))
4038 const auto *Next = Tok->Next;
4041 Tok = Next->MatchingParen;
4042 if (!Tok)
4216 const FormatToken &Tok,
4218 const FormatToken &Left = *Tok.Previous;
4219 const FormatToken &Right = Tok;
4460 Left.Tok.getObjCKeywordID() == tok::objc_property) {
4563 return Left.Tok.isLiteral() || (Left.is(tok::identifier) && BeforeLeft &&
4586 if (Left.Tok.isLiteral())
4616 if (Right.Tok.isLiteral())
4854 (Left.Tok.getIdentifierInfo() || Left.is(tok::r_paren))) {
4859 if (Left.is(tok::at) && Right.Tok.getObjCKeywordID() != tok::objc_not_keyword)
4998 if (Left.Tok.getIdentifierInfo() && Right.Tok.isLiteral())
5143 if (Line.MustBeDeclaration && Left.Tok.getIdentifierInfo())
5148 Left.Tok.getIdentifierInfo()) {
5526 // Returns 'true' if 'Tok' is a brace we'd want to break before in Allman style.
5527 static bool isAllmanBrace(const FormatToken &Tok) {
5528 return Tok.is(tok::l_brace) && Tok.is(BK_Block) &&
5529 !Tok.isOneOf(TT_ObjCBlockLBrace, TT_LambdaLBrace, TT_DictLiteral);
5532 // Returns 'true' if 'Tok' is a function argument.
5533 static bool IsFunctionArgument(const FormatToken &Tok) {
5534 return Tok.MatchingParen && Tok.MatchingParen->Next &&
5535 Tok.MatchingParen->Next->isOneOf(tok::comma, tok::r_paren);
5539 isItAnEmptyLambdaAllowed(const FormatToken &Tok,
5541 return Tok.Children.empty() && ShortLambdaOption != FormatStyle::SLS_None;
5544 static bool isAllmanLambdaBrace(const FormatToken &Tok) {
5545 return Tok.is(tok::l_brace) && Tok.is(BK_Block) &&
5546 !Tok.isOneOf(TT_ObjCBlockLBrace, TT_DictLiteral);
5703 for (const auto *Tok = &Right; Tok; Tok = Tok->Next) {
5704 if (Tok->isOneOf(tok::l_brace, tok::l_square))
5706 if (Tok->isOneOf(tok::r_brace, tok::r_square))
6061 (Left.Tok.getIdentifierInfo() ||
6179 if (Left.Tok.getObjCKeywordID() == tok::objc_interface)
6423 const FormatToken *Tok = Line.First;
6424 while (Tok) {
6425 llvm::errs() << " M=" << Tok->MustBreakBefore
6426 << " C=" << Tok->CanBreakBefore
6427 << " T=" << getTokenTypeName(Tok->getType())
6428 << " S=" << Tok->SpacesRequiredBefore
6429 << " F=" << Tok->Finalized << " B=" << Tok->BlockParameterCount
6430 << " BK=" << Tok->getBlockKind() << " P=" << Tok->SplitPenalty
6431 << " Name=" << Tok->Tok.getName() << " L=" << Tok->TotalLength
6432 << " PPK=" << Tok->getPackingKind() << " FakeLParens=";
6433 for (prec::Level LParen : Tok->FakeLParens)
6435 llvm::errs() << " FakeRParens=" << Tok->FakeRParens;
6436 llvm::errs() << " II=" << Tok->Tok.getIdentifierInfo();
6437 llvm::errs() << " Text='" << Tok->TokenText << "'\n";
6438 if (!Tok->Next)
6439 assert(Tok == Line.Last);
6440 Tok = Tok->Next;