diff options
Diffstat (limited to 'src/parser.rs')
| -rw-r--r-- | src/parser.rs | 15 | 
1 files changed, 11 insertions, 4 deletions
| diff --git a/src/parser.rs b/src/parser.rs index 89e6827..b2512cc 100644 --- a/src/parser.rs +++ b/src/parser.rs @@ -1,5 +1,6 @@  pub mod token;  pub mod conversion; +mod simplify;  mod pest_rst;  mod pair_ext_parse;  #[cfg(test)] @@ -8,14 +9,20 @@ pub mod tests;  use failure::Error;  use pest::Parser; -use crate::document_tree::elements::Document; +use crate::document_tree::Document;  use self::pest_rst::{RstParser,Rule};  use self::conversion::convert_document; +use self::simplify::resolve_references; -/// tokens to Document tree. resolves sections, but not references +/// Parse into a document tree and resolve sections, but not references. +pub fn parse_only(source: &str) -> Result<Document, Error> { +	let pairs = RstParser::parse(Rule::document, source)?; +	convert_document(pairs) +} + +/// Parse into a document tree and resolve sections and references.   pub fn parse(source: &str) -> Result<Document, Error> { -    let pairs = RstParser::parse(Rule::document, source)?; -    convert_document(pairs) +	parse_only(source).map(resolve_references)  } | 
