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

Unified Diff: dart/lib/compiler/implementation/tree/nodes.dart

Issue 10982089: Remove AbstractVisitor. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 8 years, 3 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: dart/lib/compiler/implementation/tree/nodes.dart
diff --git a/dart/lib/compiler/implementation/tree/nodes.dart b/dart/lib/compiler/implementation/tree/nodes.dart
index fff93e450b05f3ac76f218898bbfbd2c97a66121..f9524106f89e5f18d08156f95b65f91b23766122 100644
--- a/dart/lib/compiler/implementation/tree/nodes.dart
+++ b/dart/lib/compiler/implementation/tree/nodes.dart
@@ -3,56 +3,72 @@
// BSD-style license that can be found in the LICENSE file.
abstract class Visitor<R> {
- R visitBlock(Block node);
- R visitBreakStatement(BreakStatement node);
- R visitCascade(Cascade node);
- R visitCascadeReceiver(CascadeReceiver node);
- R visitCaseMatch(CaseMatch node);
- R visitCatchBlock(CatchBlock node);
- R visitClassNode(ClassNode node);
- R visitConditional(Conditional node);
- R visitContinueStatement(ContinueStatement node);
- R visitDoWhile(DoWhile node);
- R visitEmptyStatement(EmptyStatement node);
- R visitExpressionStatement(ExpressionStatement node);
- R visitFor(For node);
- R visitForIn(ForIn node);
- R visitFunctionDeclaration(FunctionDeclaration node);
- R visitFunctionExpression(FunctionExpression node);
- R visitIdentifier(Identifier node);
- R visitIf(If node);
- R visitLabel(Label node);
- R visitLabeledStatement(LabeledStatement node);
- R visitLiteralBool(LiteralBool node);
- R visitLiteralDouble(LiteralDouble node);
- R visitLiteralInt(LiteralInt node);
- R visitLiteralList(LiteralList node);
- R visitLiteralMap(LiteralMap node);
- R visitLiteralMapEntry(LiteralMapEntry node);
- R visitLiteralNull(LiteralNull node);
- R visitLiteralString(LiteralString node);
- R visitModifiers(Modifiers node);
- R visitNamedArgument(NamedArgument node);
- R visitNewExpression(NewExpression node);
- R visitNodeList(NodeList node);
- R visitOperator(Operator node);
- R visitParenthesizedExpression(ParenthesizedExpression node);
- R visitReturn(Return node);
- R visitScriptTag(ScriptTag node);
- R visitSend(Send node);
- R visitSendSet(SendSet node);
- R visitStringInterpolation(StringInterpolation node);
- R visitStringInterpolationPart(StringInterpolationPart node);
- R visitStringJuxtaposition(StringJuxtaposition node);
- R visitSwitchCase(SwitchCase node);
- R visitSwitchStatement(SwitchStatement node);
- R visitThrow(Throw node);
- R visitTryStatement(TryStatement node);
- R visitTypeAnnotation(TypeAnnotation node);
- R visitTypedef(Typedef node);
- R visitTypeVariable(TypeVariable node);
- R visitVariableDefinitions(VariableDefinitions node);
- R visitWhile(While node);
+ const Visitor();
+
+ abstract R visitNode(Node node);
+
+ R visitBlock(Block node) => visitStatement(node);
+ R visitBreakStatement(BreakStatement node) => visitGotoStatement(node);
+ R visitCascade(Cascade node) => visitExpression(node);
+ R visitCascadeReceiver(CascadeReceiver node) => visitExpression(node);
+ R visitCaseMatch(CaseMatch node) => visitNode(node);
+ R visitCatchBlock(CatchBlock node) => visitNode(node);
+ R visitClassNode(ClassNode node) => visitNode(node);
+ R visitConditional(Conditional node) => visitExpression(node);
+ R visitContinueStatement(ContinueStatement node) => visitGotoStatement(node);
+ R visitDoWhile(DoWhile node) => visitLoop(node);
+ R visitEmptyStatement(EmptyStatement node) => visitStatement(node);
+ R visitExpression(Expression node) => visitNode(node);
+ R visitExpressionStatement(ExpressionStatement node) => visitStatement(node);
+ R visitFor(For node) => visitLoop(node);
+ R visitForIn(ForIn node) => visitLoop(node);
+ R visitFunctionDeclaration(FunctionDeclaration node) => visitStatement(node);
+ R visitFunctionExpression(FunctionExpression node) => visitExpression(node);
+ R visitGotoStatement(GotoStatement node) => visitStatement(node);
+ R visitIdentifier(Identifier node) => visitExpression(node);
+ R visitIf(If node) => visitStatement(node);
+ R visitLabel(Label node) => visitNode(node);
+ R visitLabeledStatement(LabeledStatement node) => visitStatement(node);
+ R visitLiteral(Literal node) => visitExpression(node);
+ R visitLiteralBool(LiteralBool node) => visitLiteral(node);
+ R visitLiteralDouble(LiteralDouble node) => visitLiteral(node);
+ R visitLiteralInt(LiteralInt node) => visitLiteral(node);
+ R visitLiteralList(LiteralList node) => visitExpression(node);
+ R visitLiteralMap(LiteralMap node) => visitExpression(node);
+ R visitLiteralMapEntry(LiteralMapEntry node) => visitNode(node);
+ R visitLiteralNull(LiteralNull node) => visitLiteral(node);
+ R visitLiteralString(LiteralString node) => visitStringNode(node);
+ R visitStringJuxtaposition(StringJuxtaposition node) => visitStringNode(node);
+ R visitLoop(Loop node) => visitStatement(node);
+ R visitModifiers(Modifiers node) => visitNode(node);
+ R visitNamedArgument(NamedArgument node) => visitExpression(node);
+ R visitNewExpression(NewExpression node) => visitExpression(node);
+ R visitNodeList(NodeList node) => visitNode(node);
+ R visitOperator(Operator node) => visitIdentifier(node);
+ R visitParenthesizedExpression(ParenthesizedExpression node) {
+ return visitExpression(node);
+ }
+ R visitPostfix(Postfix node) => visitNodeList(node);
+ R visitPrefix(Prefix node) => visitNodeList(node);
+ R visitReturn(Return node) => visitStatement(node);
+ R visitScriptTag(ScriptTag node) => visitNode(node);
+ R visitSend(Send node) => visitExpression(node);
+ R visitSendSet(SendSet node) => visitSend(node);
+ R visitStatement(Statement node) => visitNode(node);
+ R visitStringNode(StringNode node) => visitExpression(node);
+ R visitStringInterpolation(StringInterpolation node) => visitStringNode(node);
+ R visitStringInterpolationPart(StringInterpolationPart node) {
+ return visitNode(node);
+ }
+ R visitSwitchCase(SwitchCase node) => visitNode(node);
+ R visitSwitchStatement(SwitchStatement node) => visitStatement(node);
+ R visitThrow(Throw node) => visitStatement(node);
+ R visitTryStatement(TryStatement node) => visitStatement(node);
+ R visitTypeAnnotation(TypeAnnotation node) => visitNode(node);
+ R visitTypedef(Typedef node) => visitNode(node);
+ R visitTypeVariable(TypeVariable node) => visitNode(node);
+ R visitVariableDefinitions(VariableDefinitions node) => visitStatement(node);
+ R visitWhile(While node) => visitLoop(node);
}
Token firstBeginToken(Node first, Node second) {
@@ -1872,7 +1888,7 @@ class Initializers {
}
}
-class GetDartStringVisitor extends AbstractVisitor<DartString> {
+class GetDartStringVisitor extends Visitor<DartString> {
const GetDartStringVisitor();
DartString visitNode(Node node) => null;
DartString visitStringJuxtaposition(StringJuxtaposition node)
@@ -1880,7 +1896,7 @@ class GetDartStringVisitor extends AbstractVisitor<DartString> {
DartString visitLiteralString(LiteralString node) => node.dartString;
}
-class IsInterpolationVisitor extends AbstractVisitor<bool> {
+class IsInterpolationVisitor extends Visitor<bool> {
const IsInterpolationVisitor();
bool visitNode(Node node) => false;
bool visitStringInterpolation(StringInterpolation node) => true;
« no previous file with comments | « dart/lib/compiler/implementation/ssa/nodes.dart ('k') | dart/lib/compiler/implementation/tree/prettyprint.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698