sstwcw updated this revision to Diff 420653. Repository: rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION https://reviews.llvm.org/D121757/new/ https://reviews.llvm.org/D121757 Files: clang/lib/Format/UnwrappedLineParser.cpp clang/lib/Format/UnwrappedLineParser.h Index: clang/lib/Format/UnwrappedLineParser.h =================================================================== --- clang/lib/Format/UnwrappedLineParser.h +++ clang/lib/Format/UnwrappedLineParser.h @@ -125,6 +125,7 @@ bool handleCppAttributes(); FormatToken *parseIfThenElse(IfStmtKind *IfKind, bool KeepBraces = false); void parseTryCatch(); + void parseLoopBody(bool TryRemoveBraces, bool WrapRightBrace); void parseForOrWhileLoop(); void parseDoWhile(); void parseLabel(bool LeftAlignLabel = false); Index: clang/lib/Format/UnwrappedLineParser.cpp =================================================================== --- clang/lib/Format/UnwrappedLineParser.cpp +++ clang/lib/Format/UnwrappedLineParser.cpp @@ -2713,6 +2713,29 @@ } while (!eof()); } +void UnwrappedLineParser::parseLoopBody(bool TryRemoveBraces, + bool WrapRightBrace) { + keepAncestorBraces(); + + if (FormatTok->is(tok::l_brace)) { + FormatToken *LeftBrace = FormatTok; + CompoundStatementIndenter Indenter(this, Style, Line->Level); + parseBlock(); + if (TryRemoveBraces) { + assert(!NestedTooDeep.empty()); + if (!NestedTooDeep.back()) + markOptionalBraces(LeftBrace); + } + if (WrapRightBrace) + addUnwrappedLine(); + } else { + parseUnbracedBody(); + } + + if (TryRemoveBraces) + NestedTooDeep.pop_back(); +} + void UnwrappedLineParser::parseForOrWhileLoop() { assert(FormatTok->isOneOf(tok::kw_for, tok::kw_while, TT_ForEachMacro) && "'for', 'while' or foreach macro expected"); @@ -2731,43 +2754,14 @@ parseParens(); } - keepAncestorBraces(); - - if (FormatTok->is(tok::l_brace)) { - FormatToken *LeftBrace = FormatTok; - CompoundStatementIndenter Indenter(this, Style, Line->Level); - parseBlock(); - if (Style.RemoveBracesLLVM) { - assert(!NestedTooDeep.empty()); - if (!NestedTooDeep.back()) - markOptionalBraces(LeftBrace); - } - addUnwrappedLine(); - } else { - parseUnbracedBody(); - } - - if (Style.RemoveBracesLLVM) - NestedTooDeep.pop_back(); + parseLoopBody(Style.RemoveBracesLLVM, true); } void UnwrappedLineParser::parseDoWhile() { assert(FormatTok->is(tok::kw_do) && "'do' expected"); nextToken(); - keepAncestorBraces(); - - if (FormatTok->is(tok::l_brace)) { - CompoundStatementIndenter Indenter(this, Style, Line->Level); - parseBlock(); - if (Style.BraceWrapping.BeforeWhile) - addUnwrappedLine(); - } else { - parseUnbracedBody(); - } - - if (Style.RemoveBracesLLVM) - NestedTooDeep.pop_back(); + parseLoopBody(false, Style.BraceWrapping.BeforeWhile); // FIXME: Add error handling. if (!FormatTok->is(tok::kw_while)) {
Index: clang/lib/Format/UnwrappedLineParser.h =================================================================== --- clang/lib/Format/UnwrappedLineParser.h +++ clang/lib/Format/UnwrappedLineParser.h @@ -125,6 +125,7 @@ bool handleCppAttributes(); FormatToken *parseIfThenElse(IfStmtKind *IfKind, bool KeepBraces = false); void parseTryCatch(); + void parseLoopBody(bool TryRemoveBraces, bool WrapRightBrace); void parseForOrWhileLoop(); void parseDoWhile(); void parseLabel(bool LeftAlignLabel = false); Index: clang/lib/Format/UnwrappedLineParser.cpp =================================================================== --- clang/lib/Format/UnwrappedLineParser.cpp +++ clang/lib/Format/UnwrappedLineParser.cpp @@ -2713,6 +2713,29 @@ } while (!eof()); } +void UnwrappedLineParser::parseLoopBody(bool TryRemoveBraces, + bool WrapRightBrace) { + keepAncestorBraces(); + + if (FormatTok->is(tok::l_brace)) { + FormatToken *LeftBrace = FormatTok; + CompoundStatementIndenter Indenter(this, Style, Line->Level); + parseBlock(); + if (TryRemoveBraces) { + assert(!NestedTooDeep.empty()); + if (!NestedTooDeep.back()) + markOptionalBraces(LeftBrace); + } + if (WrapRightBrace) + addUnwrappedLine(); + } else { + parseUnbracedBody(); + } + + if (TryRemoveBraces) + NestedTooDeep.pop_back(); +} + void UnwrappedLineParser::parseForOrWhileLoop() { assert(FormatTok->isOneOf(tok::kw_for, tok::kw_while, TT_ForEachMacro) && "'for', 'while' or foreach macro expected"); @@ -2731,43 +2754,14 @@ parseParens(); } - keepAncestorBraces(); - - if (FormatTok->is(tok::l_brace)) { - FormatToken *LeftBrace = FormatTok; - CompoundStatementIndenter Indenter(this, Style, Line->Level); - parseBlock(); - if (Style.RemoveBracesLLVM) { - assert(!NestedTooDeep.empty()); - if (!NestedTooDeep.back()) - markOptionalBraces(LeftBrace); - } - addUnwrappedLine(); - } else { - parseUnbracedBody(); - } - - if (Style.RemoveBracesLLVM) - NestedTooDeep.pop_back(); + parseLoopBody(Style.RemoveBracesLLVM, true); } void UnwrappedLineParser::parseDoWhile() { assert(FormatTok->is(tok::kw_do) && "'do' expected"); nextToken(); - keepAncestorBraces(); - - if (FormatTok->is(tok::l_brace)) { - CompoundStatementIndenter Indenter(this, Style, Line->Level); - parseBlock(); - if (Style.BraceWrapping.BeforeWhile) - addUnwrappedLine(); - } else { - parseUnbracedBody(); - } - - if (Style.RemoveBracesLLVM) - NestedTooDeep.pop_back(); + parseLoopBody(false, Style.BraceWrapping.BeforeWhile); // FIXME: Add error handling. if (!FormatTok->is(tok::kw_while)) {
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits