diff options
| author | Brian Anderson <banderson@mozilla.com> | 2012-01-15 14:16:55 -0800 |
|---|---|---|
| committer | Brian Anderson <banderson@mozilla.com> | 2012-01-16 01:07:41 -0800 |
| commit | 0e65ddfaea1c25c0fb2f20a2d28ed782c1dff369 (patch) | |
| tree | 7a1337816c2e2fb7f8b91d1a50bf48c077a498c9 /src | |
| parent | e4d553c534e80442bed5ce63f74ca67112035d08 (diff) | |
| download | rust-0e65ddfaea1c25c0fb2f20a2d28ed782c1dff369.tar.gz rust-0e65ddfaea1c25c0fb2f20a2d28ed782c1dff369.zip | |
rustdoc: Move AST parsing into the parse module
Diffstat (limited to 'src')
| -rwxr-xr-x | src/rustdoc/rustdoc.rs | 30 |
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); } |
