about summary refs log tree commit diff
path: root/src/rustdoc/parse.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/rustdoc/parse.rs')
-rw-r--r--src/rustdoc/parse.rs17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/rustdoc/parse.rs b/src/rustdoc/parse.rs
index e31249df1b0..5bc867dd036 100644
--- a/src/rustdoc/parse.rs
+++ b/src/rustdoc/parse.rs
@@ -1,11 +1,13 @@
 #[doc = "AST-parsing helpers"];
 
+import rustc::driver::driver;
+import rustc::driver::session;
 import rustc::driver::diagnostic;
 import rustc::syntax::ast;
 import rustc::syntax::codemap;
 import rustc::syntax::parse::parser;
 
-export from_file, from_str;
+export from_file, from_str, from_file_sess, from_str_sess;
 
 fn new_parse_sess() -> parser::parse_sess {
     let cm = codemap::new_codemap();
@@ -29,3 +31,16 @@ fn from_str(source: str) -> @ast::crate {
     parser::parse_crate_from_source_str(
         "-", @source, [], new_parse_sess())
 }
+
+fn from_file_sess(sess: session::session, file: str) -> @ast::crate {
+    parser::parse_crate_from_file(file, cfg(sess), sess.parse_sess)
+}
+
+fn from_str_sess(sess: session::session, source: str) -> @ast::crate {
+    parser::parse_crate_from_source_str(
+        "-", @source, cfg(sess), sess.parse_sess)
+}
+
+fn cfg(sess: session::session) -> ast::crate_cfg {
+    driver::default_configuration(sess, "rustdoc", "<anon>")
+}
\ No newline at end of file