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 RUNTIME_VM_PARSER_H_ | 5 #ifndef RUNTIME_VM_PARSER_H_ |
6 #define RUNTIME_VM_PARSER_H_ | 6 #define RUNTIME_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 598 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
609 TokenPosition call_pos, | 609 TokenPosition call_pos, |
610 const String& function_name, | 610 const String& function_name, |
611 const ArgumentListNode& function_args, | 611 const ArgumentListNode& function_args, |
612 const LocalVariable* temp, | 612 const LocalVariable* temp, |
613 bool is_super_invocation); | 613 bool is_super_invocation); |
614 RawFunction* GetSuperFunction(TokenPosition token_pos, | 614 RawFunction* GetSuperFunction(TokenPosition token_pos, |
615 const String& name, | 615 const String& name, |
616 ArgumentListNode* arguments, | 616 ArgumentListNode* arguments, |
617 bool resolve_getter, | 617 bool resolve_getter, |
618 bool* is_no_such_method); | 618 bool* is_no_such_method); |
619 AstNode* ParseSuperCall(const String& function_name); | 619 AstNode* ParseSuperCall(const String& function_name, |
| 620 const TypeArguments& func_type_args); |
620 AstNode* ParseSuperFieldAccess(const String& field_name, | 621 AstNode* ParseSuperFieldAccess(const String& field_name, |
621 TokenPosition field_pos); | 622 TokenPosition field_pos); |
622 AstNode* ParseSuperOperator(); | 623 AstNode* ParseSuperOperator(); |
623 AstNode* BuildUnarySuperOperator(Token::Kind op, PrimaryNode* super); | 624 AstNode* BuildUnarySuperOperator(Token::Kind op, PrimaryNode* super); |
624 | 625 |
625 static bool ParseFormalParameters(const Function& func, ParamList* params); | 626 static bool ParseFormalParameters(const Function& func, ParamList* params); |
626 | 627 |
627 void SetupDefaultsForOptionalParams(const ParamList& params); | 628 void SetupDefaultsForOptionalParams(const ParamList& params); |
628 ClosureNode* CreateImplicitClosureNode(const Function& func, | 629 ClosureNode* CreateImplicitClosureNode(const Function& func, |
629 TokenPosition token_pos, | 630 TokenPosition token_pos, |
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
826 const TypeArguments& type_arguments); | 827 const TypeArguments& type_arguments); |
827 | 828 |
828 RawFunction* BuildConstructorClosureFunction(const Function& ctr, | 829 RawFunction* BuildConstructorClosureFunction(const Function& ctr, |
829 TokenPosition token_pos); | 830 TokenPosition token_pos); |
830 AstNode* ParseNewOperator(Token::Kind op_kind); | 831 AstNode* ParseNewOperator(Token::Kind op_kind); |
831 void ParseConstructorClosurization(Function* constructor, | 832 void ParseConstructorClosurization(Function* constructor, |
832 TypeArguments* type_arguments); | 833 TypeArguments* type_arguments); |
833 | 834 |
834 // An implicit argument, if non-null, is prepended to the returned list. | 835 // An implicit argument, if non-null, is prepended to the returned list. |
835 ArgumentListNode* ParseActualParameters(ArgumentListNode* implicit_arguments, | 836 ArgumentListNode* ParseActualParameters(ArgumentListNode* implicit_arguments, |
| 837 const TypeArguments& func_type_args, |
836 bool require_const); | 838 bool require_const); |
837 AstNode* ParseStaticCall(const Class& cls, | 839 AstNode* ParseStaticCall(const Class& cls, |
838 const String& method_name, | 840 const String& method_name, |
839 TokenPosition ident_pos, | 841 TokenPosition ident_pos, |
| 842 const TypeArguments& func_type_args, |
840 const LibraryPrefix* prefix = NULL); | 843 const LibraryPrefix* prefix = NULL); |
841 AstNode* ParseInstanceCall(AstNode* receiver, | 844 AstNode* ParseInstanceCall(AstNode* receiver, |
842 const String& method_name, | 845 const String& method_name, |
843 TokenPosition ident_pos, | 846 TokenPosition ident_pos, |
| 847 const TypeArguments& func_type_args, |
844 bool is_conditional); | 848 bool is_conditional); |
845 AstNode* ParseClosureCall(AstNode* closure); | 849 AstNode* ParseClosureCall(AstNode* closure, |
| 850 const TypeArguments& func_type_args); |
846 AstNode* GenerateStaticFieldLookup(const Field& field, | 851 AstNode* GenerateStaticFieldLookup(const Field& field, |
847 TokenPosition ident_pos); | 852 TokenPosition ident_pos); |
848 AstNode* GenerateStaticFieldAccess(const Class& cls, | 853 AstNode* GenerateStaticFieldAccess(const Class& cls, |
849 const String& field_name, | 854 const String& field_name, |
850 TokenPosition ident_pos); | 855 TokenPosition ident_pos); |
851 | 856 |
852 LocalVariable* LookupLocalScope(const String& ident); | 857 LocalVariable* LookupLocalScope(const String& ident); |
853 void CheckInstanceFieldAccess(TokenPosition field_pos, | 858 void CheckInstanceFieldAccess(TokenPosition field_pos, |
854 const String& field_name); | 859 const String& field_name); |
855 bool ParsingStaticMember() const; | 860 bool ParsingStaticMember() const; |
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1006 | 1011 |
1007 intptr_t recursion_counter_; | 1012 intptr_t recursion_counter_; |
1008 friend class RecursionChecker; | 1013 friend class RecursionChecker; |
1009 | 1014 |
1010 DISALLOW_COPY_AND_ASSIGN(Parser); | 1015 DISALLOW_COPY_AND_ASSIGN(Parser); |
1011 }; | 1016 }; |
1012 | 1017 |
1013 } // namespace dart | 1018 } // namespace dart |
1014 | 1019 |
1015 #endif // RUNTIME_VM_PARSER_H_ | 1020 #endif // RUNTIME_VM_PARSER_H_ |
OLD | NEW |