Chromium Code Reviews| Index: frog/leg/scanner/parser.dart |
| =================================================================== |
| --- frog/leg/scanner/parser.dart (revision 4354) |
| +++ frog/leg/scanner/parser.dart (working copy) |
| @@ -197,7 +197,7 @@ |
| Token skipBlock(Token token) { |
| if (!optional('{', token)) { |
| - return listener.unexpected(token); |
| + return listener.expectedBlock(token); |
|
ahe
2012/02/19 14:38:02
I think this event should be "expectedBlockToSkip"
ngeoffray
2012/02/20 17:00:02
Done.
|
| } |
| BeginGroupToken beginGroupToken = token; |
| assert(beginGroupToken.endGroup === null || |
| @@ -212,6 +212,7 @@ |
| // TODO(ahe): Notify listener about abstract modifier. |
| token = token.next; |
| } |
| + Token id = token.next; |
|
ahe
2012/02/19 14:38:02
I don't think id is used.
ngeoffray
2012/02/20 17:00:02
Done.
|
| token = parseIdentifier(token.next); |
| token = parseTypeVariablesOpt(token); |
| Token extendsKeyword; |
| @@ -527,9 +528,7 @@ |
| Token begin = token; |
| listener.beginClassBody(token); |
| if (!optional('{', token)) { |
| - token = listener.unexpected(token); |
| - listener.endClassBody(0, begin, null); |
| - return token; |
| + token = listener.expectedClassBody(token); |
| } |
| token = token.next; |
| int count = 0; |
| @@ -759,7 +758,11 @@ |
| Token begin = token; |
| int statementCount = 0; |
| listener.beginFunctionBody(begin); |
| - token = expect('{', token); |
| + if (!optional('{', token)) { |
| + return listener.expectedFunctionBody(token); |
| + } else { |
| + token = token.next; |
| + } |
| while (notEofOrValue('}', token)) { |
| token = parseStatement(token); |
| ++statementCount; |