diff options
author | Daniel Jasper <djasper@google.com> | 2015-06-17 09:43:56 +0000 |
---|---|---|
committer | Daniel Jasper <djasper@google.com> | 2015-06-17 09:43:56 +0000 |
commit | e285b8dd2e0d21721d6ddcc1dfa5cffce506f773 (patch) | |
tree | 897bdee7e5e680ed57061687dc0e0a5a4db25f61 /clang/lib/Format/TokenAnnotator.cpp | |
parent | afa4ea71217a3564e4cb1a2439c6dd5bb3bfa863 (diff) | |
download | bcm5719-llvm-e285b8dd2e0d21721d6ddcc1dfa5cffce506f773.tar.gz bcm5719-llvm-e285b8dd2e0d21721d6ddcc1dfa5cffce506f773.zip |
clang-format: NFC. Add a function to test whether an annotated line
starts with a given sequence of tokens. Only the one-token version is
used yet, but other usages are coming up momentarily.
llvm-svn: 239892
Diffstat (limited to 'clang/lib/Format/TokenAnnotator.cpp')
-rw-r--r-- | clang/lib/Format/TokenAnnotator.cpp | 29 |
1 files changed, 14 insertions, 15 deletions
diff --git a/clang/lib/Format/TokenAnnotator.cpp b/clang/lib/Format/TokenAnnotator.cpp index 8ffd67f0d11..a332b62ce8a 100644 --- a/clang/lib/Format/TokenAnnotator.cpp +++ b/clang/lib/Format/TokenAnnotator.cpp @@ -87,7 +87,7 @@ private: if (CurrentToken->Previous->isOneOf(tok::pipepipe, tok::ampamp) && CurrentToken->Previous->is(TT_BinaryOperator) && Contexts[Contexts.size() - 2].IsExpression && - Line.First->isNot(tok::kw_template)) + !Line.startsWith(tok::kw_template)) return false; updateParameterCount(Left, CurrentToken); if (!consumeToken()) @@ -457,7 +457,7 @@ private: if (Contexts.back().ColonIsDictLiteral) { Tok->Type = TT_DictLiteral; } else if (Contexts.back().ColonIsObjCMethodExpr || - Line.First->is(TT_ObjCMethodSpecifier)) { + Line.startsWith(TT_ObjCMethodSpecifier)) { Tok->Type = TT_ObjCMethodExpr; Tok->Previous->Type = TT_SelectorName; if (Tok->Previous->ColumnWidth > @@ -503,7 +503,7 @@ private: if (!parseParens()) return false; if (Line.MustBeDeclaration && Contexts.size() == 1 && - !Contexts.back().IsExpression && Line.First->isNot(TT_ObjCProperty) && + !Contexts.back().IsExpression && !Line.startsWith(TT_ObjCProperty) && (!Tok->Previous || !Tok->Previous->isOneOf(tok::kw_decltype, TT_LeadingJavaAnnotation))) Line.MightBeFunctionDecl = true; @@ -581,7 +581,7 @@ private: if (Contexts.back().InCtorInitializer) Tok->Type = TT_CtorInitializerComma; else if (Contexts.back().FirstStartOfName && - (Contexts.size() == 1 || Line.First->is(tok::kw_for))) { + (Contexts.size() == 1 || Line.startsWith(tok::kw_for))) { Contexts.back().FirstStartOfName->PartOfMultiVariableDeclStmt = true; Line.IsMultiVariableDeclStmt = true; } @@ -724,7 +724,7 @@ public: if (ImportStatement) return LT_ImportStatement; - if (Line.First->is(TT_ObjCMethodSpecifier)) { + if (Line.startsWith(TT_ObjCMethodSpecifier)) { if (Contexts.back().FirstObjCSelectorName) Contexts.back().FirstObjCSelectorName->LongestObjCSelectorName = Contexts.back().LongestObjCSelectorName; @@ -820,7 +820,7 @@ private: !Line.First->isOneOf(tok::kw_template, tok::kw_using) && (!Current.Previous || Current.Previous->isNot(tok::kw_operator))) { Contexts.back().IsExpression = true; - if (!Line.First->is(TT_UnaryOperator)) { + if (!Line.startsWith(TT_UnaryOperator)) { for (FormatToken *Previous = Current.Previous; Previous && !Previous->isOneOf(tok::comma, tok::semi); Previous = Previous->Previous) { @@ -1441,11 +1441,11 @@ void TokenAnnotator::annotate(AnnotatedLine &Line) { ExpressionParser ExprParser(Style, Keywords, Line); ExprParser.parse(); - if (Line.First->is(TT_ObjCMethodSpecifier)) + if (Line.startsWith(TT_ObjCMethodSpecifier)) Line.Type = LT_ObjCMethodDecl; - else if (Line.First->is(TT_ObjCDecl)) + else if (Line.startsWith(TT_ObjCDecl)) Line.Type = LT_ObjCDecl; - else if (Line.First->is(TT_ObjCProperty)) + else if (Line.startsWith(TT_ObjCProperty)) Line.Type = LT_ObjCProperty; Line.First->SpacesRequiredBefore = 1; @@ -1638,7 +1638,7 @@ unsigned TokenAnnotator::splitPenalty(const AnnotatedLine &Line, if (Right.isOneOf(TT_StartOfName, TT_FunctionDeclarationName) || Right.is(tok::kw_operator)) { - if (Line.First->is(tok::kw_for) && Right.PartOfMultiVariableDeclStmt) + if (Line.startsWith(tok::kw_for) && Right.PartOfMultiVariableDeclStmt) return 3; if (Left.is(TT_StartOfName)) return 110; @@ -1674,8 +1674,7 @@ unsigned TokenAnnotator::splitPenalty(const AnnotatedLine &Line, (!Right.Next || Right.Next->isNot(tok::l_paren))) { // Moving trailing annotations to the next line is fine for ObjC method // declarations. - if (Line.First->is(TT_ObjCMethodSpecifier)) - + if (Line.startsWith(TT_ObjCMethodSpecifier)) return 10; // Generally, breaking before a trailing annotation is bad unless it is // function-like. It seems to be especially preferable to keep standard @@ -1687,7 +1686,7 @@ unsigned TokenAnnotator::splitPenalty(const AnnotatedLine &Line, } // In for-loops, prefer breaking at ',' and ';'. - if (Line.First->is(tok::kw_for) && Left.is(tok::equal)) + if (Line.startsWith(tok::kw_for) && Left.is(tok::equal)) return 4; // In Objective-C method expressions, prefer breaking before "param:" over @@ -1990,7 +1989,7 @@ bool TokenAnnotator::spaceRequiredBefore(const AnnotatedLine &Line, Left.MatchingParen && Left.MatchingParen->is(TT_OverloadedOperatorLParen)) return false; if (Right.is(tok::less) && Left.isNot(tok::l_paren) && - Line.First->is(tok::hash)) + Line.startsWith(tok::hash)) return true; if (Right.is(TT_TrailingUnaryOperator)) return false; @@ -2094,7 +2093,7 @@ bool TokenAnnotator::mustBreakBefore(const AnnotatedLine &Line, Line.First->isOneOf(tok::identifier, Keywords.kw_import, tok::kw_export, tok::kw_const) && // kw_var is a pseudo-token that's a tok::identifier, so matches above. - !Line.First->is(Keywords.kw_var)) + !Line.startsWith(Keywords.kw_var)) // Object literals on the top level of a file are treated as "enum-style". // Each key/value pair is put on a separate line, instead of bin-packing. return true; |