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:
Brian Wilkerson 2017-12-20 18:29:23 +00:00 committed by commit-bot@chromium.org
parent 07829bb52a
commit 705904befd
6 changed files with 4 additions and 61 deletions

View file

@ -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).

View file

@ -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) {

View file

@ -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.

View file

@ -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) {

View file

@ -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");

View file

@ -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.