aboutsummaryrefslogtreecommitdiffstats
path: root/src/parser.rs
diff options
context:
space:
mode:
authorPhilipp A2019-03-31 23:22:03 +0200
committerPhilipp A2019-03-31 23:22:03 +0200
commitd6cc93c02ceb4730375df9a0ca4ae2ea01391737 (patch)
treee4c6dc433298bf71a7f0b1216ed5bd865801857b /src/parser.rs
parent4e22848e3faa255c34fdc1b6503a88a02a7350c5 (diff)
downloadrust-rst-d6cc93c02ceb4730375df9a0ca4ae2ea01391737.tar.bz2
Add stub for ref resolution
Diffstat (limited to 'src/parser.rs')
-rw-r--r--src/parser.rs15
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)
}