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

Unified Diff: pkg/kernel/lib/ast.dart

Issue 2722283003: Initial implementation of interpreter for Kernel (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/kernel/lib/ast.dart
diff --git a/pkg/kernel/lib/ast.dart b/pkg/kernel/lib/ast.dart
index 8f05d4d8d178906ac103dc2aff8179f3c87936ab..126ad74e7cdb782250848309804bc93c6f818f3f 100644
--- a/pkg/kernel/lib/ast.dart
+++ b/pkg/kernel/lib/ast.dart
@@ -53,6 +53,9 @@ library kernel.ast;
import 'visitor.dart';
export 'visitor.dart';
+import 'interpreter/interpreter_visitor.dart';
+export 'interpreter/interpreter_visitor.dart';
+
import 'type_propagation/type_propagation.dart';
export 'type_propagation/type_propagation.dart';
@@ -1406,6 +1409,7 @@ abstract class Expression extends TreeNode {
}
accept(ExpressionVisitor v);
+ accept1(ExpressionVisitor1 v, State s);
Kevin Millikin (Google) 2017/03/02 10:30:29 I'd change this to: accept1(ExpressionVisitor1 v,
}
/// An expression containing compile-time errors.
@@ -1415,6 +1419,7 @@ class InvalidExpression extends Expression {
DartType getStaticType(TypeEnvironment types) => const BottomType();
accept(ExpressionVisitor v) => v.visitInvalidExpression(this);
+ accept1(ExpressionVisitor1 v, State s) => v.visitInvalidExpression1(this, s);
visitChildren(Visitor v) {}
transformChildren(Transformer v) {}
@@ -1432,6 +1437,7 @@ class VariableGet extends Expression {
}
accept(ExpressionVisitor v) => v.visitVariableGet(this);
+ accept1(ExpressionVisitor1 v, State s) => v.visitVariableGet1(this, s);
visitChildren(Visitor v) {
promotedType?.accept(v);
@@ -1458,6 +1464,7 @@ class VariableSet extends Expression {
DartType getStaticType(TypeEnvironment types) => value.getStaticType(types);
accept(ExpressionVisitor v) => v.visitVariableSet(this);
+ accept1(ExpressionVisitor1 v, State s) => v.visitVariableSet1(this, s);
visitChildren(Visitor v) {
value?.accept(v);
@@ -1514,6 +1521,7 @@ class PropertyGet extends Expression {
}
accept(ExpressionVisitor v) => v.visitPropertyGet(this);
+ accept1(ExpressionVisitor1 v, State s) => v.visitPropertyGet1(this, s);
visitChildren(Visitor v) {
receiver?.accept(v);
@@ -1560,6 +1568,7 @@ class PropertySet extends Expression {
DartType getStaticType(TypeEnvironment types) => value.getStaticType(types);
accept(ExpressionVisitor v) => v.visitPropertySet(this);
+ accept1(ExpressionVisitor1 v, State s) => v.visitPropertySet1(this, s);
visitChildren(Visitor v) {
receiver?.accept(v);
@@ -1610,6 +1619,7 @@ class DirectPropertyGet extends Expression {
}
accept(ExpressionVisitor v) => v.visitDirectPropertyGet(this);
+ accept1(ExpressionVisitor1 v, State s) => v.visitDirectPropertyGet1(this, s);
DartType getStaticType(TypeEnvironment types) {
Class superclass = target.enclosingClass;
@@ -1661,6 +1671,7 @@ class DirectPropertySet extends Expression {
}
accept(ExpressionVisitor v) => v.visitDirectPropertySet(this);
+ accept1(ExpressionVisitor1 v, State s) => v.visitDirectPropertySet1(this, s);
DartType getStaticType(TypeEnvironment types) => value.getStaticType(types);
}
@@ -1707,6 +1718,8 @@ class DirectMethodInvocation extends InvocationExpression {
}
accept(ExpressionVisitor v) => v.visitDirectMethodInvocation(this);
+ accept1(ExpressionVisitor1 v, State s) =>
+ v.visitDirectMethodInvocation1(this, s);
DartType getStaticType(TypeEnvironment types) {
if (types.isOverloadedArithmeticOperator(target)) {
@@ -1755,6 +1768,7 @@ class SuperPropertyGet extends Expression {
}
accept(ExpressionVisitor v) => v.visitSuperPropertyGet(this);
+ accept1(ExpressionVisitor1 v, State s) => v.visitSuperPropertyGet1(this, s);
visitChildren(Visitor v) {
name?.accept(v);
@@ -1790,6 +1804,7 @@ class SuperPropertySet extends Expression {
DartType getStaticType(TypeEnvironment types) => value.getStaticType(types);
accept(ExpressionVisitor v) => v.visitSuperPropertySet(this);
+ accept1(ExpressionVisitor1 v, State s) => v.visitSuperPropertySet1(this, s);
visitChildren(Visitor v) {
name?.accept(v);
@@ -1822,6 +1837,7 @@ class StaticGet extends Expression {
DartType getStaticType(TypeEnvironment types) => target.getterType;
accept(ExpressionVisitor v) => v.visitStaticGet(this);
+ accept1(ExpressionVisitor1 v, State s) => v.visitStaticGet1(this, s);
visitChildren(Visitor v) {
target?.acceptReference(v);
@@ -1854,6 +1870,7 @@ class StaticSet extends Expression {
DartType getStaticType(TypeEnvironment types) => value.getStaticType(types);
accept(ExpressionVisitor v) => v.visitStaticSet(this);
+ accept1(ExpressionVisitor1 v, State s) => v.visitStaticSet1(this, s);
visitChildren(Visitor v) {
target?.acceptReference(v);
@@ -1998,6 +2015,7 @@ class MethodInvocation extends InvocationExpression {
}
accept(ExpressionVisitor v) => v.visitMethodInvocation(this);
+ accept1(ExpressionVisitor1 v, State s) => v.visitMethodInvocation1(this, s);
visitChildren(Visitor v) {
receiver?.accept(v);
@@ -2055,6 +2073,8 @@ class SuperMethodInvocation extends InvocationExpression {
}
accept(ExpressionVisitor v) => v.visitSuperMethodInvocation(this);
+ accept1(ExpressionVisitor1 v, State s) =>
+ v.visitSuperMethodInvocation1(this, s);
visitChildren(Visitor v) {
name?.accept(v);
@@ -2104,6 +2124,7 @@ class StaticInvocation extends InvocationExpression {
}
accept(ExpressionVisitor v) => v.visitStaticInvocation(this);
+ accept1(ExpressionVisitor1 v, State s) => v.visitStaticInvocation1(this, s);
visitChildren(Visitor v) {
target?.acceptReference(v);
@@ -2155,6 +2176,8 @@ class ConstructorInvocation extends InvocationExpression {
}
accept(ExpressionVisitor v) => v.visitConstructorInvocation(this);
+ accept1(ExpressionVisitor1 v, State s) =>
+ v.visitConstructorInvocation1(this, s);
visitChildren(Visitor v) {
target?.acceptReference(v);
@@ -2189,6 +2212,7 @@ class Not extends Expression {
DartType getStaticType(TypeEnvironment types) => types.boolType;
accept(ExpressionVisitor v) => v.visitNot(this);
+ accept1(ExpressionVisitor1 v, State s) => v.visitNot1(this, s);
visitChildren(Visitor v) {
operand?.accept(v);
@@ -2216,6 +2240,7 @@ class LogicalExpression extends Expression {
DartType getStaticType(TypeEnvironment types) => types.boolType;
accept(ExpressionVisitor v) => v.visitLogicalExpression(this);
+ accept1(ExpressionVisitor1 v, State s) => v.visitLogicalExpression1(this, s);
visitChildren(Visitor v) {
left?.accept(v);
@@ -2253,6 +2278,8 @@ class ConditionalExpression extends Expression {
DartType getStaticType(TypeEnvironment types) => staticType;
accept(ExpressionVisitor v) => v.visitConditionalExpression(this);
+ accept1(ExpressionVisitor1 v, State s) =>
+ v.visitConditionalExpression1(this, s);
visitChildren(Visitor v) {
condition?.accept(v);
@@ -2297,6 +2324,8 @@ class StringConcatenation extends Expression {
DartType getStaticType(TypeEnvironment types) => types.stringType;
accept(ExpressionVisitor v) => v.visitStringConcatenation(this);
+ accept1(ExpressionVisitor1 v, State s) =>
+ v.visitStringConcatenation1(this, s);
visitChildren(Visitor v) {
visitList(expressions, v);
@@ -2319,6 +2348,7 @@ class IsExpression extends Expression {
DartType getStaticType(TypeEnvironment types) => types.boolType;
accept(ExpressionVisitor v) => v.visitIsExpression(this);
+ accept1(ExpressionVisitor1 v, State s) => v.visitIsExpression1(this, s);
visitChildren(Visitor v) {
operand?.accept(v);
@@ -2346,6 +2376,7 @@ class AsExpression extends Expression {
DartType getStaticType(TypeEnvironment types) => type;
accept(ExpressionVisitor v) => v.visitAsExpression(this);
+ accept1(ExpressionVisitor1 v, State s) => v.visitAsExpression1(this, s);
visitChildren(Visitor v) {
operand?.accept(v);
@@ -2377,6 +2408,7 @@ class StringLiteral extends BasicLiteral {
DartType getStaticType(TypeEnvironment types) => types.stringType;
accept(ExpressionVisitor v) => v.visitStringLiteral(this);
+ accept1(ExpressionVisitor1 v, State s) => v.visitStringLiteral1(this, s);
}
class IntLiteral extends BasicLiteral {
@@ -2387,6 +2419,7 @@ class IntLiteral extends BasicLiteral {
DartType getStaticType(TypeEnvironment types) => types.intType;
accept(ExpressionVisitor v) => v.visitIntLiteral(this);
+ accept1(ExpressionVisitor1 v, State s) => v.visitIntLiteral1(this, s);
}
class DoubleLiteral extends BasicLiteral {
@@ -2397,6 +2430,7 @@ class DoubleLiteral extends BasicLiteral {
DartType getStaticType(TypeEnvironment types) => types.doubleType;
accept(ExpressionVisitor v) => v.visitDoubleLiteral(this);
+ accept1(ExpressionVisitor1 v, State s) => v.visitDoubleLiteral1(this, s);
}
class BoolLiteral extends BasicLiteral {
@@ -2407,6 +2441,7 @@ class BoolLiteral extends BasicLiteral {
DartType getStaticType(TypeEnvironment types) => types.boolType;
accept(ExpressionVisitor v) => v.visitBoolLiteral(this);
+ accept1(ExpressionVisitor1 v, State s) => v.visitBoolLiteral1(this, s);
}
class NullLiteral extends BasicLiteral {
@@ -2415,6 +2450,7 @@ class NullLiteral extends BasicLiteral {
DartType getStaticType(TypeEnvironment types) => const BottomType();
accept(ExpressionVisitor v) => v.visitNullLiteral(this);
+ accept1(ExpressionVisitor1 v, State s) => v.visitNullLiteral1(this, s);
}
class SymbolLiteral extends Expression {
@@ -2425,6 +2461,7 @@ class SymbolLiteral extends Expression {
DartType getStaticType(TypeEnvironment types) => types.symbolType;
accept(ExpressionVisitor v) => v.visitSymbolLiteral(this);
+ accept1(ExpressionVisitor1 v, State s) => v.visitSymbolLiteral1(this, s);
visitChildren(Visitor v) {}
transformChildren(Transformer v) {}
@@ -2438,6 +2475,7 @@ class TypeLiteral extends Expression {
DartType getStaticType(TypeEnvironment types) => types.typeType;
accept(ExpressionVisitor v) => v.visitTypeLiteral(this);
+ accept1(ExpressionVisitor1 v, State s) => v.visitTypeLiteral1(this, s);
visitChildren(Visitor v) {
type?.accept(v);
@@ -2452,6 +2490,7 @@ class ThisExpression extends Expression {
DartType getStaticType(TypeEnvironment types) => types.thisType;
accept(ExpressionVisitor v) => v.visitThisExpression(this);
+ accept1(ExpressionVisitor1 v, State s) => v.visitThisExpression1(this, s);
visitChildren(Visitor v) {}
transformChildren(Transformer v) {}
@@ -2461,6 +2500,7 @@ class Rethrow extends Expression {
DartType getStaticType(TypeEnvironment types) => const BottomType();
accept(ExpressionVisitor v) => v.visitRethrow(this);
+ accept1(ExpressionVisitor1 v, State s) => v.visitRethrow1(this, s);
visitChildren(Visitor v) {}
transformChildren(Transformer v) {}
@@ -2476,6 +2516,7 @@ class Throw extends Expression {
DartType getStaticType(TypeEnvironment types) => const BottomType();
accept(ExpressionVisitor v) => v.visitThrow(this);
+ accept1(ExpressionVisitor1 v, State s) => v.visitThrow1(this, s);
visitChildren(Visitor v) {
expression?.accept(v);
@@ -2505,6 +2546,7 @@ class ListLiteral extends Expression {
}
accept(ExpressionVisitor v) => v.visitListLiteral(this);
+ accept1(ExpressionVisitor1 v, State s) => v.visitListLiteral1(this, s);
visitChildren(Visitor v) {
typeArgument?.accept(v);
@@ -2537,6 +2579,7 @@ class MapLiteral extends Expression {
}
accept(ExpressionVisitor v) => v.visitMapLiteral(this);
+ accept1(ExpressionVisitor1 v, State s) => v.visitMapLiteral1(this, s);
visitChildren(Visitor v) {
keyType?.accept(v);
@@ -2592,6 +2635,7 @@ class AwaitExpression extends Expression {
}
accept(ExpressionVisitor v) => v.visitAwaitExpression(this);
+ accept1(ExpressionVisitor1 v, State s) => v.visitAwaitExpression1(this, s);
visitChildren(Visitor v) {
operand?.accept(v);
@@ -2618,6 +2662,7 @@ class FunctionExpression extends Expression {
DartType getStaticType(TypeEnvironment types) => function.functionType;
accept(ExpressionVisitor v) => v.visitFunctionExpression(this);
+ accept1(ExpressionVisitor1 v, State s) => v.visitFunctionExpression1(this, s);
visitChildren(Visitor v) {
function?.accept(v);
@@ -2644,6 +2689,7 @@ class Let extends Expression {
DartType getStaticType(TypeEnvironment types) => body.getStaticType(types);
accept(ExpressionVisitor v) => v.visitLet(this);
+ accept1(ExpressionVisitor1 v, State s) => v.visitLet1(this, s);
visitChildren(Visitor v) {
variable?.accept(v);
@@ -2685,6 +2731,7 @@ class LoadLibrary extends Expression {
}
accept(ExpressionVisitor v) => v.visitLoadLibrary(this);
+ accept1(ExpressionVisitor1 v, State s) => v.visitLoadLibrary1(this, s);
visitChildren(Visitor v) {}
transformChildren(Transformer v) {}
@@ -2702,6 +2749,8 @@ class CheckLibraryIsLoaded extends Expression {
}
accept(ExpressionVisitor v) => v.visitCheckLibraryIsLoaded(this);
+ accept1(ExpressionVisitor1 v, State s) =>
+ v.visitCheckLibraryIsLoaded1(this, s);
visitChildren(Visitor v) {}
transformChildren(Transformer v) {}

Powered by Google App Engine
This is Rietveld 408576698