| 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)
|
|
|