| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef V8_PARSING_PREPARSER_H | 5 #ifndef V8_PARSING_PREPARSER_H |
| 6 #define V8_PARSING_PREPARSER_H | 6 #define V8_PARSING_PREPARSER_H |
| 7 | 7 |
| 8 #include "src/ast/scopes.h" | 8 #include "src/ast/scopes.h" |
| 9 #include "src/bailout-reason.h" | 9 #include "src/bailout-reason.h" |
| 10 #include "src/base/hashmap.h" | 10 #include "src/base/hashmap.h" |
| (...skipping 727 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 738 PreParserIdentifier arg, int pos) { | 738 PreParserIdentifier arg, int pos) { |
| 739 return PreParserExpression::Default(); | 739 return PreParserExpression::Default(); |
| 740 } | 740 } |
| 741 | 741 |
| 742 PreParserExpression NewThrowTypeError(MessageTemplate::Template message, | 742 PreParserExpression NewThrowTypeError(MessageTemplate::Template message, |
| 743 PreParserIdentifier arg, int pos) { | 743 PreParserIdentifier arg, int pos) { |
| 744 return PreParserExpression::Default(); | 744 return PreParserExpression::Default(); |
| 745 } | 745 } |
| 746 | 746 |
| 747 // Reporting errors. | 747 // Reporting errors. |
| 748 void ReportMessageAt(Scanner::Location location, | 748 void ReportMessageAt(Scanner::Location source_location, |
| 749 MessageTemplate::Template message, | 749 MessageTemplate::Template message, |
| 750 const char* arg = NULL, | 750 const char* arg = NULL, |
| 751 ParseErrorType error_type = kSyntaxError); | 751 ParseErrorType error_type = kSyntaxError); |
| 752 void ReportMessageAt(Scanner::Location location, | 752 void ReportMessageAt(Scanner::Location source_location, |
| 753 MessageTemplate::Template message, | 753 MessageTemplate::Template message, |
| 754 const AstRawString* arg, | 754 const AstRawString* arg, |
| 755 ParseErrorType error_type = kSyntaxError); | 755 ParseErrorType error_type = kSyntaxError); |
| 756 | 756 |
| 757 // A dummy function, just useful as an argument to CHECK_OK_CUSTOM. | 757 // A dummy function, just useful as an argument to CHECK_OK_CUSTOM. |
| 758 static void Void() {} | 758 static void Void() {} |
| 759 | 759 |
| 760 // "null" return type creators. | 760 // "null" return type creators. |
| 761 static PreParserIdentifier EmptyIdentifier() { | 761 static PreParserIdentifier EmptyIdentifier() { |
| 762 return PreParserIdentifier::Default(); | 762 return PreParserIdentifier::Default(); |
| 763 } | 763 } |
| 764 static PreParserExpression EmptyExpression() { | 764 static PreParserExpression EmptyExpression() { |
| 765 return PreParserExpression::Default(); | 765 return PreParserExpression::Default(); |
| 766 } | 766 } |
| 767 static PreParserExpression EmptyLiteral() { | 767 static PreParserExpression EmptyLiteral() { |
| 768 return PreParserExpression::Default(); | 768 return PreParserExpression::Default(); |
| 769 } | 769 } |
| 770 static PreParserExpression EmptyObjectLiteralProperty() { | 770 static PreParserExpression EmptyObjectLiteralProperty() { |
| 771 return PreParserExpression::Default(); | 771 return PreParserExpression::Default(); |
| 772 } | 772 } |
| 773 static PreParserExpression EmptyFunctionLiteral() { | 773 static PreParserExpression EmptyFunctionLiteral() { |
| 774 return PreParserExpression::Default(); | 774 return PreParserExpression::Default(); |
| 775 } | 775 } |
| 776 | 776 |
| 777 static PreParserExpressionList NullExpressionList() { | 777 static PreParserExpressionList NullExpressionList() { |
| 778 return PreParserExpressionList(); | 778 return PreParserExpressionList(); |
| 779 } | 779 } |
| 780 static PreParserIdentifier EmptyIdentifierString() { | 780 PreParserIdentifier EmptyIdentifierString() const { |
| 781 return PreParserIdentifier::Default(); | 781 return PreParserIdentifier::Default(); |
| 782 } | 782 } |
| 783 | 783 |
| 784 // Odd-ball literal creators. | 784 // Odd-ball literal creators. |
| 785 PreParserExpression GetLiteralTheHole(int position, | 785 PreParserExpression GetLiteralTheHole(int position, |
| 786 PreParserFactory* factory) const { | 786 PreParserFactory* factory) const { |
| 787 return PreParserExpression::Default(); | 787 return PreParserExpression::Default(); |
| 788 } | 788 } |
| 789 | 789 |
| 790 // Producing data during the recursive descent. | 790 // Producing data during the recursive descent. |
| 791 PreParserIdentifier GetSymbol(Scanner* scanner); | 791 PreParserIdentifier GetSymbol(Scanner* scanner) const; |
| 792 | 792 |
| 793 PreParserIdentifier GetNextSymbol(Scanner* scanner) const { | 793 PreParserIdentifier GetNextSymbol(Scanner* scanner) const { |
| 794 return PreParserIdentifier::Default(); | 794 return PreParserIdentifier::Default(); |
| 795 } | 795 } |
| 796 | 796 |
| 797 PreParserIdentifier GetNumberAsSymbol(Scanner* scanner) { | 797 PreParserIdentifier GetNumberAsSymbol(Scanner* scanner) const { |
| 798 return PreParserIdentifier::Default(); | 798 return PreParserIdentifier::Default(); |
| 799 } | 799 } |
| 800 | 800 |
| 801 PreParserExpression ThisExpression(int pos = kNoSourcePosition) const { | 801 PreParserExpression ThisExpression(int pos = kNoSourcePosition) const { |
| 802 return PreParserExpression::This(); | 802 return PreParserExpression::This(); |
| 803 } | 803 } |
| 804 | 804 |
| 805 PreParserExpression NewSuperPropertyReference(PreParserFactory* factory, | 805 PreParserExpression NewSuperPropertyReference(PreParserFactory* factory, |
| 806 int pos) const { | 806 int pos) const { |
| 807 return PreParserExpression::Default(); | 807 return PreParserExpression::Default(); |
| (...skipping 19 matching lines...) Expand all Loading... |
| 827 return PreParserExpression::Default(); | 827 return PreParserExpression::Default(); |
| 828 } | 828 } |
| 829 | 829 |
| 830 PreParserExpression ExpressionFromIdentifier( | 830 PreParserExpression ExpressionFromIdentifier( |
| 831 PreParserIdentifier name, int start_position, int end_position, | 831 PreParserIdentifier name, int start_position, int end_position, |
| 832 InferName = InferName::kYes) const { | 832 InferName = InferName::kYes) const { |
| 833 return PreParserExpression::FromIdentifier(name); | 833 return PreParserExpression::FromIdentifier(name); |
| 834 } | 834 } |
| 835 | 835 |
| 836 PreParserExpression ExpressionFromString(int pos, Scanner* scanner, | 836 PreParserExpression ExpressionFromString(int pos, Scanner* scanner, |
| 837 PreParserFactory* factory); | 837 PreParserFactory* factory) const; |
| 838 | 838 |
| 839 PreParserExpression GetIterator(PreParserExpression iterable, | 839 PreParserExpression GetIterator(PreParserExpression iterable, |
| 840 PreParserFactory* factory, int pos) { | 840 PreParserFactory* factory, int pos) { |
| 841 return PreParserExpression::Default(); | 841 return PreParserExpression::Default(); |
| 842 } | 842 } |
| 843 | 843 |
| 844 PreParserExpressionList NewExpressionList(int size, Zone* zone) const { | 844 PreParserExpressionList NewExpressionList(int size, Zone* zone) const { |
| 845 return PreParserExpressionList(); | 845 return PreParserExpressionList(); |
| 846 } | 846 } |
| 847 | 847 |
| 848 PreParserExpressionList NewPropertyList(int size, Zone* zone) const { | 848 PreParserExpressionList NewPropertyList(int size, Zone* zone) const { |
| 849 return PreParserExpressionList(); | 849 return PreParserExpressionList(); |
| 850 } | 850 } |
| 851 | 851 |
| 852 PreParserStatementList NewStatementList(int size, Zone* zone) const { | 852 PreParserStatementList NewStatementList(int size, Zone* zone) const { |
| 853 return PreParserStatementList(); | 853 return PreParserStatementList(); |
| 854 } | 854 } |
| 855 | 855 |
| 856 void AddParameterInitializationBlock( | 856 void AddParameterInitializationBlock( |
| 857 const PreParserFormalParameters& parameters, PreParserStatementList list, | 857 const PreParserFormalParameters& parameters, PreParserStatementList body, |
| 858 bool is_async, bool* ok) const {} | 858 bool is_async, bool* ok) const {} |
| 859 | 859 |
| 860 void ParseAsyncArrowSingleExpressionBody( | 860 void ParseAsyncArrowSingleExpressionBody( |
| 861 PreParserStatementList body, bool accept_IN, | 861 PreParserStatementList body, bool accept_IN, |
| 862 Type::ExpressionClassifier* classifier, int pos, bool* ok); | 862 Type::ExpressionClassifier* classifier, int pos, bool* ok); |
| 863 | 863 |
| 864 | 864 |
| 865 void AddFormalParameter(PreParserFormalParameters* parameters, | 865 void AddFormalParameter(PreParserFormalParameters* parameters, |
| 866 PreParserExpression pattern, | 866 PreParserExpression pattern, |
| 867 PreParserExpression initializer, | 867 PreParserExpression initializer, |
| 868 int initializer_end_position, bool is_rest) { | 868 int initializer_end_position, bool is_rest) { |
| 869 ++parameters->arity; | 869 ++parameters->arity; |
| 870 } | 870 } |
| 871 | 871 |
| 872 void DeclareFormalParameter(DeclarationScope* scope, | 872 void DeclareFormalParameter(DeclarationScope* scope, |
| 873 PreParserIdentifier parameter, | 873 PreParserIdentifier parameter, |
| 874 Type::ExpressionClassifier* classifier) { | 874 Type::ExpressionClassifier* classifier) { |
| 875 if (!classifier->is_simple_parameter_list()) { | 875 if (!classifier->is_simple_parameter_list()) { |
| 876 scope->SetHasNonSimpleParameters(); | 876 scope->SetHasNonSimpleParameters(); |
| 877 } | 877 } |
| 878 } | 878 } |
| 879 | 879 |
| 880 V8_INLINE void ParseArrowFunctionFormalParameterList( | 880 V8_INLINE void ParseArrowFunctionFormalParameterList( |
| 881 PreParserFormalParameters* parameters, PreParserExpression expression, | 881 PreParserFormalParameters* parameters, PreParserExpression params, |
| 882 const Scanner::Location& params_loc, Scanner::Location* duplicate_loc, | 882 const Scanner::Location& params_loc, Scanner::Location* duplicate_loc, |
| 883 const Scope::Snapshot& scope_snapshot, bool* ok); | 883 const Scope::Snapshot& scope_snapshot, bool* ok); |
| 884 | 884 |
| 885 V8_INLINE PreParserExpression ParseAsyncFunctionExpression(bool* ok); | 885 V8_INLINE PreParserExpression ParseAsyncFunctionExpression(bool* ok); |
| 886 | 886 |
| 887 V8_INLINE PreParserExpression ParseDoExpression(bool* ok); | 887 V8_INLINE PreParserExpression ParseDoExpression(bool* ok); |
| 888 | 888 |
| 889 void ReindexLiterals(const PreParserFormalParameters& parameters) {} | 889 void ReindexLiterals(const PreParserFormalParameters& parameters) {} |
| 890 | 890 |
| 891 // Temporary glue; these functions will move to ParserBase. | 891 // Temporary glue; these functions will move to ParserBase. |
| (...skipping 365 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1257 pre_parser_->function_state_->NextMaterializedLiteralIndex(); | 1257 pre_parser_->function_state_->NextMaterializedLiteralIndex(); |
| 1258 pre_parser_->function_state_->NextMaterializedLiteralIndex(); | 1258 pre_parser_->function_state_->NextMaterializedLiteralIndex(); |
| 1259 } | 1259 } |
| 1260 return EmptyExpression(); | 1260 return EmptyExpression(); |
| 1261 } | 1261 } |
| 1262 | 1262 |
| 1263 } // namespace internal | 1263 } // namespace internal |
| 1264 } // namespace v8 | 1264 } // namespace v8 |
| 1265 | 1265 |
| 1266 #endif // V8_PARSING_PREPARSER_H | 1266 #endif // V8_PARSING_PREPARSER_H |
| OLD | NEW |