summaryrefslogtreecommitdiffstats
path: root/clang/lib/Format
diff options
context:
space:
mode:
authorNico Weber <nicolasweber@gmx.de>2013-02-10 20:35:35 +0000
committerNico Weber <nicolasweber@gmx.de>2013-02-10 20:35:35 +0000
commit372d8dcf15fb860332eace94b05c47783d7dde0f (patch)
tree4e0cbe9a4d3fa93ab9e02507fc27856988b8ac2e /clang/lib/Format
parent44bf8158c5973605eb3bf245e225203fb8660b0a (diff)
downloadbcm5719-llvm-372d8dcf15fb860332eace94b05c47783d7dde0f.tar.gz
bcm5719-llvm-372d8dcf15fb860332eace94b05c47783d7dde0f.zip
Formatter: Initial support for ObjC dictionary literals.
Before: @{ foo: bar } ; Now: @{ foo : bar }; parseBracedList() already does the right thing from an UnwrappedLineParser perspective, so check for "@{" in all loops that process constructs that can contain expressions and call parseBracedList() if found. llvm-svn: 174840
Diffstat (limited to 'clang/lib/Format')
-rw-r--r--clang/lib/Format/UnwrappedLineParser.cpp17
1 files changed, 16 insertions, 1 deletions
diff --git a/clang/lib/Format/UnwrappedLineParser.cpp b/clang/lib/Format/UnwrappedLineParser.cpp
index 36307e04873..cb956084e0e 100644
--- a/clang/lib/Format/UnwrappedLineParser.cpp
+++ b/clang/lib/Format/UnwrappedLineParser.cpp
@@ -188,7 +188,8 @@ bool UnwrappedLineParser::parseLevel(bool HasOpeningBrace) {
return Error;
}
-bool UnwrappedLineParser::parseBlock(bool MustBeDeclaration, unsigned AddLevels) {
+bool UnwrappedLineParser::parseBlock(bool MustBeDeclaration,
+ unsigned AddLevels) {
assert(FormatTok.Tok.is(tok::l_brace) && "'{' expected");
nextToken();
@@ -265,6 +266,10 @@ void UnwrappedLineParser::parseStructuralElement() {
switch (FormatTok.Tok.getKind()) {
case tok::at:
nextToken();
+ if (FormatTok.Tok.is(tok::l_brace)) {
+ parseBracedList();
+ break;
+ }
switch (FormatTok.Tok.getObjCKeywordID()) {
case tok::objc_public:
case tok::objc_protected:
@@ -344,6 +349,11 @@ void UnwrappedLineParser::parseStructuralElement() {
do {
++TokenNumber;
switch (FormatTok.Tok.getKind()) {
+ case tok::at:
+ nextToken();
+ if (FormatTok.Tok.is(tok::l_brace))
+ parseBracedList();
+ break;
case tok::kw_enum:
parseEnum();
break;
@@ -457,6 +467,11 @@ void UnwrappedLineParser::parseParens() {
Line->Level -= 1;
break;
}
+ case tok::at:
+ nextToken();
+ if (FormatTok.Tok.is(tok::l_brace))
+ parseBracedList();
+ break;
default:
nextToken();
break;
OpenPOWER on IntegriCloud