Index: runtime/vm/ast.h |
diff --git a/runtime/vm/ast.h b/runtime/vm/ast.h |
index c27b61a25c207755554b9efeb84d8234a804c6b9..c7b42d0e9099126d7bf8c7560a75fcc87f67a9b1 100644 |
--- a/runtime/vm/ast.h |
+++ b/runtime/vm/ast.h |
@@ -8,9 +8,9 @@ |
#include "platform/assert.h" |
#include "vm/allocation.h" |
#include "vm/growable_array.h" |
-#include "vm/scopes.h" |
-#include "vm/object.h" |
#include "vm/native_entry.h" |
+#include "vm/object.h" |
+#include "vm/scopes.h" |
#include "vm/token.h" |
#include "vm/token_position.h" |
@@ -66,12 +66,10 @@ namespace dart { |
V(InlinedFinally) \ |
V(StringInterpolate) |
- |
#define FORWARD_DECLARATION(BaseName) class BaseName##Node; |
FOR_EACH_NODE(FORWARD_DECLARATION) |
#undef FORWARD_DECLARATION |
- |
// Abstract class to implement an AST node visitor. An example is AstPrinter. |
class AstNodeVisitor : public ValueObject { |
public: |
@@ -88,13 +86,11 @@ class AstNodeVisitor : public ValueObject { |
DISALLOW_COPY_AND_ASSIGN(AstNodeVisitor); |
}; |
- |
#define DECLARE_COMMON_NODE_FUNCTIONS(type) \ |
virtual void Visit(AstNodeVisitor* visitor); \ |
virtual const char* Name() const; \ |
virtual type* As##type() { return this; } |
- |
class AstNode : public ZoneAllocated { |
public: |
explicit AstNode(TokenPosition token_pos) : token_pos_(token_pos) { |
@@ -158,7 +154,6 @@ class AstNode : public ZoneAllocated { |
DISALLOW_COPY_AND_ASSIGN(AstNode); |
}; |
- |
class AwaitNode : public AstNode { |
public: |
AwaitNode(TokenPosition token_pos, |
@@ -200,7 +195,6 @@ class AwaitNode : public AstNode { |
DISALLOW_COPY_AND_ASSIGN(AwaitNode); |
}; |
- |
// AwaitMarker nodes are used to generate markers that the FlowGraphBuilder |
// relies on. A marker indicates that a new await state needs to be |
// added to a function preamble. This type also triggers storing of the |
@@ -237,7 +231,6 @@ class AwaitMarkerNode : public AstNode { |
DISALLOW_COPY_AND_ASSIGN(AwaitMarkerNode); |
}; |
- |
class SequenceNode : public AstNode { |
public: |
SequenceNode(TokenPosition token_pos, LocalScope* scope) |
@@ -268,7 +261,6 @@ class SequenceNode : public AstNode { |
DISALLOW_COPY_AND_ASSIGN(SequenceNode); |
}; |
- |
class CloneContextNode : public AstNode { |
public: |
explicit CloneContextNode(TokenPosition token_pos) : AstNode(token_pos) {} |
@@ -281,7 +273,6 @@ class CloneContextNode : public AstNode { |
DISALLOW_COPY_AND_ASSIGN(CloneContextNode); |
}; |
- |
class ArgumentListNode : public AstNode { |
public: |
explicit ArgumentListNode(TokenPosition token_pos) |
@@ -344,7 +335,6 @@ class ArgumentListNode : public AstNode { |
DISALLOW_COPY_AND_ASSIGN(ArgumentListNode); |
}; |
- |
class LetNode : public AstNode { |
public: |
explicit LetNode(TokenPosition token_pos); |
@@ -375,7 +365,6 @@ class LetNode : public AstNode { |
DISALLOW_COPY_AND_ASSIGN(LetNode); |
}; |
- |
class ArrayNode : public AstNode { |
public: |
ArrayNode(TokenPosition token_pos, const AbstractType& type) |
@@ -422,7 +411,6 @@ class ArrayNode : public AstNode { |
DISALLOW_IMPLICIT_CONSTRUCTORS(ArrayNode); |
}; |
- |
class StringInterpolateNode : public AstNode { |
public: |
StringInterpolateNode(TokenPosition token_pos, ArrayNode* value) |
@@ -444,7 +432,6 @@ class StringInterpolateNode : public AstNode { |
DISALLOW_IMPLICIT_CONSTRUCTORS(StringInterpolateNode); |
}; |
- |
class LiteralNode : public AstNode { |
public: |
LiteralNode(TokenPosition token_pos, const Instance& literal) |
@@ -478,7 +465,6 @@ class LiteralNode : public AstNode { |
DISALLOW_IMPLICIT_CONSTRUCTORS(LiteralNode); |
}; |
- |
class TypeNode : public AstNode { |
public: |
TypeNode(TokenPosition token_pos, |
@@ -520,7 +506,6 @@ class TypeNode : public AstNode { |
DISALLOW_IMPLICIT_CONSTRUCTORS(TypeNode); |
}; |
- |
class AssignableNode : public AstNode { |
public: |
AssignableNode(TokenPosition token_pos, |
@@ -553,7 +538,6 @@ class AssignableNode : public AstNode { |
DISALLOW_IMPLICIT_CONSTRUCTORS(AssignableNode); |
}; |
- |
class ClosureNode : public AstNode { |
public: |
ClosureNode(TokenPosition token_pos, |
@@ -602,7 +586,6 @@ class ClosureNode : public AstNode { |
DISALLOW_IMPLICIT_CONSTRUCTORS(ClosureNode); |
}; |
- |
// Primary nodes hold identifiers or values (library, class or function) |
// resolved from an identifier. Primary nodes should not ever make it to the |
// code generation phase as they will be transformed into the correct call or |
@@ -702,7 +685,6 @@ class ReturnNode : public AstNode { |
DISALLOW_COPY_AND_ASSIGN(ReturnNode); |
}; |
- |
class ComparisonNode : public AstNode { |
public: |
ComparisonNode(TokenPosition token_pos, |
@@ -740,7 +722,6 @@ class ComparisonNode : public AstNode { |
DISALLOW_IMPLICIT_CONSTRUCTORS(ComparisonNode); |
}; |
- |
class BinaryOpNode : public AstNode { |
public: |
BinaryOpNode(TokenPosition token_pos, |
@@ -784,7 +765,6 @@ class BinaryOpNode : public AstNode { |
DISALLOW_IMPLICIT_CONSTRUCTORS(BinaryOpNode); |
}; |
- |
class UnaryOpNode : public AstNode { |
public: |
// Returns optimized version, e.g., for ('-' '1') ('-1') literal is returned. |
@@ -819,7 +799,6 @@ class UnaryOpNode : public AstNode { |
DISALLOW_IMPLICIT_CONSTRUCTORS(UnaryOpNode); |
}; |
- |
class ConditionalExprNode : public AstNode { |
public: |
ConditionalExprNode(TokenPosition token_pos, |
@@ -867,7 +846,6 @@ class ConditionalExprNode : public AstNode { |
DISALLOW_IMPLICIT_CONSTRUCTORS(ConditionalExprNode); |
}; |
- |
class IfNode : public AstNode { |
public: |
IfNode(TokenPosition token_pos, |
@@ -903,7 +881,6 @@ class IfNode : public AstNode { |
DISALLOW_IMPLICIT_CONSTRUCTORS(IfNode); |
}; |
- |
class CaseNode : public AstNode { |
public: |
CaseNode(TokenPosition token_pos, |
@@ -947,7 +924,6 @@ class CaseNode : public AstNode { |
DISALLOW_IMPLICIT_CONSTRUCTORS(CaseNode); |
}; |
- |
class SwitchNode : public AstNode { |
public: |
SwitchNode(TokenPosition token_pos, SourceLabel* label, SequenceNode* body) |
@@ -972,7 +948,6 @@ class SwitchNode : public AstNode { |
DISALLOW_IMPLICIT_CONSTRUCTORS(SwitchNode); |
}; |
- |
class WhileNode : public AstNode { |
public: |
WhileNode(TokenPosition token_pos, |
@@ -1014,7 +989,6 @@ class WhileNode : public AstNode { |
DISALLOW_IMPLICIT_CONSTRUCTORS(WhileNode); |
}; |
- |
class DoWhileNode : public AstNode { |
public: |
DoWhileNode(TokenPosition token_pos, |
@@ -1046,7 +1020,6 @@ class DoWhileNode : public AstNode { |
DISALLOW_IMPLICIT_CONSTRUCTORS(DoWhileNode); |
}; |
- |
// The condition can be NULL. |
class ForNode : public AstNode { |
public: |
@@ -1103,7 +1076,6 @@ class ForNode : public AstNode { |
DISALLOW_IMPLICIT_CONSTRUCTORS(ForNode); |
}; |
- |
class JumpNode : public AstNode { |
public: |
JumpNode(TokenPosition token_pos, Token::Kind kind, SourceLabel* label) |
@@ -1142,7 +1114,6 @@ class JumpNode : public AstNode { |
DISALLOW_IMPLICIT_CONSTRUCTORS(JumpNode); |
}; |
- |
class StopNode : public AstNode { |
public: |
StopNode(TokenPosition token_pos, const char* message) |
@@ -1162,7 +1133,6 @@ class StopNode : public AstNode { |
DISALLOW_IMPLICIT_CONSTRUCTORS(StopNode); |
}; |
- |
class LoadLocalNode : public AstNode { |
public: |
LoadLocalNode(TokenPosition token_pos, const LocalVariable* local) |
@@ -1186,7 +1156,6 @@ class LoadLocalNode : public AstNode { |
DISALLOW_IMPLICIT_CONSTRUCTORS(LoadLocalNode); |
}; |
- |
class StoreLocalNode : public AstNode { |
public: |
StoreLocalNode(TokenPosition token_pos, |
@@ -1213,7 +1182,6 @@ class StoreLocalNode : public AstNode { |
DISALLOW_IMPLICIT_CONSTRUCTORS(StoreLocalNode); |
}; |
- |
class LoadInstanceFieldNode : public AstNode { |
public: |
LoadInstanceFieldNode(TokenPosition token_pos, |
@@ -1240,7 +1208,6 @@ class LoadInstanceFieldNode : public AstNode { |
DISALLOW_IMPLICIT_CONSTRUCTORS(LoadInstanceFieldNode); |
}; |
- |
class StoreInstanceFieldNode : public AstNode { |
public: |
StoreInstanceFieldNode(TokenPosition token_pos, |
@@ -1279,7 +1246,6 @@ class StoreInstanceFieldNode : public AstNode { |
DISALLOW_IMPLICIT_CONSTRUCTORS(StoreInstanceFieldNode); |
}; |
- |
class LoadStaticFieldNode : public AstNode { |
public: |
LoadStaticFieldNode(TokenPosition token_pos, const Field& field) |
@@ -1315,7 +1281,6 @@ class LoadStaticFieldNode : public AstNode { |
DISALLOW_IMPLICIT_CONSTRUCTORS(LoadStaticFieldNode); |
}; |
- |
class StoreStaticFieldNode : public AstNode { |
public: |
StoreStaticFieldNode(TokenPosition token_pos, |
@@ -1342,7 +1307,6 @@ class StoreStaticFieldNode : public AstNode { |
DISALLOW_IMPLICIT_CONSTRUCTORS(StoreStaticFieldNode); |
}; |
- |
class LoadIndexedNode : public AstNode { |
public: |
LoadIndexedNode(TokenPosition token_pos, |
@@ -1379,7 +1343,6 @@ class LoadIndexedNode : public AstNode { |
DISALLOW_IMPLICIT_CONSTRUCTORS(LoadIndexedNode); |
}; |
- |
class StoreIndexedNode : public AstNode { |
public: |
StoreIndexedNode(TokenPosition token_pos, |
@@ -1420,7 +1383,6 @@ class StoreIndexedNode : public AstNode { |
DISALLOW_IMPLICIT_CONSTRUCTORS(StoreIndexedNode); |
}; |
- |
class InstanceCallNode : public AstNode { |
public: |
InstanceCallNode(TokenPosition token_pos, |
@@ -1460,7 +1422,6 @@ class InstanceCallNode : public AstNode { |
DISALLOW_IMPLICIT_CONSTRUCTORS(InstanceCallNode); |
}; |
- |
class InstanceGetterNode : public AstNode { |
public: |
InstanceGetterNode(TokenPosition token_pos, |
@@ -1499,7 +1460,6 @@ class InstanceGetterNode : public AstNode { |
DISALLOW_IMPLICIT_CONSTRUCTORS(InstanceGetterNode); |
}; |
- |
class InstanceSetterNode : public AstNode { |
public: |
InstanceSetterNode(TokenPosition token_pos, |
@@ -1539,7 +1499,6 @@ class InstanceSetterNode : public AstNode { |
DISALLOW_IMPLICIT_CONSTRUCTORS(InstanceSetterNode); |
}; |
- |
class InitStaticFieldNode : public AstNode { |
public: |
InitStaticFieldNode(TokenPosition token_pos, const Field& field) |
@@ -1559,7 +1518,6 @@ class InitStaticFieldNode : public AstNode { |
DISALLOW_COPY_AND_ASSIGN(InitStaticFieldNode); |
}; |
- |
class StaticGetterNode : public AstNode { |
public: |
StaticGetterNode(TokenPosition token_pos, |
@@ -1615,7 +1573,6 @@ class StaticGetterNode : public AstNode { |
DISALLOW_IMPLICIT_CONSTRUCTORS(StaticGetterNode); |
}; |
- |
class StaticSetterNode : public AstNode { |
public: |
// Static setter with resolved setter function. |
@@ -1678,7 +1635,6 @@ class StaticSetterNode : public AstNode { |
DISALLOW_IMPLICIT_CONSTRUCTORS(StaticSetterNode); |
}; |
- |
class StaticCallNode : public AstNode { |
public: |
StaticCallNode(TokenPosition token_pos, |
@@ -1707,7 +1663,6 @@ class StaticCallNode : public AstNode { |
DISALLOW_IMPLICIT_CONSTRUCTORS(StaticCallNode); |
}; |
- |
class ClosureCallNode : public AstNode { |
public: |
ClosureCallNode(TokenPosition token_pos, |
@@ -1735,7 +1690,6 @@ class ClosureCallNode : public AstNode { |
DISALLOW_IMPLICIT_CONSTRUCTORS(ClosureCallNode); |
}; |
- |
// There are two kinds of constructor calls: factory calls and constructor |
// calls, distinguishable by constructor.IsFactory(). |
// |
@@ -1795,7 +1749,6 @@ class ConstructorCallNode : public AstNode { |
DISALLOW_IMPLICIT_CONSTRUCTORS(ConstructorCallNode); |
}; |
- |
// The body of a Dart function marked as 'native' consists of this node. |
class NativeBodyNode : public AstNode { |
public: |
@@ -1835,7 +1788,6 @@ class NativeBodyNode : public AstNode { |
DISALLOW_IMPLICIT_CONSTRUCTORS(NativeBodyNode); |
}; |
- |
class CatchClauseNode : public AstNode { |
public: |
static const intptr_t kInvalidTryIndex = -1; |
@@ -1902,7 +1854,6 @@ class CatchClauseNode : public AstNode { |
DISALLOW_COPY_AND_ASSIGN(CatchClauseNode); |
}; |
- |
class TryCatchNode : public AstNode { |
public: |
TryCatchNode(TokenPosition token_pos, |
@@ -1955,7 +1906,6 @@ class TryCatchNode : public AstNode { |
DISALLOW_COPY_AND_ASSIGN(TryCatchNode); |
}; |
- |
class ThrowNode : public AstNode { |
public: |
ThrowNode(TokenPosition token_pos, AstNode* exception, AstNode* stacktrace) |
@@ -1982,7 +1932,6 @@ class ThrowNode : public AstNode { |
DISALLOW_IMPLICIT_CONSTRUCTORS(ThrowNode); |
}; |
- |
class InlinedFinallyNode : public AstNode { |
public: |
InlinedFinallyNode(TokenPosition token_pos, |