27 lines
751 B
Plaintext
27 lines
751 B
Plaintext
# Matches various kinds of string literals
|
|
|
|
# Double-quoted string
|
|
dqstring -> "\"" dstrchar:* "\"" {% function(d) {return d[1].join(""); } %}
|
|
sqstring -> "'" sstrchar:* "'" {% function(d) {return d[1].join(""); } %}
|
|
btstring -> "`" [^`]:* "`" {% function(d) {return d[1].join(""); } %}
|
|
|
|
dstrchar -> [^\\"\n] {% id %}
|
|
| "\\" strescape {%
|
|
function(d) {
|
|
return JSON.parse("\""+d.join("")+"\"");
|
|
}
|
|
%}
|
|
|
|
sstrchar -> [^\\'\n] {% id %}
|
|
| "\\" strescape
|
|
{% function(d) { return JSON.parse("\""+d.join("")+"\""); } %}
|
|
| "\\'"
|
|
{% function(d) {return "'"; } %}
|
|
|
|
strescape -> ["\\/bfnrt] {% id %}
|
|
| "u" [a-fA-F0-9] [a-fA-F0-9] [a-fA-F0-9] [a-fA-F0-9] {%
|
|
function(d) {
|
|
return d.join("");
|
|
}
|
|
%}
|