| OLD | NEW |
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef VM_AST_H_ | 5 #ifndef VM_AST_H_ |
| 6 #define VM_AST_H_ | 6 #define VM_AST_H_ |
| 7 | 7 |
| 8 #include "platform/assert.h" | 8 #include "platform/assert.h" |
| 9 #include "vm/allocation.h" | 9 #include "vm/allocation.h" |
| 10 #include "vm/growable_array.h" | 10 #include "vm/growable_array.h" |
| (...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 292 | 292 |
| 293 private: | 293 private: |
| 294 const AbstractType& type_; | 294 const AbstractType& type_; |
| 295 GrowableArray<AstNode*> elements_; | 295 GrowableArray<AstNode*> elements_; |
| 296 | 296 |
| 297 void CheckFields() { | 297 void CheckFields() { |
| 298 ASSERT(type_.IsZoneHandle()); | 298 ASSERT(type_.IsZoneHandle()); |
| 299 ASSERT(!type_.IsNull()); | 299 ASSERT(!type_.IsNull()); |
| 300 ASSERT(type_.IsFinalized()); | 300 ASSERT(type_.IsFinalized()); |
| 301 // Type may be uninstantiated when creating a generic list literal. | 301 // Type may be uninstantiated when creating a generic list literal. |
| 302 ASSERT((type_.arguments() == AbstractTypeArguments::null()) || | 302 ASSERT((type_.arguments() == TypeArguments::null()) || |
| 303 ((AbstractTypeArguments::Handle(type_.arguments()).Length() == 1))); | 303 ((TypeArguments::Handle(type_.arguments()).Length() == 1))); |
| 304 } | 304 } |
| 305 | 305 |
| 306 DISALLOW_IMPLICIT_CONSTRUCTORS(ArrayNode); | 306 DISALLOW_IMPLICIT_CONSTRUCTORS(ArrayNode); |
| 307 }; | 307 }; |
| 308 | 308 |
| 309 | 309 |
| 310 class StringInterpolateNode : public AstNode { | 310 class StringInterpolateNode : public AstNode { |
| 311 public: | 311 public: |
| 312 StringInterpolateNode(intptr_t token_pos, ArrayNode* value) | 312 StringInterpolateNode(intptr_t token_pos, ArrayNode* value) |
| 313 : AstNode(token_pos), value_(value) { } | 313 : AstNode(token_pos), value_(value) { } |
| (...skipping 1230 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1544 // the receiver at an offset in the receiver specified by the provided | 1544 // the receiver at an offset in the receiver specified by the provided |
| 1545 // instantiator_class. | 1545 // instantiator_class. |
| 1546 // | 1546 // |
| 1547 // If the caller to the constructor or to the factory is a factory, then the | 1547 // If the caller to the constructor or to the factory is a factory, then the |
| 1548 // instantiator is the first parameter of this factory, which is already a | 1548 // instantiator is the first parameter of this factory, which is already a |
| 1549 // type argument vector. This case is identified by a null and unneeded | 1549 // type argument vector. This case is identified by a null and unneeded |
| 1550 // instantiator_class. | 1550 // instantiator_class. |
| 1551 class ConstructorCallNode : public AstNode { | 1551 class ConstructorCallNode : public AstNode { |
| 1552 public: | 1552 public: |
| 1553 ConstructorCallNode(intptr_t token_pos, | 1553 ConstructorCallNode(intptr_t token_pos, |
| 1554 const AbstractTypeArguments& type_arguments, | 1554 const TypeArguments& type_arguments, |
| 1555 const Function& constructor, | 1555 const Function& constructor, |
| 1556 ArgumentListNode* arguments) | 1556 ArgumentListNode* arguments) |
| 1557 : AstNode(token_pos), | 1557 : AstNode(token_pos), |
| 1558 type_arguments_(type_arguments), | 1558 type_arguments_(type_arguments), |
| 1559 constructor_(constructor), | 1559 constructor_(constructor), |
| 1560 arguments_(arguments) { | 1560 arguments_(arguments) { |
| 1561 ASSERT(type_arguments_.IsZoneHandle()); | 1561 ASSERT(type_arguments_.IsZoneHandle()); |
| 1562 ASSERT(constructor_.IsZoneHandle()); | 1562 ASSERT(constructor_.IsZoneHandle()); |
| 1563 ASSERT(arguments_ != NULL); | 1563 ASSERT(arguments_ != NULL); |
| 1564 } | 1564 } |
| 1565 | 1565 |
| 1566 const AbstractTypeArguments& type_arguments() const { | 1566 const TypeArguments& type_arguments() const { |
| 1567 return type_arguments_; | 1567 return type_arguments_; |
| 1568 } | 1568 } |
| 1569 const Function& constructor() const { return constructor_; } | 1569 const Function& constructor() const { return constructor_; } |
| 1570 ArgumentListNode* arguments() const { return arguments_; } | 1570 ArgumentListNode* arguments() const { return arguments_; } |
| 1571 | 1571 |
| 1572 virtual void VisitChildren(AstNodeVisitor* visitor) const { | 1572 virtual void VisitChildren(AstNodeVisitor* visitor) const { |
| 1573 arguments()->Visit(visitor); | 1573 arguments()->Visit(visitor); |
| 1574 } | 1574 } |
| 1575 | 1575 |
| 1576 DECLARE_COMMON_NODE_FUNCTIONS(ConstructorCallNode); | 1576 DECLARE_COMMON_NODE_FUNCTIONS(ConstructorCallNode); |
| 1577 | 1577 |
| 1578 private: | 1578 private: |
| 1579 const AbstractTypeArguments& type_arguments_; | 1579 const TypeArguments& type_arguments_; |
| 1580 const Function& constructor_; | 1580 const Function& constructor_; |
| 1581 ArgumentListNode* arguments_; | 1581 ArgumentListNode* arguments_; |
| 1582 | 1582 |
| 1583 DISALLOW_IMPLICIT_CONSTRUCTORS(ConstructorCallNode); | 1583 DISALLOW_IMPLICIT_CONSTRUCTORS(ConstructorCallNode); |
| 1584 }; | 1584 }; |
| 1585 | 1585 |
| 1586 | 1586 |
| 1587 // The body of a Dart function marked as 'native' consists of this node. | 1587 // The body of a Dart function marked as 'native' consists of this node. |
| 1588 class NativeBodyNode : public AstNode { | 1588 class NativeBodyNode : public AstNode { |
| 1589 public: | 1589 public: |
| (...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1786 const intptr_t try_index_; | 1786 const intptr_t try_index_; |
| 1787 | 1787 |
| 1788 DISALLOW_IMPLICIT_CONSTRUCTORS(InlinedFinallyNode); | 1788 DISALLOW_IMPLICIT_CONSTRUCTORS(InlinedFinallyNode); |
| 1789 }; | 1789 }; |
| 1790 | 1790 |
| 1791 } // namespace dart | 1791 } // namespace dart |
| 1792 | 1792 |
| 1793 #undef DECLARE_COMMON_NODE_FUNCTIONS | 1793 #undef DECLARE_COMMON_NODE_FUNCTIONS |
| 1794 | 1794 |
| 1795 #endif // VM_AST_H_ | 1795 #endif // VM_AST_H_ |
| OLD | NEW |