| Index: compiler/java/com/google/dart/compiler/parser/DartParser.java
|
| ===================================================================
|
| --- compiler/java/com/google/dart/compiler/parser/DartParser.java (revision 8465)
|
| +++ compiler/java/com/google/dart/compiler/parser/DartParser.java (working copy)
|
| @@ -3255,14 +3255,17 @@
|
| */
|
| @VisibleForTesting
|
| public DartStatement parseStatement() {
|
| - if (peek(0) == Token.IDENTIFIER && peek(1) == Token.COLON) {
|
| + List<DartIdentifier> labels = new ArrayList<DartIdentifier>();
|
| + while (peek(0) == Token.IDENTIFIER && peek(1) == Token.COLON) {
|
| beginLabel();
|
| - DartIdentifier label = parseIdentifier();
|
| + labels.add(parseIdentifier());
|
| expect(Token.COLON);
|
| - DartStatement statement = parseNonLabelledStatement();
|
| - return done(new DartLabel(label, statement));
|
| }
|
| - return parseNonLabelledStatement();
|
| + DartStatement statement = parseNonLabelledStatement();
|
| + for (int i = labels.size() - 1; i >= 0; i--) {
|
| + statement = done(new DartLabel(labels.get(i), statement));
|
| + }
|
| + return statement;
|
| }
|
|
|
| /**
|
|
|