| Index: src/ast.cc
|
| diff --git a/src/ast.cc b/src/ast.cc
|
| index 416d1444c4dc8f44dec1abecc057ab8464b15ac6..60ae5b87cb272e06c97b5e4489bb98a750ddfd7a 100644
|
| --- a/src/ast.cc
|
| +++ b/src/ast.cc
|
| @@ -187,21 +187,21 @@ void Visitor::VisitExpressions(ZoneList<Expression*>* expressions) {
|
| void* RegExp##Name::Accept(RegExpVisitor* visitor, void* data) { \
|
| return visitor->Visit##Name(this, data); \
|
| }
|
| -FOR_EACH_REG_EXP_NODE_TYPE(MAKE_ACCEPT)
|
| +FOR_EACH_REG_EXP_TREE_TYPE(MAKE_ACCEPT)
|
| #undef MAKE_ACCEPT
|
|
|
| #define MAKE_CONVERSION(Name) \
|
| RegExp##Name* RegExpTree::As##Name() { \
|
| return NULL; \
|
| }
|
| - FOR_EACH_REG_EXP_NODE_TYPE(MAKE_CONVERSION)
|
| + FOR_EACH_REG_EXP_TREE_TYPE(MAKE_CONVERSION)
|
| #undef MAKE_CONVERSION
|
|
|
| #define MAKE_CONVERSION(Name) \
|
| RegExp##Name* RegExp##Name::As##Name() { \
|
| return this; \
|
| }
|
| -FOR_EACH_REG_EXP_NODE_TYPE(MAKE_CONVERSION)
|
| +FOR_EACH_REG_EXP_TREE_TYPE(MAKE_CONVERSION)
|
| #undef MAKE_CONVERSION
|
|
|
| RegExpEmpty RegExpEmpty::kInstance;
|
| @@ -218,7 +218,7 @@ class RegExpUnparser: public RegExpVisitor {
|
| void VisitCharacterRange(CharacterRange that);
|
| SmartPointer<const char> ToString() { return stream_.ToCString(); }
|
| #define MAKE_CASE(Name) virtual void* Visit##Name(RegExp##Name*, void* data);
|
| - FOR_EACH_REG_EXP_NODE_TYPE(MAKE_CASE)
|
| + FOR_EACH_REG_EXP_TREE_TYPE(MAKE_CASE)
|
| #undef MAKE_CASE
|
| private:
|
| StringStream* stream() { return &stream_; }
|
| @@ -308,6 +308,21 @@ void* RegExpUnparser::VisitAtom(RegExpAtom* that, void* data) {
|
| }
|
|
|
|
|
| +void* RegExpUnparser::VisitText(RegExpText* that, void* data) {
|
| + if (that->elements()->length() == 1) {
|
| + that->elements()->at(0).data.u_atom->Accept(this, data);
|
| + } else {
|
| + stream()->Add("(!");
|
| + for (int i = 0; i < that->elements()->length(); i++) {
|
| + stream()->Add(" ");
|
| + that->elements()->at(i).data.u_atom->Accept(this, data);
|
| + }
|
| + stream()->Add(")");
|
| + }
|
| + return NULL;
|
| +}
|
| +
|
| +
|
| void* RegExpUnparser::VisitQuantifier(RegExpQuantifier* that, void* data) {
|
| stream()->Add("(# %i ", that->min());
|
| if (that->max() == RegExpQuantifier::kInfinity) {
|
|
|