diff options
| author | Philipp A | 2020-06-03 15:17:53 +0200 |
|---|---|---|
| committer | Philipp A | 2020-06-03 15:19:28 +0200 |
| commit | 6c41888d2b1ee84a5ac7ccded3b15743176289c9 (patch) | |
| tree | de2c24bbb1a02e49d95536a0c13295afd4ef15b4 | |
| parent | ef64405f2b57f87f16cbd0e4ceaf13dcf280c47e (diff) | |
| download | rust-rst-6c41888d2b1ee84a5ac7ccded3b15743176289c9.tar.bz2 | |
Handle in-word underscoresv0.3.2-parser
| -rw-r--r-- | parser/Cargo.toml | 2 | ||||
| -rw-r--r-- | parser/src/rst.pest | 2 | ||||
| -rw-r--r-- | parser/src/tests.rs | 12 |
3 files changed, 14 insertions, 2 deletions
diff --git a/parser/Cargo.toml b/parser/Cargo.toml index f208f22..18e38ae 100644 --- a/parser/Cargo.toml +++ b/parser/Cargo.toml @@ -1,6 +1,6 @@ [package] name = 'rst_parser' -version = '0.3.1' +version = '0.3.2' authors = ['Philipp A. <flying-sheep@web.de>'] edition = '2018' description = 'a reStructuredText parser' 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() { |
