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();
81 static bool isKeywordWithCondition(const FormatToken &Tok) {
82 return Tok.isOneOf(tok::kw_if, tok::kw_for, tok::kw_while, tok::kw_switch,
87 static bool isCppAttribute(bool IsCpp, const FormatToken &Tok) {
88 if (!IsCpp || !Tok.startsSequence(tok::l_square, tok::l_square))
91 if (Tok.Previous && Tok.Previous->is(tok::at))
93 const FormatToken *AttrTok = Tok.Next->Next;
159 if (Previous.Previous->Tok.isLiteral())
229 CurrentToken->Tok.setLength(1);
231 if (Next && Next->Tok.isLiteral())
289 switch (CurrentToken->Tok.getKind()) {
518 for (FormatToken *Tok = &OpeningParen; Tok != CurrentToken;
519 Tok = Tok->Next) {
520 if (Tok->is(TT_BinaryOperator) && Tok->isPointerOrReference())
521 Tok->setType(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 std::find(Opes.begin(), Opes.end(), Tok.TokenText.str()) !=
1079 FormatToken *Tok = CurrentToken;
1082 if (Tok->isOneOf(tok::numeric_constant, tok::string_literal,
1088 if (Tok->is(tok::l_brace)) {
1089 Scopes.push_back(getScopeType(*Tok));
1093 if (Tok->is(tok::l_square)) {
1094 Tok->setType(TT_TableGenListOpener);
1097 if (Tok->is(tok::less)) {
1105 if (Tok->is(tok::l_paren)) {
1106 Tok->setType(TT_TableGenDAGArgOpener);
1107 return parseTableGenDAGArgAndList(Tok);
1110 if (Tok->is(TT_TableGenBangOperator)) {
1127 if (Tok->is(TT_TableGenCondOperator)) {
1128 Tok = CurrentToken;
1130 if (!Tok || Tok->isNot(tok::l_paren))
1138 if (Tok->is(tok::identifier)) {
1223 if (Previous->Tok.getIdentifierInfo() ||
1304 FormatToken *Tok = CurrentToken;
1308 if (Tok->is(TT_VerilogTableItem))
1311 if (Tok->is(TT_TableGenMultiLineString))
1313 switch (Tok->Tok.getKind()) {
1316 if (!Tok->Previous && Line.MustBeDeclaration)
1317 Tok->setType(TT_ObjCMethodSpecifier);
1320 if (!Tok->Previous)
1324 if (Tok->isTypeFinalized())
1338 Tok->setType(TT_JsTypeColon);
1343 Tok->setType(TT_AttributeColon);
1347 Tok->setType(TT_CSharpNamedArgumentColon);
1350 } else if (Style.isVerilog() && Tok->isNot(TT_BinaryOperator)) {
1353 if (Keywords.isVerilogEnd(*Tok->Previous) ||
1354 Keywords.isVerilogBegin(*Tok->Previous)) {
1355 Tok->setType(TT_VerilogBlockLabelColon);
1357 Tok->setType(TT_BitFieldColon);
1359 Tok->setType(TT_DictLiteral);
1364 Tok->setType(TT_CaseLabelColon);
1373 Tok->setType(TT_ModulePartitionColon);
1375 Tok->setType(TT_InlineASMColon);
1377 Tok->setType(TT_DictLiteral);
1379 if (FormatToken *Previous = Tok->getPreviousNonComment())
1384 Tok->setType(TT_ObjCMethodExpr);
1385 const FormatToken *BeforePrevious = Tok->Previous->Previous;
1390 Tok->Previous->is(tok::identifier) && Tok->Previous->is(TT_Unknown);
1399 Tok->Previous->setType(TT_SelectorName);
1401 Contexts.back().FirstObjCSelectorName = Tok->Previous;
1402 } else if (Tok->Previous->ColumnWidth >
1405 Tok->Previous->ColumnWidth;
1407 Tok->Previous->ParameterIndex =
1412 Tok->setType(TT_RangeBasedForLoopColon);
1414 Tok->setType(TT_GenericSelectionColon);
1416 Tok->setType(TT_BitFieldColon);
1420 FormatToken *Prev = Tok->getPreviousNonComment();
1425 Tok->setType(TT_CtorInitializerColon);
1432 Tok->setType(TT_CtorInitializerColon);
1434 Tok->setType(TT_InheritanceColon);
1438 } else if (canBeObjCSelectorComponent(*Tok->Previous) && Tok->Next &&
1439 (Tok->Next->isOneOf(tok::r_paren, tok::comma) ||
1440 (canBeObjCSelectorComponent(*Tok->Next) && Tok->Next->Next &&
1441 Tok->Next->Next->is(tok::colon)))) {
1444 Tok->setType(TT_ObjCMethodExpr);
1452 Tok->setType(TT_JsTypeOperator);
1478 if ((Tok->Previous && Tok->Previous->is(tok::period)) ||
1479 (Tok->Next && Tok->Next->is(tok::colon))) {
1500 if (Tok->Previous && Tok->Previous->is(tok::r_paren) &&
1501 Tok->Previous->MatchingParen &&
1502 Tok->Previous->MatchingParen->is(TT_OverloadedOperatorLParen)) {
1503 Tok->Previous->setType(TT_OverloadedOperator);
1504 Tok->Previous->MatchingParen->setType(TT_OverloadedOperator);
1505 Tok->setType(TT_OverloadedOperatorLParen);
1515 const FormatToken *Prev = Tok->getPreviousNonComment();
1551 Tok->setFinalizedType(TT_VerilogInstancePortLParen);
1559 !Tok->isOneOf(TT_TypeDeclarationParen, TT_RequiresExpressionLParen)) {
1560 if (const auto *Previous = Tok->Previous;
1565 Tok->MightBeFunctionDeclParen = true;
1571 Tok->setType(TT_TableGenListOpener);
1577 FormatToken *Previous = Tok->getPreviousNonComment();
1581 Scopes.push_back(getScopeType(*Tok));
1587 Tok->setType(TT_TemplateOpener);
1594 (Style.Language == FormatStyle::LK_Proto && Tok->Previous &&
1595 Tok->Previous->isOneOf(TT_SelectorName, TT_DictLiteral))) {
1596 Tok->setType(TT_DictLiteral);
1597 FormatToken *Previous = Tok->getPreviousNonComment();
1602 Tok->setType(TT_TemplateOpener);
1604 Tok->setType(TT_BinaryOperator);
1605 NonTemplateLess.insert(Tok);
1606 CurrentToken = Tok;
1618 if (Tok->Previous)
1622 if (Style.Language != FormatStyle::LK_TextProto && Tok->is(TT_Unknown))
1623 Tok->setType(TT_BinaryOperator);
1624 if (Tok->Previous && Tok->Previous->is(TT_TemplateCloser))
1625 Tok->SpacesRequiredBefore = 1;
1662 if (Style.isJavaScript() && Tok->Next &&
1663 Tok->Next->isOneOf(tok::semi, tok::comma, tok::colon, tok::r_paren,
1669 Tok->setType(TT_JsTypeOptionalQuestion);
1683 if (Tok->Next &&
1684 (Tok->Next->startsSequence(tok::question, tok::r_paren) ||
1685 Tok->Next->startsSequence(tok::question, tok::greater) ||
1686 Tok->Next->startsSequence(tok::question, tok::identifier,
1688 Tok->setType(TT_CSharpNullable);
1693 if (Tok->Next && Tok->Next->is(tok::identifier) && Tok->Next->Next &&
1694 Tok->Next->Next->is(tok::equal)) {
1695 Tok->setType(TT_CSharpNullable);
1705 (!Tok->Next ||
1706 !Tok->Next->isOneOf(tok::identifier, tok::string_literal) ||
1707 !Tok->Next->Next ||
1708 !Tok->Next->Next->isOneOf(tok::colon, tok::question))) {
1709 Tok->setType(TT_CSharpNullable);
1721 Tok->setType(TT_CtorInitializerComma);
1724 Tok->setType(TT_InheritanceComma);
1727 Tok->setFinalizedType(TT_VerilogInstancePortComma);
1732 Tok->setFinalizedType(TT_VerilogAssignComma);
1745 if (Style.isVerilog() && Keywords.isVerilogEndOfLabel(*Tok) &&
1751 if (Tok->isOneOf(Keywords.kw___has_include,
1755 if (Style.isCSharp() && Tok->is(Keywords.kw_where) && Tok->Next &&
1756 Tok->Next->isNot(tok::l_paren)) {
1757 Tok->setType(TT_CSharpGenericTypeConstraint);
1759 if (!Tok->getPreviousNonComment())
1763 if (Tok->is(Keywords.kw_assert)) {
1766 } else if (Tok->isOneOf(Keywords.kw_def, Keywords.kw_defm) &&
1767 (!Tok->Next ||
1768 !Tok->Next->isOneOf(tok::colon, tok::l_brace))) {
1776 if (Tok->isNot(TT_LambdaArrow) && Tok->Previous &&
1777 Tok->Previous->is(tok::kw_noexcept)) {
1778 Tok->setType(TT_TrailingReturnArrow);
1897 if (!CurrentToken->Tok.getIdentifierInfo())
1903 switch (CurrentToken->Tok.getIdentifierInfo()->getPPKeywordID()) {
1930 FormatToken *Tok = CurrentToken;
1932 if (Tok->is(tok::l_paren)) {
1934 } else if (Tok->isOneOf(Keywords.kw___has_include,
1959 IdentifierInfo *Info = CurrentToken->Tok.getIdentifierInfo();
2041 bool isClosureImportStatement(const FormatToken &Tok) {
2044 return Tok.TokenText == "goog" && Tok.Next && Tok.Next->is(tok::period) &&
2045 Tok.Next->Next &&
2046 (Tok.Next->Next->TokenText == "module" ||
2047 Tok.Next->Next->TokenText == "provide" ||
2048 Tok.Next->Next->TokenText == "require" ||
2049 Tok.Next->Next->TokenText == "requireType" ||
2050 Tok.Next->Next->TokenText == "forwardDeclare") &&
2051 Tok.Next->Next->Next && Tok.Next->Next->Next->is(tok::l_paren);
2184 const FormatToken *Tok = Line.First->getNextNonComment();
2185 assert(Tok); // Current token is on the same line.
2186 if (Tok->isNot(TT_TemplateOpener)) {
2199 Tok = Tok->MatchingParen;
2200 if (!Tok)
2202 Tok = Tok->getNextNonComment();
2203 if (!Tok)
2206 if (Tok->isOneOf(tok::kw_class, tok::kw_enum, tok::kw_struct,
2359 Current.Previous->Tok.isLiteral()) {
2456 Current.Tok.setKind(tok::unknown);
2498 switch (Current.Next->Tok.getObjCKeywordID()) {
2561 /// Take a guess at whether \p Tok starts a name of a function or
2564 /// This is a heuristic based on whether \p Tok is an identifier following
2566 bool isStartOfName(const FormatToken &Tok) {
2571 if (Tok.isNot(tok::identifier) || !Tok.Previous)
2574 if (const auto *NextNonComment = Tok.getNextNonComment();
2583 if (Tok.Previous->isOneOf(TT_LeadingJavaAnnotation, Keywords.kw_instanceof,
2587 if (Style.isJavaScript() && Tok.Previous->is(Keywords.kw_in))
2591 FormatToken *PreviousNotConst = Tok.getPreviousNonComment();
2659 bool lParenStartsCppCast(const FormatToken &Tok) {
2664 FormatToken *LeftOfParens = Tok.getPreviousNonComment();
2680 bool rParenEndsCast(const FormatToken &Tok) {
2681 assert(Tok.is(tok::r_paren));
2683 if (!Tok.MatchingParen || !Tok.Previous)
2690 const auto *LParen = Tok.MatchingParen;
2691 const auto *BeforeRParen = Tok.Previous;
2692 const auto *AfterRParen = Tok.Next;
2716 auto MayBeArrayDelete = [](FormatToken *Tok) -> FormatToken * {
2717 if (Tok->isNot(tok::r_square))
2720 Tok = Tok->getPreviousNonComment();
2721 if (!Tok || Tok->isNot(tok::l_square))
2724 Tok = Tok->getPreviousNonComment();
2725 if (!Tok || Tok->isNot(tok::kw_delete))
2727 return Tok;
2736 if (LeftOfParens->Tok.getIdentifierInfo() && LeftOfParens->Previous &&
2743 if (LeftOfParens->Tok.getIdentifierInfo() &&
2782 (AfterRParen->Tok.isLiteral() &&
2801 if (const auto *Tok = T->MatchingParen->Previous;
2802 Tok && Tok->isAttribute()) {
2803 T = Tok->Previous;
2837 for (const auto *Token = LParen->Next; Token != &Tok; Token = Token->Next)
2900 bool determineUnaryOperatorByUsage(const FormatToken &Tok) {
2901 const FormatToken *PrevToken = Tok.getPreviousNonComment();
2937 TokenType determineStarAmpUsage(const FormatToken &Tok, bool IsExpression,
2943 if (Style.isCSharp() && Tok.is(tok::ampamp))
2951 if (Tok.is(tok::star))
2953 return determineUnaryOperatorByUsage(Tok) ? TT_UnaryOperator
2957 const FormatToken *PrevToken = Tok.getPreviousNonComment();
2962 if (PrevToken->isOneOf(tok::kw_new, tok::kw_delete) && Tok.is(tok::ampamp))
2965 const FormatToken *NextToken = Tok.getNextNonComment();
2985 if (determineUnaryOperatorByUsage(Tok))
3005 if (PrevToken->is(tok::r_brace) && Tok.is(tok::star) &&
3013 if (PrevToken->Tok.isLiteral() ||
3022 if (NextNonParen && (NextNonParen->Tok.isLiteral() ||
3031 if (InTemplateArgument && NextToken->Tok.isAnyIdentifier())
3036 if (Tok.is(tok::ampamp) &&
3043 if (NextToken->Tok.isAnyIdentifier()) {
3066 if (Tok.is(tok::amp) && PrevToken && PrevToken->Tok.isAnyIdentifier() &&
3068 NextToken && NextToken->Tok.isAnyIdentifier()) {
3079 TokenType determinePlusMinusCaretUsage(const FormatToken &Tok) {
3080 if (determineUnaryOperatorByUsage(Tok))
3083 const FormatToken *PrevToken = Tok.getPreviousNonComment();
3095 TokenType determineIncrementUsage(const FormatToken &Tok) {
3096 const FormatToken *PrevToken = Tok.getPreviousNonComment();
3404 FormatToken *Tok = Start;
3406 if (Tok->is(Keywords.kw_assign))
3407 Tok = Tok->getNextNonComment();
3416 while (Tok) {
3417 FormatToken *Next = Tok->getNextNonComment();
3419 if (Tok->is(tok::hash)) {
3421 First = Tok;
3422 Tok = Next;
3423 if (Tok)
3424 Tok = Tok->getNextNonComment();
3425 } else if (Tok->is(tok::hashhash)) {
3427 Tok = Next;
3428 if (Tok)
3429 Tok = Tok->getNextNonComment();
3430 } else if (Keywords.isVerilogQualifier(*Tok) ||
3431 Keywords.isVerilogIdentifier(*Tok)) {
3432 First = Tok;
3433 Tok = Next;
3435 while (Tok && Tok->isOneOf(tok::period, tok::coloncolon) &&
3436 (Tok = Tok->getNextNonComment())) {
3437 if (Keywords.isVerilogIdentifier(*Tok))
3438 Tok = Tok->getNextNonComment();
3441 Tok = nullptr;
3442 } else if (Tok->is(tok::l_paren)) {
3452 Tok->setType(TT_VerilogStrength);
3453 Tok = Tok->MatchingParen;
3454 if (Tok) {
3455 Tok->setType(TT_VerilogStrength);
3456 Tok = Tok->getNextNonComment();
3461 } else if (Tok->is(Keywords.kw_verilogHash)) {
3466 Tok = Next->getNextNonComment();
3475 while (Tok && Tok->is(tok::l_square) && (Tok = Tok->MatchingParen))
3476 Tok = Tok->getNextNonComment();
3477 if (Tok && (Tok->is(tok::hash) || Keywords.isVerilogIdentifier(*Tok)))
3478 Second = Tok;
3564 for (const auto *Tok = Line.First; Tok; Tok = Tok->Next)
3565 Result = std::max(Result, Tok->NestingLevel);
3573 for (FormatToken *Tok = Line.getFirstNonComment(), *Name = nullptr; Tok;
3574 Tok = Tok->getNextNonComment()) {
3576 if (Tok->is(tok::l_square) && Tok->is(TT_AttributeSquare)) {
3577 Tok = Tok->MatchingParen;
3578 if (!Tok)
3585 if (Tok->is(tok::l_paren) && Tok->isNot(TT_FunctionTypeLParen) &&
3586 Tok->MatchingParen) {
3587 OpeningParen = Tok;
3594 if (Tok->isOneOf(tok::kw_friend, tok::kw_inline, tok::kw_virtual,
3600 if (Tok->is(tok::coloncolon)) {
3601 Tok = Tok->Next;
3602 if (!Tok)
3607 while (Tok->startsSequence(tok::identifier, tok::coloncolon)) {
3608 assert(Tok->Next);
3609 Tok = Tok->Next->Next;
3610 if (!Tok)
3615 if (Tok->is(tok::tilde)) {
3616 Tok = Tok->Next;
3617 if (!Tok)
3622 if (Tok->isNot(tok::identifier) || Tok->isNot(TT_Unknown))
3625 Name = Tok;
3631 // Checks if Tok is a constructor/destructor name qualified by its class name.
3632 static bool isCtorOrDtorName(const FormatToken *Tok) {
3633 assert(Tok && Tok->is(tok::identifier));
3634 const auto *Prev = Tok->Previous;
3643 return Prev->Previous->TokenText == Tok->TokenText;
3668 auto *Tok = getFunctionName(Line, OpeningParen);
3669 if (Tok && ((!Scopes.empty() && Scopes.back() == ST_Class) ||
3670 Line.endsWith(TT_FunctionLBrace) || isCtorOrDtorName(Tok))) {
3671 Tok->setFinalizedType(TT_CtorDtorDeclName);
3700 if (!Current.Tok.getIdentifierInfo())
3751 if (Previous.Tok.getIdentifierInfo() &&
3821 for (const FormatToken *Tok = Next->Next; Tok && Tok != ClosingParen;
3822 Tok = Tok->Next) {
3823 if (Tok->is(TT_TypeDeclarationParen))
3825 if (Tok->isOneOf(tok::l_paren, TT_TemplateOpener) && Tok->MatchingParen) {
3826 Tok = Tok->MatchingParen;
3829 if (Tok->is(tok::kw_const) || Tok->isTypeName(LangOpts) ||
3830 Tok->isOneOf(TT_PointerOrReference, TT_StartOfName, tok::ellipsis)) {
3833 if (Tok->isOneOf(tok::l_brace, TT_ObjCMethodExpr) || Tok->Tok.isLiteral())
3885 for (auto *Tok = Current; Tok; Tok = Tok->Next) {
3886 if (Tok->is(TT_StartOfName))
3888 if (Tok->Previous->EndsCppAttributeGroup)
3889 AfterLastAttribute = Tok;
3890 if (const bool IsCtorOrDtor = Tok->is(TT_CtorDtorDeclName);
3892 isFunctionDeclarationName(LangOpts, *Tok, Line, ClosingParen)) {
3894 Tok->setFinalizedType(TT_FunctionDeclarationName);
3909 auto *Tok = Line.Last->Previous;
3910 while (Tok->isNot(tok::r_brace))
3911 Tok = Tok->Previous;
3912 if (auto *LBrace = Tok->MatchingParen; LBrace) {
3914 Tok->setBlockKind(BK_Block);
3930 for (const auto *Tok = First; Tok; Tok = Tok->Next) {
3931 if (Tok->isNot(tok::kw_operator))
3934 Tok = Tok->Next;
3935 } while (Tok && Tok->isNot(TT_OverloadedOperatorLParen));
3936 if (!Tok || !Tok->MatchingParen)
3938 const auto *LeftParen = Tok;
3939 for (Tok = Tok->Next; Tok && Tok != LeftParen->MatchingParen;
3940 Tok = Tok->Next) {
3941 if (Tok->isNot(tok::identifier))
3943 auto *Next = Tok->Next;
3950 Tok = Next;
3954 for (auto *Tok = ClosingParen->Next; Tok; Tok = Tok->Next) {
3955 if (Tok->is(TT_CtorInitializerColon))
3957 if (Tok->is(tok::arrow)) {
3958 Tok->setType(TT_TrailingReturnArrow);
3961 if (Tok->isNot(TT_TrailingAnnotation))
3963 const auto *Next = Tok->Next;
3966 Tok = Next->MatchingParen;
3967 if (!Tok)
4142 const FormatToken &Tok,
4144 const FormatToken &Left = *Tok.Previous;
4145 const FormatToken &Right = Tok;
4384 Left.Tok.getObjCKeywordID() == tok::objc_property) {
4489 return Left.Tok.isLiteral() || (Left.is(tok::identifier) && BeforeLeft &&
4512 if (Left.Tok.isLiteral())
4542 if (Right.Tok.isLiteral())
4778 (Left.Tok.getIdentifierInfo() || Left.is(tok::r_paren))) {
4783 if (Left.is(tok::at) && Right.Tok.getObjCKeywordID() != tok::objc_not_keyword)
4916 if (Left.Tok.getIdentifierInfo() && Right.Tok.isLiteral())
5061 if (Line.MustBeDeclaration && Left.Tok.getIdentifierInfo())
5066 Left.Tok.getIdentifierInfo()) {
5440 // Returns 'true' if 'Tok' is a brace we'd want to break before in Allman style.
5441 static bool isAllmanBrace(const FormatToken &Tok) {
5442 return Tok.is(tok::l_brace) && Tok.is(BK_Block) &&
5443 !Tok.isOneOf(TT_ObjCBlockLBrace, TT_LambdaLBrace, TT_DictLiteral);
5446 // Returns 'true' if 'Tok' is a function argument.
5447 static bool IsFunctionArgument(const FormatToken &Tok) {
5448 return Tok.MatchingParen && Tok.MatchingParen->Next &&
5449 Tok.MatchingParen->Next->isOneOf(tok::comma, tok::r_paren);
5453 isItAnEmptyLambdaAllowed(const FormatToken &Tok,
5455 return Tok.Children.empty() && ShortLambdaOption != FormatStyle::SLS_None;
5458 static bool isAllmanLambdaBrace(const FormatToken &Tok) {
5459 return Tok.is(tok::l_brace) && Tok.is(BK_Block) &&
5460 !Tok.isOneOf(TT_ObjCBlockLBrace, TT_DictLiteral);
5607 for (const auto *Tok = &Right; Tok; Tok = Tok->Next) {
5608 if (Tok->isOneOf(tok::l_brace, tok::l_square))
5610 if (Tok->isOneOf(tok::r_brace, tok::r_square))
5962 (Left.Tok.getIdentifierInfo() ||
6051 if (Left.Tok.getObjCKeywordID() == tok::objc_interface)
6317 const FormatToken *Tok = Line.First;
6318 while (Tok) {
6319 llvm::errs() << " M=" << Tok->MustBreakBefore
6320 << " C=" << Tok->CanBreakBefore
6321 << " T=" << getTokenTypeName(Tok->getType())
6322 << " S=" << Tok->SpacesRequiredBefore
6323 << " F=" << Tok->Finalized << " B=" << Tok->BlockParameterCount
6324 << " BK=" << Tok->getBlockKind() << " P=" << Tok->SplitPenalty
6325 << " Name=" << Tok->Tok.getName() << " L=" << Tok->TotalLength
6326 << " PPK=" << Tok->getPackingKind() << " FakeLParens=";
6327 for (prec::Level LParen : Tok->FakeLParens)
6329 llvm::errs() << " FakeRParens=" << Tok->FakeRParens;
6330 llvm::errs() << " II=" << Tok->Tok.getIdentifierInfo();
6331 llvm::errs() << " Text='" << Tok->TokenText << "'\n";
6332 if (!Tok->Next)
6333 assert(Tok == Line.Last);
6334 Tok = Tok->Next;