Index: pkg/fasta/lib/src/source/outline_builder.dart |
diff --git a/pkg/fasta/lib/src/source/outline_builder.dart b/pkg/fasta/lib/src/source/outline_builder.dart |
index 45beda7a1fe7fdbe43e4e0b15133c985b25f6f31..be857fe49ed123390b53b23b19596c7f79a0cdd6 100644 |
--- a/pkg/fasta/lib/src/source/outline_builder.dart |
+++ b/pkg/fasta/lib/src/source/outline_builder.dart |
@@ -65,8 +65,10 @@ class OutlineBuilder extends UnhandledListener { |
OutlineBuilder(this.library); |
+ @override |
Uri get uri => library.uri; |
+ @override |
void endMetadata(Token beginToken, Token periodBeforeName, Token endToken) { |
debugEvent("Metadata"); |
List arguments = pop(); |
@@ -83,23 +85,27 @@ class OutlineBuilder extends UnhandledListener { |
} |
} |
+ @override |
void endHide(Token hideKeyword) { |
debugEvent("Hide"); |
List<String> names = pop(); |
push(new Combinator.hide(names)); |
} |
+ @override |
void endShow(Token showKeyword) { |
debugEvent("Show"); |
List<String> names = pop(); |
push(new Combinator.show(names)); |
} |
+ @override |
void endCombinators(int count) { |
debugEvent("Combinators"); |
push(popList(count) ?? NullValue.Combinators); |
} |
+ @override |
void endExport(Token exportKeyword, Token semicolon) { |
debugEvent("Export"); |
List<Combinator> combinators = pop(); |
@@ -110,6 +116,7 @@ class OutlineBuilder extends UnhandledListener { |
checkEmpty(); |
} |
+ @override |
void endImport(Token importKeyword, Token deferredKeyword, Token asKeyword, |
Token semicolon) { |
debugEvent("endImport"); |
@@ -123,6 +130,7 @@ class OutlineBuilder extends UnhandledListener { |
checkEmpty(); |
} |
+ @override |
void endPart(Token partKeyword, Token semicolon) { |
debugEvent("Part"); |
String uri = pop(); |
@@ -131,16 +139,19 @@ class OutlineBuilder extends UnhandledListener { |
checkEmpty(); |
} |
+ @override |
void handleOperatorName(Token operatorKeyword, Token token) { |
debugEvent("OperatorName"); |
push(token.stringValue); |
} |
+ @override |
void endIdentifierList(int count) { |
debugEvent("endIdentifierList"); |
push(popList(count) ?? NullValue.IdentifierList); |
} |
+ @override |
void handleQualified(Token period) { |
debugEvent("handleQualified"); |
String name = pop(); |
@@ -148,6 +159,7 @@ class OutlineBuilder extends UnhandledListener { |
push("$receiver.$name"); |
} |
+ @override |
void endLibraryName(Token libraryKeyword, Token semicolon) { |
debugEvent("endLibraryName"); |
String name = pop(); |
@@ -156,10 +168,12 @@ class OutlineBuilder extends UnhandledListener { |
library.metadata = metadata; |
} |
+ @override |
void beginClassDeclaration(Token token) { |
library.beginNestedScope(); |
} |
+ @override |
void endClassDeclaration(int interfacesCount, Token beginToken, |
Token extendsKeyword, Token implementsKeyword, Token endToken) { |
debugEvent("endClassDeclaration"); |
@@ -181,6 +195,7 @@ class OutlineBuilder extends UnhandledListener { |
return internalError("Unhandled: ${token.value}"); |
} |
+ @override |
ProcedureBuilder endTopLevelMethod( |
Token beginToken, Token getOrSet, Token endToken) { |
debugEvent("endTopLevelMethod"); |
@@ -198,16 +213,19 @@ class OutlineBuilder extends UnhandledListener { |
typeVariables, formals, asyncModifier, computeProcedureKind(getOrSet)); |
} |
+ @override |
void handleNoFunctionBody(Token token) { |
debugEvent("NoFunctionBody"); |
push(MethodBody.Abstract); |
} |
+ @override |
void handleFunctionBodySkipped(Token token) { |
debugEvent("handleFunctionBodySkipped"); |
push(MethodBody.Regular); |
} |
+ @override |
void endMethod(Token getOrSet, Token beginToken, Token endToken) { |
debugEvent("Method"); |
MethodBody kind = pop(); |
@@ -230,6 +248,7 @@ class OutlineBuilder extends UnhandledListener { |
formals, asyncModifier, computeProcedureKind(getOrSet)); |
} |
+ @override |
void endMixinApplication() { |
debugEvent("MixinApplication"); |
List<TypeBuilder> mixins = pop(); |
@@ -237,10 +256,12 @@ class OutlineBuilder extends UnhandledListener { |
push(library.addMixinApplication(supertype, mixins)); |
} |
+ @override |
void beginNamedMixinApplication(Token token) { |
library.beginNestedScope(); |
} |
+ @override |
void endNamedMixinApplication( |
Token classKeyword, Token implementsKeyword, Token endToken) { |
debugEvent("endNamedMixinApplication"); |
@@ -255,11 +276,13 @@ class OutlineBuilder extends UnhandledListener { |
checkEmpty(); |
} |
+ @override |
void endTypeArguments(int count, Token beginToken, Token endToken) { |
debugEvent("TypeArguments"); |
push(popList(count) ?? NullValue.TypeArguments); |
} |
+ @override |
void endType(Token beginToken, Token endToken) { |
debugEvent("Type"); |
List<TypeBuilder> arguments = pop(); |
@@ -267,21 +290,25 @@ class OutlineBuilder extends UnhandledListener { |
push(library.addInterfaceType(name, arguments)); |
} |
+ @override |
void endTypeList(int count) { |
debugEvent("TypeList"); |
push(popList(count) ?? NullValue.TypeList); |
} |
+ @override |
void endTypeVariables(int count, Token beginToken, Token endToken) { |
debugEvent("TypeVariables"); |
push(popList(count) ?? NullValue.TypeVariables); |
} |
+ @override |
void handleVoidKeyword(Token token) { |
debugEvent("VoidKeyword"); |
push(library.addVoidType()); |
} |
+ @override |
void endFormalParameter(Token thisKeyword) { |
debugEvent("FormalParameter"); |
String name = pop(); |
@@ -292,11 +319,13 @@ class OutlineBuilder extends UnhandledListener { |
thisKeyword != null)); |
} |
+ @override |
void handleValuedFormalParameter(Token equals, Token token) { |
debugEvent("ValuedFormalParameter"); |
// Ignored for now. |
} |
+ @override |
void endFunctionTypedFormalParameter(Token token) { |
debugEvent("FunctionTypedFormalParameter"); |
pop(); // Function type parameters. |
@@ -307,6 +336,7 @@ class OutlineBuilder extends UnhandledListener { |
push(name); |
} |
+ @override |
void endOptionalFormalParameters( |
int count, Token beginToken, Token endToken) { |
debugEvent("OptionalFormalParameters"); |
@@ -319,6 +349,7 @@ class OutlineBuilder extends UnhandledListener { |
push(parameters); |
} |
+ @override |
void endFormalParameters(int count, Token beginToken, Token endToken) { |
debugEvent("FormalParameters"); |
List formals = popList(count); |
@@ -346,6 +377,7 @@ class OutlineBuilder extends UnhandledListener { |
push(formals ?? NullValue.FormalParameters); |
} |
+ @override |
void endEnum(Token enumKeyword, Token endBrace, int count) { |
List<String> constants = popList(count); |
String name = pop(); |
@@ -354,10 +386,12 @@ class OutlineBuilder extends UnhandledListener { |
checkEmpty(); |
} |
+ @override |
void beginFunctionTypeAlias(Token token) { |
library.beginNestedScope(); |
} |
+ @override |
void endFunctionTypeAlias(Token typedefKeyword, Token endToken) { |
debugEvent("endFunctionTypeAlias"); |
List<FormalParameterBuilder> formals = pop(); |
@@ -370,6 +404,7 @@ class OutlineBuilder extends UnhandledListener { |
checkEmpty(); |
} |
+ @override |
void endTopLevelFields(int count, Token beginToken, Token endToken) { |
debugEvent("endTopLevelFields"); |
List<String> names = popList(count); |
@@ -380,6 +415,7 @@ class OutlineBuilder extends UnhandledListener { |
checkEmpty(); |
} |
+ @override |
void endFields(int count, Token beginToken, Token endToken) { |
debugEvent("Fields"); |
List<String> names = popList(count); |
@@ -389,6 +425,7 @@ class OutlineBuilder extends UnhandledListener { |
library.addFields(metadata, modifiers, type, names); |
} |
+ @override |
void endTypeVariable(Token token, Token extendsOrSuper) { |
debugEvent("endTypeVariable"); |
TypeBuilder bound = pop(); |
@@ -396,6 +433,7 @@ class OutlineBuilder extends UnhandledListener { |
push(library.addTypeVariable(name, bound)); |
} |
+ @override |
void endPartOf(Token partKeyword, Token semicolon) { |
debugEvent("endPartOf"); |
String name = pop(); |
@@ -403,6 +441,7 @@ class OutlineBuilder extends UnhandledListener { |
library.addPartOf(metadata, name); |
} |
+ @override |
void endConstructorReference( |
Token start, Token periodBeforeName, Token endToken) { |
debugEvent("ConstructorReference"); |
@@ -412,6 +451,7 @@ class OutlineBuilder extends UnhandledListener { |
push(library.addConstructorReference(name, typeArguments, suffix)); |
} |
+ @override |
void endFactoryMethod(Token beginToken, Token endToken) { |
debugEvent("FactoryMethod"); |
MethodBody kind = pop(); |
@@ -427,49 +467,64 @@ class OutlineBuilder extends UnhandledListener { |
redirectionTarget); |
} |
+ @override |
void endRedirectingFactoryBody(Token beginToken, Token endToken) { |
debugEvent("RedirectingFactoryBody"); |
push(MethodBody.RedirectingFactoryBody); |
} |
+ @override |
void endFieldInitializer(Token assignmentOperator) { |
debugEvent("FieldInitializer"); |
// Ignoring field initializers for now. |
} |
+ @override |
+ void handleNoFieldInitializer(Token token) { |
+ debugEvent("NoFieldInitializer"); |
+ } |
+ |
+ @override |
void endInitializers(int count, Token beginToken, Token endToken) { |
debugEvent("Initializers"); |
// Ignored for now. |
} |
+ @override |
void handleNoInitializers() { |
debugEvent("NoInitializers"); |
// This is a constructor initializer and it's ignored for now. |
} |
+ @override |
void endMember() { |
debugEvent("Member"); |
} |
+ @override |
void endClassBody(int memberCount, Token beginToken, Token endToken) { |
debugEvent("ClassBody"); |
} |
+ @override |
void handleAsyncModifier(Token asyncToken, Token starToken) { |
debugEvent("AsyncModifier"); |
push(asyncMarkerFromTokens(asyncToken, starToken)); |
} |
+ @override |
void handleModifier(Token token) { |
debugEvent("Modifier"); |
push(new Modifier.fromString(token.stringValue)); |
} |
+ @override |
void handleModifiers(int count) { |
debugEvent("Modifiers"); |
push(popList(count) ?? NullValue.Modifiers); |
} |
+ @override |
void debugEvent(String name) { |
// printEvent(name); |
} |