mirror of
https://github.com/dart-lang/sdk
synced 2024-10-06 14:07:57 +00:00
Unify skipFormals and skipFormalParameters
Change-Id: I495b33b283aec848b6089619ad5632632e1df60d Reviewed-on: https://dart-review.googlesource.com/30881 Reviewed-by: Dan Rubel <danrubel@google.com> Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
This commit is contained in:
parent
0eea09056d
commit
55d13097e0
|
@ -1042,10 +1042,19 @@ class Parser {
|
|||
}
|
||||
|
||||
Token skipFormalParameters(Token token, MemberKind kind) {
|
||||
Token lastConsumed = token;
|
||||
token = token.next;
|
||||
assert(optional('(', token));
|
||||
// TODO(ahe): Shouldn't this be `beginFormalParameters`?
|
||||
listener.beginOptionalFormalParameters(token);
|
||||
if (!optional('(', token)) {
|
||||
if (optional(';', token)) {
|
||||
reportRecoverableError(token, fasta.messageExpectedOpenParens);
|
||||
listener.endFormalParameters(0, token, token, kind);
|
||||
return lastConsumed;
|
||||
}
|
||||
listener.endFormalParameters(0, token, token, kind);
|
||||
return reportUnexpectedToken(token);
|
||||
}
|
||||
Token closeBrace = closeBraceTokenFor(token);
|
||||
listener.endFormalParameters(0, token, closeBrace, kind);
|
||||
return closeBrace;
|
||||
|
|
|
@ -6,37 +6,13 @@ library fasta.diet_parser;
|
|||
|
||||
import '../../scanner/token.dart' show Token;
|
||||
|
||||
import '../fasta_codes.dart' show messageExpectedOpenParens;
|
||||
|
||||
import '../parser.dart'
|
||||
show ClassMemberParser, Listener, MemberKind, closeBraceTokenFor, optional;
|
||||
import '../parser.dart' show ClassMemberParser, Listener, MemberKind;
|
||||
|
||||
// TODO(ahe): Move this to parser package.
|
||||
class DietParser extends ClassMemberParser {
|
||||
DietParser(Listener listener) : super(listener);
|
||||
|
||||
Token parseFormalParameters(Token token, MemberKind kind) {
|
||||
return skipFormals(token, kind);
|
||||
}
|
||||
|
||||
// TODO(brianwilkerson): Move this method to Parser, and, if possible, merge
|
||||
// it with skipFormalParameters.
|
||||
Token skipFormals(Token token, MemberKind kind) {
|
||||
token = token.next;
|
||||
listener.beginOptionalFormalParameters(token);
|
||||
if (!optional('(', token)) {
|
||||
if (optional(';', token)) {
|
||||
reportRecoverableError(token, messageExpectedOpenParens);
|
||||
listener.endFormalParameters(0, token, token, kind);
|
||||
// TODO(brianwilkerson): Until this method accepts the last consumed
|
||||
// token, this returns the wrong token (it should be the token before
|
||||
// `token`).
|
||||
return token;
|
||||
}
|
||||
return reportUnexpectedToken(token);
|
||||
}
|
||||
Token closeBrace = closeBraceTokenFor(token);
|
||||
listener.endFormalParameters(0, token, closeBrace, kind);
|
||||
return closeBrace;
|
||||
return skipFormalParameters(token, kind);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue