aboutsummaryrefslogtreecommitdiffstats
path: root/src/parser/conversion/inline.rs
diff options
context:
space:
mode:
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))
+}