diff options
| author | Philipp A | 2019-03-31 23:22:03 +0200 |
|---|---|---|
| committer | Philipp A | 2019-03-31 23:22:03 +0200 |
| commit | d6cc93c02ceb4730375df9a0ca4ae2ea01391737 (patch) | |
| tree | e4c6dc433298bf71a7f0b1216ed5bd865801857b /src/parser.rs | |
| parent | 4e22848e3faa255c34fdc1b6503a88a02a7350c5 (diff) | |
| download | rust-rst-d6cc93c02ceb4730375df9a0ca4ae2ea01391737.tar.bz2 | |
Add stub for ref resolution
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) } |
