Lines Matching refs:FormatTok

173   FormatTok = nullptr;  in reset()
216 pushToken(FormatTok); in parse()
290 switch (FormatTok->Tok.getKind()) { in parseCSharpGenericTypeConstraint()
294 if (FormatTok->is(Keywords.kw_where)) { in parseCSharpGenericTypeConstraint()
309 switch (FormatTok->Tok.getKind()) { in parseCSharpAttribute()
358 if (FormatTok->isAttribute()) { in parseLevel()
362 tok::TokenKind kind = FormatTok->Tok.getKind(); in parseLevel()
363 if (FormatTok->getType() == TT_MacroBlockBegin) in parseLevel()
365 else if (FormatTok->getType() == TT_MacroBlockEnd) in parseLevel()
384 FormatTok->setFinalizedType(TT_RequiresExpressionLBrace); in parseLevel()
385 } else if (FormatTok->Previous && in parseLevel()
386 FormatTok->Previous->ClosesRequiresClause) { in parseLevel()
392 if (!InRequiresExpression && FormatTok->isNot(TT_MacroBlockBegin) && in parseLevel()
407 if (FormatTok->isNot(tok::r_brace) || StatementCount != 1 || HasLabel || in parseLevel()
429 FormatTok = Tokens->setPosition(StoredPosition); in parseLevel()
481 FormatToken *Tok = FormatTok; in calculateBraceTypes()
602 if (Style.isCpp() && Line->InMacroBody && PrevTok != FormatTok && in calculateBraceTypes()
603 !FormatTok->Previous && NextTok->is(tok::eof) && in calculateBraceTypes()
649 FormatTok = Tokens->setPosition(StoredPosition); in calculateBraceTypes()
654 if (auto Prev = FormatTok->getPreviousNonComment(); in setPreviousRBraceType()
745 if (Style.isVerilog() && FormatTok->is(tok::colon)) { in parseBlock()
747 if (Keywords.isVerilogIdentifier(*FormatTok)) in parseBlock()
755 Style.isVerilog() && Keywords.isVerilogHierarchy(*FormatTok); in parseBlock()
756 assert((FormatTok->isOneOf(tok::l_brace, TT_MacroBlockBegin) || in parseBlock()
758 (Keywords.isVerilogBegin(*FormatTok) || VerilogHierarchy))) && in parseBlock()
760 FormatToken *Tok = FormatTok; in parseBlock()
763 const bool MacroBlock = FormatTok->is(TT_MacroBlockBegin); in parseBlock()
764 FormatTok->setBlockKind(BK_Block); in parseBlock()
787 if (MacroBlock && FormatTok->is(tok::l_paren)) in parseBlock()
815 if (MacroBlock ? FormatTok->isNot(TT_MacroBlockEnd) in parseBlock()
816 : FormatTok->isNot(tok::r_brace)) { in parseBlock()
818 FormatTok->setBlockKind(BK_Block); in parseBlock()
822 if (FormatTok->is(tok::r_brace) && Tok->is(TT_NamespaceLBrace)) in parseBlock()
823 FormatTok->setFinalizedType(TT_NamespaceRBrace); in parseBlock()
826 FormatTok->is(tok::r_brace) && Tok->is(TT_FunctionLBrace); in parseBlock()
832 assert(FormatTok->is(tok::r_brace)); in parseBlock()
859 Tok->MatchingParen = FormatTok; in parseBlock()
860 FormatTok->MatchingParen = Tok; in parseBlock()
872 while (FormatTok->is(tok::semi)) { in parseBlock()
873 FormatTok->Optional = true; in parseBlock()
880 if (MacroBlock && FormatTok->is(tok::l_paren)) in parseBlock()
885 if (FormatTok->is(tok::kw_noexcept)) { in parseBlock()
890 if (FormatTok->is(tok::arrow)) { in parseBlock()
897 if (MunchSemi && FormatTok->is(tok::semi)) in parseBlock()
971 assert(FormatTok->is(tok::l_brace)); in parseChildBlock()
972 FormatTok->setBlockKind(BK_Block); in parseChildBlock()
973 const FormatToken *OpeningBrace = FormatTok; in parseChildBlock()
983 flushComments(isOnNewLine(*FormatTok)); in parseChildBlock()
990 assert(FormatTok->is(tok::hash) && "'#' expected"); in parsePPDirective()
991 ScopedMacroState MacroState(*Line, Tokens, FormatTok); in parsePPDirective()
995 if (!FormatTok->Tok.getIdentifierInfo()) { in parsePPDirective()
1000 switch (FormatTok->Tok.getIdentifierInfo()->getPPKeywordID()) { in parsePPDirective()
1081 bool IfNDef = FormatTok->is(tok::pp_ifndef); in parsePPIf()
1084 if (!IfDef && (FormatTok->is(tok::kw_false) || FormatTok->TokenText == "0")) in parsePPIf()
1086 if (IfDef && !IfNDef && FormatTok->TokenText == "SWIG") in parsePPIf()
1089 FormatToken *IfCondition = FormatTok; in parsePPIf()
1139 if (!FormatTok->Tok.getIdentifierInfo()) { in parsePPDefine()
1147 IncludeGuardToken->TokenText == FormatTok->TokenText) { in parsePPDefine()
1163 FormatTok->Tok.setKind(tok::identifier); in parsePPDefine()
1164 FormatTok->Tok.setIdentifierInfo(Keywords.kw_internal_ident_after_define); in parsePPDefine()
1166 if (FormatTok->Tok.getKind() == tok::l_paren && in parsePPDefine()
1167 !FormatTok->hasWhitespaceBefore()) { in parsePPDefine()
1181 FormatTok->Finalized = true; in parsePPDefine()
1188 if (FormatTok->is(tok::identifier) && in parsePPDefine()
1242 const FormatToken *FormatTok) { in mustBeJSIdent() argument
1244 return FormatTok->is(tok::identifier) && in mustBeJSIdent()
1245 (!FormatTok->Tok.getIdentifierInfo() || in mustBeJSIdent()
1246 !FormatTok->isOneOf( in mustBeJSIdent()
1257 const FormatToken *FormatTok) { in mustBeJSIdentOrValue() argument
1258 return FormatTok->Tok.isLiteral() || in mustBeJSIdentOrValue()
1259 FormatTok->isOneOf(tok::kw_true, tok::kw_false) || in mustBeJSIdentOrValue()
1260 mustBeJSIdent(Keywords, FormatTok); in mustBeJSIdentOrValue()
1266 const FormatToken *FormatTok) { in isJSDeclOrStmt() argument
1267 return FormatTok->isOneOf( in isJSDeclOrStmt()
1331 assert(FormatTok->is(Keywords.kw_import) && "'import' expected"); in parseModuleImport()
1341 if (FormatTok->is(tok::colon)) { in parseModuleImport()
1342 FormatTok->setFinalizedType(TT_ModulePartitionColon); in parseModuleImport()
1345 else if (FormatTok->is(tok::less)) { in parseModuleImport()
1347 while (!FormatTok->isOneOf(tok::semi, tok::greater, tok::eof)) { in parseModuleImport()
1350 if (FormatTok->isNot(tok::comment) && in parseModuleImport()
1351 !FormatTok->TokenText.starts_with("//")) { in parseModuleImport()
1352 FormatTok->setFinalizedType(TT_ImplicitStringLiteral); in parseModuleImport()
1357 if (FormatTok->is(tok::semi)) { in parseModuleImport()
1376 FormatToken *Previous = FormatTok; in readTokenWithJavaScriptASI()
1378 FormatToken *Next = FormatTok; in readTokenWithJavaScriptASI()
1420 FormatTok->is(tok::pp_include)) { in parseStructuralElement()
1422 if (FormatTok->is(tok::string_literal)) in parseStructuralElement()
1429 while (FormatTok->is(tok::l_square) && handleCppAttributes()) { in parseStructuralElement()
1432 if (Keywords.isVerilogStructuredProcedure(*FormatTok)) { in parseStructuralElement()
1436 if (FormatTok->isOneOf(Keywords.kw_foreach, Keywords.kw_repeat)) { in parseStructuralElement()
1440 if (FormatTok->isOneOf(tok::kw_restrict, Keywords.kw_assert, in parseStructuralElement()
1448 if (FormatTok->isOneOf(Keywords.kw_priority, Keywords.kw_unique, in parseStructuralElement()
1451 } else if (FormatTok->is(tok::l_paren) && in parseStructuralElement()
1461 switch (FormatTok->Tok.getKind()) { in parseStructuralElement()
1464 if (FormatTok->is(tok::l_brace)) { in parseStructuralElement()
1465 FormatTok->setFinalizedType(TT_InlineASMBrace); in parseStructuralElement()
1467 while (FormatTok && !eof()) { in parseStructuralElement()
1468 if (FormatTok->is(tok::r_brace)) { in parseStructuralElement()
1469 FormatTok->setFinalizedType(TT_InlineASMBrace); in parseStructuralElement()
1474 FormatTok->Finalized = true; in parseStructuralElement()
1535 if (FormatTok->is(tok::colon)) { in parseStructuralElement()
1536 FormatTok->setFinalizedType(TT_CaseLabelColon); in parseStructuralElement()
1573 if (Keywords.isVerilogHierarchy(*FormatTok)) { in parseStructuralElement()
1577 } else if (FormatTok->is(tok::string_literal)) { in parseStructuralElement()
1579 if (FormatTok->is(tok::l_brace)) { in parseStructuralElement()
1604 if (FormatTok->is(tok::kw_namespace)) { in parseStructuralElement()
1608 if (FormatTok->is(Keywords.kw_import) && parseModuleImport()) in parseStructuralElement()
1614 if (FormatTok->is(tok::kw_namespace)) { in parseStructuralElement()
1620 if (FormatTok->is(TT_ForEachMacro)) { in parseStructuralElement()
1624 if (FormatTok->is(TT_MacroBlockBegin)) { in parseStructuralElement()
1629 if (FormatTok->is(Keywords.kw_import)) { in parseStructuralElement()
1636 if (FormatTok->is(tok::kw_public)) in parseStructuralElement()
1638 if (FormatTok->isNot(tok::string_literal)) in parseStructuralElement()
1641 if (FormatTok->is(tok::semi)) in parseStructuralElement()
1650 FormatTok->isOneOf(Keywords.kw_signals, Keywords.kw_qsignals, in parseStructuralElement()
1653 if (FormatTok->is(tok::colon)) { in parseStructuralElement()
1659 if (Style.isCpp() && FormatTok->is(TT_StatementMacro)) { in parseStructuralElement()
1663 if (Style.isCpp() && FormatTok->is(TT_NamespaceMacro)) { in parseStructuralElement()
1675 FormatTok->setFinalizedType(TT_GotoLabelColon); in parseStructuralElement()
1690 const FormatToken *Previous = FormatTok->Previous; in parseStructuralElement()
1691 switch (FormatTok->Tok.getKind()) { in parseStructuralElement()
1694 if (FormatTok->is(tok::l_brace)) { in parseStructuralElement()
1699 FormatTok->is(Keywords.kw_interface)) { in parseStructuralElement()
1703 switch (FormatTok->Tok.getObjCKeywordID()) { in parseStructuralElement()
1725 if (FormatTok->is(tok::l_brace)) { in parseStructuralElement()
1736 if (FormatTok->is(tok::l_paren)) { in parseStructuralElement()
1740 if (FormatTok->is(tok::l_brace)) { in parseStructuralElement()
1787 if (FormatTok->isOneOf(Keywords.kw_NS_ENUM, Keywords.kw_NS_OPTIONS, in parseStructuralElement()
1814 if (FormatTok->is(tok::l_paren)) { in parseStructuralElement()
1816 assert(FormatTok->Previous); in parseStructuralElement()
1817 if (FormatTok->Previous->endsSequence(tok::r_paren, tok::kw_auto, in parseStructuralElement()
1826 if (Style.Language == FormatStyle::LK_Java && FormatTok && in parseStructuralElement()
1827 FormatTok->is(tok::kw_class)) { in parseStructuralElement()
1830 if (Style.isJavaScript() && FormatTok && in parseStructuralElement()
1831 FormatTok->Tok.getIdentifierInfo()) { in parseStructuralElement()
1850 if (isC78ParameterDecl(FormatTok, in parseStructuralElement()
1860 if (FormatTok->isBinaryOperator()) in parseStructuralElement()
1866 if (FormatTok->Tok.isAnyIdentifier() || in parseStructuralElement()
1867 FormatTok->isSimpleTypeSpecifier()) { in parseStructuralElement()
1870 while (FormatTok->is(tok::star)) in parseStructuralElement()
1874 if (FormatTok->is(tok::l_paren)) in parseStructuralElement()
1877 if (FormatTok->is(tok::l_brace)) in parseStructuralElement()
1882 FormatTok->setFinalizedType(TT_BracedListLBrace); in parseStructuralElement()
1900 FormatTok->setFinalizedType(TT_FunctionLBrace); in parseStructuralElement()
1921 if (Style.isCSharp() && FormatTok->is(Keywords.kw_where) && in parseStructuralElement()
1927 if (FormatTok->is(TT_MacroBlockEnd)) { in parseStructuralElement()
1937 if (Style.isJavaScript() && FormatTok->is(Keywords.kw_function) && in parseStructuralElement()
1945 FormatTok->is(Keywords.kw_interface)) { in parseStructuralElement()
1953 FormatTok = Tokens->setPosition(StoredPosition); in parseStructuralElement()
1965 if (FormatTok->is(Keywords.kw_table)) { in parseStructuralElement()
1969 if (Keywords.isVerilogBegin(*FormatTok) || in parseStructuralElement()
1970 Keywords.isVerilogHierarchy(*FormatTok)) { in parseStructuralElement()
1977 if (!Style.isCpp() && FormatTok->is(Keywords.kw_interface)) { in parseStructuralElement()
1983 if (Style.isCpp() && FormatTok->is(TT_StatementMacro)) { in parseStructuralElement()
1989 StringRef Text = FormatTok->TokenText; in parseStructuralElement()
1991 FormatToken *PreviousToken = FormatTok; in parseStructuralElement()
2011 bool FunctionLike = FormatTok->is(tok::l_paren); in parseStructuralElement()
2017 ? FormatTok->NewlinesBefore > 0 in parseStructuralElement()
2021 tokenCanStartNewLine(*FormatTok) && Text == Text.upper()) { in parseStructuralElement()
2032 FormatTok->is(TT_FatArrow)) { in parseStructuralElement()
2038 if (FormatTok->is(tok::l_brace)) { in parseStructuralElement()
2043 FormatTok->setBlockKind(BK_BracedInit); in parseStructuralElement()
2048 FormatTok->setFinalizedType(TT_FunctionLBrace); in parseStructuralElement()
2057 FormatTok->is(tok::less)) { in parseStructuralElement()
2090 if (FormatTok->is(tok::colon)) { in parseStructuralElement()
2094 if (FormatTok->is(Keywords.kw_clocking)) { in parseStructuralElement()
2119 assert(FormatTok->is(tok::l_brace)); in tryToParsePropertyAccessor()
2123 if (FormatTok->Previous->isNot(tok::identifier)) in tryToParsePropertyAccessor()
2165 switch (FormatTok->Tok.getKind()) { in tryToParsePropertyAccessor()
2168 if (FormatTok->is(tok::equal)) { in tryToParsePropertyAccessor()
2169 while (!eof() && FormatTok->isNot(tok::semi)) in tryToParsePropertyAccessor()
2182 if (FormatTok->is(TT_FatArrow)) { in tryToParsePropertyAccessor()
2186 } while (!eof() && FormatTok->isNot(tok::semi)); in tryToParsePropertyAccessor()
2195 if (FormatTok->isOneOf(Keywords.kw_get, Keywords.kw_init, in tryToParsePropertyAccessor()
2210 assert(FormatTok->is(tok::l_square)); in tryToParseLambda()
2215 FormatToken &LSquare = *FormatTok; in tryToParseLambda()
2222 while (FormatTok->isNot(tok::l_brace)) { in tryToParseLambda()
2223 if (FormatTok->isSimpleTypeSpecifier()) { in tryToParseLambda()
2227 switch (FormatTok->Tok.getKind()) { in tryToParseLambda()
2237 assert(FormatTok->Previous); in tryToParseLambda()
2238 if (FormatTok->Previous->is(tok::r_square)) in tryToParseLambda()
2301 FormatTok->setFinalizedType(TT_TrailingReturnArrow); in tryToParseLambda()
2306 auto *RequiresToken = FormatTok; in tryToParseLambda()
2321 FormatTok->setFinalizedType(TT_LambdaLBrace); in tryToParseLambda()
2333 const FormatToken *Previous = FormatTok->Previous; in tryToParseLambdaIntroducer()
2334 const FormatToken *LeftSquare = FormatTok; in tryToParseLambdaIntroducer()
2343 if (FormatTok->is(tok::l_square) || tok::isLiteral(FormatTok->Tok.getKind())) in tryToParseLambdaIntroducer()
2345 if (FormatTok->is(tok::r_square)) { in tryToParseLambdaIntroducer()
2355 assert(FormatTok->is(Keywords.kw_function)); in tryToParseJSFunction()
2356 if (FormatTok->is(Keywords.kw_async)) in tryToParseJSFunction()
2362 if (FormatTok->is(tok::star)) { in tryToParseJSFunction()
2363 FormatTok->setFinalizedType(TT_OverloadedOperator); in tryToParseJSFunction()
2368 if (FormatTok->is(tok::identifier)) in tryToParseJSFunction()
2371 if (FormatTok->isNot(tok::l_paren)) in tryToParseJSFunction()
2377 if (FormatTok->is(tok::colon)) { in tryToParseJSFunction()
2383 if (FormatTok->is(tok::l_brace)) in tryToParseJSFunction()
2386 while (!FormatTok->isOneOf(tok::l_brace, tok::semi) && !eof()) in tryToParseJSFunction()
2390 if (FormatTok->is(tok::semi)) in tryToParseJSFunction()
2397 if (FormatTok->is(BK_Unknown)) in tryToParseBracedList()
2399 assert(FormatTok->isNot(BK_Unknown)); in tryToParseBracedList()
2400 if (FormatTok->is(BK_Block)) in tryToParseBracedList()
2409 assert(FormatTok->is(TT_FatArrow)); in tryToParseChildBlock()
2414 if (FormatTok->isNot(tok::l_brace)) in tryToParseChildBlock()
2426 if (Style.isCSharp() && FormatTok->is(TT_FatArrow) && in parseBracedList()
2431 if (FormatTok->is(Keywords.kw_function)) { in parseBracedList()
2435 if (FormatTok->is(tok::l_brace)) { in parseBracedList()
2442 if (FormatTok->is(IsAngleBracket ? tok::greater : tok::r_brace)) { in parseBracedList()
2448 switch (FormatTok->Tok.getKind()) { in parseBracedList()
2460 if (FormatTok->is(tok::l_brace)) in parseBracedList()
2468 FormatTok->setBlockKind(BK_BracedInit); in parseBracedList()
2510 assert(FormatTok->is(tok::l_paren) && "'(' expected."); in parseParens()
2511 auto *LeftParen = FormatTok; in parseParens()
2517 switch (FormatTok->Tok.getKind()) { in parseParens()
2521 if (Style.Language == FormatStyle::LK_Java && FormatTok->is(tok::l_brace)) in parseParens()
2546 FormatTok->Optional = true; in parseParens()
2563 if (FormatTok->is(tok::l_brace)) { in parseParens()
2574 if (Style.isCSharp() && FormatTok->is(TT_FatArrow)) in parseParens()
2586 if (Style.isJavaScript() && (FormatTok->is(Keywords.kw_function))) in parseParens()
2592 auto RequiresToken = FormatTok; in parseParens()
2599 FormatTok->setFinalizedType(AmpAmpTokenType); in parseParens()
2611 assert(FormatTok->is(tok::l_square) && "'[' expected."); in parseSquare()
2616 switch (FormatTok->Tok.getKind()) { in parseSquare()
2636 if (FormatTok->is(tok::l_brace)) { in parseSquare()
2671 PreprocessorDirectives.empty() && FormatTok->isNot(tok::semi)) { in parseUnbracedBody()
2729 if (FormatTok->isAttribute()) in handleAttributes()
2731 else if (FormatTok->is(tok::l_square)) in handleAttributes()
2737 assert(FormatTok->is(tok::l_square)); in handleCppAttributes()
2755 assert((FormatTok->is(tok::kw_if) || in parseIfThenElse()
2757 FormatTok->isOneOf(tok::kw_restrict, Keywords.kw_assert, in parseIfThenElse()
2764 if (FormatTok->is(Keywords.kw_verilogHash)) { in parseIfThenElse()
2766 if (FormatTok->is(tok::numeric_constant)) in parseIfThenElse()
2768 } else if (FormatTok->isOneOf(Keywords.kw_final, Keywords.kw_property, in parseIfThenElse()
2776 while (!eof() && FormatTok->isNot(Keywords.kw_then)) { in parseIfThenElse()
2783 if (FormatTok->is(tok::exclaim)) in parseIfThenElse()
2787 if (FormatTok->is(tok::kw_consteval)) { in parseIfThenElse()
2791 if (FormatTok->isOneOf(tok::kw_constexpr, tok::identifier)) in parseIfThenElse()
2793 if (FormatTok->is(tok::l_paren)) { in parseIfThenElse()
2794 FormatTok->setFinalizedType(TT_ConditionLParen); in parseIfThenElse()
2800 if (IsVerilogAssert && FormatTok->is(tok::semi)) { in parseIfThenElse()
2812 if (isBlockBegin(*FormatTok)) { in parseIfThenElse()
2813 FormatTok->setFinalizedType(TT_ControlStatementLBrace); in parseIfThenElse()
2814 IfLeftBrace = FormatTok; in parseIfThenElse()
2823 } else if (IsVerilogAssert && FormatTok->is(tok::kw_else)) { in parseIfThenElse()
2841 if (FormatTok->is(tok::kw_else)) { in parseIfThenElse()
2848 if (isBlockBegin(*FormatTok)) { in parseIfThenElse()
2850 FormatTok->setFinalizedType(TT_ElseLBrace); in parseIfThenElse()
2851 ElseLeftBrace = FormatTok; in parseIfThenElse()
2858 if (FormatTok->is(tok::kw_else)) { in parseIfThenElse()
2868 } else if (!IsVerilogAssert && FormatTok->is(tok::kw_if)) { in parseIfThenElse()
2926 assert(FormatTok->isOneOf(tok::kw_try, tok::kw___try) && "'try' expected"); in parseTryCatch()
2929 if (FormatTok->is(tok::colon)) { in parseTryCatch()
2935 while (FormatTok->is(tok::comma)) in parseTryCatch()
2938 while (FormatTok->is(tok::identifier)) { in parseTryCatch()
2940 if (FormatTok->is(tok::l_paren)) in parseTryCatch()
2942 if (FormatTok->Previous && FormatTok->Previous->is(tok::identifier) && in parseTryCatch()
2943 FormatTok->is(tok::l_brace)) { in parseTryCatch()
2946 } while (FormatTok->isNot(tok::r_brace)); in parseTryCatch()
2952 while (FormatTok->is(tok::comma)) in parseTryCatch()
2957 if (Style.Language == FormatStyle::LK_Java && FormatTok->is(tok::l_paren)) in parseTryCatch()
2962 if (FormatTok->is(tok::l_brace)) { in parseTryCatch()
2969 } else if (FormatTok->isNot(tok::kw_catch)) { in parseTryCatch()
2979 if (FormatTok->is(tok::at)) in parseTryCatch()
2981 if (!(FormatTok->isOneOf(tok::kw_catch, Keywords.kw___except, in parseTryCatch()
2984 FormatTok->is(Keywords.kw_finally)) || in parseTryCatch()
2985 (FormatTok->isObjCAtKeyword(tok::objc_catch) || in parseTryCatch()
2986 FormatTok->isObjCAtKeyword(tok::objc_finally)))) { in parseTryCatch()
2990 while (FormatTok->isNot(tok::l_brace)) { in parseTryCatch()
2991 if (FormatTok->is(tok::l_paren)) { in parseTryCatch()
2995 if (FormatTok->isOneOf(tok::semi, tok::r_brace, tok::eof)) { in parseTryCatch()
3020 assert(FormatTok->isOneOf(tok::kw_namespace, TT_NamespaceMacro) && in parseNamespace()
3023 const FormatToken &InitialToken = *FormatTok; in parseNamespace()
3028 while (FormatTok->isOneOf(tok::identifier, tok::coloncolon, tok::kw_inline, in parseNamespace()
3030 (Style.isCSharp() && FormatTok->is(tok::kw_union))) { in parseNamespace()
3031 if (FormatTok->is(tok::l_square)) in parseNamespace()
3033 else if (FormatTok->is(tok::l_paren)) in parseNamespace()
3039 if (FormatTok->is(tok::l_brace)) { in parseNamespace()
3040 FormatTok->setFinalizedType(TT_NamespaceLBrace); in parseNamespace()
3075 assert(FormatTok->is(tok::kw_new) && "'new' expected"); in parseNew()
3081 if (FormatTok->is(tok::l_paren)) in parseNew()
3085 if (FormatTok->is(tok::l_brace)) in parseNew()
3088 if (FormatTok->isOneOf(tok::semi, tok::comma)) in parseNew()
3101 if (FormatTok->isOneOf(tok::semi, tok::l_brace, tok::r_brace)) in parseNew()
3105 if (FormatTok->is(tok::l_paren)) { in parseNew()
3109 if (FormatTok->is(tok::l_brace)) in parseNew()
3120 if (isBlockBegin(*FormatTok)) { in parseLoopBody()
3121 FormatTok->setFinalizedType(TT_ControlStatementLBrace); in parseLoopBody()
3122 FormatToken *LeftBrace = FormatTok; in parseLoopBody()
3143 assert((FormatTok->isOneOf(tok::kw_for, tok::kw_while, TT_ForEachMacro) || in parseForOrWhileLoop()
3145 FormatTok->isOneOf(Keywords.kw_always, Keywords.kw_always_comb, in parseForOrWhileLoop()
3152 !FormatTok->isOneOf(tok::kw_for, tok::kw_while); in parseForOrWhileLoop()
3156 if (Style.isJavaScript() && FormatTok->is(Keywords.kw_await)) in parseForOrWhileLoop()
3158 if (Style.isCpp() && FormatTok->is(tok::kw_co_await)) in parseForOrWhileLoop()
3160 if (HasParens && FormatTok->is(tok::l_paren)) { in parseForOrWhileLoop()
3165 FormatTok->setFinalizedType(TT_ConditionLParen); in parseForOrWhileLoop()
3172 } else if (Style.AllowShortLoopsOnASingleLine && FormatTok->is(tok::semi) && in parseForOrWhileLoop()
3184 assert(FormatTok->is(tok::kw_do) && "'do' expected"); in parseDoWhile()
3190 if (FormatTok->isNot(tok::kw_while)) { in parseDoWhile()
3195 FormatTok->setFinalizedType(TT_DoWhile); in parseDoWhile()
3215 FormatTok->is(tok::l_brace)) { in parseLabel()
3221 if (FormatTok->is(tok::kw_break)) { in parseLabel()
3234 if (FormatTok->is(tok::semi)) in parseLabel()
3239 if (FormatTok->isNot(tok::l_brace)) { in parseLabel()
3246 assert(FormatTok->is(tok::kw_case) && "'case' expected"); in parseCaseLabel()
3251 if (FormatTok->is(tok::colon)) { in parseCaseLabel()
3252 FormatTok->setFinalizedType(TT_CaseLabelColon); in parseCaseLabel()
3260 assert(FormatTok->is(tok::kw_switch) && "'switch' expected"); in parseSwitch()
3262 if (FormatTok->is(tok::l_paren)) in parseSwitch()
3267 if (FormatTok->is(tok::l_brace)) { in parseSwitch()
3269 FormatTok->setFinalizedType(TT_ControlStatementLBrace); in parseSwitch()
3336 FormatToken *AccessSpecifierCandidate = FormatTok; in parseAccessSpecifier()
3339 if (FormatTok->isOneOf(Keywords.kw_slots, Keywords.kw_qslots)) in parseAccessSpecifier()
3342 if (FormatTok->is(tok::colon)) { in parseAccessSpecifier()
3345 } else if (FormatTok->isNot(tok::coloncolon) && in parseAccessSpecifier()
3346 !isCOperatorFollowingVar(FormatTok->Tok.getKind())) { in parseAccessSpecifier()
3359 assert(FormatTok->is(tok::kw_requires) && "'requires' expected"); in parseRequires()
3360 auto RequiresToken = FormatTok; in parseRequires()
3366 switch (FormatTok->Tok.getKind()) { in parseRequires()
3455 FormatTok = Tokens->setPosition(StoredPosition); in parseRequires()
3462 FormatTok = Tokens->setPosition(StoredPosition); in parseRequires()
3474 FormatTok = Tokens->setPosition(StoredPosition); in parseRequires()
3489 FormatTok = Tokens->setPosition(StoredPosition); in parseRequires()
3497 FormatTok = Tokens->setPosition(StoredPosition); in parseRequires()
3510 assert(FormatTok->getPreviousNonComment() == RequiresToken); in parseRequiresClause()
3529 FormatTok->Previous->ClosesRequiresClause = true; in parseRequiresClause()
3540 assert(FormatTok->getPreviousNonComment() == RequiresToken); in parseRequiresExpression()
3545 if (FormatTok->is(tok::l_paren)) { in parseRequiresExpression()
3546 FormatTok->setFinalizedType(TT_RequiresExpressionLParen); in parseRequiresExpression()
3550 if (FormatTok->is(tok::l_brace)) { in parseRequiresExpression()
3551 FormatTok->setFinalizedType(TT_RequiresExpressionLBrace); in parseRequiresExpression()
3582 switch (FormatTok->Tok.getKind()) { in parseConstraintExpression()
3584 auto RequiresToken = FormatTok; in parseConstraintExpression()
3615 FormatTok->setFinalizedType(TT_BinaryOperator); in parseConstraintExpression()
3661 if (FormatTok->isNot(tok::less)) in parseConstraintExpression()
3669 if (!FormatTok->Tok.getIdentifierInfo()) { in parseConstraintExpression()
3679 assert(FormatTok->Previous); in parseConstraintExpression()
3680 switch (FormatTok->Previous->Tok.getKind()) { in parseConstraintExpression()
3694 if (FormatTok->is(tok::less)) { in parseConstraintExpression()
3705 const FormatToken &InitialToken = *FormatTok; in parseEnum()
3708 if (FormatTok->is(tok::kw_enum)) in parseEnum()
3714 if (Style.isJavaScript() && FormatTok->isOneOf(tok::colon, tok::question)) in parseEnum()
3718 if (Style.Language == FormatStyle::LK_Proto && FormatTok->is(tok::equal)) in parseEnum()
3722 if (FormatTok->isOneOf(tok::kw_class, tok::kw_struct)) in parseEnum()
3725 while (FormatTok->Tok.getIdentifierInfo() || in parseEnum()
3726 FormatTok->isOneOf(tok::colon, tok::coloncolon, tok::less, in parseEnum()
3730 FormatTok->setFinalizedType(TT_VerilogDimensionedTypeName); in parseEnum()
3733 while (FormatTok->is(tok::l_square)) in parseEnum()
3739 if (FormatTok->is(tok::l_paren)) in parseEnum()
3741 assert(FormatTok->isNot(TT_AttributeSquare)); in parseEnum()
3742 if (FormatTok->is(tok::identifier)) { in parseEnum()
3746 if (Style.isCpp() && FormatTok->is(tok::identifier)) in parseEnum()
3752 if (FormatTok->isNot(tok::l_brace)) in parseEnum()
3754 FormatTok->setFinalizedType(TT_EnumLBrace); in parseEnum()
3755 FormatTok->setBlockKind(BK_Block); in parseEnum()
3781 if (FormatTok->is(tok::semi)) in parseEnum()
3800 if (FormatTok->is(tok::semi)) in parseStructLike()
3852 assert(FormatTok->is(tok::l_brace)); in parseJavaEnumBody()
3853 const FormatToken *OpeningBrace = FormatTok; in parseJavaEnumBody()
3872 FormatTok = Tokens->setPosition(StoredPosition); in parseJavaEnumBody()
3889 if (FormatTok->is(tok::l_brace)) { in parseJavaEnumBody()
3893 } else if (FormatTok->is(tok::l_paren)) { in parseJavaEnumBody()
3895 } else if (FormatTok->is(tok::comma)) { in parseJavaEnumBody()
3898 } else if (FormatTok->is(tok::semi)) { in parseJavaEnumBody()
3902 } else if (FormatTok->is(tok::r_brace)) { in parseJavaEnumBody()
3918 const FormatToken &InitialToken = *FormatTok; in parseRecord()
3927 while (FormatTok->isOneOf(tok::identifier, tok::coloncolon, tok::hashhash, in parseRecord()
3929 FormatTok->isAttribute() || in parseRecord()
3931 FormatTok->isOneOf(tok::period, tok::comma))) { in parseRecord()
3933 FormatTok->isOneOf(Keywords.kw_extends, Keywords.kw_implements)) { in parseRecord()
3938 if (FormatTok->is(tok::l_brace)) { in parseRecord()
3943 if (FormatTok->is(tok::l_square) && handleCppAttributes()) in parseRecord()
3947 if (!IsNonMacroIdentifier(FormatTok->Previous) && in parseRecord()
3948 FormatTok->is(tok::l_paren)) { in parseRecord()
3953 if (FormatTok->isOneOf(tok::colon, tok::less)) { in parseRecord()
3956 if (FormatTok->is(tok::less)) in parseRecord()
3958 else if (FormatTok->is(tok::greater)) in parseRecord()
3961 if (AngleNestingLevel == 0 && FormatTok->is(tok::l_paren) && in parseRecord()
3962 IsNonMacroIdentifier(FormatTok->Previous)) { in parseRecord()
3965 if (FormatTok->is(tok::l_brace)) { in parseRecord()
3970 if (FormatTok->is(tok::l_square)) { in parseRecord()
3971 FormatToken *Previous = FormatTok->Previous; in parseRecord()
3983 if (FormatTok->is(tok::semi)) in parseRecord()
3985 if (Style.isCSharp() && FormatTok->is(Keywords.kw_where)) { in parseRecord()
4009 if (FormatTok->is(tok::l_brace)) { in parseRecord()
4011 FormatTok->setFinalizedType(OpenBraceType); in parseRecord()
4029 assert(FormatTok->isOneOf(tok::l_paren, tok::identifier) && in parseObjCMethod()
4032 if (FormatTok->is(tok::semi)) { in parseObjCMethod()
4036 } else if (FormatTok->is(tok::l_brace)) { in parseObjCMethod()
4049 assert(FormatTok->is(tok::less) && "'<' expected."); in parseObjCProtocolList()
4053 if (FormatTok->isOneOf(tok::semi, tok::l_brace) || in parseObjCProtocolList()
4054 FormatTok->isObjCAtKeyword(tok::objc_end)) { in parseObjCProtocolList()
4057 } while (!eof() && FormatTok->isNot(tok::greater)); in parseObjCProtocolList()
4063 if (FormatTok->isObjCAtKeyword(tok::objc_end)) { in parseObjCUntilAtEnd()
4068 if (FormatTok->is(tok::l_brace)) { in parseObjCUntilAtEnd()
4072 } else if (FormatTok->is(tok::r_brace)) { in parseObjCUntilAtEnd()
4076 } else if (FormatTok->isOneOf(tok::minus, tok::plus)) { in parseObjCUntilAtEnd()
4086 assert(FormatTok->Tok.getObjCKeywordID() == tok::objc_interface || in parseObjCInterfaceOrImplementation()
4087 FormatTok->Tok.getObjCKeywordID() == tok::objc_implementation); in parseObjCInterfaceOrImplementation()
4093 if (FormatTok->is(tok::less)) in parseObjCInterfaceOrImplementation()
4095 if (FormatTok->is(tok::colon)) { in parseObjCInterfaceOrImplementation()
4099 if (FormatTok->is(tok::less)) in parseObjCInterfaceOrImplementation()
4101 } else if (FormatTok->is(tok::l_paren)) { in parseObjCInterfaceOrImplementation()
4106 if (FormatTok->is(tok::less)) in parseObjCInterfaceOrImplementation()
4109 if (FormatTok->is(tok::l_brace)) { in parseObjCInterfaceOrImplementation()
4123 assert(FormatTok->is(tok::less)); in parseObjCLightweightGenerics()
4135 if (FormatTok->isOneOf(tok::semi, tok::l_brace) || in parseObjCLightweightGenerics()
4136 FormatTok->isObjCAtKeyword(tok::objc_end)) { in parseObjCLightweightGenerics()
4139 if (FormatTok->is(tok::less)) { in parseObjCLightweightGenerics()
4141 } else if (FormatTok->is(tok::greater)) { in parseObjCLightweightGenerics()
4152 assert(FormatTok->Tok.getObjCKeywordID() == tok::objc_protocol); in parseObjCProtocol()
4155 if (FormatTok->is(tok::l_paren)) { in parseObjCProtocol()
4167 if (FormatTok->is(tok::less)) in parseObjCProtocol()
4171 if (FormatTok->is(tok::semi)) { in parseObjCProtocol()
4183 bool IsImport = FormatTok->is(Keywords.kw_import); in parseJavaScriptEs6ImportExport()
4184 assert(IsImport || FormatTok->is(tok::kw_export)); in parseJavaScriptEs6ImportExport()
4188 if (FormatTok->is(tok::kw_default)) in parseJavaScriptEs6ImportExport()
4194 if (FormatTok->is(Keywords.kw_async)) in parseJavaScriptEs6ImportExport()
4196 if (FormatTok->is(Keywords.kw_function)) { in parseJavaScriptEs6ImportExport()
4205 if (!IsImport && !FormatTok->isOneOf(tok::l_brace, tok::star) && in parseJavaScriptEs6ImportExport()
4206 !FormatTok->isStringLiteral() && in parseJavaScriptEs6ImportExport()
4207 !(FormatTok->is(Keywords.kw_type) && in parseJavaScriptEs6ImportExport()
4213 if (FormatTok->is(tok::semi)) in parseJavaScriptEs6ImportExport()
4220 if (FormatTok->is(tok::l_brace)) { in parseJavaScriptEs6ImportExport()
4221 FormatTok->setBlockKind(BK_Block); in parseJavaScriptEs6ImportExport()
4232 if (FormatTok->is(tok::l_paren)) in parseStatementMacro()
4234 if (FormatTok->is(tok::semi)) in parseStatementMacro()
4242 if (FormatTok->isOneOf(tok::star, tok::period, tok::periodstar, in parseVerilogHierarchyIdentifier()
4244 Keywords.isVerilogIdentifier(*FormatTok)) { in parseVerilogHierarchyIdentifier()
4246 } else if (FormatTok->is(tok::l_square)) { in parseVerilogHierarchyIdentifier()
4255 if (FormatTok->isNot(tok::at)) in parseVerilogSensitivityList()
4259 if (FormatTok->is(tok::at)) in parseVerilogSensitivityList()
4261 switch (FormatTok->Tok.getKind()) { in parseVerilogSensitivityList()
4277 if (FormatTok->is(Keywords.kw_clocking)) { in parseVerilogHierarchyHeader()
4279 if (Keywords.isVerilogIdentifier(*FormatTok)) in parseVerilogHierarchyHeader()
4282 if (FormatTok->is(tok::semi)) in parseVerilogHierarchyHeader()
4284 } else if (FormatTok->isOneOf(tok::kw_case, Keywords.kw_casex, in parseVerilogHierarchyHeader()
4290 if (FormatTok->is(tok::l_paren)) { in parseVerilogHierarchyHeader()
4291 FormatTok->setFinalizedType(TT_ConditionLParen); in parseVerilogHierarchyHeader()
4294 if (FormatTok->isOneOf(Keywords.kw_inside, Keywords.kw_matches)) in parseVerilogHierarchyHeader()
4303 if (FormatTok->is(tok::l_square)) { in parseVerilogHierarchyHeader()
4304 auto Prev = FormatTok->getPreviousNonComment(); in parseVerilogHierarchyHeader()
4308 } else if (Keywords.isVerilogIdentifier(*FormatTok) || in parseVerilogHierarchyHeader()
4309 FormatTok->isOneOf(Keywords.kw_automatic, tok::kw_static)) { in parseVerilogHierarchyHeader()
4322 while (FormatTok->is(Keywords.kw_import)) { in parseVerilogHierarchyHeader()
4326 if (FormatTok->is(tok::semi)) in parseVerilogHierarchyHeader()
4331 if (FormatTok->is(Keywords.kw_verilogHash)) { in parseVerilogHierarchyHeader()
4334 if (FormatTok->is(tok::l_paren)) { in parseVerilogHierarchyHeader()
4335 FormatTok->setFinalizedType(TT_VerilogMultiLineListLParen); in parseVerilogHierarchyHeader()
4339 if (FormatTok->is(tok::l_paren)) { in parseVerilogHierarchyHeader()
4341 FormatTok->setFinalizedType(TT_VerilogMultiLineListLParen); in parseVerilogHierarchyHeader()
4346 if (FormatTok->is(Keywords.kw_extends)) { in parseVerilogHierarchyHeader()
4350 if (FormatTok->is(tok::l_paren)) in parseVerilogHierarchyHeader()
4353 if (FormatTok->is(Keywords.kw_implements)) { in parseVerilogHierarchyHeader()
4358 } while (FormatTok->is(tok::comma)); in parseVerilogHierarchyHeader()
4362 if (FormatTok->is(tok::at)) { in parseVerilogHierarchyHeader()
4367 if (FormatTok->is(tok::semi)) in parseVerilogHierarchyHeader()
4376 assert(FormatTok->is(Keywords.kw_table)); in parseVerilogTable()
4381 while (!eof() && !Keywords.isVerilogEnd(*FormatTok)) { in parseVerilogTable()
4382 FormatToken *Tok = FormatTok; in parseVerilogTable()
4404 else if (!Style.IndentCaseBlocks && Keywords.isVerilogBegin(*FormatTok)) in parseVerilogCaseLabel()
4491 FormatTok->Previous = nullptr; in addUnwrappedLine()
4494 bool UnwrappedLineParser::eof() const { return FormatTok->is(tok::eof); } in eof()
4496 bool UnwrappedLineParser::isOnNewLine(const FormatToken &FormatTok) { in isOnNewLine() argument
4497 return (Line->InPPDirective || FormatTok.HasUnescapedNewline) && in isOnNewLine()
4498 FormatTok.NewlinesBefore > 0; in isOnNewLine()
4504 continuesLineCommentSection(const FormatToken &FormatTok, in continuesLineCommentSection() argument
4510 StringRef IndentContent = FormatTok.TokenText; in continuesLineCommentSection()
4511 if (FormatTok.TokenText.starts_with("//") || in continuesLineCommentSection()
4512 FormatTok.TokenText.starts_with("/*")) { in continuesLineCommentSection()
4513 IndentContent = FormatTok.TokenText.substr(2); in continuesLineCommentSection()
4604 return continuesLineComment(FormatTok, /*Previous=*/Line.Tokens.back().Tok, in continuesLineCommentSection()
4633 flushComments(isOnNewLine(*FormatTok)); in nextToken()
4634 pushToken(FormatTok); in nextToken()
4635 FormatToken *Previous = FormatTok; in nextToken()
4640 FormatTok->Previous = Previous; in nextToken()
4648 if (Keywords.isVerilogEnd(*FormatTok)) in nextToken()
4649 FormatTok->Tok.setKind(tok::r_brace); in nextToken()
4689 FormatToken *FormatTok = Comments[i]; in distributeComments() local
4691 FormatTok->ContinuesLineCommentSection = false; in distributeComments()
4693 FormatTok->ContinuesLineCommentSection = in distributeComments()
4694 continuesLineCommentSection(*FormatTok, *Line, CommentPragmasRegex); in distributeComments()
4696 if (!FormatTok->ContinuesLineCommentSection && in distributeComments()
4697 (isOnNewLine(*FormatTok) || FormatTok->IsFirst)) { in distributeComments()
4701 pushToken(FormatTok); in distributeComments()
4703 CommentsBeforeNextToken.push_back(FormatTok); in distributeComments()
4712 FormatTok = Tokens->getNextToken(); in readToken()
4713 assert(FormatTok); in readToken()
4714 while (FormatTok->getType() == TT_ConflictStart || in readToken()
4715 FormatTok->getType() == TT_ConflictEnd || in readToken()
4716 FormatTok->getType() == TT_ConflictAlternative) { in readToken()
4717 if (FormatTok->getType() == TT_ConflictStart) in readToken()
4719 else if (FormatTok->getType() == TT_ConflictAlternative) in readToken()
4721 else if (FormatTok->getType() == TT_ConflictEnd) in readToken()
4723 FormatTok = Tokens->getNextToken(); in readToken()
4724 FormatTok->MustBreakBefore = true; in readToken()
4725 FormatTok->MustBreakBeforeFinalized = true; in readToken()
4743 FirstNonCommentOnLine, *FormatTok, PreviousWasComment); in readToken()
4744 PreviousWasComment = FormatTok->is(tok::comment); in readToken()
4746 while (!Line->InPPDirective && FormatTok->is(tok::hash) && in readToken()
4750 distributeComments(Comments, FormatTok); in readToken()
4767 flushComments(isOnNewLine(*FormatTok)); in readToken()
4769 PreviousWasComment = FormatTok->is(tok::comment); in readToken()
4771 FirstNonCommentOnLine, *FormatTok, PreviousWasComment); in readToken()
4779 if (FormatTok->is(tok::identifier) && in readToken()
4780 Macros.defined(FormatTok->TokenText) && in readToken()
4783 FormatToken *ID = FormatTok; in readToken()
4837 FormatTok = Tokens->insertTokens(Expansion); in readToken()
4856 FormatTok = ID; in readToken()
4860 if (FormatTok->isNot(tok::comment)) { in readToken()
4861 distributeComments(Comments, FormatTok); in readToken()
4866 Comments.push_back(FormatTok); in readToken()
4890 if (FormatTok->isNot(tok::l_paren)) in parseMacroCall()
4893 FormatToken *Tok = FormatTok; in parseMacroCall()
4900 switch (FormatTok->Tok.getKind()) { in parseMacroCall()
4934 FormatTok = Tok; in parseMacroCall()