Lines Matching defs:FormatTok

182   FormatTok = nullptr;
225 pushToken(FormatTok);
299 switch (FormatTok->Tok.getKind()) {
303 if (FormatTok->is(Keywords.kw_where)) {
318 switch (FormatTok->Tok.getKind()) {
367 if (FormatTok->isAttribute()) {
369 if (FormatTok->is(tok::l_paren))
373 tok::TokenKind Kind = FormatTok->Tok.getKind();
374 if (FormatTok->is(TT_MacroBlockBegin))
376 else if (FormatTok->is(TT_MacroBlockEnd))
395 FormatTok->setFinalizedType(TT_CompoundRequirementLBrace);
396 } else if (FormatTok->Previous &&
397 FormatTok->Previous->ClosesRequiresClause) {
403 if (!InRequiresExpression && FormatTok->isNot(TT_MacroBlockBegin)) {
406 FormatTok->setFinalizedType(TT_BlockLBrace);
419 if (FormatTok->isNot(tok::r_brace) || StatementCount != 1 || HasLabel ||
437 FormatTok = Tokens->setPosition(StoredPosition);
490 FormatToken *Tok = FormatTok;
613 if (IsCpp && Line->InMacroBody && PrevTok != FormatTok &&
614 !FormatTok->Previous && NextTok->is(tok::eof) &&
656 FormatTok = Tokens->setPosition(StoredPosition);
661 if (auto Prev = FormatTok->getPreviousNonComment();
752 if (Style.isVerilog() && FormatTok->is(tok::colon)) {
754 if (Keywords.isVerilogIdentifier(*FormatTok))
762 Style.isVerilog() && Keywords.isVerilogHierarchy(*FormatTok);
763 assert((FormatTok->isOneOf(tok::l_brace, TT_MacroBlockBegin) ||
765 (Keywords.isVerilogBegin(*FormatTok) || VerilogHierarchy))) &&
767 FormatToken *Tok = FormatTok;
770 const bool MacroBlock = FormatTok->is(TT_MacroBlockBegin);
771 FormatTok->setBlockKind(BK_Block);
794 if (MacroBlock && FormatTok->is(tok::l_paren))
822 if (MacroBlock ? FormatTok->isNot(TT_MacroBlockEnd)
823 : FormatTok->isNot(tok::r_brace)) {
825 FormatTok->setBlockKind(BK_Block);
829 if (FormatTok->is(tok::r_brace)) {
830 FormatTok->setBlockKind(BK_Block);
832 FormatTok->setFinalizedType(TT_NamespaceRBrace);
836 FormatTok->is(tok::r_brace) && Tok->is(TT_FunctionLBrace);
842 assert(FormatTok->is(tok::r_brace));
869 Tok->MatchingParen = FormatTok;
870 FormatTok->MatchingParen = Tok;
882 while (FormatTok->is(tok::semi)) {
883 FormatTok->Optional = true;
890 if (MacroBlock && FormatTok->is(tok::l_paren))
895 if (FormatTok->is(tok::kw_noexcept)) {
900 if (FormatTok->is(tok::arrow)) {
907 if (MunchSemi && FormatTok->is(tok::semi))
981 assert(FormatTok->is(tok::l_brace));
982 FormatTok->setBlockKind(BK_Block);
983 const FormatToken *OpeningBrace = FormatTok;
993 flushComments(isOnNewLine(*FormatTok));
1000 assert(FormatTok->is(tok::hash) && "'#' expected");
1001 ScopedMacroState MacroState(*Line, Tokens, FormatTok);
1005 if (!FormatTok->Tok.getIdentifierInfo()) {
1010 switch (FormatTok->Tok.getIdentifierInfo()->getPPKeywordID()) {
1037 FormatTok->setFinalizedType(TT_AfterPPDirective);
1097 bool IfNDef = FormatTok->is(tok::pp_ifndef);
1100 if (!IfDef && (FormatTok->is(tok::kw_false) || FormatTok->TokenText == "0"))
1102 if (IfDef && !IfNDef && FormatTok->TokenText == "SWIG")
1105 FormatToken *IfCondition = FormatTok;
1155 if (!FormatTok->Tok.getIdentifierInfo()) {
1163 IncludeGuardToken->TokenText == FormatTok->TokenText) {
1179 FormatTok->Tok.setKind(tok::identifier);
1180 FormatTok->Tok.setIdentifierInfo(Keywords.kw_internal_ident_after_define);
1182 if (FormatTok->Tok.getKind() == tok::l_paren &&
1183 !FormatTok->hasWhitespaceBefore()) {
1197 FormatTok->Finalized = true;
1198 FormatTok = Tokens->getNextToken();
1250 const FormatToken *FormatTok) {
1252 return FormatTok->is(tok::identifier) &&
1253 (!FormatTok->Tok.getIdentifierInfo() ||
1254 !FormatTok->isOneOf(
1265 const FormatToken *FormatTok) {
1266 return FormatTok->Tok.isLiteral() ||
1267 FormatTok->isOneOf(tok::kw_true, tok::kw_false) ||
1268 mustBeJSIdent(Keywords, FormatTok);
1271 // isJSDeclOrStmt returns true if |FormatTok| starts a declaration or statement
1274 const FormatToken *FormatTok) {
1275 return FormatTok->isOneOf(
1339 assert(FormatTok->is(Keywords.kw_import) && "'import' expected");
1349 if (FormatTok->is(tok::colon)) {
1350 FormatTok->setFinalizedType(TT_ModulePartitionColon);
1353 else if (FormatTok->is(tok::less)) {
1355 while (!FormatTok->isOneOf(tok::semi, tok::greater, tok::eof)) {
1358 if (FormatTok->isNot(tok::comment) &&
1359 !FormatTok->TokenText.starts_with("//")) {
1360 FormatTok->setFinalizedType(TT_ImplicitStringLiteral);
1365 if (FormatTok->is(tok::semi)) {
1384 FormatToken *Previous = FormatTok;
1386 FormatToken *Next = FormatTok;
1428 FormatTok->is(tok::pp_include)) {
1430 if (FormatTok->is(tok::string_literal))
1437 while (FormatTok->is(tok::l_square) && handleCppAttributes()) {
1440 if (Keywords.isVerilogStructuredProcedure(*FormatTok)) {
1444 if (FormatTok->isOneOf(Keywords.kw_foreach, Keywords.kw_repeat)) {
1448 if (FormatTok->isOneOf(tok::kw_restrict, Keywords.kw_assert,
1456 if (FormatTok->isOneOf(Keywords.kw_priority, Keywords.kw_unique,
1459 } else if (FormatTok->is(tok::l_paren) &&
1469 if (FormatTok->isAccessSpecifierKeyword()) {
1478 switch (FormatTok->Tok.getKind()) {
1481 if (FormatTok->is(tok::l_brace)) {
1482 FormatTok->setFinalizedType(TT_InlineASMBrace);
1484 while (FormatTok && !eof()) {
1485 if (FormatTok->is(tok::r_brace)) {
1486 FormatTok->setFinalizedType(TT_InlineASMBrace);
1491 FormatTok->Finalized = true;
1541 auto *Default = FormatTok;
1543 if (FormatTok->is(tok::colon)) {
1544 FormatTok->setFinalizedType(TT_CaseLabelColon);
1548 if (FormatTok->is(tok::arrow)) {
1549 FormatTok->setFinalizedType(TT_CaseLabelArrow);
1577 if (FormatTok->is(tok::kw_case))
1593 if (Keywords.isVerilogHierarchy(*FormatTok)) {
1597 } else if (FormatTok->is(tok::string_literal)) {
1599 if (FormatTok->is(tok::l_brace)) {
1624 if (FormatTok->is(tok::kw_namespace)) {
1628 if (FormatTok->is(tok::l_brace)) {
1632 if (FormatTok->is(Keywords.kw_import) && parseModuleImport())
1638 if (FormatTok->is(tok::kw_namespace)) {
1644 if (FormatTok->is(TT_ForEachMacro)) {
1648 if (FormatTok->is(TT_MacroBlockBegin)) {
1653 if (FormatTok->is(Keywords.kw_import)) {
1660 if (FormatTok->is(tok::kw_public))
1662 if (FormatTok->isNot(tok::string_literal))
1665 if (FormatTok->is(tok::semi))
1673 if (IsCpp && FormatTok->isOneOf(Keywords.kw_signals, Keywords.kw_qsignals,
1676 if (FormatTok->is(tok::colon)) {
1682 if (IsCpp && FormatTok->is(TT_StatementMacro)) {
1686 if (IsCpp && FormatTok->is(TT_NamespaceMacro)) {
1699 FormatTok->setFinalizedType(TT_GotoLabelColon);
1715 if (IsCpp && FormatTok->isCppAlternativeOperatorKeyword()) {
1718 FormatTok->Tok.setKind(tok::identifier);
1721 const FormatToken *Previous = FormatTok->Previous;
1722 switch (FormatTok->Tok.getKind()) {
1725 if (FormatTok->is(tok::l_brace)) {
1730 FormatTok->is(Keywords.kw_interface)) {
1734 switch (FormatTok->Tok.getObjCKeywordID()) {
1756 if (FormatTok->is(tok::l_brace)) {
1767 if (FormatTok->is(tok::l_paren)) {
1771 if (FormatTok->is(tok::l_brace)) {
1819 if (FormatTok->isOneOf(Keywords.kw_NS_ENUM, Keywords.kw_NS_OPTIONS,
1846 if (FormatTok->is(tok::l_paren)) {
1848 assert(FormatTok->Previous);
1849 if (FormatTok->Previous->endsSequence(tok::r_paren, tok::kw_auto,
1858 if (Style.Language == FormatStyle::LK_Java && FormatTok &&
1859 FormatTok->is(tok::kw_class)) {
1862 if (Style.isJavaScript() && FormatTok &&
1863 FormatTok->Tok.getIdentifierInfo()) {
1882 if (isC78ParameterDecl(FormatTok,
1892 if (FormatTok->isBinaryOperator())
1898 if (FormatTok->Tok.isAnyIdentifier() || FormatTok->isTypeName(LangOpts)) {
1901 while (FormatTok->is(tok::star))
1905 if (FormatTok->is(tok::l_paren))
1908 if (FormatTok->is(tok::l_brace))
1913 FormatTok->setFinalizedType(TT_BracedListLBrace);
1932 FormatTok->setFinalizedType(TT_FunctionLBrace);
1953 if (Style.isCSharp() && FormatTok->is(Keywords.kw_where) &&
1959 if (FormatTok->is(TT_MacroBlockEnd)) {
1969 if (Style.isJavaScript() && FormatTok->is(Keywords.kw_function) &&
1977 FormatTok->is(Keywords.kw_interface)) {
1985 FormatTok = Tokens->setPosition(StoredPosition);
1997 if (FormatTok->is(Keywords.kw_table)) {
2001 if (Keywords.isVerilogBegin(*FormatTok) ||
2002 Keywords.isVerilogHierarchy(*FormatTok)) {
2009 if (!IsCpp && FormatTok->is(Keywords.kw_interface)) {
2015 if (IsCpp && FormatTok->is(TT_StatementMacro)) {
2021 StringRef Text = FormatTok->TokenText;
2023 FormatToken *PreviousToken = FormatTok;
2043 bool FunctionLike = FormatTok->is(tok::l_paren);
2049 ? FormatTok->NewlinesBefore > 0
2054 (FunctionLike && FormatTok->isNot(tok::l_paren))) &&
2055 tokenCanStartNewLine(*FormatTok) && Text == Text.upper()) {
2066 FormatTok->is(TT_FatArrow)) {
2072 if (FormatTok->is(tok::l_brace)) {
2077 FormatTok->setBlockKind(BK_BracedInit);
2082 FormatTok->setFinalizedType(TT_FunctionLBrace);
2091 FormatTok->is(tok::less)) {
2130 if (FormatTok->is(tok::colon)) {
2134 if (FormatTok->is(Keywords.kw_clocking)) {
2153 if (FormatTok->is(tok::l_brace))
2154 FormatTok->Previous->setFinalizedType(TT_TemplateCloser);
2164 assert(FormatTok->is(tok::l_brace));
2168 if (!FormatTok->Previous || FormatTok->Previous->isNot(tok::identifier))
2214 switch (FormatTok->Tok.getKind()) {
2217 if (FormatTok->is(tok::equal)) {
2218 while (!eof() && FormatTok->isNot(tok::semi))
2231 if (FormatTok->is(TT_FatArrow)) {
2235 } while (!eof() && FormatTok->isNot(tok::semi));
2244 if (FormatTok->isOneOf(Keywords.kw_get, Keywords.kw_init,
2259 assert(FormatTok->is(tok::l_square));
2264 FormatToken &LSquare = *FormatTok;
2271 while (FormatTok->isNot(tok::l_brace)) {
2272 if (FormatTok->isTypeName(LangOpts) || FormatTok->isAttribute()) {
2276 switch (FormatTok->Tok.getKind()) {
2286 assert(FormatTok->Previous);
2287 if (FormatTok->Previous->is(tok::r_square))
2352 FormatTok->setFinalizedType(TT_LambdaArrow);
2357 auto *RequiresToken = FormatTok;
2372 FormatTok->setFinalizedType(TT_LambdaLBrace);
2384 const FormatToken *Previous = FormatTok->Previous;
2385 const FormatToken *LeftSquare = FormatTok;
2394 if (FormatTok->is(tok::l_square) || tok::isLiteral(FormatTok->Tok.getKind()))
2396 if (FormatTok->is(tok::r_square)) {
2406 assert(FormatTok->is(Keywords.kw_function));
2407 if (FormatTok->is(Keywords.kw_async))
2413 if (FormatTok->is(tok::star)) {
2414 FormatTok->setFinalizedType(TT_OverloadedOperator);
2419 if (FormatTok->is(tok::identifier))
2422 if (FormatTok->isNot(tok::l_paren))
2428 if (FormatTok->is(tok::colon)) {
2434 if (FormatTok->is(tok::l_brace))
2437 while (!FormatTok->isOneOf(tok::l_brace, tok::semi) && !eof())
2441 if (FormatTok->is(tok::semi))
2448 if (FormatTok->is(BK_Unknown))
2450 assert(FormatTok->isNot(BK_Unknown));
2451 if (FormatTok->is(BK_Block))
2460 assert(FormatTok->is(TT_FatArrow));
2465 if (FormatTok->isNot(tok::l_brace))
2478 if (Style.isCSharp() && FormatTok->is(TT_FatArrow) &&
2483 if (FormatTok->is(Keywords.kw_function)) {
2487 if (FormatTok->is(tok::l_brace)) {
2494 if (FormatTok->is(IsAngleBracket ? tok::greater : tok::r_brace)) {
2496 FormatTok->setBlockKind(BK_Block);
2503 switch (FormatTok->Tok.getKind()) {
2515 if (FormatTok->is(tok::l_brace))
2523 FormatTok->setBlockKind(BK_BracedInit);
2525 auto *Prev = FormatTok->Previous;
2570 assert(FormatTok->is(tok::l_paren) && "'(' expected.");
2571 auto *LeftParen = FormatTok;
2578 switch (FormatTok->Tok.getKind()) {
2582 if (Style.Language == FormatStyle::LK_Java && FormatTok->is(tok::l_brace))
2612 FormatTok->Optional = true;
2618 FormatTok->setFinalizedType(TT_TypeDeclarationParen);
2619 } else if (Prev->is(tok::greater) && FormatTok->Previous == LeftParen) {
2638 if (FormatTok->is(tok::l_brace)) {
2653 if (Style.isCSharp() && FormatTok->is(TT_FatArrow))
2665 if (Style.isJavaScript() && (FormatTok->is(Keywords.kw_function)))
2677 auto RequiresToken = FormatTok;
2684 FormatTok->setFinalizedType(AmpAmpTokenType);
2696 assert(FormatTok->is(tok::l_square) && "'[' expected.");
2701 switch (FormatTok->Tok.getKind()) {
2722 if (FormatTok->is(tok::l_brace)) {
2757 PreprocessorDirectives.empty() && FormatTok->isNot(tok::semi)) {
2817 if (FormatTok->isAttribute())
2819 else if (FormatTok->is(tok::l_square))
2825 assert(FormatTok->is(tok::l_square));
2843 assert((FormatTok->is(tok::kw_if) ||
2845 FormatTok->isOneOf(tok::kw_restrict, Keywords.kw_assert,
2852 if (FormatTok->is(Keywords.kw_verilogHash)) {
2854 if (FormatTok->is(tok::numeric_constant))
2856 } else if (FormatTok->isOneOf(Keywords.kw_final, Keywords.kw_property,
2864 while (!eof() && FormatTok->isNot(Keywords.kw_then)) {
2871 if (FormatTok->is(tok::exclaim))
2875 if (FormatTok->is(tok::kw_consteval)) {
2879 if (FormatTok->isOneOf(tok::kw_constexpr, tok::identifier))
2881 if (FormatTok->is(tok::l_paren)) {
2882 FormatTok->setFinalizedType(TT_ConditionLParen);
2888 if (IsVerilogAssert && FormatTok->is(tok::semi)) {
2900 if (isBlockBegin(*FormatTok)) {
2901 FormatTok->setFinalizedType(TT_ControlStatementLBrace);
2902 IfLeftBrace = FormatTok;
2911 } else if (IsVerilogAssert && FormatTok->is(tok::kw_else)) {
2929 if (FormatTok->is(tok::kw_else)) {
2936 if (isBlockBegin(*FormatTok)) {
2938 FormatTok->setFinalizedType(TT_ElseLBrace);
2939 ElseLeftBrace = FormatTok;
2946 if (FormatTok->is(tok::kw_else)) {
2956 } else if (!IsVerilogAssert && FormatTok->is(tok::kw_if)) {
3014 assert(FormatTok->isOneOf(tok::kw_try, tok::kw___try) && "'try' expected");
3018 if (FormatTok->is(tok::colon)) {
3019 auto *Colon = FormatTok;
3022 if (FormatTok->is(tok::identifier)) {
3029 while (FormatTok->is(tok::comma))
3032 while (FormatTok->is(tok::identifier)) {
3034 if (FormatTok->is(tok::l_paren)) {
3036 } else if (FormatTok->is(tok::l_brace)) {
3043 while (FormatTok->is(tok::comma))
3048 if (Style.Language == FormatStyle::LK_Java && FormatTok->is(tok::l_paren))
3053 if (FormatTok->is(tok::l_brace)) {
3055 FormatTok->setFinalizedType(TT_FunctionLBrace);
3062 } else if (FormatTok->isNot(tok::kw_catch)) {
3072 if (FormatTok->is(tok::at))
3074 if (!(FormatTok->isOneOf(tok::kw_catch, Keywords.kw___except,
3077 FormatTok->is(Keywords.kw_finally)) ||
3078 (FormatTok->isObjCAtKeyword(tok::objc_catch) ||
3079 FormatTok->isObjCAtKeyword(tok::objc_finally)))) {
3083 while (FormatTok->isNot(tok::l_brace)) {
3084 if (FormatTok->is(tok::l_paren)) {
3088 if (FormatTok->isOneOf(tok::semi, tok::r_brace, tok::eof)) {
3133 assert(FormatTok->isOneOf(tok::kw_namespace, TT_NamespaceMacro) &&
3136 const FormatToken &InitialToken = *FormatTok;
3141 while (FormatTok->isOneOf(tok::identifier, tok::coloncolon, tok::kw_inline,
3143 (Style.isCSharp() && FormatTok->is(tok::kw_union))) {
3144 if (FormatTok->is(tok::l_square))
3146 else if (FormatTok->is(tok::l_paren))
3152 if (FormatTok->is(tok::l_brace)) {
3153 FormatTok->setFinalizedType(TT_NamespaceLBrace);
3174 assert(FormatTok->is(tok::kw_new) && "'new' expected");
3180 if (FormatTok->is(tok::l_paren))
3184 if (FormatTok->is(tok::l_brace))
3187 if (FormatTok->isOneOf(tok::semi, tok::comma))
3200 if (FormatTok->isOneOf(tok::semi, tok::l_brace, tok::r_brace))
3204 if (FormatTok->is(tok::l_paren)) {
3208 if (FormatTok->is(tok::l_brace))
3219 if (isBlockBegin(*FormatTok)) {
3220 FormatTok->setFinalizedType(TT_ControlStatementLBrace);
3221 FormatToken *LeftBrace = FormatTok;
3242 assert((FormatTok->isOneOf(tok::kw_for, tok::kw_while, TT_ForEachMacro) ||
3244 FormatTok->isOneOf(Keywords.kw_always, Keywords.kw_always_comb,
3251 !FormatTok->isOneOf(tok::kw_for, tok::kw_while);
3255 if (Style.isJavaScript() && FormatTok->is(Keywords.kw_await))
3257 if (IsCpp && FormatTok->is(tok::kw_co_await))
3259 if (HasParens && FormatTok->is(tok::l_paren)) {
3264 FormatTok->setFinalizedType(TT_ConditionLParen);
3271 } else if (Style.AllowShortLoopsOnASingleLine && FormatTok->is(tok::semi) &&
3283 assert(FormatTok->is(tok::kw_do) && "'do' expected");
3289 if (FormatTok->isNot(tok::kw_while)) {
3294 FormatTok->setFinalizedType(TT_DoWhile);
3315 FormatTok->is(tok::l_brace)) {
3321 if (FormatTok->is(tok::kw_break)) {
3334 if (FormatTok->is(tok::semi))
3339 if (FormatTok->isNot(tok::l_brace)) {
3346 assert(FormatTok->is(tok::kw_case) && "'case' expected");
3347 auto *Case = FormatTok;
3352 if (FormatTok->is(tok::colon)) {
3353 FormatTok->setFinalizedType(TT_CaseLabelColon);
3356 if (Style.Language == FormatStyle::LK_Java && FormatTok->is(tok::arrow)) {
3357 FormatTok->setFinalizedType(TT_CaseLabelArrow);
3366 assert(FormatTok->is(tok::kw_switch) && "'switch' expected");
3368 if (FormatTok->is(tok::l_paren))
3373 if (FormatTok->is(tok::l_brace)) {
3375 FormatTok->setFinalizedType(IsExpr ? TT_SwitchExpressionLBrace
3447 FormatToken *AccessSpecifierCandidate = FormatTok;
3450 if (FormatTok->isOneOf(Keywords.kw_slots, Keywords.kw_qslots))
3453 if (FormatTok->is(tok::colon)) {
3456 } else if (FormatTok->isNot(tok::coloncolon) &&
3457 !isCOperatorFollowingVar(FormatTok->Tok.getKind())) {
3470 assert(FormatTok->is(tok::kw_requires) && "'requires' expected");
3471 auto RequiresToken = FormatTok;
3477 switch (FormatTok->Tok.getKind()) {
3566 FormatTok = Tokens->setPosition(StoredPosition);
3581 FormatTok = Tokens->setPosition(StoredPosition);
3596 FormatTok = Tokens->setPosition(StoredPosition);
3604 FormatTok = Tokens->setPosition(StoredPosition);
3617 assert(FormatTok->getPreviousNonComment() == RequiresToken);
3636 FormatTok->Previous->ClosesRequiresClause = true;
3647 assert(FormatTok->getPreviousNonComment() == RequiresToken);
3652 if (FormatTok->is(tok::l_paren)) {
3653 FormatTok->setFinalizedType(TT_RequiresExpressionLParen);
3657 if (FormatTok->is(tok::l_brace)) {
3658 FormatTok->setFinalizedType(TT_RequiresExpressionLBrace);
3689 switch (FormatTok->Tok.getKind()) {
3691 auto RequiresToken = FormatTok;
3722 FormatTok->setFinalizedType(TT_BinaryOperator);
3768 if (FormatTok->isNot(tok::less))
3776 if (!FormatTok->Tok.getIdentifierInfo()) {
3786 assert(FormatTok->Previous);
3787 switch (FormatTok->Previous->Tok.getKind()) {
3801 if (FormatTok->is(tok::less)) {
3812 const FormatToken &InitialToken = *FormatTok;
3815 if (FormatTok->is(tok::kw_enum))
3821 if (Style.isJavaScript() && FormatTok->isOneOf(tok::colon, tok::question))
3825 if (Style.Language == FormatStyle::LK_Proto && FormatTok->is(tok::equal))
3830 if (FormatTok->isOneOf(tok::kw_class, tok::kw_struct))
3832 while (FormatTok->is(tok::l_square))
3837 while (FormatTok->Tok.getIdentifierInfo() ||
3838 FormatTok->isOneOf(tok::colon, tok::coloncolon, tok::less,
3842 FormatTok->setFinalizedType(TT_VerilogDimensionedTypeName);
3845 while (FormatTok->is(tok::l_square))
3851 if (FormatTok->is(tok::l_paren))
3853 if (FormatTok->is(tok::identifier)) {
3857 if (IsCpp && FormatTok->is(tok::identifier))
3863 if (FormatTok->isNot(tok::l_brace))
3865 FormatTok->setFinalizedType(TT_EnumLBrace);
3866 FormatTok->setBlockKind(BK_Block);
3892 if (FormatTok->is(tok::semi))
3911 if (FormatTok->is(tok::semi))
3963 assert(FormatTok->is(tok::l_brace));
3964 const FormatToken *OpeningBrace = FormatTok;
3983 FormatTok = Tokens->setPosition(StoredPosition);
4000 if (FormatTok->is(tok::l_brace)) {
4004 } else if (FormatTok->is(tok::l_paren)) {
4006 } else if (FormatTok->is(tok::comma)) {
4009 } else if (FormatTok->is(tok::semi)) {
4013 } else if (FormatTok->is(tok::r_brace)) {
4029 const FormatToken &InitialToken = *FormatTok;
4043 while (FormatTok->isOneOf(tok::identifier, tok::coloncolon, tok::hashhash,
4045 FormatTok->isAttribute() ||
4047 FormatTok->isOneOf(tok::period, tok::comma))) {
4049 FormatTok->isOneOf(Keywords.kw_extends, Keywords.kw_implements)) {
4055 if (FormatTok->is(tok::l_brace)) {
4060 if (FormatTok->is(tok::l_square) && handleCppAttributes())
4062 const auto *Previous = FormatTok;
4064 switch (FormatTok->Tok.getKind()) {
4088 assert(FormatTok->is(tok::l_brace));
4089 const auto *Prev = FormatTok->getPreviousNonComment();
4095 if (FormatTok->isOneOf(tok::colon, tok::less)) {
4098 if (FormatTok->is(tok::less))
4100 else if (FormatTok->is(tok::greater))
4104 if (FormatTok->is(tok::colon)) {
4106 } else if (FormatTok->is(tok::identifier) &&
4107 FormatTok->Previous->is(tok::coloncolon)) {
4108 ClassName = FormatTok;
4109 } else if (FormatTok->is(tok::l_paren) &&
4110 IsNonMacroIdentifier(FormatTok->Previous)) {
4114 if (FormatTok->is(tok::l_brace)) {
4121 if (FormatTok->is(tok::l_square)) {
4122 FormatToken *Previous = FormatTok->Previous;
4134 if (FormatTok->is(tok::semi))
4136 if (Style.isCSharp() && FormatTok->is(Keywords.kw_where)) {
4160 if (FormatTok->is(tok::l_brace)) {
4164 FormatTok->setFinalizedType(OpenBraceType);
4182 assert(FormatTok->isOneOf(tok::l_paren, tok::identifier) &&
4185 if (FormatTok->is(tok::semi)) {
4189 } else if (FormatTok->is(tok::l_brace)) {
4202 assert(FormatTok->is(tok::less) && "'<' expected.");
4206 if (FormatTok->isOneOf(tok::semi, tok::l_brace) ||
4207 FormatTok->isObjCAtKeyword(tok::objc_end)) {
4210 } while (!eof() && FormatTok->isNot(tok::greater));
4216 if (FormatTok->isObjCAtKeyword(tok::objc_end)) {
4221 if (FormatTok->is(tok::l_brace)) {
4225 } else if (FormatTok->is(tok::r_brace)) {
4229 } else if (FormatTok->isOneOf(tok::minus, tok::plus)) {
4239 assert(FormatTok->Tok.getObjCKeywordID() == tok::objc_interface ||
4240 FormatTok->Tok.getObjCKeywordID() == tok::objc_implementation);
4246 if (FormatTok->is(tok::less))
4248 if (FormatTok->is(tok::colon)) {
4252 if (FormatTok->is(tok::less))
4254 } else if (FormatTok->is(tok::l_paren)) {
4259 if (FormatTok->is(tok::less))
4262 if (FormatTok->is(tok::l_brace)) {
4276 assert(FormatTok->is(tok::less));
4288 if (FormatTok->isOneOf(tok::semi, tok::l_brace) ||
4289 FormatTok->isObjCAtKeyword(tok::objc_end)) {
4292 if (FormatTok->is(tok::less)) {
4294 } else if (FormatTok->is(tok::greater)) {
4305 assert(FormatTok->Tok.getObjCKeywordID() == tok::objc_protocol);
4308 if (FormatTok->is(tok::l_paren)) {
4320 if (FormatTok->is(tok::less))
4324 if (FormatTok->is(tok::semi)) {
4336 bool IsImport = FormatTok->is(Keywords.kw_import);
4337 assert(IsImport || FormatTok->is(tok::kw_export));
4341 if (FormatTok->is(tok::kw_default))
4347 if (FormatTok->is(Keywords.kw_async))
4349 if (FormatTok->is(Keywords.kw_function)) {
4358 if (!IsImport && !FormatTok->isOneOf(tok::l_brace, tok::star) &&
4359 !FormatTok->isStringLiteral() &&
4360 !(FormatTok->is(Keywords.kw_type) &&
4366 if (FormatTok->is(tok::semi))
4373 if (FormatTok->is(tok::l_brace)) {
4374 FormatTok->setBlockKind(BK_Block);
4385 if (FormatTok->is(tok::l_paren))
4387 if (FormatTok->is(tok::semi))
4395 if (FormatTok->isOneOf(tok::star, tok::period, tok::periodstar,
4397 Keywords.isVerilogIdentifier(*FormatTok)) {
4399 } else if (FormatTok->is(tok::l_square)) {
4408 if (FormatTok->isNot(tok::at))
4412 if (FormatTok->is(tok::at))
4414 switch (FormatTok->Tok.getKind()) {
4430 if (FormatTok->is(Keywords.kw_clocking)) {
4432 if (Keywords.isVerilogIdentifier(*FormatTok))
4435 if (FormatTok->is(tok::semi))
4437 } else if (FormatTok->isOneOf(tok::kw_case, Keywords.kw_casex,
4443 if (FormatTok->is(tok::l_paren)) {
4444 FormatTok->setFinalizedType(TT_ConditionLParen);
4447 if (FormatTok->isOneOf(Keywords.kw_inside, Keywords.kw_matches))
4456 if (FormatTok->is(tok::l_square)) {
4457 auto Prev = FormatTok->getPreviousNonComment();
4461 } else if (Keywords.isVerilogIdentifier(*FormatTok) ||
4462 FormatTok->isOneOf(tok::hash, tok::hashhash, tok::coloncolon,
4476 while (FormatTok->is(Keywords.kw_import)) {
4480 if (FormatTok->is(tok::semi))
4485 if (FormatTok->is(Keywords.kw_verilogHash)) {
4488 if (FormatTok->is(tok::l_paren)) {
4489 FormatTok->setFinalizedType(TT_VerilogMultiLineListLParen);
4493 if (FormatTok->is(tok::l_paren)) {
4495 FormatTok->setFinalizedType(TT_VerilogMultiLineListLParen);
4500 if (FormatTok->is(Keywords.kw_extends)) {
4504 if (FormatTok->is(tok::l_paren))
4507 if (FormatTok->is(Keywords.kw_implements)) {
4512 } while (FormatTok->is(tok::comma));
4516 if (FormatTok->is(tok::at)) {
4521 if (FormatTok->is(tok::semi))
4530 assert(FormatTok->is(Keywords.kw_table));
4535 while (!eof() && !Keywords.isVerilogEnd(*FormatTok)) {
4536 FormatToken *Tok = FormatTok;
4558 else if (!Style.IndentCaseBlocks && Keywords.isVerilogBegin(*FormatTok))
4645 FormatTok->Previous = nullptr;
4648 bool UnwrappedLineParser::eof() const { return FormatTok->is(tok::eof); }
4650 bool UnwrappedLineParser::isOnNewLine(const FormatToken &FormatTok) {
4651 return (Line->InPPDirective || FormatTok.HasUnescapedNewline) &&
4652 FormatTok.NewlinesBefore > 0;
4655 // Checks if \p FormatTok is a line comment that continues the line comment
4658 continuesLineCommentSection(const FormatToken &FormatTok,
4664 StringRef IndentContent = FormatTok.TokenText;
4665 if (FormatTok.TokenText.starts_with("//") ||
4666 FormatTok.TokenText.starts_with("/*")) {
4667 IndentContent = FormatTok.TokenText.substr(2);
4672 // If Line starts with a line comment, then FormatTok continues the comment
4681 // If Line starts with a token other than a line comment, then FormatTok
4758 return continuesLineComment(FormatTok, /*Previous=*/Line.Tokens.back().Tok,
4787 flushComments(isOnNewLine(*FormatTok));
4788 pushToken(FormatTok);
4789 FormatToken *Previous = FormatTok;
4794 FormatTok->Previous = Previous;
4802 if (Keywords.isVerilogEnd(*FormatTok))
4803 FormatTok->Tok.setKind(tok::r_brace);
4842 FormatToken *FormatTok = Comments[i];
4844 FormatTok->ContinuesLineCommentSection = false;
4846 FormatTok->ContinuesLineCommentSection = continuesLineCommentSection(
4847 *FormatTok, *Line, Style, CommentPragmasRegex);
4849 if (!FormatTok->ContinuesLineCommentSection &&
4850 (isOnNewLine(*FormatTok) || FormatTok->IsFirst)) {
4854 pushToken(FormatTok);
4856 CommentsBeforeNextToken.push_back(FormatTok);
4865 FormatTok = Tokens->getNextToken();
4866 assert(FormatTok);
4867 while (FormatTok->isOneOf(TT_ConflictStart, TT_ConflictEnd,
4869 if (FormatTok->is(TT_ConflictStart))
4871 else if (FormatTok->is(TT_ConflictAlternative))
4873 else if (FormatTok->is(TT_ConflictEnd))
4875 FormatTok = Tokens->getNextToken();
4876 FormatTok->MustBreakBefore = true;
4877 FormatTok->MustBreakBeforeFinalized = true;
4895 FirstNonCommentOnLine, *FormatTok, PreviousWasComment);
4896 PreviousWasComment = FormatTok->is(tok::comment);
4898 while (!Line->InPPDirective && FormatTok->is(tok::hash) &&
4902 distributeComments(Comments, FormatTok);
4921 flushComments(isOnNewLine(*FormatTok));
4923 PreviousWasComment = FormatTok->is(tok::comment);
4925 FirstNonCommentOnLine, *FormatTok, PreviousWasComment);
4933 if (FormatTok->is(tok::identifier) &&
4934 Macros.defined(FormatTok->TokenText) &&
4937 FormatToken *ID = FormatTok;
4991 FormatTok = Tokens->insertTokens(Expansion);
5010 FormatTok = ID;
5014 if (FormatTok->isNot(tok::comment)) {
5015 distributeComments(Comments, FormatTok);
5020 Comments.push_back(FormatTok);
5044 if (FormatTok->isNot(tok::l_paren))
5047 FormatToken *Tok = FormatTok;
5054 switch (FormatTok->Tok.getKind()) {
5088 FormatTok = Tok;