Index: runtime/vm/ast.h |
diff --git a/runtime/vm/ast.h b/runtime/vm/ast.h |
index 494d76876adec994bc17e4979625632a6cda15ea..f212a1592f98550d3fe060221d6f65d04f5f78c4 100644 |
--- a/runtime/vm/ast.h |
+++ b/runtime/vm/ast.h |
@@ -12,6 +12,7 @@ |
#include "vm/object.h" |
#include "vm/native_entry.h" |
#include "vm/token.h" |
+#include "vm/token_position.h" |
namespace dart { |
@@ -97,14 +98,14 @@ class AstNodeVisitor : public ValueObject { |
class AstNode : public ZoneAllocated { |
public: |
- explicit AstNode(intptr_t token_pos) |
+ explicit AstNode(TokenPosition token_pos) |
: token_pos_(token_pos) { |
- ASSERT(!Token::IsClassifying(token_pos_) || |
- (token_pos_ == ClassifyingTokenPositions::kMethodExtractor)); |
+ ASSERT(!token_pos_.IsClassifying() || |
+ (token_pos_ == TokenPosition::kMethodExtractor)); |
} |
virtual ~AstNode() { } |
- intptr_t token_pos() const { return token_pos_; } |
+ TokenPosition token_pos() const { return token_pos_; } |
#define AST_TYPE_CHECK(BaseName) \ |
bool Is##BaseName##Node() { return As##BaseName##Node() != NULL; } \ |
@@ -153,14 +154,14 @@ class AstNode : public ZoneAllocated { |
friend class ParsedFunction; |
private: |
- const intptr_t token_pos_; |
+ const TokenPosition token_pos_; |
DISALLOW_COPY_AND_ASSIGN(AstNode); |
}; |
class AwaitNode : public AstNode { |
public: |
- AwaitNode(intptr_t token_pos, |
+ AwaitNode(TokenPosition token_pos, |
AstNode* expr, |
LocalVariable* saved_try_ctx, |
LocalVariable* async_saved_try_ctx, |
@@ -215,7 +216,7 @@ class AwaitMarkerNode : public AstNode { |
public: |
AwaitMarkerNode(LocalScope* async_scope, |
LocalScope* await_scope, |
- intptr_t token_pos) |
+ TokenPosition token_pos) |
: AstNode(token_pos), |
async_scope_(async_scope), |
await_scope_(await_scope) { |
@@ -241,7 +242,7 @@ class AwaitMarkerNode : public AstNode { |
class SequenceNode : public AstNode { |
public: |
- SequenceNode(intptr_t token_pos, LocalScope* scope) |
+ SequenceNode(TokenPosition token_pos, LocalScope* scope) |
: AstNode(token_pos), |
scope_(scope), |
nodes_(4), |
@@ -276,7 +277,7 @@ class SequenceNode : public AstNode { |
class CloneContextNode : public AstNode { |
public: |
- explicit CloneContextNode(intptr_t token_pos) |
+ explicit CloneContextNode(TokenPosition token_pos) |
: AstNode(token_pos) { |
} |
@@ -291,7 +292,7 @@ class CloneContextNode : public AstNode { |
class ArgumentListNode : public AstNode { |
public: |
- explicit ArgumentListNode(intptr_t token_pos) |
+ explicit ArgumentListNode(TokenPosition token_pos) |
: AstNode(token_pos), |
nodes_(4), |
names_(Array::ZoneHandle()) { |
@@ -323,7 +324,7 @@ class ArgumentListNode : public AstNode { |
class LetNode : public AstNode { |
public: |
- explicit LetNode(intptr_t token_pos); |
+ explicit LetNode(TokenPosition token_pos); |
LocalVariable* TempAt(intptr_t i) const { return vars_[i]; } |
AstNode* InitializerAt(intptr_t i) const { return initializers_[i]; } |
@@ -356,13 +357,13 @@ class LetNode : public AstNode { |
class ArrayNode : public AstNode { |
public: |
- ArrayNode(intptr_t token_pos, const AbstractType& type) |
+ ArrayNode(TokenPosition token_pos, const AbstractType& type) |
: AstNode(token_pos), |
type_(type), |
elements_() { |
CheckFields(); |
} |
- ArrayNode(intptr_t token_pos, |
+ ArrayNode(TokenPosition token_pos, |
const AbstractType& type, |
const GrowableArray<AstNode*>& elements) |
: AstNode(token_pos), |
@@ -407,7 +408,7 @@ class ArrayNode : public AstNode { |
class StringInterpolateNode : public AstNode { |
public: |
- StringInterpolateNode(intptr_t token_pos, ArrayNode* value) |
+ StringInterpolateNode(TokenPosition token_pos, ArrayNode* value) |
: AstNode(token_pos), value_(value) { } |
virtual void VisitChildren(AstNodeVisitor* visitor) const { |
@@ -429,7 +430,7 @@ class StringInterpolateNode : public AstNode { |
class LiteralNode : public AstNode { |
public: |
- LiteralNode(intptr_t token_pos, const Instance& literal) |
+ LiteralNode(TokenPosition token_pos, const Instance& literal) |
: AstNode(token_pos), literal_(literal) { |
ASSERT(literal_.IsNotTemporaryScopedHandle()); |
ASSERT(literal_.IsSmi() || literal_.IsOld()); |
@@ -465,7 +466,7 @@ class LiteralNode : public AstNode { |
class TypeNode : public AstNode { |
public: |
- TypeNode(intptr_t token_pos, const AbstractType& type) |
+ TypeNode(TokenPosition token_pos, const AbstractType& type) |
: AstNode(token_pos), type_(type) { |
ASSERT(type_.IsZoneHandle()); |
ASSERT(!type_.IsNull()); |
@@ -500,7 +501,7 @@ class TypeNode : public AstNode { |
class AssignableNode : public AstNode { |
public: |
- AssignableNode(intptr_t token_pos, |
+ AssignableNode(TokenPosition token_pos, |
AstNode* expr, |
const AbstractType& type, |
const String& dst_name) |
@@ -533,7 +534,7 @@ class AssignableNode : public AstNode { |
class ClosureNode : public AstNode { |
public: |
- ClosureNode(intptr_t token_pos, |
+ ClosureNode(TokenPosition token_pos, |
const Function& function, |
AstNode* receiver, // Non-null for implicit instance closures. |
LocalScope* scope) // Null for implicit closures. |
@@ -585,7 +586,7 @@ class ClosureNode : public AstNode { |
// field access nodes. |
class PrimaryNode : public AstNode { |
public: |
- PrimaryNode(intptr_t token_pos, const Object& primary) |
+ PrimaryNode(TokenPosition token_pos, const Object& primary) |
: AstNode(token_pos), |
primary_(primary), |
is_deferred_reference_(false) { |
@@ -631,13 +632,13 @@ class ReturnNode : public AstNode { |
}; |
// Return from a void function returns the null object. |
- explicit ReturnNode(intptr_t token_pos) |
+ explicit ReturnNode(TokenPosition token_pos) |
: AstNode(token_pos), |
value_(new LiteralNode(token_pos, Instance::ZoneHandle())), |
inlined_finally_list_(), |
return_type_(kRegular) { } |
// Return from a non-void function. |
- ReturnNode(intptr_t token_pos, |
+ ReturnNode(TokenPosition token_pos, |
AstNode* value) |
: AstNode(token_pos), |
value_(value), |
@@ -684,7 +685,7 @@ class ReturnNode : public AstNode { |
class ComparisonNode : public AstNode { |
public: |
- ComparisonNode(intptr_t token_pos, |
+ ComparisonNode(TokenPosition token_pos, |
Token::Kind kind, |
AstNode* left, |
AstNode* right) |
@@ -722,7 +723,7 @@ class ComparisonNode : public AstNode { |
class BinaryOpNode : public AstNode { |
public: |
- BinaryOpNode(intptr_t token_pos, |
+ BinaryOpNode(TokenPosition token_pos, |
Token::Kind kind, |
AstNode* left, |
AstNode* right) |
@@ -766,7 +767,7 @@ class BinaryOpNode : public AstNode { |
class BinaryOpWithMask32Node : public BinaryOpNode { |
public: |
- BinaryOpWithMask32Node(intptr_t token_pos, |
+ BinaryOpWithMask32Node(TokenPosition token_pos, |
Token::Kind kind_value, |
AstNode* left, |
AstNode* right, |
@@ -797,10 +798,10 @@ class BinaryOpWithMask32Node : public BinaryOpNode { |
class UnaryOpNode : public AstNode { |
public: |
// Returns optimized version, e.g., for ('-' '1') ('-1') literal is returned. |
- static AstNode* UnaryOpOrLiteral(intptr_t token_pos, |
+ static AstNode* UnaryOpOrLiteral(TokenPosition token_pos, |
Token::Kind kind, |
AstNode* operand); |
- UnaryOpNode(intptr_t token_pos, |
+ UnaryOpNode(TokenPosition token_pos, |
Token::Kind kind, |
AstNode* operand) |
: AstNode(token_pos), kind_(kind), operand_(operand) { |
@@ -833,7 +834,7 @@ class UnaryOpNode : public AstNode { |
class ConditionalExprNode : public AstNode { |
public: |
- ConditionalExprNode(intptr_t token_pos, |
+ ConditionalExprNode(TokenPosition token_pos, |
AstNode* condition, |
AstNode* true_expr, |
AstNode* false_expr) |
@@ -881,7 +882,7 @@ class ConditionalExprNode : public AstNode { |
class IfNode : public AstNode { |
public: |
- IfNode(intptr_t token_pos, |
+ IfNode(TokenPosition token_pos, |
AstNode* condition, |
SequenceNode* true_branch, |
SequenceNode* false_branch) |
@@ -917,7 +918,7 @@ class IfNode : public AstNode { |
class CaseNode : public AstNode { |
public: |
- CaseNode(intptr_t token_pos, |
+ CaseNode(TokenPosition token_pos, |
SourceLabel* label, |
SequenceNode* case_expressions, |
bool contains_default, |
@@ -961,7 +962,7 @@ class CaseNode : public AstNode { |
class SwitchNode : public AstNode { |
public: |
- SwitchNode(intptr_t token_pos, |
+ SwitchNode(TokenPosition token_pos, |
SourceLabel* label, |
SequenceNode* body) |
: AstNode(token_pos), |
@@ -990,7 +991,7 @@ class SwitchNode : public AstNode { |
class WhileNode : public AstNode { |
public: |
- WhileNode(intptr_t token_pos, |
+ WhileNode(TokenPosition token_pos, |
SourceLabel* label, |
AstNode* condition, |
SequenceNode* condition_preamble, |
@@ -1032,7 +1033,7 @@ class WhileNode : public AstNode { |
class DoWhileNode : public AstNode { |
public: |
- DoWhileNode(intptr_t token_pos, |
+ DoWhileNode(TokenPosition token_pos, |
SourceLabel* label, |
AstNode* condition, |
SequenceNode* body) |
@@ -1068,7 +1069,7 @@ class DoWhileNode : public AstNode { |
// The condition can be NULL. |
class ForNode : public AstNode { |
public: |
- ForNode(intptr_t token_pos, |
+ ForNode(TokenPosition token_pos, |
SourceLabel* label, |
SequenceNode* initializer, |
AstNode* condition, |
@@ -1124,7 +1125,7 @@ class ForNode : public AstNode { |
class JumpNode : public AstNode { |
public: |
- JumpNode(intptr_t token_pos, |
+ JumpNode(TokenPosition token_pos, |
Token::Kind kind, |
SourceLabel* label) |
: AstNode(token_pos), |
@@ -1165,7 +1166,7 @@ class JumpNode : public AstNode { |
class StopNode : public AstNode { |
public: |
- StopNode(intptr_t token_pos, const char* message) |
+ StopNode(TokenPosition token_pos, const char* message) |
: AstNode(token_pos), |
message_(message) { |
ASSERT(message != NULL); |
@@ -1186,7 +1187,7 @@ class StopNode : public AstNode { |
class LoadLocalNode : public AstNode { |
public: |
- LoadLocalNode(intptr_t token_pos, const LocalVariable* local) |
+ LoadLocalNode(TokenPosition token_pos, const LocalVariable* local) |
: AstNode(token_pos), local_(*local) { |
ASSERT(local != NULL); |
} |
@@ -1210,7 +1211,9 @@ class LoadLocalNode : public AstNode { |
class StoreLocalNode : public AstNode { |
public: |
- StoreLocalNode(intptr_t token_pos, const LocalVariable* local, AstNode* value) |
+ StoreLocalNode(TokenPosition token_pos, |
+ const LocalVariable* local, |
+ AstNode* value) |
: AstNode(token_pos), local_(*local), value_(value) { |
ASSERT(local != NULL); |
ASSERT(value_ != NULL); |
@@ -1235,7 +1238,7 @@ class StoreLocalNode : public AstNode { |
class LoadInstanceFieldNode : public AstNode { |
public: |
- LoadInstanceFieldNode(intptr_t token_pos, |
+ LoadInstanceFieldNode(TokenPosition token_pos, |
AstNode* instance, |
const Field& field) |
: AstNode(token_pos), instance_(instance), field_(field) { |
@@ -1262,7 +1265,7 @@ class LoadInstanceFieldNode : public AstNode { |
class StoreInstanceFieldNode : public AstNode { |
public: |
- StoreInstanceFieldNode(intptr_t token_pos, |
+ StoreInstanceFieldNode(TokenPosition token_pos, |
AstNode* instance, |
const Field& field, |
AstNode* value) |
@@ -1297,7 +1300,7 @@ class StoreInstanceFieldNode : public AstNode { |
class LoadStaticFieldNode : public AstNode { |
public: |
- LoadStaticFieldNode(intptr_t token_pos, const Field& field) |
+ LoadStaticFieldNode(TokenPosition token_pos, const Field& field) |
: AstNode(token_pos), field_(field), is_deferred_reference_(false) { |
ASSERT(field_.IsZoneHandle()); |
} |
@@ -1333,7 +1336,9 @@ class LoadStaticFieldNode : public AstNode { |
class StoreStaticFieldNode : public AstNode { |
public: |
- StoreStaticFieldNode(intptr_t token_pos, const Field& field, AstNode* value) |
+ StoreStaticFieldNode(TokenPosition token_pos, |
+ const Field& field, |
+ AstNode* value) |
: AstNode(token_pos), field_(field), value_(value) { |
ASSERT(field_.IsZoneHandle()); |
ASSERT(value_ != NULL); |
@@ -1358,7 +1363,7 @@ class StoreStaticFieldNode : public AstNode { |
class LoadIndexedNode : public AstNode { |
public: |
- LoadIndexedNode(intptr_t token_pos, |
+ LoadIndexedNode(TokenPosition token_pos, |
AstNode* array, |
AstNode* index, |
const Class& super_class) |
@@ -1395,7 +1400,7 @@ class LoadIndexedNode : public AstNode { |
class StoreIndexedNode : public AstNode { |
public: |
- StoreIndexedNode(intptr_t token_pos, |
+ StoreIndexedNode(TokenPosition token_pos, |
AstNode* array, |
AstNode* index, |
AstNode* value, |
@@ -1436,7 +1441,7 @@ class StoreIndexedNode : public AstNode { |
class InstanceCallNode : public AstNode { |
public: |
- InstanceCallNode(intptr_t token_pos, |
+ InstanceCallNode(TokenPosition token_pos, |
AstNode* receiver, |
const String& function_name, |
ArgumentListNode* arguments, |
@@ -1476,7 +1481,7 @@ class InstanceCallNode : public AstNode { |
class InstanceGetterNode : public AstNode { |
public: |
- InstanceGetterNode(intptr_t token_pos, |
+ InstanceGetterNode(TokenPosition token_pos, |
AstNode* receiver, |
const String& field_name, |
bool is_conditional = false) |
@@ -1515,7 +1520,7 @@ class InstanceGetterNode : public AstNode { |
class InstanceSetterNode : public AstNode { |
public: |
- InstanceSetterNode(intptr_t token_pos, |
+ InstanceSetterNode(TokenPosition token_pos, |
AstNode* receiver, |
const String& field_name, |
AstNode* value, |
@@ -1555,7 +1560,7 @@ class InstanceSetterNode : public AstNode { |
class InitStaticFieldNode : public AstNode { |
public: |
- InitStaticFieldNode(intptr_t token_pos, const Field& field) |
+ InitStaticFieldNode(TokenPosition token_pos, const Field& field) |
: AstNode(token_pos), field_(field) { |
ASSERT(field_.IsZoneHandle()); |
} |
@@ -1575,7 +1580,7 @@ class InitStaticFieldNode : public AstNode { |
class StaticGetterNode : public AstNode { |
public: |
- StaticGetterNode(intptr_t token_pos, |
+ StaticGetterNode(TokenPosition token_pos, |
AstNode* receiver, |
const Class& cls, |
const String& field_name) |
@@ -1632,7 +1637,7 @@ class StaticGetterNode : public AstNode { |
class StaticSetterNode : public AstNode { |
public: |
// Static setter with resolved setter function. |
- StaticSetterNode(intptr_t token_pos, |
+ StaticSetterNode(TokenPosition token_pos, |
AstNode* receiver, |
const String& field_name, |
const Function& function, |
@@ -1650,7 +1655,7 @@ class StaticSetterNode : public AstNode { |
} |
// For unresolved setters. |
- StaticSetterNode(intptr_t token_pos, |
+ StaticSetterNode(TokenPosition token_pos, |
AstNode* receiver, |
const Class& cls, |
const String& field_name, |
@@ -1694,7 +1699,7 @@ class StaticSetterNode : public AstNode { |
class StaticCallNode : public AstNode { |
public: |
- StaticCallNode(intptr_t token_pos, |
+ StaticCallNode(TokenPosition token_pos, |
const Function& function, |
ArgumentListNode* arguments) |
: AstNode(token_pos), |
@@ -1725,7 +1730,7 @@ class StaticCallNode : public AstNode { |
class ClosureCallNode : public AstNode { |
public: |
- ClosureCallNode(intptr_t token_pos, |
+ ClosureCallNode(TokenPosition token_pos, |
AstNode* closure, |
ArgumentListNode* arguments) |
: AstNode(token_pos), |
@@ -1781,7 +1786,7 @@ class ClosureCallNode : public AstNode { |
// instantiator_class. |
class ConstructorCallNode : public AstNode { |
public: |
- ConstructorCallNode(intptr_t token_pos, |
+ ConstructorCallNode(TokenPosition token_pos, |
const TypeArguments& type_arguments, |
const Function& constructor, |
ArgumentListNode* arguments) |
@@ -1818,7 +1823,7 @@ class ConstructorCallNode : public AstNode { |
// The body of a Dart function marked as 'native' consists of this node. |
class NativeBodyNode : public AstNode { |
public: |
- NativeBodyNode(intptr_t token_pos, |
+ NativeBodyNode(TokenPosition token_pos, |
const Function& function, |
const String& native_c_function_name, |
LocalScope* scope, |
@@ -1859,7 +1864,7 @@ class CatchClauseNode : public AstNode { |
public: |
static const intptr_t kInvalidTryIndex = -1; |
- CatchClauseNode(intptr_t token_pos, |
+ CatchClauseNode(TokenPosition token_pos, |
SequenceNode* catch_block, |
const Array& handler_types, |
const LocalVariable* context_var, |
@@ -1922,7 +1927,7 @@ class CatchClauseNode : public AstNode { |
class TryCatchNode : public AstNode { |
public: |
- TryCatchNode(intptr_t token_pos, |
+ TryCatchNode(TokenPosition token_pos, |
SequenceNode* try_block, |
const LocalVariable* context_var, |
CatchClauseNode* catch_block, |
@@ -1975,7 +1980,7 @@ class TryCatchNode : public AstNode { |
class ThrowNode : public AstNode { |
public: |
- ThrowNode(intptr_t token_pos, AstNode* exception, AstNode* stacktrace) |
+ ThrowNode(TokenPosition token_pos, AstNode* exception, AstNode* stacktrace) |
: AstNode(token_pos), exception_(exception), stacktrace_(stacktrace) { |
ASSERT(exception_ != NULL); |
} |
@@ -2002,7 +2007,7 @@ class ThrowNode : public AstNode { |
class InlinedFinallyNode : public AstNode { |
public: |
- InlinedFinallyNode(intptr_t token_pos, |
+ InlinedFinallyNode(TokenPosition token_pos, |
SequenceNode* finally_block, |
const LocalVariable* context_var, |
intptr_t try_index) |