Index: pkg/compiler/lib/src/parser/parser.dart |
diff --git a/pkg/compiler/lib/src/parser/parser.dart b/pkg/compiler/lib/src/parser/parser.dart |
index 80e6de224e45c5fdb06da3c0743ddd3477add81b..5a229803d6a15f3379d31ecf7a87cb9c84869916 100644 |
--- a/pkg/compiler/lib/src/parser/parser.dart |
+++ b/pkg/compiler/lib/src/parser/parser.dart |
@@ -4,64 +4,61 @@ |
library dart2js.parser; |
-import '../options.dart' show |
- ParserOptions; |
+import '../options.dart' show ParserOptions; |
import '../common.dart'; |
-import '../tokens/keyword.dart' show |
- Keyword; |
-import '../tokens/precedence.dart' show |
- PrecedenceInfo; |
-import '../tokens/precedence_constants.dart' show |
- AS_INFO, |
- ASSIGNMENT_PRECEDENCE, |
- CASCADE_PRECEDENCE, |
- EQUALITY_PRECEDENCE, |
- GT_INFO, |
- GT_GT_INFO, |
- IS_INFO, |
- MINUS_MINUS_INFO, |
- OPEN_PAREN_INFO, |
- OPEN_SQUARE_BRACKET_INFO, |
- PERIOD_INFO, |
- PLUS_PLUS_INFO, |
- POSTFIX_PRECEDENCE, |
- QUESTION_INFO, |
- QUESTION_PERIOD_INFO, |
- RELATIONAL_PRECEDENCE; |
-import '../tokens/token.dart' show |
- BeginGroupToken, |
- isUserDefinableOperator, |
- KeywordToken, |
- SymbolToken, |
- Token; |
-import '../tokens/token_constants.dart' show |
- BAD_INPUT_TOKEN, |
- COMMA_TOKEN, |
- DOUBLE_TOKEN, |
- EOF_TOKEN, |
- EQ_TOKEN, |
- FUNCTION_TOKEN, |
- HASH_TOKEN, |
- HEXADECIMAL_TOKEN, |
- IDENTIFIER_TOKEN, |
- INT_TOKEN, |
- KEYWORD_TOKEN, |
- LT_TOKEN, |
- OPEN_CURLY_BRACKET_TOKEN, |
- OPEN_PAREN_TOKEN, |
- OPEN_SQUARE_BRACKET_TOKEN, |
- PERIOD_TOKEN, |
- SEMICOLON_TOKEN, |
- STRING_INTERPOLATION_IDENTIFIER_TOKEN, |
- STRING_INTERPOLATION_TOKEN, |
- STRING_TOKEN; |
-import '../util/characters.dart' as Characters show |
- $CLOSE_CURLY_BRACKET; |
-import '../util/util.dart' show |
- Link; |
- |
-import 'listener.dart' show |
- Listener; |
+import '../tokens/keyword.dart' show Keyword; |
+import '../tokens/precedence.dart' show PrecedenceInfo; |
+import '../tokens/precedence_constants.dart' |
+ show |
+ AS_INFO, |
+ ASSIGNMENT_PRECEDENCE, |
+ CASCADE_PRECEDENCE, |
+ EQUALITY_PRECEDENCE, |
+ GT_INFO, |
+ GT_GT_INFO, |
+ IS_INFO, |
+ MINUS_MINUS_INFO, |
+ OPEN_PAREN_INFO, |
+ OPEN_SQUARE_BRACKET_INFO, |
+ PERIOD_INFO, |
+ PLUS_PLUS_INFO, |
+ POSTFIX_PRECEDENCE, |
+ QUESTION_INFO, |
+ QUESTION_PERIOD_INFO, |
+ RELATIONAL_PRECEDENCE; |
+import '../tokens/token.dart' |
+ show |
+ BeginGroupToken, |
+ isUserDefinableOperator, |
+ KeywordToken, |
+ SymbolToken, |
+ Token; |
+import '../tokens/token_constants.dart' |
+ show |
+ BAD_INPUT_TOKEN, |
+ COMMA_TOKEN, |
+ DOUBLE_TOKEN, |
+ EOF_TOKEN, |
+ EQ_TOKEN, |
+ FUNCTION_TOKEN, |
+ HASH_TOKEN, |
+ HEXADECIMAL_TOKEN, |
+ IDENTIFIER_TOKEN, |
+ INT_TOKEN, |
+ KEYWORD_TOKEN, |
+ LT_TOKEN, |
+ OPEN_CURLY_BRACKET_TOKEN, |
+ OPEN_PAREN_TOKEN, |
+ OPEN_SQUARE_BRACKET_TOKEN, |
+ PERIOD_TOKEN, |
+ SEMICOLON_TOKEN, |
+ STRING_INTERPOLATION_IDENTIFIER_TOKEN, |
+ STRING_INTERPOLATION_TOKEN, |
+ STRING_TOKEN; |
+import '../util/characters.dart' as Characters show $CLOSE_CURLY_BRACKET; |
+import '../util/util.dart' show Link; |
+ |
+import 'listener.dart' show Listener; |
class FormalParameterType { |
final String type; |
@@ -121,8 +118,8 @@ class Parser { |
Token parseTopLevelDeclaration(Token token) { |
token = parseMetadataStar(token); |
final String value = token.stringValue; |
- if ((identical(value, 'abstract') && optional('class', token.next)) |
- || identical(value, 'class')) { |
+ if ((identical(value, 'abstract') && optional('class', token.next)) || |
+ identical(value, 'class')) { |
return parseClassOrNamedMixinApplication(token); |
} else if (identical(value, 'enum')) { |
return parseEnum(token); |
@@ -470,13 +467,13 @@ class Parser { |
token = parseExpression(token.next); |
listener.handleValuedFormalParameter(equal, token); |
if (type.isRequired) { |
- listener.reportError(equal, |
- MessageKind.REQUIRED_PARAMETER_WITH_DEFAULT); |
+ listener.reportError( |
+ equal, MessageKind.REQUIRED_PARAMETER_WITH_DEFAULT); |
} else if (type.isNamed && identical('=', value)) { |
listener.reportError(equal, MessageKind.NAMED_PARAMETER_WITH_EQUALS); |
} else if (type.isPositional && identical(':', value)) { |
- listener.reportError(equal, |
- MessageKind.POSITIONAL_PARAMETER_WITH_EQUALS); |
+ listener.reportError( |
+ equal, MessageKind.POSITIONAL_PARAMETER_WITH_EQUALS); |
} |
} |
listener.endFormalParameter(thisKeyword); |
@@ -490,8 +487,8 @@ class Parser { |
int parameterCount = 0; |
do { |
token = token.next; |
- var type = isNamed ? FormalParameterType.NAMED |
- : FormalParameterType.POSITIONAL; |
+ var type = |
+ isNamed ? FormalParameterType.NAMED : FormalParameterType.POSITIONAL; |
token = parseFormalParameter(token, type); |
++parameterCount; |
} while (optional(',', token)); |
@@ -518,9 +515,9 @@ class Parser { |
if (identical(kind, KEYWORD_TOKEN)) { |
Keyword keyword = (token as KeywordToken).keyword; |
String value = keyword.syntax; |
- return keyword.isPseudo |
- || (identical(value, 'dynamic')) |
- || (identical(value, 'void')); |
+ return keyword.isPseudo || |
+ (identical(value, 'dynamic')) || |
+ (identical(value, 'void')); |
} |
return false; |
} |
@@ -628,8 +625,7 @@ class Parser { |
implementsKeyword = token; |
token = parseTypeList(token.next); |
} |
- listener.endNamedMixinApplication( |
- classKeyword, implementsKeyword, token); |
+ listener.endNamedMixinApplication(classKeyword, implementsKeyword, token); |
return expect(';', token); |
} |
@@ -658,8 +654,8 @@ class Parser { |
} while (optional(',', token)); |
} |
token = parseClassBody(token); |
- listener.endClassDeclaration(interfacesCount, begin, extendsKeyword, |
- implementsKeyword, token); |
+ listener.endClassDeclaration( |
+ interfacesCount, begin, extendsKeyword, implementsKeyword, token); |
return token.next; |
} |
@@ -712,8 +708,7 @@ class Parser { |
*/ |
bool isOneOf3(Token token, String value1, String value2, String value3) { |
String stringValue = token.stringValue; |
- return |
- value1 == stringValue || |
+ return value1 == stringValue || |
value2 == stringValue || |
value3 == stringValue; |
} |
@@ -722,18 +717,18 @@ class Parser { |
* Returns true if the stringValue of the [token] is either [value1], |
* [value2], [value3], or [value4]. |
*/ |
- bool isOneOf4(Token token, |
- String value1, String value2, String value3, String value4) { |
+ bool isOneOf4( |
+ Token token, String value1, String value2, String value3, String value4) { |
String stringValue = token.stringValue; |
return value1 == stringValue || |
- value2 == stringValue || |
- value3 == stringValue || |
- value4 == stringValue; |
+ value2 == stringValue || |
+ value3 == stringValue || |
+ value4 == stringValue; |
} |
bool notEofOrValue(String value, Token token) { |
return !identical(token.kind, EOF_TOKEN) && |
- !identical(value, token.stringValue); |
+ !identical(value, token.stringValue); |
} |
Token parseType(Token token) { |
@@ -750,24 +745,26 @@ class Parser { |
} |
Token parseTypeArgumentsOpt(Token token) { |
- return parseStuff(token, |
- (t) => listener.beginTypeArguments(t), |
- (t) => parseType(t), |
- (c, bt, et) => listener.endTypeArguments(c, bt, et), |
- (t) => listener.handleNoTypeArguments(t)); |
+ return parseStuff( |
+ token, |
+ (t) => listener.beginTypeArguments(t), |
+ (t) => parseType(t), |
+ (c, bt, et) => listener.endTypeArguments(c, bt, et), |
+ (t) => listener.handleNoTypeArguments(t)); |
} |
Token parseTypeVariablesOpt(Token token) { |
- return parseStuff(token, |
- (t) => listener.beginTypeVariables(t), |
- (t) => parseTypeVariable(t), |
- (c, bt, et) => listener.endTypeVariables(c, bt, et), |
- (t) => listener.handleNoTypeVariables(t)); |
+ return parseStuff( |
+ token, |
+ (t) => listener.beginTypeVariables(t), |
+ (t) => parseTypeVariable(t), |
+ (c, bt, et) => listener.endTypeVariables(c, bt, et), |
+ (t) => listener.handleNoTypeVariables(t)); |
} |
// TODO(ahe): Clean this up. |
Token parseStuff(Token token, Function beginStuff, Function stuffParser, |
- Function endStuff, Function handleNoStuff) { |
+ Function endStuff, Function handleNoStuff) { |
if (optional('<', token)) { |
Token begin = token; |
beginStuff(begin); |
@@ -827,8 +824,9 @@ class Parser { |
// Loop to allow the listener to rewrite the token stream for |
// error handling. |
final String value = token.stringValue; |
- if ((identical(value, '(')) || (identical(value, '{')) |
- || (identical(value, '=>'))) { |
+ if ((identical(value, '(')) || |
+ (identical(value, '{')) || |
+ (identical(value, '=>'))) { |
isField = false; |
break; |
} else if ((identical(value, '=')) || (identical(value, ','))) { |
@@ -857,18 +855,18 @@ class Parser { |
bool isVarFinalOrConst(Token token) { |
String value = token.stringValue; |
- return identical('var', value) |
- || identical('final', value) |
- || identical('const', value); |
+ return identical('var', value) || |
+ identical('final', value) || |
+ identical('const', value); |
} |
- Token expectVarFinalOrConst(Link<Token> modifiers, |
- bool hasType, |
- bool allowStatic) { |
+ Token expectVarFinalOrConst( |
+ Link<Token> modifiers, bool hasType, bool allowStatic) { |
int modifierCount = 0; |
Token staticModifier; |
- if (allowStatic && !modifiers.isEmpty |
- && optional('static', modifiers.head)) { |
+ if (allowStatic && |
+ !modifiers.isEmpty && |
+ optional('static', modifiers.head)) { |
staticModifier = modifiers.head; |
modifierCount++; |
parseModifier(staticModifier); |
@@ -895,9 +893,9 @@ class Parser { |
Token varFinalOrConst = |
modifierList.firstWhere(isVarFinalOrConst, orElse: () => null); |
if (allowStatic && staticModifier == null) { |
- staticModifier = |
- modifierList.firstWhere( |
- (modifier) => optional('static', modifier), orElse: () => null); |
+ staticModifier = modifierList.firstWhere( |
+ (modifier) => optional('static', modifier), |
+ orElse: () => null); |
if (staticModifier != null) { |
modifierCount++; |
parseModifier(staticModifier); |
@@ -921,12 +919,8 @@ class Parser { |
return null; |
} |
- Token parseFields(Token start, |
- Link<Token> modifiers, |
- Token type, |
- Token getOrSet, |
- Token name, |
- bool isTopLevel) { |
+ Token parseFields(Token start, Link<Token> modifiers, Token type, |
+ Token getOrSet, Token name, bool isTopLevel) { |
bool hasType = type != null; |
Token varFinalOrConst = |
expectVarFinalOrConst(modifiers, hasType, !isTopLevel); |
@@ -955,8 +949,7 @@ class Parser { |
} else { |
parseType(type); |
if (isVar) { |
- listener.reportError( |
- modifiers.head, MessageKind.EXTRANEOUS_MODIFIER, |
+ listener.reportError(modifiers.head, MessageKind.EXTRANEOUS_MODIFIER, |
{'modifier': modifiers.head}); |
} |
} |
@@ -980,12 +973,8 @@ class Parser { |
return token; |
} |
- Token parseTopLevelMethod(Token start, |
- Link<Token> modifiers, |
- Token type, |
- Token getOrSet, |
- Token name) { |
- |
+ Token parseTopLevelMethod(Token start, Link<Token> modifiers, Token type, |
+ Token getOrSet, Token name) { |
Token externalModifier; |
// TODO(johnniwinther): Move error reporting to resolution to give more |
// specific error messages. |
@@ -1062,8 +1051,7 @@ class Parser { |
String value = token.stringValue; |
if (value == 'get') { |
isGetter = true; |
- } else if (hasName && |
- (value == 'sync' || value == 'async')) { |
+ } else if (hasName && (value == 'sync' || value == 'async')) { |
// Skip. |
token = token.next; |
value = token.stringValue; |
@@ -1072,15 +1060,11 @@ class Parser { |
token = token.next; |
} |
continue; |
- } else if (value == '(' || |
- value == '{' || |
- value == '=>') { |
+ } else if (value == '(' || value == '{' || value == '=>') { |
// A method. |
identifiers = identifiers.prepend(token); |
return identifiers; |
- } else if (value == '=' || |
- value == ';' || |
- value == ',') { |
+ } else if (value == '=' || value == ';' || value == ',') { |
// A field or abstract getter. |
identifiers = identifiers.prepend(token); |
return identifiers; |
@@ -1163,11 +1147,11 @@ class Parser { |
bool isModifier(Token token) { |
final String value = token.stringValue; |
return (identical('final', value)) || |
- (identical('var', value)) || |
- (identical('const', value)) || |
- (identical('abstract', value)) || |
- (identical('static', value)) || |
- (identical('external', value)); |
+ (identical('var', value)) || |
+ (identical('const', value)) || |
+ (identical('abstract', value)) || |
+ (identical('static', value)) || |
+ (identical('external', value)); |
} |
Token parseModifier(Token token) { |
@@ -1195,8 +1179,7 @@ class Parser { |
Token parseModifiers(Token token) { |
int count = 0; |
while (identical(token.kind, KEYWORD_TOKEN)) { |
- if (!isModifier(token)) |
- break; |
+ if (!isModifier(token)) break; |
token = parseModifier(token); |
count++; |
} |
@@ -1318,8 +1301,10 @@ class Parser { |
// Loop to allow the listener to rewrite the token stream for |
// error handling. |
final String value = token.stringValue; |
- if ((identical(value, '(')) || (identical(value, '.')) |
- || (identical(value, '{')) || (identical(value, '=>'))) { |
+ if ((identical(value, '(')) || |
+ (identical(value, '.')) || |
+ (identical(value, '{')) || |
+ (identical(value, '=>'))) { |
isField = false; |
break; |
} else if (identical(value, ';')) { |
@@ -1349,14 +1334,10 @@ class Parser { |
return isField |
? parseFields(start, modifiers, type, getOrSet, name, false) |
: parseMethod(start, modifiers, type, getOrSet, name); |
- |
} |
- Token parseMethod(Token start, |
- Link<Token> modifiers, |
- Token type, |
- Token getOrSet, |
- Token name) { |
+ Token parseMethod(Token start, Link<Token> modifiers, Token type, |
+ Token getOrSet, Token name) { |
Token externalModifier; |
Token staticModifier; |
Token constModifier; |
@@ -1369,35 +1350,31 @@ class Parser { |
modifierCount++; |
externalModifier = modifier; |
if (modifierCount != allowedModifierCount) { |
- listener.reportError( |
- modifier, |
- MessageKind.EXTRANEOUS_MODIFIER, {'modifier': modifier}); |
+ listener.reportError(modifier, MessageKind.EXTRANEOUS_MODIFIER, |
+ {'modifier': modifier}); |
} |
allowedModifierCount++; |
} else if (staticModifier == null && optional('static', modifier)) { |
modifierCount++; |
staticModifier = modifier; |
if (modifierCount != allowedModifierCount) { |
- listener.reportError( |
- modifier, |
- MessageKind.EXTRANEOUS_MODIFIER, {'modifier': modifier}); |
+ listener.reportError(modifier, MessageKind.EXTRANEOUS_MODIFIER, |
+ {'modifier': modifier}); |
} |
} else if (constModifier == null && optional('const', modifier)) { |
modifierCount++; |
constModifier = modifier; |
if (modifierCount != allowedModifierCount) { |
- listener.reportError( |
- modifier, |
- MessageKind.EXTRANEOUS_MODIFIER, {'modifier': modifier}); |
+ listener.reportError(modifier, MessageKind.EXTRANEOUS_MODIFIER, |
+ {'modifier': modifier}); |
} |
} else { |
listener.reportError( |
modifier, MessageKind.EXTRANEOUS_MODIFIER, {'modifier': modifier}); |
} |
} |
- if (getOrSet != null && constModifier != null) { |
- listener.reportError( |
- constModifier, MessageKind.EXTRANEOUS_MODIFIER, |
+ if (getOrSet != null && constModifier != null) { |
+ listener.reportError(constModifier, MessageKind.EXTRANEOUS_MODIFIER, |
{'modifier': constModifier}); |
} |
parseModifierList(modifiers); |
@@ -1411,8 +1388,7 @@ class Parser { |
if (optional('operator', name)) { |
token = parseOperatorName(name); |
if (staticModifier != null) { |
- listener.reportError( |
- staticModifier, MessageKind.EXTRANEOUS_MODIFIER, |
+ listener.reportError(staticModifier, MessageKind.EXTRANEOUS_MODIFIER, |
{'modifier': staticModifier}); |
} |
} else { |
@@ -1638,8 +1614,7 @@ class Parser { |
star = token; |
token = token.next; |
} else { |
- listener.reportError(async, |
- MessageKind.INVALID_SYNC_MODIFIER); |
+ listener.reportError(async, MessageKind.INVALID_SYNC_MODIFIER); |
} |
} |
listener.handleAsyncModifier(async, star); |
@@ -1715,7 +1690,6 @@ class Parser { |
return expectSemicolon(token); |
} |
- |
Token parseReturnStatement(Token token) { |
Token begin = token; |
listener.beginReturnStatement(begin); |
@@ -1870,8 +1844,8 @@ class Parser { |
return token; |
} |
- Token parsePrecedenceExpression(Token token, int precedence, |
- bool allowCascades) { |
+ Token parsePrecedenceExpression( |
+ Token token, int precedence, bool allowCascades) { |
assert(precedence >= 1); |
assert(precedence <= POSTFIX_PRECEDENCE); |
token = parseUnaryExpression(token, allowCascades); |
@@ -1900,10 +1874,10 @@ class Parser { |
token = parseUnaryExpression(token.next, allowCascades); |
listener.handleBinaryExpression(operator); |
} else if ((identical(info, OPEN_PAREN_INFO)) || |
- (identical(info, OPEN_SQUARE_BRACKET_INFO))) { |
+ (identical(info, OPEN_SQUARE_BRACKET_INFO))) { |
token = parseArgumentOrIndexStar(token); |
} else if ((identical(info, PLUS_PLUS_INFO)) || |
- (identical(info, MINUS_MINUS_INFO))) { |
+ (identical(info, MINUS_MINUS_INFO))) { |
listener.handleUnaryPostfixAssignmentExpression(token); |
token = token.next; |
} else { |
@@ -1918,8 +1892,8 @@ class Parser { |
} else { |
// Left associative, so we recurse at the next higher |
// precedence level. |
- token = parsePrecedenceExpression(token.next, level + 1, |
- allowCascades); |
+ token = |
+ parsePrecedenceExpression(token.next, level + 1, allowCascades); |
listener.handleBinaryExpression(operator); |
} |
info = token.info; |
@@ -1978,21 +1952,21 @@ class Parser { |
listener.reportError(token, MessageKind.UNSUPPORTED_PREFIX_PLUS); |
return parseUnaryExpression(token.next, allowCascades); |
} else if ((identical(value, '!')) || |
- (identical(value, '-')) || |
- (identical(value, '~'))) { |
+ (identical(value, '-')) || |
+ (identical(value, '~'))) { |
Token operator = token; |
// Right associative, so we recurse at the same precedence |
// level. |
- token = parsePrecedenceExpression(token.next, POSTFIX_PRECEDENCE, |
- allowCascades); |
+ token = parsePrecedenceExpression( |
+ token.next, POSTFIX_PRECEDENCE, allowCascades); |
listener.handleUnaryPrefixExpression(operator); |
} else if ((identical(value, '++')) || identical(value, '--')) { |
// TODO(ahe): Validate this is used correctly. |
Token operator = token; |
// Right associative, so we recurse at the same precedence |
// level. |
- token = parsePrecedenceExpression(token.next, POSTFIX_PRECEDENCE, |
- allowCascades); |
+ token = parsePrecedenceExpression( |
+ token.next, POSTFIX_PRECEDENCE, allowCascades); |
listener.handleUnaryPrefixAssignmentExpression(operator); |
} else { |
token = parsePrimary(token); |
@@ -2024,8 +1998,7 @@ class Parser { |
final kind = token.kind; |
if (kind == IDENTIFIER_TOKEN) { |
return parseSendOrFunctionLiteral(token); |
- } else if (kind == INT_TOKEN |
- || kind == HEXADECIMAL_TOKEN) { |
+ } else if (kind == INT_TOKEN || kind == HEXADECIMAL_TOKEN) { |
return parseLiteralInt(token); |
} else if (kind == DOUBLE_TOKEN) { |
return parseLiteralDouble(token); |
@@ -2050,7 +2023,7 @@ class Parser { |
} else if (value == 'void') { |
return parseFunctionExpression(token); |
} else if (asyncAwaitKeywordsEnabled && |
- (value == 'yield' || value == 'async')) { |
+ (value == 'yield' || value == 'async')) { |
return listener.expectedExpression(token); |
} else if (token.isIdentifier()) { |
return parseSendOrFunctionLiteral(token); |
@@ -2060,9 +2033,9 @@ class Parser { |
} else if (kind == OPEN_PAREN_TOKEN) { |
return parseParenthesizedExpressionOrFunctionLiteral(token); |
} else if ((kind == LT_TOKEN) || |
- (kind == OPEN_SQUARE_BRACKET_TOKEN) || |
- (kind == OPEN_CURLY_BRACKET_TOKEN) || |
- token.stringValue == '[]') { |
+ (kind == OPEN_SQUARE_BRACKET_TOKEN) || |
+ (kind == OPEN_CURLY_BRACKET_TOKEN) || |
+ token.stringValue == '[]') { |
return parseLiteralListOrMap(token); |
} else { |
return listener.expectedExpression(token); |
@@ -2075,9 +2048,9 @@ class Parser { |
int kind = nextToken.kind; |
if (mayParseFunctionExpressions && |
(identical(kind, FUNCTION_TOKEN) || |
- identical(kind, OPEN_CURLY_BRACKET_TOKEN) || |
- (identical(kind, KEYWORD_TOKEN) && |
- (nextToken.value == 'async' || nextToken.value == 'sync')))) { |
+ identical(kind, OPEN_CURLY_BRACKET_TOKEN) || |
+ (identical(kind, KEYWORD_TOKEN) && |
+ (nextToken.value == 'async' || nextToken.value == 'sync')))) { |
return parseUnnamedFunction(token); |
} else { |
bool old = mayParseFunctionExpressions; |
@@ -2416,8 +2389,8 @@ class Parser { |
return parseVariablesDeclarationMaybeSemicolon(token, false); |
} |
- Token parseVariablesDeclarationMaybeSemicolon(Token token, |
- bool endWithSemicolon) { |
+ Token parseVariablesDeclarationMaybeSemicolon( |
+ Token token, bool endWithSemicolon) { |
int count = 1; |
listener.beginVariablesDeclaration(token); |
token = parseModifiers(token); |
@@ -2568,8 +2541,7 @@ class Parser { |
Token awaitToken = token; |
listener.beginAwaitExpression(awaitToken); |
token = expect('await', token); |
- token = parsePrecedenceExpression(token, POSTFIX_PRECEDENCE, |
- allowCascades); |
+ token = parsePrecedenceExpression(token, POSTFIX_PRECEDENCE, allowCascades); |
listener.endAwaitExpression(awaitToken, token); |
return token; |
} |
@@ -2732,7 +2704,7 @@ class Parser { |
peek = peekPastLabels(token); |
} |
listener.handleSwitchCase(labelCount, expressionCount, defaultKeyword, |
- statementCount, begin, token); |
+ statementCount, begin, token); |
return token; |
} |