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_AST_H_ | 5 #ifndef V8_AST_H_ |
6 #define V8_AST_H_ | 6 #define V8_AST_H_ |
7 | 7 |
8 #include "src/v8.h" | 8 #include "src/v8.h" |
9 | 9 |
10 #include "src/assembler.h" | 10 #include "src/assembler.h" |
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
108 // Forward declarations | 108 // Forward declarations |
109 class AstConstructionVisitor; | 109 class AstConstructionVisitor; |
110 template<class> class AstNodeFactory; | 110 template<class> class AstNodeFactory; |
111 class AstVisitor; | 111 class AstVisitor; |
112 class Declaration; | 112 class Declaration; |
113 class Module; | 113 class Module; |
114 class BreakableStatement; | 114 class BreakableStatement; |
115 class Expression; | 115 class Expression; |
116 class IterationStatement; | 116 class IterationStatement; |
117 class MaterializedLiteral; | 117 class MaterializedLiteral; |
118 class OStream; | |
119 class Statement; | 118 class Statement; |
120 class TargetCollector; | 119 class TargetCollector; |
121 class TypeFeedbackOracle; | 120 class TypeFeedbackOracle; |
122 | 121 |
123 class RegExpAlternative; | 122 class RegExpAlternative; |
124 class RegExpAssertion; | 123 class RegExpAssertion; |
125 class RegExpAtom; | 124 class RegExpAtom; |
126 class RegExpBackReference; | 125 class RegExpBackReference; |
127 class RegExpCapture; | 126 class RegExpCapture; |
128 class RegExpCharacterClass; | 127 class RegExpCharacterClass; |
(...skipping 2477 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2606 RegExpNode* on_success) = 0; | 2605 RegExpNode* on_success) = 0; |
2607 virtual bool IsTextElement() { return false; } | 2606 virtual bool IsTextElement() { return false; } |
2608 virtual bool IsAnchoredAtStart() { return false; } | 2607 virtual bool IsAnchoredAtStart() { return false; } |
2609 virtual bool IsAnchoredAtEnd() { return false; } | 2608 virtual bool IsAnchoredAtEnd() { return false; } |
2610 virtual int min_match() = 0; | 2609 virtual int min_match() = 0; |
2611 virtual int max_match() = 0; | 2610 virtual int max_match() = 0; |
2612 // Returns the interval of registers used for captures within this | 2611 // Returns the interval of registers used for captures within this |
2613 // expression. | 2612 // expression. |
2614 virtual Interval CaptureRegisters() { return Interval::Empty(); } | 2613 virtual Interval CaptureRegisters() { return Interval::Empty(); } |
2615 virtual void AppendToText(RegExpText* text, Zone* zone); | 2614 virtual void AppendToText(RegExpText* text, Zone* zone); |
2616 OStream& Print(OStream& os, Zone* zone); // NOLINT | 2615 std::ostream& Print(std::ostream& os, Zone* zone); // NOLINT |
2617 #define MAKE_ASTYPE(Name) \ | 2616 #define MAKE_ASTYPE(Name) \ |
2618 virtual RegExp##Name* As##Name(); \ | 2617 virtual RegExp##Name* As##Name(); \ |
2619 virtual bool Is##Name(); | 2618 virtual bool Is##Name(); |
2620 FOR_EACH_REG_EXP_TREE_TYPE(MAKE_ASTYPE) | 2619 FOR_EACH_REG_EXP_TREE_TYPE(MAKE_ASTYPE) |
2621 #undef MAKE_ASTYPE | 2620 #undef MAKE_ASTYPE |
2622 }; | 2621 }; |
2623 | 2622 |
2624 | 2623 |
2625 class RegExpDisjunction FINAL : public RegExpTree { | 2624 class RegExpDisjunction FINAL : public RegExpTree { |
2626 public: | 2625 public: |
(...skipping 909 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3536 Zone* zone_; | 3535 Zone* zone_; |
3537 Visitor visitor_; | 3536 Visitor visitor_; |
3538 AstValueFactory* ast_value_factory_; | 3537 AstValueFactory* ast_value_factory_; |
3539 AstNode::IdGen* id_gen_; | 3538 AstNode::IdGen* id_gen_; |
3540 }; | 3539 }; |
3541 | 3540 |
3542 | 3541 |
3543 } } // namespace v8::internal | 3542 } } // namespace v8::internal |
3544 | 3543 |
3545 #endif // V8_AST_H_ | 3544 #endif // V8_AST_H_ |
OLD | NEW |