| Index: pkg/dart_parser/lib/src/listener.dart
|
| diff --git a/pkg/dart_parser/lib/src/listener.dart b/pkg/dart_parser/lib/src/listener.dart
|
| index 4c322161cc716018c793c69a3f36293c6f45d197..9d656bbcf94dd29adb6d08d793bf9ed2e8dfaf18 100644
|
| --- a/pkg/dart_parser/lib/src/listener.dart
|
| +++ b/pkg/dart_parser/lib/src/listener.dart
|
| @@ -24,6 +24,13 @@ import 'error_kind.dart' show
|
| /// on parser errors.
|
| ///
|
| /// Events are methods that begin with one of: `begin`, `end`, or `handle`.
|
| +///
|
| +/// Events starting with `begin` and `end` come in pairs. Normally, a
|
| +/// `beginFoo` event is followed by an `endFoo` event. There's a few exceptions
|
| +/// documented below.
|
| +///
|
| +/// Events starting with `handle` are used when isn't possible to have a begin
|
| +/// event.
|
| class Listener {
|
| final List<ParserError> recoverableErrors = <ParserError>[];
|
|
|
| @@ -155,6 +162,7 @@ class Listener {
|
| logEvent("FormalParameters");
|
| }
|
|
|
| + /// Doesn't have a corresponding begin event, use [beginMember] instead.
|
| void endFields(int count, Token beginToken, Token endToken) {
|
| logEvent("Fields");
|
| }
|
| @@ -214,8 +222,7 @@ class Listener {
|
| logEvent("NoFunctionBody");
|
| }
|
|
|
| - // TODO(ahe): Rename to `handleFunctionBodySkipped`.
|
| - void skippedFunctionBody(Token token) {}
|
| + void handleFunctionBodySkipped(Token token) {}
|
|
|
| void beginFunctionName(Token token) {}
|
|
|
| @@ -311,19 +318,22 @@ class Listener {
|
| logEvent("InitializedIdentifier");
|
| }
|
|
|
| - // TODO(ahe): Rename this to beginVariableInitializer.
|
| - void beginInitializer(Token token) {}
|
| + void beginFieldInitializer(Token token) {
|
| + }
|
|
|
| - // TODO(ahe): Rename this to endVariableInitializer.
|
| - void endInitializer(Token assignmentOperator) {
|
| - logEvent("Initializer");
|
| + void endFieldInitializer(Token assignment) {
|
| + logEvent("FieldInitializer");
|
| }
|
|
|
| - // TODO(ahe): Rename this to beginInitializer.
|
| - void beginConstructorInitializer(Token token) {}
|
| + void beginVariableInitializer(Token token) {}
|
| +
|
| + void endVariableInitializer(Token assignmentOperator) {
|
| + logEvent("VariableInitializer");
|
| + }
|
| +
|
| + void beginInitializer(Token token) {}
|
|
|
| - // TODO(ahe): Rename this to endInitializer.
|
| - void endConstructorInitializer(Token token) {
|
| + void endInitializer(Token token) {
|
| logEvent("ConstructorInitializer");
|
| }
|
|
|
| @@ -371,10 +381,13 @@ class Listener {
|
|
|
| void beginMember(Token token) {}
|
|
|
| + /// This event is added for convenience. Normally, one should override
|
| + /// [endMethod] or [endFields] instead.
|
| void endMember() {
|
| logEvent("Member");
|
| }
|
|
|
| + /// Doesn't have a corresponding begin event, use [beginMember] instead.
|
| void endMethod(Token getOrSet, Token beginToken, Token endToken) {
|
| logEvent("Method");
|
| }
|
| @@ -465,16 +478,24 @@ class Listener {
|
| logEvent("RethrowStatement");
|
| }
|
|
|
| + /// This event is added for convenience. Normally, one should use
|
| + /// [endClassDeclaration], [endNamedMixinApplication], [endEnum],
|
| + /// [endFunctionTypeAlias], [endLibraryName], [endImport], [endExport],
|
| + /// [endPart], [endPartOf], [endTopLevelFields], or [endTopLevelMethod].
|
| void endTopLevelDeclaration(Token token) {
|
| logEvent("TopLevelDeclaration");
|
| }
|
|
|
| void beginTopLevelMember(Token token) {}
|
|
|
| + /// Doesn't have a corresponding begin event, use [beginTopLevelMember]
|
| + /// instead.
|
| void endTopLevelFields(int count, Token beginToken, Token endToken) {
|
| logEvent("TopLevelFields");
|
| }
|
|
|
| + /// Doesn't have a corresponding begin event, use [beginTopLevelMember]
|
| + /// instead.
|
| void endTopLevelMethod(Token beginToken, Token getOrSet, Token endToken) {
|
| logEvent("TopLevelMethod");
|
| }
|
| @@ -572,8 +593,7 @@ class Listener {
|
| void beginFunctionTypedFormalParameter(Token token) {
|
| }
|
|
|
| - // TODO(ahe): Rename to `endFunctionTypedFormalParameter`.
|
| - void handleFunctionTypedFormalParameter(Token token) {
|
| + void endFunctionTypedFormalParameter(Token token) {
|
| logEvent("FunctionTypedFormalParameter");
|
| }
|
|
|
|
|