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_PARSER_H_ | 5 #ifndef VM_PARSER_H_ |
6 #define VM_PARSER_H_ | 6 #define VM_PARSER_H_ |
7 | 7 |
8 #include "include/dart_api.h" | 8 #include "include/dart_api.h" |
9 | 9 |
10 #include "platform/assert.h" | 10 #include "platform/assert.h" |
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
118 } | 118 } |
119 void set_finally_return_temp_var(LocalVariable* value) { | 119 void set_finally_return_temp_var(LocalVariable* value) { |
120 ASSERT(!has_finally_return_temp_var()); | 120 ASSERT(!has_finally_return_temp_var()); |
121 finally_return_temp_var_ = value; | 121 finally_return_temp_var_ = value; |
122 } | 122 } |
123 bool has_finally_return_temp_var() const { | 123 bool has_finally_return_temp_var() const { |
124 return finally_return_temp_var_ != NULL; | 124 return finally_return_temp_var_ != NULL; |
125 } | 125 } |
126 void EnsureFinallyReturnTemp(); | 126 void EnsureFinallyReturnTemp(); |
127 | 127 |
128 static LocalVariable* CreateExpressionTempVar(intptr_t token_pos); | |
129 LocalVariable* EnsureExpressionTemp(); | 128 LocalVariable* EnsureExpressionTemp(); |
| 129 LocalVariable* EnsureSavedCurrentContext(); |
130 | 130 |
131 bool HasDeferredPrefixes() const { return deferred_prefixes_->length() != 0; } | 131 bool HasDeferredPrefixes() const { return deferred_prefixes_->length() != 0; } |
132 ZoneGrowableArray<const LibraryPrefix*>* deferred_prefixes() const { | 132 ZoneGrowableArray<const LibraryPrefix*>* deferred_prefixes() const { |
133 return deferred_prefixes_; | 133 return deferred_prefixes_; |
134 } | 134 } |
135 void AddDeferredPrefix(const LibraryPrefix& prefix); | 135 void AddDeferredPrefix(const LibraryPrefix& prefix); |
136 | 136 |
137 int first_parameter_index() const { return first_parameter_index_; } | 137 int first_parameter_index() const { return first_parameter_index_; } |
138 int first_stack_local_index() const { return first_stack_local_index_; } | 138 int first_stack_local_index() const { return first_stack_local_index_; } |
139 int num_copied_params() const { return num_copied_params_; } | 139 int num_copied_params() const { return num_copied_params_; } |
(...skipping 586 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
726 const Function* func); | 726 const Function* func); |
727 | 727 |
728 void SetupSavedTryContext(LocalVariable* saved_try_context); | 728 void SetupSavedTryContext(LocalVariable* saved_try_context); |
729 void RestoreSavedTryContext(LocalScope* saved_try_context_scope, | 729 void RestoreSavedTryContext(LocalScope* saved_try_context_scope, |
730 int16_t try_index, | 730 int16_t try_index, |
731 SequenceNode* target); | 731 SequenceNode* target); |
732 | 732 |
733 void CheckOperatorArity(const MemberDesc& member); | 733 void CheckOperatorArity(const MemberDesc& member); |
734 | 734 |
735 void EnsureExpressionTemp(); | 735 void EnsureExpressionTemp(); |
| 736 void EnsureContextVar(); |
736 void EnsureSavedCurrentContext(); | 737 void EnsureSavedCurrentContext(); |
737 bool IsLegalAssignableSyntax(AstNode* expr, intptr_t end_pos); | 738 bool IsLegalAssignableSyntax(AstNode* expr, intptr_t end_pos); |
738 AstNode* CreateAssignmentNode(AstNode* original, | 739 AstNode* CreateAssignmentNode(AstNode* original, |
739 AstNode* rhs, | 740 AstNode* rhs, |
740 const String* left_ident, | 741 const String* left_ident, |
741 intptr_t left_pos); | 742 intptr_t left_pos); |
742 AstNode* InsertClosureCallNodes(AstNode* condition); | 743 AstNode* InsertClosureCallNodes(AstNode* condition); |
743 | 744 |
744 ConstructorCallNode* CreateConstructorCallNode( | 745 ConstructorCallNode* CreateConstructorCallNode( |
745 intptr_t token_pos, | 746 intptr_t token_pos, |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
813 bool unregister_pending_function_; | 814 bool unregister_pending_function_; |
814 | 815 |
815 LocalScope* async_temp_scope_; | 816 LocalScope* async_temp_scope_; |
816 | 817 |
817 DISALLOW_COPY_AND_ASSIGN(Parser); | 818 DISALLOW_COPY_AND_ASSIGN(Parser); |
818 }; | 819 }; |
819 | 820 |
820 } // namespace dart | 821 } // namespace dart |
821 | 822 |
822 #endif // VM_PARSER_H_ | 823 #endif // VM_PARSER_H_ |
OLD | NEW |