about summary refs log tree commit diff
diff options
context:
space:
mode:
authorBrian Anderson <andersrb@gmail.com>2011-03-31 20:29:59 -0400
committerBrian Anderson <andersrb@gmail.com>2011-03-31 23:15:11 -0400
commitd631f29d47578c46bfc01e1a8cc021b295866e0c (patch)
tree5c219e2ce30fecadf033d6c710bc32ba1f58e7dd
parent2490cd327514471c8e7fb56a9fba2c2304c04552 (diff)
Add block_to_str and expr_to_str methods to the pprust module.
Since pprust is authed impure these can be used for debug logging.
-rw-r--r--src/comp/pretty/pprust.rs18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/comp/pretty/pprust.rs b/src/comp/pretty/pprust.rs
index d478227ce22..f3b0f3fe979 100644
--- a/src/comp/pretty/pprust.rs
+++ b/src/comp/pretty/pprust.rs
@@ -32,6 +32,24 @@ fn ty_to_str(&@ast.ty ty) -> str {
     ret writer.get_str();
 }
 
+fn block_to_str(&ast.block blk) -> str {
+    auto writer = io.string_writer();
+    auto s = @rec(s=pp.mkstate(writer.get_writer(), 78u),
+                  comments=option.none[vec[lexer.cmnt]],
+                  mutable cur_cmnt=0u);
+    print_block(s, blk);
+    ret writer.get_str();
+}
+
+fn expr_to_str(&@ast.expr e) -> str {
+    auto writer = io.string_writer();
+    auto s = @rec(s=pp.mkstate(writer.get_writer(), 78u),
+                  comments=option.none[vec[lexer.cmnt]],
+                  mutable cur_cmnt=0u);
+    print_expr(s, e);
+    ret writer.get_str();
+}
+
 impure fn hbox(ps s) {
     pp.hbox(s.s, indent_unit);
 }