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_PARSER_H_ | 5 #ifndef V8_PARSING_PARSER_H_ |
6 #define V8_PARSING_PARSER_H_ | 6 #define V8_PARSING_PARSER_H_ |
7 | 7 |
8 #include "src/ast/ast.h" | 8 #include "src/ast/ast.h" |
9 #include "src/ast/scopes.h" | 9 #include "src/ast/scopes.h" |
10 #include "src/base/compiler-specific.h" | 10 #include "src/base/compiler-specific.h" |
(...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
292 ScriptCompiler::CompileOptions compile_options() const { | 292 ScriptCompiler::CompileOptions compile_options() const { |
293 return compile_options_; | 293 return compile_options_; |
294 } | 294 } |
295 bool consume_cached_parse_data() const { | 295 bool consume_cached_parse_data() const { |
296 return compile_options_ == ScriptCompiler::kConsumeParserCache; | 296 return compile_options_ == ScriptCompiler::kConsumeParserCache; |
297 } | 297 } |
298 bool produce_cached_parse_data() const { | 298 bool produce_cached_parse_data() const { |
299 return compile_options_ == ScriptCompiler::kProduceParserCache; | 299 return compile_options_ == ScriptCompiler::kProduceParserCache; |
300 } | 300 } |
301 | 301 |
| 302 PreParser* reusable_preparser() { |
| 303 if (reusable_preparser_ == NULL) { |
| 304 reusable_preparser_ = |
| 305 new PreParser(zone(), &scanner_, stack_limit_, ast_value_factory(), |
| 306 &pending_error_handler_, runtime_call_stats_, |
| 307 parsing_on_main_thread_); |
| 308 #define SET_ALLOW(name) reusable_preparser_->set_allow_##name(allow_##name()); |
| 309 SET_ALLOW(natives); |
| 310 SET_ALLOW(harmony_do_expressions); |
| 311 SET_ALLOW(harmony_function_sent); |
| 312 SET_ALLOW(harmony_trailing_commas); |
| 313 SET_ALLOW(harmony_class_fields); |
| 314 SET_ALLOW(harmony_object_rest_spread); |
| 315 SET_ALLOW(harmony_dynamic_import); |
| 316 SET_ALLOW(harmony_async_iteration); |
| 317 #undef SET_ALLOW |
| 318 } |
| 319 return reusable_preparser_; |
| 320 } |
| 321 |
302 void ParseModuleItemList(ZoneList<Statement*>* body, bool* ok); | 322 void ParseModuleItemList(ZoneList<Statement*>* body, bool* ok); |
303 Statement* ParseModuleItem(bool* ok); | 323 Statement* ParseModuleItem(bool* ok); |
304 const AstRawString* ParseModuleSpecifier(bool* ok); | 324 const AstRawString* ParseModuleSpecifier(bool* ok); |
305 void ParseImportDeclaration(bool* ok); | 325 void ParseImportDeclaration(bool* ok); |
306 Statement* ParseExportDeclaration(bool* ok); | 326 Statement* ParseExportDeclaration(bool* ok); |
307 Statement* ParseExportDefault(bool* ok); | 327 Statement* ParseExportDefault(bool* ok); |
308 void ParseExportClause(ZoneList<const AstRawString*>* export_names, | 328 void ParseExportClause(ZoneList<const AstRawString*>* export_names, |
309 ZoneList<Scanner::Location>* export_locations, | 329 ZoneList<Scanner::Location>* export_locations, |
310 ZoneList<const AstRawString*>* local_names, | 330 ZoneList<const AstRawString*>* local_names, |
311 Scanner::Location* reserved_loc, bool* ok); | 331 Scanner::Location* reserved_loc, bool* ok); |
(...skipping 899 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1211 | 1231 |
1212 private: | 1232 private: |
1213 ParserTarget** variable_; | 1233 ParserTarget** variable_; |
1214 ParserTarget* previous_; | 1234 ParserTarget* previous_; |
1215 }; | 1235 }; |
1216 | 1236 |
1217 } // namespace internal | 1237 } // namespace internal |
1218 } // namespace v8 | 1238 } // namespace v8 |
1219 | 1239 |
1220 #endif // V8_PARSING_PARSER_H_ | 1240 #endif // V8_PARSING_PARSER_H_ |
OLD | NEW |