aboutsummaryrefslogtreecommitdiffstats
path: root/parser/src
diff options
context:
space:
mode:
authorPhilipp A2020-06-03 15:17:53 +0200
committerPhilipp A2020-06-03 15:19:28 +0200
commit6c41888d2b1ee84a5ac7ccded3b15743176289c9 (patch)
treede2c24bbb1a02e49d95536a0c13295afd4ef15b4 /parser/src
parentef64405f2b57f87f16cbd0e4ceaf13dcf280c47e (diff)
downloadrust-rst-6c41888d2b1ee84a5ac7ccded3b15743176289c9.tar.bz2
Handle in-word underscoresv0.3.2-parser
Diffstat (limited to 'parser/src')
-rw-r--r--parser/src/rst.pest2
-rw-r--r--parser/src/tests.rs12
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() {