summaryrefslogtreecommitdiff
path: root/vala/valaparser.vala
diff options
context:
space:
mode:
author星外之神 <wszqkzqk@qq.com>2022-10-28 23:47:56 +0800
committerRico Tzschichholz <ricotz@ubuntu.com>2022-10-30 16:11:11 +0100
commit3c3ee793b499be959b3ed7f1f74014713382a438 (patch)
treefeb077276aa853d7d7d05659e4689c24a6f231cd /vala/valaparser.vala
parent2b69b8accac817f23bd51ca41d14deec131d83c5 (diff)
downloadvala-3c3ee793b499be959b3ed7f1f74014713382a438.tar.gz
vala: Add support for verbatim template string
Fixes https://gitlab.gnome.org/GNOME/vala/issues/1373
Diffstat (limited to 'vala/valaparser.vala')
-rw-r--r--vala/valaparser.vala7
1 files changed, 7 insertions, 0 deletions
diff --git a/vala/valaparser.vala b/vala/valaparser.vala
index f703e9c86..23b1e7db4 100644
--- a/vala/valaparser.vala
+++ b/vala/valaparser.vala
@@ -384,6 +384,11 @@ public class Vala.Parser : CodeVisitor {
string raw_string = get_last_string ();
string escaped_string = raw_string.substring (3, raw_string.length - 6).escape ("");
return new StringLiteral ("\"%s\"".printf (escaped_string), get_src (begin));
+ case TokenType.VERBATIM_TEMPLATE_STRING_LITERAL:
+ next ();
+ string raw_string = get_last_string ();
+ string escaped_string = raw_string.escape ("");
+ return new StringLiteral ("\"%s\"".printf (escaped_string), get_src (begin));
case TokenType.NULL:
next ();
return new NullLiteral (get_src (begin));
@@ -719,6 +724,7 @@ public class Vala.Parser : CodeVisitor {
case TokenType.REGEX_LITERAL:
case TokenType.TEMPLATE_STRING_LITERAL:
case TokenType.VERBATIM_STRING_LITERAL:
+ case TokenType.VERBATIM_TEMPLATE_STRING_LITERAL:
case TokenType.NULL:
expr = parse_literal ();
break;
@@ -1269,6 +1275,7 @@ public class Vala.Parser : CodeVisitor {
case TokenType.STRING_LITERAL:
case TokenType.TEMPLATE_STRING_LITERAL:
case TokenType.VERBATIM_STRING_LITERAL:
+ case TokenType.VERBATIM_TEMPLATE_STRING_LITERAL:
case TokenType.REGEX_LITERAL:
case TokenType.NULL:
case TokenType.THIS: