Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(30)

Side by Side Diff: runtime/vm/parser.h

Issue 1180903002: null-aware operators in the VM (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Implement remainder of null-aware operators Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 559 matching lines...) Expand 10 before | Expand all | Expand 10 after
570 void AddAsyncGeneratorVariables(); 570 void AddAsyncGeneratorVariables();
571 571
572 LocalVariable* LookupPhaseParameter(); 572 LocalVariable* LookupPhaseParameter();
573 LocalVariable* LookupReceiver(LocalScope* from_scope, bool test_only); 573 LocalVariable* LookupReceiver(LocalScope* from_scope, bool test_only);
574 LocalVariable* LookupTypeArgumentsParameter(LocalScope* from_scope, 574 LocalVariable* LookupTypeArgumentsParameter(LocalScope* from_scope,
575 bool test_only); 575 bool test_only);
576 void CaptureInstantiator(); 576 void CaptureInstantiator();
577 AstNode* LoadReceiver(intptr_t token_pos); 577 AstNode* LoadReceiver(intptr_t token_pos);
578 AstNode* LoadFieldIfUnresolved(AstNode* node); 578 AstNode* LoadFieldIfUnresolved(AstNode* node);
579 AstNode* LoadClosure(PrimaryNode* primary); 579 AstNode* LoadClosure(PrimaryNode* primary);
580 AstNode* CallGetter(intptr_t token_pos, AstNode* object, const String& name); 580 InstanceGetterNode* CallGetter(intptr_t token_pos,
581 AstNode* object,
582 const String& name);
581 583
582 AstNode* ParseAssertStatement(); 584 AstNode* ParseAssertStatement();
583 AstNode* ParseJump(String* label_name); 585 AstNode* ParseJump(String* label_name);
584 AstNode* ParseIfStatement(String* label_name); 586 AstNode* ParseIfStatement(String* label_name);
585 AstNode* ParseWhileStatement(String* label_name); 587 AstNode* ParseWhileStatement(String* label_name);
586 AstNode* ParseDoWhileStatement(String* label_name); 588 AstNode* ParseDoWhileStatement(String* label_name);
587 AstNode* ParseForStatement(String* label_name); 589 AstNode* ParseForStatement(String* label_name);
588 AstNode* ParseAwaitForStatement(String* label_name); 590 AstNode* ParseAwaitForStatement(String* label_name);
589 AstNode* ParseForInStatement(intptr_t forin_pos, SourceLabel* label); 591 AstNode* ParseForInStatement(intptr_t forin_pos, SourceLabel* label);
590 RawClass* CheckCaseExpressions(const GrowableArray<LiteralNode*>& values); 592 RawClass* CheckCaseExpressions(const GrowableArray<LiteralNode*>& values);
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
701 AstNode* ParseNewOperator(Token::Kind op_kind); 703 AstNode* ParseNewOperator(Token::Kind op_kind);
702 704
703 // An implicit argument, if non-null, is prepended to the returned list. 705 // An implicit argument, if non-null, is prepended to the returned list.
704 ArgumentListNode* ParseActualParameters(ArgumentListNode* implicit_arguments, 706 ArgumentListNode* ParseActualParameters(ArgumentListNode* implicit_arguments,
705 bool require_const); 707 bool require_const);
706 AstNode* ParseStaticCall(const Class& cls, 708 AstNode* ParseStaticCall(const Class& cls,
707 const String& method_name, 709 const String& method_name,
708 intptr_t ident_pos); 710 intptr_t ident_pos);
709 AstNode* ParseInstanceCall(AstNode* receiver, 711 AstNode* ParseInstanceCall(AstNode* receiver,
710 const String& method_name, 712 const String& method_name,
711 intptr_t ident_pos); 713 intptr_t ident_pos,
714 bool is_conditional);
712 AstNode* ParseClosureCall(AstNode* closure); 715 AstNode* ParseClosureCall(AstNode* closure);
713 AstNode* GenerateStaticFieldLookup(const Field& field, 716 AstNode* GenerateStaticFieldLookup(const Field& field,
714 intptr_t ident_pos); 717 intptr_t ident_pos);
715 AstNode* GenerateStaticFieldAccess(const Class& cls, 718 AstNode* GenerateStaticFieldAccess(const Class& cls,
716 const String& field_name, 719 const String& field_name,
717 intptr_t ident_pos); 720 intptr_t ident_pos);
718 721
719 LocalVariable* LookupLocalScope(const String& ident); 722 LocalVariable* LookupLocalScope(const String& ident);
720 void CheckInstanceFieldAccess(intptr_t field_pos, const String& field_name); 723 void CheckInstanceFieldAccess(intptr_t field_pos, const String& field_name);
721 bool ParsingStaticMember() const; 724 bool ParsingStaticMember() const;
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
858 861
859 // Indentation of parser trace. 862 // Indentation of parser trace.
860 intptr_t trace_indent_; 863 intptr_t trace_indent_;
861 864
862 DISALLOW_COPY_AND_ASSIGN(Parser); 865 DISALLOW_COPY_AND_ASSIGN(Parser);
863 }; 866 };
864 867
865 } // namespace dart 868 } // namespace dart
866 869
867 #endif // VM_PARSER_H_ 870 #endif // VM_PARSER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698