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.rs24
1 files changed, 9 insertions, 15 deletions
diff --git a/src/parser/conversion/inline.rs b/src/parser/conversion/inline.rs
index 94f99b4..79e6f12 100644
--- a/src/parser/conversion/inline.rs
+++ b/src/parser/conversion/inline.rs
@@ -19,9 +19,9 @@ use super::whitespace_normalize_name;
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)?,
- Rule::substitution_ref => convert_substitution(pair)?.into(),
+ Rule::str => pair.as_str().into(),
+ Rule::reference => convert_reference(pair)?,
+ Rule::substitution_ref => convert_substitution_ref(pair)?.into(),
rule => unimplemented!("unknown rule {:?}", rule),
})
}
@@ -142,17 +142,11 @@ fn convert_reference(pair: Pair<Rule>) -> Result<c::TextOrInlineElement, Error>
).into())
}
-fn convert_substitution(pair: Pair<Rule>) -> Result<e::SubstitutionReference, Error> {
- let concrete = pair.into_inner().next().unwrap();
- match concrete.as_rule() {
- Rule::substitution_name => {
- let name = whitespace_normalize_name(concrete.as_str());
- Ok(a::ExtraAttributes::with_extra(
- a::SubstitutionReference {
- refname: vec![at::NameToken(name)]
- }
- ))
+fn convert_substitution_ref(pair: Pair<Rule>) -> Result<e::SubstitutionReference, Error> {
+ let name = whitespace_normalize_name(pair.as_str());
+ Ok(a::ExtraAttributes::with_extra(
+ a::SubstitutionReference {
+ refname: vec![at::NameToken(name)]
}
- _ => unreachable!()
- }
+ ))
}