about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorBrian Anderson <banderson@mozilla.com>2012-01-15 14:16:55 -0800
committerBrian Anderson <banderson@mozilla.com>2012-01-16 01:07:41 -0800
commit0e65ddfaea1c25c0fb2f20a2d28ed782c1dff369 (patch)
tree7a1337816c2e2fb7f8b91d1a50bf48c077a498c9 /src
parente4d553c534e80442bed5ce63f74ca67112035d08 (diff)
downloadrust-0e65ddfaea1c25c0fb2f20a2d28ed782c1dff369.tar.gz
rust-0e65ddfaea1c25c0fb2f20a2d28ed782c1dff369.zip
rustdoc: Move AST parsing into the parse module
Diffstat (limited to 'src')
-rwxr-xr-xsrc/rustdoc/rustdoc.rs30
1 files changed, 18 insertions, 12 deletions
diff --git a/src/rustdoc/rustdoc.rs b/src/rustdoc/rustdoc.rs
index 1635d1062fd..abcc5cb6358 100755
--- a/src/rustdoc/rustdoc.rs
+++ b/src/rustdoc/rustdoc.rs
@@ -177,6 +177,18 @@ fn doc_header(rd: rustdoc, name: str) {
     rd.w.write_line("# Crate " + name);
 }
 
+mod parse {
+    fn from_file(file: str) -> @ast::crate {
+        let cm = codemap::new_codemap();
+        let sess = @{
+            cm: cm,
+            mutable next_id: 0,
+            diagnostic: diagnostic::mk_handler(cm, none)
+        };
+        parser::parse_crate_from_source_file(file, [], sess)
+    }
+}
+
 #[doc(
   brief = "Main function.",
   desc = "Command-line arguments:
@@ -184,27 +196,21 @@ fn doc_header(rd: rustdoc, name: str) {
 *  argv[1]: crate file name",
   args(argv = "Command-line arguments.")
 )]
-
 fn main(argv: [str]) {
 
-    let w = io::stdout();
-
     if vec::len(argv) != 2u {
-        w.write_str(#fmt("usage: %s <input>\n", argv[0]));
+        io::println(#fmt("usage: %s <input>", argv[0]));
         ret;
     }
 
-    let cm = codemap::new_codemap();
-    let sess = @{
-        cm: cm,
-        mutable next_id: 0,
-        diagnostic: diagnostic::mk_handler(cm, none)
-    };
+    let crate = parse::from_file(argv[1]);
+
+    let w = io::stdout();
     let rd = { ps: pprust::rust_printer(w), w: w };
     doc_header(rd, argv[1]);
-    let p = parser::parse_crate_from_source_file(argv[1], [], sess);
+
     let v = visit::mk_simple_visitor(@{
         visit_item: bind doc_item(rd, _)
         with *visit::default_simple_visitor()});
-    visit::visit_crate(*p, (), v);
+    visit::visit_crate(*crate, (), v);
 }