about summary refs log tree commit diff
path: root/src/rustdoc
diff options
context:
space:
mode:
authorBrian Anderson <banderson@mozilla.com>2012-01-17 16:12:50 -0800
committerBrian Anderson <banderson@mozilla.com>2012-01-17 16:31:26 -0800
commit637f19965f1dbd2d8da2fc79009e0fc4fd069fe8 (patch)
treed689bca447f5612bfedf81e0c59b7038d29f33cb /src/rustdoc
parenta6bdaee7f915f126921d253d9e102bd08026989d (diff)
downloadrust-637f19965f1dbd2d8da2fc79009e0fc4fd069fe8.tar.gz
rust-637f19965f1dbd2d8da2fc79009e0fc4fd069fe8.zip
rustdoc: Convert markdown generation to a pass
Diffstat (limited to 'src/rustdoc')
-rw-r--r--src/rustdoc/attr_pass.rs6
-rw-r--r--src/rustdoc/gen.rs14
-rw-r--r--src/rustdoc/prune_undoc_pass.rs6
-rwxr-xr-xsrc/rustdoc/rustdoc.rs10
-rw-r--r--src/rustdoc/tystr_pass.rs6
5 files changed, 33 insertions, 9 deletions
diff --git a/src/rustdoc/attr_pass.rs b/src/rustdoc/attr_pass.rs
index 96cca34ea12..53304341778 100644
--- a/src/rustdoc/attr_pass.rs
+++ b/src/rustdoc/attr_pass.rs
@@ -1,7 +1,11 @@
 import rustc::syntax::ast;
 import rustc::middle::ast_map;
 
-export run;
+export mk_pass;
+
+fn mk_pass() -> pass {
+    run
+}
 
 fn run(
     srv: astsrv::srv,
diff --git a/src/rustdoc/gen.rs b/src/rustdoc/gen.rs
index fecfbed8e36..2366f818246 100644
--- a/src/rustdoc/gen.rs
+++ b/src/rustdoc/gen.rs
@@ -1,7 +1,19 @@
 import std::io;
 import std::io::writer_util;
 
-export write_markdown;
+export mk_pass;
+
+fn mk_pass(
+    writer: fn~() -> io::writer
+) -> pass {
+    ret fn~(
+        _srv: astsrv::srv,
+        doc: doc::cratedoc
+    ) -> doc::cratedoc {
+        write_markdown(doc, writer());
+        doc
+    };
+}
 
 type ctxt = {
     w: io::writer,
diff --git a/src/rustdoc/prune_undoc_pass.rs b/src/rustdoc/prune_undoc_pass.rs
index af9ab970823..527c8828033 100644
--- a/src/rustdoc/prune_undoc_pass.rs
+++ b/src/rustdoc/prune_undoc_pass.rs
@@ -1,4 +1,8 @@
-export run;
+export mk_pass;
+
+fn mk_pass() -> pass {
+    run
+}
 
 type ctxt = {
     mutable have_docs: bool
diff --git a/src/rustdoc/rustdoc.rs b/src/rustdoc/rustdoc.rs
index c89a221f0f7..afcacbd5556 100755
--- a/src/rustdoc/rustdoc.rs
+++ b/src/rustdoc/rustdoc.rs
@@ -74,11 +74,11 @@ fn run(source_file: str) {
     let default_name = source_file;
     let srv = astsrv::mk_srv_from_file(source_file);
     let doc = extract::from_srv(srv, default_name);
-    let doc = run_passes(srv, doc, [
-        attr_pass::run,
+    run_passes(srv, doc, [
+        attr_pass::mk_pass(),
         // FIXME: This pass should be optional
-        prune_undoc_pass::run,
-        tystr_pass::run
+        prune_undoc_pass::mk_pass(),
+        tystr_pass::mk_pass(),
+        gen::mk_pass {|| std::io:: stdout()}
     ]);
-    gen::write_markdown(doc, std::io::stdout());
 }
\ No newline at end of file
diff --git a/src/rustdoc/tystr_pass.rs b/src/rustdoc/tystr_pass.rs
index 4a06aec5b24..e31a208d1d1 100644
--- a/src/rustdoc/tystr_pass.rs
+++ b/src/rustdoc/tystr_pass.rs
@@ -2,7 +2,11 @@ import rustc::syntax::ast;
 import rustc::syntax::print::pprust;
 import rustc::middle::ast_map;
 
-export run;
+export mk_pass;
+
+fn mk_pass() -> pass {
+    run
+}
 
 fn run(
     srv: astsrv::srv,