Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(60)

Unified Diff: pkg/front_end/lib/src/fasta/analyzer/ast_builder.dart

Issue 2707163002: Add preliminary support for methods to AstBuilder. (Closed)
Patch Set: Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: pkg/front_end/lib/src/fasta/analyzer/ast_builder.dart
diff --git a/pkg/front_end/lib/src/fasta/analyzer/ast_builder.dart b/pkg/front_end/lib/src/fasta/analyzer/ast_builder.dart
index 92d8f84a9ed18bee731608e28b95a116e7eac103..b4aca8023384ce4a70108babd050612e9ada31a6 100644
--- a/pkg/front_end/lib/src/fasta/analyzer/ast_builder.dart
+++ b/pkg/front_end/lib/src/fasta/analyzer/ast_builder.dart
@@ -1018,6 +1018,52 @@ class AstBuilder extends ScopeListener {
push(ast.typeParameterList(toAnalyzerToken(beginToken), typeParameters,
toAnalyzerToken(endToken)));
}
+
+ void endMethod(Token getOrSet, Token beginToken, Token endToken) {
scheglov 2017/02/21 20:17:27 @override
Paul Berry 2017/02/21 20:24:03 Done.
+ debugEvent("Method");
+ FunctionBody body = _endFunctionBody();
+ ConstructorName redirectedConstructor = null; // TODO(paulberry)
+ List<ConstructorInitializer> initializers = null; // TODO(paulberry)
+ Token separator = null; // TODO(paulberry)
+ FormalParameterList parameters = pop();
+ TypeParameterList typeParameters = pop();
+ var name = pop();
+ analyzer.Token propertyKeyword = toAnalyzerToken(getOrSet);
+ TypeAnnotation returnType = pop();
+ // TODO(paulberry): handle modifiers.
+ var modifiers = pop();
+ assert(modifiers == null);
+ Token externalKeyword = null; // TODO(paulberry)
+ Token constKeyword = null; // TODO(paulberry)
+ Token factoryKeyword = null; // TODO(paulberry)
+ List<Annotation> metadata = pop();
+ // TODO(paulberry): capture doc comments.
+ Comment comment = null;
+ SimpleIdentifier returnType2;
+ Token period;
+ SimpleIdentifier name2;
+ if (name is SimpleIdentifier) {
+ SimpleIdentifier returnType2 = name;
ahe 2017/02/22 11:30:38 There's a few hints introduced with this change. C
Paul Berry 2017/02/22 16:37:12 Fair enough. I will follow up with a fix.
+ }
+ push(ast.constructorDeclaration(
+ comment,
+ metadata,
+ toAnalyzerToken(externalKeyword),
+ toAnalyzerToken(constKeyword),
+ toAnalyzerToken(factoryKeyword),
+ returnType2,
+ toAnalyzerToken(period),
+ name2,
+ parameters,
+ toAnalyzerToken(separator),
+ initializers,
+ redirectedConstructor,
+ body));
+ }
+
+ void endMember() {
scheglov 2017/02/21 20:17:27 @override
Paul Berry 2017/02/21 20:24:03 Done.
+ debugEvent("Member");
+ }
}
/// Data structure placed on the stack to represent a class body.
« no previous file with comments | « pkg/analyzer/test/generated/parser_fasta_test.dart ('k') | pkg/front_end/lib/src/fasta/parser/listener.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698