aboutsummaryrefslogtreecommitdiffstats
path: root/src/parser
diff options
context:
space:
mode:
Diffstat (limited to 'src/parser')
-rw-r--r--src/parser/conversion/inline.rs24
-rw-r--r--src/parser/tests.rs17
2 files changed, 25 insertions, 16 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!()
- }
+ ))
}
diff --git a/src/parser/tests.rs b/src/parser/tests.rs
index a3df64c..bf9fe22 100644
--- a/src/parser/tests.rs
+++ b/src/parser/tests.rs
@@ -17,6 +17,21 @@ fn plain() {
}
#[test]
+fn emph() {
+ parses_to! {
+ parser: RstParser,
+ input: "line *with markup*\n",
+ rule: Rule::paragraph,
+ tokens: [
+ paragraph(0, 18, [
+ str(0, 5),
+ emph(6, 17),
+ ])
+ ]
+ };
+}
+
+#[test]
fn title() {
parses_to! {
parser: RstParser,
@@ -125,7 +140,7 @@ A |subst| in-line
tokens: [
paragraph(0, 17, [
str(0, 2),
- substitution_ref(2, 9, [ substitution_name(3, 8) ]),
+ substitution_name(3, 8),
str(9, 17),
]),
substitution_def(19, 52, [