diff options
| author | Philipp A | 2019-12-26 23:01:00 +0100 | 
|---|---|---|
| committer | Philipp A | 2019-12-26 23:36:48 +0100 | 
| commit | a0e3c53758d526bb418c068bce1c99fa5a597ed3 (patch) | |
| tree | e640238b011a9ea7806ccccaf1a435e4b371a376 /parser/src/lib.rs | |
| parent | 7018f5d3c42f18b6c83f398db9f1915361a7c679 (diff) | |
| download | rust-rst-a0e3c53758d526bb418c068bce1c99fa5a597ed3.tar.bz2 | |
Split into smaller crates
Diffstat (limited to 'parser/src/lib.rs')
| -rw-r--r-- | parser/src/lib.rs | 28 | 
1 files changed, 28 insertions, 0 deletions
| diff --git a/parser/src/lib.rs b/parser/src/lib.rs new file mode 100644 index 0000000..23e97c7 --- /dev/null +++ b/parser/src/lib.rs @@ -0,0 +1,28 @@ +pub mod token; +mod conversion; +mod simplify; +mod pest_rst; +mod pair_ext_parse; +#[cfg(test)] +pub mod tests; + +use failure::Error; +use pest::Parser; + +use document_tree::Document; + +use self::pest_rst::{RstParser,Rule}; +use self::conversion::convert_document; +use self::simplify::resolve_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> { +	parse_only(source).map(resolve_references) +} | 
