diff options
author | Ryo Nihei <nihei.dev@gmail.com> | 2022-05-13 22:40:50 +0900 |
---|---|---|
committer | Ryo Nihei <nihei.dev@gmail.com> | 2022-05-15 20:42:28 +0900 |
commit | 15ea142b25927d6f103ee6ddde4fe8a5e2324831 (patch) | |
tree | 8c83fc31ac7d5712374ee82681bea87e071c97fd /driver/parser_test.go | |
parent | Stop handling panic to print a stack trace (diff) | |
download | urubu-15ea142b25927d6f103ee6ddde4fe8a5e2324831.tar.gz urubu-15ea142b25927d6f103ee6ddde4fe8a5e2324831.tar.xz |
Prohibit using escape sequences in string literals
Diffstat (limited to 'driver/parser_test.go')
-rw-r--r-- | driver/parser_test.go | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/driver/parser_test.go b/driver/parser_test.go index 60dd3f4..dc1c141 100644 --- a/driver/parser_test.go +++ b/driver/parser_test.go @@ -114,6 +114,30 @@ id: "[A-Za-z_][0-9A-Za-z_]*"; ), ), }, + // Fragments (\f{}), code point expressions (\u{}), and character property expressions (\p{}) are + // not allowed in string literals. + { + specSrc: ` +#name test; + +s + : a b c + ; + +a + : '\f{foo}'; +b + : '\u{0000}'; +c + : '\p{gc=Letter}'; +`, + src: `\f{foo}\u{0000}\p{gc=Letter}`, + cst: nonTermNode("s", + termNode("a", `\f{foo}`), + termNode("b", `\u{0000}`), + termNode("c", `\p{gc=Letter}`), + ), + }, // The driver can reduce productions that have the empty alternative and can generate a CST (and AST) node. { specSrc: ` |