diff options
Diffstat (limited to 'parser/src')
| -rw-r--r-- | parser/src/rst.pest | 2 | ||||
| -rw-r--r-- | parser/src/tests.rs | 12 | 
2 files changed, 13 insertions, 1 deletions
| diff --git a/parser/src/rst.pest b/parser/src/rst.pest index 18708c2..2f17381 100644 --- a/parser/src/rst.pest +++ b/parser/src/rst.pest @@ -148,7 +148,7 @@ literal       =  { (!("`"|" ") ~ inline_nested)+ ~ (" "+ ~ (!("`"|" ") ~ inline_  // inline links  reference = { reference_target | reference_explicit | reference_auto } -reference_target = { reference_target_uq ~ "_" | reference_target_qu } +reference_target = { (reference_target_uq ~ "_" | reference_target_qu) ~ !(LETTER|NUMBER) }  reference_target_uq =  { (!("_"|":"|"`") ~ nonspacechar)+ }  reference_target_qu = { ( !("`"? ~ "`_") ~ "`" ~ !"``" ) ~ reference_text? ~ ("<" ~ reference_bracketed ~ ">")? ~ ( "`" ~ !"``" ) ~ "_" }  reference_text = { !"<" ~ ( !("`"|"<") ~ ANY )+ } diff --git a/parser/src/tests.rs b/parser/src/tests.rs index b4da633..79438e0 100644 --- a/parser/src/tests.rs +++ b/parser/src/tests.rs @@ -104,6 +104,18 @@ fn two_targets() {  	};  } +#[test] +fn inline_code_literal_with_underscore() { +    parses_to! { +        parser: RstParser, +        input: "``NAME_WITH_UNDERSCORE``", +        rule: Rule::inline, +        tokens: [ +            literal(2, 22, [str_nested(2, 22)]), +        ] +    }; +} +  #[allow(clippy::cognitive_complexity)]  #[test]  fn admonitions() { | 
