OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 446 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
457 // should be checked. | 457 // should be checked. |
458 static const int kMaxNumFunctionParameters = 32766; | 458 static const int kMaxNumFunctionParameters = 32766; |
459 static const int kMaxNumFunctionLocals = 32767; | 459 static const int kMaxNumFunctionLocals = 32767; |
460 | 460 |
461 enum Mode { | 461 enum Mode { |
462 PARSE_LAZILY, | 462 PARSE_LAZILY, |
463 PARSE_EAGERLY | 463 PARSE_EAGERLY |
464 }; | 464 }; |
465 | 465 |
466 enum VariableDeclarationContext { | 466 enum VariableDeclarationContext { |
467 kSourceElement, | 467 kModuleElement, |
| 468 kBlockElement, |
468 kStatement, | 469 kStatement, |
469 kForStatement | 470 kForStatement |
470 }; | 471 }; |
471 | 472 |
472 // If a list of variable declarations includes any initializers. | 473 // If a list of variable declarations includes any initializers. |
473 enum VariableDeclarationProperties { | 474 enum VariableDeclarationProperties { |
474 kHasInitializers, | 475 kHasInitializers, |
475 kHasNoInitializers | 476 kHasNoInitializers |
476 }; | 477 }; |
477 | 478 |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
568 | 569 |
569 // Check if the given string is 'eval' or 'arguments'. | 570 // Check if the given string is 'eval' or 'arguments'. |
570 bool IsEvalOrArguments(Handle<String> string); | 571 bool IsEvalOrArguments(Handle<String> string); |
571 | 572 |
572 // All ParseXXX functions take as the last argument an *ok parameter | 573 // All ParseXXX functions take as the last argument an *ok parameter |
573 // which is set to false if parsing failed; it is unchanged otherwise. | 574 // which is set to false if parsing failed; it is unchanged otherwise. |
574 // By making the 'exception handling' explicit, we are forced to check | 575 // By making the 'exception handling' explicit, we are forced to check |
575 // for failure at the call sites. | 576 // for failure at the call sites. |
576 void* ParseSourceElements(ZoneList<Statement*>* processor, | 577 void* ParseSourceElements(ZoneList<Statement*>* processor, |
577 int end_token, bool* ok); | 578 int end_token, bool* ok); |
578 Statement* ParseSourceElement(ZoneStringList* labels, bool* ok); | 579 Statement* ParseModuleElement(ZoneStringList* labels, bool* ok); |
| 580 Block* ParseModuleDeclaration(bool* ok); |
| 581 Module* ParseModule(bool* ok); |
| 582 Module* ParseModuleLiteral(bool* ok); |
| 583 Module* ParseModulePath(bool* ok); |
| 584 Module* ParseModuleVariable(bool* ok); |
| 585 Module* ParseModuleUrl(bool* ok); |
| 586 Block* ParseImportDeclaration(bool* ok); |
| 587 Block* ParseExportDeclaration(bool* ok); |
| 588 Statement* ParseBlockElement(ZoneStringList* labels, bool* ok); |
579 Statement* ParseStatement(ZoneStringList* labels, bool* ok); | 589 Statement* ParseStatement(ZoneStringList* labels, bool* ok); |
580 Statement* ParseFunctionDeclaration(bool* ok); | 590 Statement* ParseFunctionDeclaration(bool* ok); |
581 Statement* ParseNativeDeclaration(bool* ok); | 591 Statement* ParseNativeDeclaration(bool* ok); |
582 Block* ParseBlock(ZoneStringList* labels, bool* ok); | 592 Block* ParseBlock(ZoneStringList* labels, bool* ok); |
583 Block* ParseVariableStatement(VariableDeclarationContext var_context, | 593 Block* ParseVariableStatement(VariableDeclarationContext var_context, |
584 bool* ok); | 594 bool* ok); |
585 Block* ParseVariableDeclarations(VariableDeclarationContext var_context, | 595 Block* ParseVariableDeclarations(VariableDeclarationContext var_context, |
586 VariableDeclarationProperties* decl_props, | 596 VariableDeclarationProperties* decl_props, |
587 Handle<String>* out, | 597 Handle<String>* out, |
588 bool* ok); | 598 bool* ok); |
(...skipping 257 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
846 private: | 856 private: |
847 static const int kTypeSlot = 0; | 857 static const int kTypeSlot = 0; |
848 static const int kElementsSlot = 1; | 858 static const int kElementsSlot = 1; |
849 | 859 |
850 DISALLOW_IMPLICIT_CONSTRUCTORS(CompileTimeValue); | 860 DISALLOW_IMPLICIT_CONSTRUCTORS(CompileTimeValue); |
851 }; | 861 }; |
852 | 862 |
853 } } // namespace v8::internal | 863 } } // namespace v8::internal |
854 | 864 |
855 #endif // V8_PARSER_H_ | 865 #endif // V8_PARSER_H_ |
OLD | NEW |