mirror of
https://github.com/dart-lang/sdk
synced 2024-10-06 16:19:07 +00:00
Replace parseLiteralStringOrRecoverExpression with ensureLiteralString and remove unused methods
Change-Id: I8ffeff26114132c31a9f677be5654f25455db197 Reviewed-on: https://dart-review.googlesource.com/30882 Reviewed-by: Dan Rubel <danrubel@google.com> Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
This commit is contained in:
parent
07829bb52a
commit
705904befd
|
@ -6,8 +6,6 @@ library fasta.parser.class_member_parser;
|
|||
|
||||
import '../../scanner/token.dart' show Token;
|
||||
|
||||
import '../fasta_codes.dart' show Message;
|
||||
|
||||
import 'assert.dart' show Assert;
|
||||
|
||||
import 'listener.dart' show Listener;
|
||||
|
@ -38,16 +36,6 @@ class ClassMemberParser extends Parser {
|
|||
}
|
||||
}
|
||||
|
||||
@override
|
||||
Token parseRecoverExpression(Token token, Message message) {
|
||||
Token begin = token;
|
||||
// TODO(brianwilkerson): Remove the invocation of `syntheticPreviousToken`
|
||||
// when `parseRecoverExpression` accepts the last consumed token.
|
||||
token = skipExpression(syntheticPreviousToken(token));
|
||||
listener.handleRecoverExpression(begin, message);
|
||||
return token;
|
||||
}
|
||||
|
||||
// This method is overridden for two reasons:
|
||||
// 1. Avoid generating events for arguments.
|
||||
// 2. Avoid calling skip expression for each argument (which doesn't work).
|
||||
|
|
|
@ -1199,11 +1199,6 @@ class ForwardingListener implements Listener {
|
|||
listener?.handleRecoverClassHeader();
|
||||
}
|
||||
|
||||
@override
|
||||
void handleRecoverExpression(Token token, Message message) {
|
||||
listener?.handleRecoverExpression(token, message);
|
||||
}
|
||||
|
||||
@override
|
||||
void handleRecoverableError(
|
||||
Message message, Token startToken, Token endToken) {
|
||||
|
|
|
@ -208,13 +208,6 @@ class Listener {
|
|||
|
||||
void beginExpressionStatement(Token token) {}
|
||||
|
||||
/// Called by [ClassMemberParser] after skipping an expression as error
|
||||
/// recovery. For a stack-based listener, the suggested action is to push
|
||||
/// `null` or a synthetic erroneous expression.
|
||||
void handleRecoverExpression(Token token, Message message) {
|
||||
logEvent("RecoverExpression");
|
||||
}
|
||||
|
||||
/// Called by [Parser] after parsing an extraneous expression as error
|
||||
/// recovery. For a stack-based listener, the suggested action is to discard
|
||||
/// an expression from the stack.
|
||||
|
|
|
@ -739,10 +739,10 @@ class Parser {
|
|||
Token equalitySign;
|
||||
if (optional('==', token)) {
|
||||
equalitySign = token;
|
||||
token = parseLiteralStringOrRecoverExpression(token).next;
|
||||
token = ensureLiteralString(token).next;
|
||||
}
|
||||
expect(')', token);
|
||||
token = parseLiteralStringOrRecoverExpression(token);
|
||||
token = ensureLiteralString(token);
|
||||
listener.endConditionalUri(ifKeyword, leftParen, equalitySign);
|
||||
return token;
|
||||
}
|
||||
|
@ -889,7 +889,7 @@ class Parser {
|
|||
Token partKeyword = token.next;
|
||||
assert(optional('part', partKeyword));
|
||||
listener.beginPart(partKeyword);
|
||||
token = parseLiteralStringOrRecoverExpression(partKeyword);
|
||||
token = ensureLiteralString(partKeyword);
|
||||
token = ensureSemicolon(token);
|
||||
listener.endPart(partKeyword, token);
|
||||
return token;
|
||||
|
@ -911,7 +911,7 @@ class Parser {
|
|||
token = parseQualified(ofKeyword, IdentifierContext.partName,
|
||||
IdentifierContext.partNameContinuation);
|
||||
} else {
|
||||
token = parseLiteralStringOrRecoverExpression(ofKeyword);
|
||||
token = ensureLiteralString(ofKeyword);
|
||||
}
|
||||
token = ensureSemicolon(token);
|
||||
listener.endPartOf(partKeyword, ofKeyword, token, hasName);
|
||||
|
@ -3323,23 +3323,6 @@ class Parser {
|
|||
return token;
|
||||
}
|
||||
|
||||
Token parseLiteralStringOrRecoverExpression(Token token) {
|
||||
// TODO(brianwilkerson) Replace invocations of this method with invocations
|
||||
// of `ensureParseLiteralString`.
|
||||
Token next = token.next;
|
||||
if (identical(next.kind, STRING_TOKEN)) {
|
||||
return parseLiteralString(token);
|
||||
} else if (next is ErrorToken) {
|
||||
// TODO(brianwilkerson): Remove the invocation of `previous` when
|
||||
// `reportErrorToken` returns the last consumed token.
|
||||
return reportErrorToken(next, false).previous;
|
||||
} else {
|
||||
reportRecoverableErrorWithToken(next, fasta.templateExpectedString);
|
||||
return parseRecoverExpression(
|
||||
token, fasta.templateExpectedString.withArguments(next));
|
||||
}
|
||||
}
|
||||
|
||||
Token expectSemicolon(Token token) {
|
||||
return expect(';', token);
|
||||
}
|
||||
|
@ -4380,10 +4363,6 @@ class Parser {
|
|||
return token;
|
||||
}
|
||||
|
||||
Token parseRecoverExpression(Token token, Message message) {
|
||||
return parseExpression(token);
|
||||
}
|
||||
|
||||
int expressionDepth = 0;
|
||||
Token parseExpression(Token token) {
|
||||
if (expressionDepth++ > 500) {
|
||||
|
|
|
@ -190,13 +190,6 @@ class OutlineBuilder extends UnhandledListener {
|
|||
pop(); // conditionalUris
|
||||
}
|
||||
|
||||
@override
|
||||
void handleRecoverExpression(Token token, Message message) {
|
||||
debugEvent("RecoverExpression");
|
||||
push(NullValue.Expression);
|
||||
push(token.charOffset);
|
||||
}
|
||||
|
||||
@override
|
||||
void endPart(Token partKeyword, Token semicolon) {
|
||||
debugEvent("Part");
|
||||
|
|
|
@ -304,11 +304,6 @@ abstract class StackListener extends Listener {
|
|||
push(popList(literalCount).join(""));
|
||||
}
|
||||
|
||||
@override
|
||||
void handleRecoverExpression(Token token, Message message) {
|
||||
debugEvent("RecoverExpression");
|
||||
}
|
||||
|
||||
@override
|
||||
void handleDirectivesOnly() {
|
||||
pop(); // Discard the metadata.
|
||||
|
|
Loading…
Reference in a new issue