Index: src/prettyprinter.h |
diff --git a/src/prettyprinter.h b/src/prettyprinter.h |
index a26c48e490d25fdde447b9b911b33a547c413627..9ac72576409f961bbc173b5acdd8bc13674bb34f 100644 |
--- a/src/prettyprinter.h |
+++ b/src/prettyprinter.h |
@@ -1,4 +1,4 @@ |
-// Copyright 2011 the V8 project authors. All rights reserved. |
+// Copyright 2012 the V8 project authors. All rights reserved. |
// Redistribution and use in source and binary forms, with or without |
// modification, are permitted provided that the following conditions are |
// met: |
@@ -112,107 +112,6 @@ class AstPrinter: public PrettyPrinter { |
int indent_; |
}; |
- |
-// Forward declaration of helper classes. |
-class TagScope; |
-class AttributesScope; |
- |
-// Build a C string containing a JSON representation of a function's |
-// AST. The representation is based on JsonML (www.jsonml.org). |
-class JsonAstBuilder: public PrettyPrinter { |
- public: |
- JsonAstBuilder() |
- : indent_(0), top_tag_scope_(NULL), attributes_scope_(NULL) { |
- } |
- virtual ~JsonAstBuilder() {} |
- |
- // Controls the indentation of subsequent lines of a tag body after |
- // the first line. |
- static const int kTagIndentSize = 2; |
- |
- // Controls the indentation of subsequent lines of an attributes |
- // blocks's body after the first line. |
- static const int kAttributesIndentSize = 1; |
- |
- // Construct a JSON representation of a function literal. |
- const char* BuildProgram(FunctionLiteral* program); |
- |
- // Print text indented by the current indentation level. |
- void PrintIndented(const char* text) { Print("%*s%s", indent_, "", text); } |
- |
- // Change the indentation level. |
- void increase_indent(int amount) { indent_ += amount; } |
- void decrease_indent(int amount) { indent_ -= amount; } |
- |
- // The builder maintains a stack of opened AST node constructors. |
- // Each node constructor corresponds to a JsonML tag. |
- TagScope* tag() { return top_tag_scope_; } |
- void set_tag(TagScope* scope) { top_tag_scope_ = scope; } |
- |
- // The builder maintains a pointer to the currently opened attributes |
- // of current AST node or NULL if the attributes are not opened. |
- AttributesScope* attributes() { return attributes_scope_; } |
- void set_attributes(AttributesScope* scope) { attributes_scope_ = scope; } |
- |
- // Add an attribute to the currently opened attributes. |
- void AddAttribute(const char* name, Handle<String> value); |
- void AddAttribute(const char* name, const char* value); |
- void AddAttribute(const char* name, int value); |
- void AddAttribute(const char* name, bool value); |
- |
- // AST node visit functions. |
-#define DECLARE_VISIT(type) virtual void Visit##type(type* node); |
- AST_NODE_LIST(DECLARE_VISIT) |
-#undef DECLARE_VISIT |
- |
- private: |
- int indent_; |
- TagScope* top_tag_scope_; |
- AttributesScope* attributes_scope_; |
- |
- // Utility function used by AddAttribute implementations. |
- void AddAttributePrefix(const char* name); |
-}; |
- |
- |
-// The JSON AST builder keeps a stack of open element tags (AST node |
-// constructors from the current iteration point to the root of the |
-// AST). TagScope is a helper class to manage the opening and closing |
-// of tags, the indentation of their bodies, and comma separating their |
-// contents. |
-class TagScope BASE_EMBEDDED { |
- public: |
- TagScope(JsonAstBuilder* builder, const char* name); |
- ~TagScope(); |
- |
- void use() { has_body_ = true; } |
- |
- private: |
- JsonAstBuilder* builder_; |
- TagScope* next_; |
- bool has_body_; |
-}; |
- |
- |
-// AttributesScope is a helper class to manage the opening and closing |
-// of attribute blocks, the indentation of their bodies, and comma |
-// separating their contents. JsonAstBuilder::AddAttribute adds an |
-// attribute to the currently open AttributesScope. They cannot be |
-// nested so the builder keeps an optional single scope rather than a |
-// stack. |
-class AttributesScope BASE_EMBEDDED { |
- public: |
- explicit AttributesScope(JsonAstBuilder* builder); |
- ~AttributesScope(); |
- |
- bool is_used() { return attribute_count_ > 0; } |
- void use() { ++attribute_count_; } |
- |
- private: |
- JsonAstBuilder* builder_; |
- int attribute_count_; |
-}; |
- |
#endif // DEBUG |
} } // namespace v8::internal |