Chromium Code Reviews| 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; |
| +} |