aboutsummaryrefslogtreecommitdiffstats
path: root/src/parser/conversion/inline.rs
diff options
context:
space:
mode:
authorPhilipp A2018-12-02 17:22:51 +0100
committerPhilipp A2018-12-02 17:22:51 +0100
commitd067cee68744691f3aebd939befc9837247e639c (patch)
tree6f8ff1ba9617a6f55f7c667457c0f009f01300fe /src/parser/conversion/inline.rs
parentc7bf1a581871a5bb13195d116d9dc7b83eb83c3a (diff)
downloadrust-rst-d067cee68744691f3aebd939befc9837247e639c.tar.bz2
First bit of inlines parsing
Diffstat (limited to 'src/parser/conversion/inline.rs')
-rw-r--r--src/parser/conversion/inline.rs38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/parser/conversion/inline.rs b/src/parser/conversion/inline.rs
new file mode 100644
index 0000000..0b6f659
--- /dev/null
+++ b/src/parser/conversion/inline.rs
@@ -0,0 +1,38 @@
+use failure::Error;
+use pest::iterators::Pair;
+
+use crate::document_tree::{
+ ExtraAttributes,
+ elements as e,
+ element_categories as c,
+// attribute_types::ID,
+ extra_attributes as a,
+};
+
+use crate::parser::{
+ pest_rst::Rule,
+// pair_ext_parse::PairExt,
+};
+
+
+pub fn convert_inline(pair: Pair<Rule>) -> Result<c::TextOrInlineElement, Error> {
+ Ok(match pair.as_rule() {
+ Rule::str => pair.as_str().into(),
+ Rule::reference => convert_reference(pair)?.into(),
+ rule => panic!("unknown rule {:?}", rule),
+ })
+}
+
+fn convert_reference(pair: Pair<Rule>) -> Result<e::Reference, Error> {
+ let name = None;
+ let uri = None;
+ let id = None;
+ let name_tokens = vec![];
+ let extra = a::Reference {
+ name: name,
+ refuri: uri,
+ refid: id,
+ refname: name_tokens,
+ };
+ Ok(e::Reference::with_extra(extra))
+}