Index: pkg/kernel/lib/interpreter/interpreter_visitor.dart |
diff --git a/pkg/kernel/lib/interpreter/interpreter_visitor.dart b/pkg/kernel/lib/interpreter/interpreter_visitor.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..b9c70cd8fe538c7735eae9d6bce56e614246b718 |
--- /dev/null |
+++ b/pkg/kernel/lib/interpreter/interpreter_visitor.dart |
@@ -0,0 +1,132 @@ |
+// Copyright 1(c) 2016, the Dart project authors. Please see the AUTHORS file |
Kevin Millikin (Google)
2017/03/02 10:30:30
2017. A 1 (or maybe an L) has also crept in here.
|
+// for details. All rights reserved. Use of this source code is governed by a |
+// BSD-style license that can be found in the LICENSE file. |
+ |
+/// A library to help move super calls last in the initializer list. |
+library kernel.interpreter.interpreter_visitor; |
+ |
+import '../ast.dart'; |
+ |
+abstract class ExpressionVisitor1<R> { |
+ R defaultExpression1(Expression node, State state) => null; |
Kevin Millikin (Google)
2017/03/02 10:30:30
We should also generalize all these methods to:
R
|
+ |
+ R defaultBasicLiteral1(BasicLiteral node, State state) => |
+ defaultExpression1(node, state); |
+ |
+ R visitInvalidExpression1(InvalidExpression node, State state) => |
Kevin Millikin (Google)
2017/03/02 10:30:30
We need the '1' on ExpressionVisitor1 and accept1
|
+ defaultExpression1(node, state); |
+ |
+ R visitVariableGet1(VariableGet node, State state) => |
+ defaultExpression1(node, state); |
+ |
+ R visitVariableSet1(VariableSet node, State state) => |
+ defaultExpression1(node, state); |
+ |
+ R visitPropertyGet1(PropertyGet node, State state) => |
+ defaultExpression1(node, state); |
+ |
+ R visitPropertySet1(PropertySet node, State state) => |
+ defaultExpression1(node, state); |
+ |
+ R visitDirectPropertyGet1(DirectPropertyGet node, State state) => |
+ defaultExpression1(node, state); |
+ |
+ R visitDirectPropertySet1(DirectPropertySet node, State state) => |
+ defaultExpression1(node, state); |
+ |
+ R visitSuperPropertyGet1(SuperPropertyGet node, State state) => |
+ defaultExpression1(node, state); |
+ |
+ R visitSuperPropertySet1(SuperPropertySet node, State state) => |
+ defaultExpression1(node, state); |
+ |
+ R visitStaticGet1(StaticGet node, State state) => |
+ defaultExpression1(node, state); |
+ |
+ R visitStaticSet1(StaticSet node, State state) => |
+ defaultExpression1(node, state); |
+ |
+ R visitMethodInvocation1(MethodInvocation node, State state) => |
+ defaultExpression1(node, state); |
+ |
+ R visitDirectMethodInvocation1(DirectMethodInvocation node, State state) => |
+ defaultExpression1(node, state); |
+ |
+ R visitSuperMethodInvocation1(SuperMethodInvocation node, State state) => |
+ defaultExpression1(node, state); |
+ |
+ R visitStaticInvocation1(StaticInvocation node, State state) => |
+ defaultExpression1(node, state); |
+ |
+ R visitConstructorInvocation1(ConstructorInvocation node, State state) => |
+ defaultExpression1(node, state); |
+ |
+ R visitNot1(Not node, State state) => defaultExpression1(node, state); |
+ |
+ R visitLogicalExpression1(LogicalExpression node, State state) => |
+ defaultExpression1(node, state); |
+ |
+ R visitConditionalExpression1(ConditionalExpression node, State state) => |
+ defaultExpression1(node, state); |
+ |
+ R visitStringConcatenation1(StringConcatenation node, State state) => |
+ defaultExpression1(node, state); |
+ |
+ R visitIsExpression1(IsExpression node, State state) => |
+ defaultExpression1(node, state); |
+ |
+ R visitAsExpression1(AsExpression node, State state) => |
+ defaultExpression1(node, state); |
+ |
+ R visitSymbolLiteral1(SymbolLiteral node, State state) => |
+ defaultExpression1(node, state); |
+ |
+ R visitTypeLiteral1(TypeLiteral node, State state) => |
+ defaultExpression1(node, state); |
+ |
+ R visitThisExpression1(ThisExpression node, State state) => |
+ defaultExpression1(node, state); |
+ |
+ R visitRethrow1(Rethrow node, State state) => defaultExpression1(node, state); |
+ |
+ R visitThrow1(Throw node, State state) => defaultExpression1(node, state); |
+ |
+ R visitListLiteral1(ListLiteral node, State state) => |
+ defaultExpression1(node, state); |
+ |
+ R visitMapLiteral1(MapLiteral node, State state) => |
+ defaultExpression1(node, state); |
+ |
+ R visitAwaitExpression1(AwaitExpression node, State state) => |
+ defaultExpression1(node, state); |
+ |
+ R visitFunctionExpression1(FunctionExpression node, State state) => |
+ defaultExpression1(node, state); |
+ |
+ R visitStringLiteral1(StringLiteral node, State state) => |
+ defaultBasicLiteral1(node, state); |
+ |
+ R visitIntLiteral1(IntLiteral node, State state) => |
+ defaultBasicLiteral1(node, state); |
+ |
+ R visitDoubleLiteral1(DoubleLiteral node, State state) => |
+ defaultBasicLiteral1(node, state); |
+ |
+ R visitBoolLiteral1(BoolLiteral node, State state) => |
+ defaultBasicLiteral1(node, state); |
+ |
+ R visitNullLiteral1(NullLiteral node, State state) => |
+ defaultBasicLiteral1(node, state); |
+ |
+ R visitLet1(Let node, State state) => defaultExpression1(node, state); |
+ |
+ R visitLoadLibrary1(LoadLibrary node, State state) => |
+ defaultExpression1(node, state); |
+ |
+ R visitCheckLibraryIsLoaded1(CheckLibraryIsLoaded node, State state) => |
+ defaultExpression1(node, state); |
+} |
+ |
+abstract class State { |
Kevin Millikin (Google)
2017/03/02 10:30:30
If we eliminate the type State from the AST and vi
|
+ Map<String, Object> get environment; |
+} |