Added support for AWK (#3375)
This commit is contained in:
parent
33f2cf9510
commit
a1340666e0
File diff suppressed because one or more lines are too long
|
@ -330,6 +330,10 @@
|
||||||
"title": "CSV",
|
"title": "CSV",
|
||||||
"owner": "RunDevelopment"
|
"owner": "RunDevelopment"
|
||||||
},
|
},
|
||||||
|
"cue": {
|
||||||
|
"title": "CUE",
|
||||||
|
"owner": "RunDevelopment"
|
||||||
|
},
|
||||||
"cypher": {
|
"cypher": {
|
||||||
"title": "Cypher",
|
"title": "Cypher",
|
||||||
"owner": "RunDevelopment"
|
"owner": "RunDevelopment"
|
||||||
|
|
|
@ -0,0 +1,84 @@
|
||||||
|
(function (Prism) {
|
||||||
|
|
||||||
|
// https://cuelang.org/docs/references/spec/
|
||||||
|
|
||||||
|
// eslint-disable-next-line regexp/strict
|
||||||
|
var stringEscape = /\\(?:(?!\2)|\2(?:[^()\r\n]|\([^()]*\)))/.source;
|
||||||
|
// eslint-disable-next-line regexp/strict
|
||||||
|
var stringTypes = /"""(?:[^\\"]|"(?!""\2)|<esc>)*"""/.source +
|
||||||
|
// eslint-disable-next-line regexp/strict
|
||||||
|
'|' + /'''(?:[^\\']|'(?!''\2)|<esc>)*'''/.source +
|
||||||
|
// eslint-disable-next-line regexp/strict
|
||||||
|
'|' + /"(?:[^\\\r\n"]|"(?!\2)|<esc>)*"/.source +
|
||||||
|
// eslint-disable-next-line regexp/strict
|
||||||
|
'|' + /'(?:[^\\\r\n']|'(?!\2)|<esc>)*'/.source;
|
||||||
|
var stringLiteral = '(?:' + stringTypes.replace(/<esc>/g, stringEscape) + ')';
|
||||||
|
|
||||||
|
Prism.languages.cue = {
|
||||||
|
'comment': {
|
||||||
|
pattern: /\/\/.*/,
|
||||||
|
greedy: true
|
||||||
|
},
|
||||||
|
'string-literal': {
|
||||||
|
// eslint-disable-next-line regexp/strict
|
||||||
|
pattern: RegExp(/(^|[^#"'\\])(#*)/.source + stringLiteral + /(?!["'])\2/.source),
|
||||||
|
lookbehind: true,
|
||||||
|
greedy: true,
|
||||||
|
inside: {
|
||||||
|
// I'm using dirty hack here. We have to know the number hashes at the start of the string somehow,
|
||||||
|
// but we can't look back. So instead, we will use a lookahead, go to the end of the string, and
|
||||||
|
// capture the hashes at the end of the string.
|
||||||
|
'escape': {
|
||||||
|
pattern: /(?=[\s\S]*["'](#*)$)\\\1(?:U[a-fA-F0-9]{1,8}|u[a-fA-F0-9]{1,4}|x[a-fA-F0-9]{1,2}|\d{2,3}|[^(])/,
|
||||||
|
greedy: true,
|
||||||
|
alias: 'string'
|
||||||
|
},
|
||||||
|
'interpolation': {
|
||||||
|
pattern: /(?=[\s\S]*["'](#*)$)\\\1\([^()]*\)/,
|
||||||
|
greedy: true,
|
||||||
|
inside: {
|
||||||
|
'punctuation': /^\\#*\(|\)$/,
|
||||||
|
'expression': {
|
||||||
|
pattern: /[\s\S]+/,
|
||||||
|
inside: null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
'string': /[\s\S]+/
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
'keyword': {
|
||||||
|
pattern: /(^|[^\w$])(?:for|if|import|in|let|null|package)(?![\w$])/,
|
||||||
|
lookbehind: true
|
||||||
|
},
|
||||||
|
'boolean': {
|
||||||
|
pattern: /(^|[^\w$])(?:false|true)(?![\w$])/,
|
||||||
|
lookbehind: true
|
||||||
|
},
|
||||||
|
'builtin': {
|
||||||
|
pattern: /(^|[^\w$])(?:bool|bytes|float|float(?:32|64)|u?int(?:8|16|32|64|128)?|number|rune|string)(?![\w$])/,
|
||||||
|
lookbehind: true
|
||||||
|
},
|
||||||
|
|
||||||
|
'attribute': {
|
||||||
|
pattern: /@[\w$]+(?=\s*\()/,
|
||||||
|
alias: 'function'
|
||||||
|
},
|
||||||
|
'function': {
|
||||||
|
pattern: /(^|[^\w$])[a-z_$][\w$]*(?=\s*\()/i,
|
||||||
|
lookbehind: true
|
||||||
|
},
|
||||||
|
|
||||||
|
'number': {
|
||||||
|
pattern: /(^|[^\w$.])(?:0b[01]+(?:_[01]+)*|0o[0-7]+(?:_[0-7]+)*|0[xX][0-9A-Fa-f]+(?:_[0-9A-Fa-f]+)*|(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[eE][+-]?\d+(?:_\d+)*)?(?:[KMGTP]i?)?)(?![\w$])/,
|
||||||
|
lookbehind: true
|
||||||
|
},
|
||||||
|
|
||||||
|
'operator': /\.{3}|_\|_|&&?|\|\|?|[=!]~|[<>=!]=?|[+\-*/?]/,
|
||||||
|
'punctuation': /[()[\]{},.:]/
|
||||||
|
};
|
||||||
|
|
||||||
|
Prism.languages.cue['string-literal'].inside.interpolation.inside.expression.inside = Prism.languages.cue;
|
||||||
|
|
||||||
|
}(Prism));
|
|
@ -0,0 +1 @@
|
||||||
|
!function(e){var n="(?:"+('"""(?:[^\\\\"]|"(?!""\\2)|<esc>)*"""|'+"'''(?:[^\\\\']|'(?!''\\2)|<esc>)*'''|\"(?:[^\\\\\r\n\"]|\"(?!\\2)|<esc>)*\"|'(?:[^\\\\\r\n']|'(?!\\2)|<esc>)*'").replace(/<esc>/g,"\\\\(?:(?!\\2)|\\2(?:[^()\r\n]|\\([^()]*\\)))")+")";e.languages.cue={comment:{pattern:/\/\/.*/,greedy:!0},"string-literal":{pattern:RegExp("(^|[^#\"'\\\\])(#*)"+n+"(?![\"'])\\2"),lookbehind:!0,greedy:!0,inside:{escape:{pattern:/(?=[\s\S]*["'](#*)$)\\\1(?:U[a-fA-F0-9]{1,8}|u[a-fA-F0-9]{1,4}|x[a-fA-F0-9]{1,2}|\d{2,3}|[^(])/,greedy:!0,alias:"string"},interpolation:{pattern:/(?=[\s\S]*["'](#*)$)\\\1\([^()]*\)/,greedy:!0,inside:{punctuation:/^\\#*\(|\)$/,expression:{pattern:/[\s\S]+/,inside:null}}},string:/[\s\S]+/}},keyword:{pattern:/(^|[^\w$])(?:for|if|import|in|let|null|package)(?![\w$])/,lookbehind:!0},boolean:{pattern:/(^|[^\w$])(?:false|true)(?![\w$])/,lookbehind:!0},builtin:{pattern:/(^|[^\w$])(?:bool|bytes|float|float(?:32|64)|u?int(?:8|16|32|64|128)?|number|rune|string)(?![\w$])/,lookbehind:!0},attribute:{pattern:/@[\w$]+(?=\s*\()/,alias:"function"},function:{pattern:/(^|[^\w$])[a-z_$][\w$]*(?=\s*\()/i,lookbehind:!0},number:{pattern:/(^|[^\w$.])(?:0b[01]+(?:_[01]+)*|0o[0-7]+(?:_[0-7]+)*|0[xX][0-9A-Fa-f]+(?:_[0-9A-Fa-f]+)*|(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[eE][+-]?\d+(?:_\d+)*)?(?:[KMGTP]i?)?)(?![\w$])/,lookbehind:!0},operator:/\.{3}|_\|_|&&?|\|\|?|[=!]~|[<>=!]=?|[+\-*/?]/,punctuation:/[()[\]{},.:]/},e.languages.cue["string-literal"].inside.interpolation.inside.expression.inside=e.languages.cue}(Prism);
|
|
@ -0,0 +1,23 @@
|
||||||
|
<h2>Full example</h2>
|
||||||
|
<pre><code>#Spec: {
|
||||||
|
kind: string
|
||||||
|
|
||||||
|
name: {
|
||||||
|
first: !="" // must be specified and non-empty
|
||||||
|
middle?: !="" // optional, but must be non-empty when specified
|
||||||
|
last: !=""
|
||||||
|
}
|
||||||
|
|
||||||
|
// The minimum must be strictly smaller than the maximum and vice versa.
|
||||||
|
minimum?: int & <maximum
|
||||||
|
maximum?: int & >minimum
|
||||||
|
}
|
||||||
|
|
||||||
|
// A spec is of type #Spec
|
||||||
|
spec: #Spec
|
||||||
|
spec: {
|
||||||
|
knid: "Homo Sapiens" // error, misspelled field
|
||||||
|
|
||||||
|
name: first: "Jane"
|
||||||
|
name: last: "Doe"
|
||||||
|
}</code></pre>
|
|
@ -71,6 +71,7 @@
|
||||||
"csp": "Content-Security-Policy",
|
"csp": "Content-Security-Policy",
|
||||||
"css-extras": "CSS Extras",
|
"css-extras": "CSS Extras",
|
||||||
"csv": "CSV",
|
"csv": "CSV",
|
||||||
|
"cue": "CUE",
|
||||||
"dataweave": "DataWeave",
|
"dataweave": "DataWeave",
|
||||||
"dax": "DAX",
|
"dax": "DAX",
|
||||||
"django": "Django/Jinja2",
|
"django": "Django/Jinja2",
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,20 @@
|
||||||
|
@protobuf(proto3)
|
||||||
|
@jsonschema(id="https://example.org/mystruct1.json")
|
||||||
|
|
||||||
|
----------------------------------------------------
|
||||||
|
|
||||||
|
[
|
||||||
|
["attribute", "@protobuf"],
|
||||||
|
["punctuation", "("],
|
||||||
|
"proto3",
|
||||||
|
["punctuation", ")"],
|
||||||
|
|
||||||
|
["attribute", "@jsonschema"],
|
||||||
|
["punctuation", "("],
|
||||||
|
"id",
|
||||||
|
["operator", "="],
|
||||||
|
["string-literal", [
|
||||||
|
["string", "\"https://example.org/mystruct1.json\""]
|
||||||
|
]],
|
||||||
|
["punctuation", ")"]
|
||||||
|
]
|
|
@ -0,0 +1,9 @@
|
||||||
|
true
|
||||||
|
false
|
||||||
|
|
||||||
|
----------------------------------------------------
|
||||||
|
|
||||||
|
[
|
||||||
|
["boolean", "true"],
|
||||||
|
["boolean", "false"]
|
||||||
|
]
|
|
@ -0,0 +1,74 @@
|
||||||
|
// Types
|
||||||
|
null // The null type and value
|
||||||
|
bool // All boolean values
|
||||||
|
int // All integral numbers
|
||||||
|
float // All decimal floating-point numbers
|
||||||
|
string // Any valid UTF-8 sequence
|
||||||
|
bytes // Any valid byte sequence
|
||||||
|
|
||||||
|
// Derived Value
|
||||||
|
number // int | float
|
||||||
|
uint // >=0
|
||||||
|
uint8 // >=0 & <=255
|
||||||
|
int8 // >=-128 & <=127
|
||||||
|
uint16 // >=0 & <=65536
|
||||||
|
int16 // >=-32_768 & <=32_767
|
||||||
|
rune // >=0 & <=0x10FFFF
|
||||||
|
uint32 // >=0 & <=4_294_967_296
|
||||||
|
int32 // >=-2_147_483_648 & <=2_147_483_647
|
||||||
|
uint64 // >=0 & <=18_446_744_073_709_551_615
|
||||||
|
int64 // >=-9_223_372_036_854_775_808 & <=9_223_372_036_854_775_807
|
||||||
|
uint128 // >=0 & <=340_282_366_920_938_463_463_374_607_431_768_211_455
|
||||||
|
int128 // >=-170_141_183_460_469_231_731_687_303_715_884_105_728 &
|
||||||
|
// <=170_141_183_460_469_231_731_687_303_715_884_105_727
|
||||||
|
float32 // >=-3.40282346638528859811704183484516925440e+38 &
|
||||||
|
// <=3.40282346638528859811704183484516925440e+38
|
||||||
|
float64 // >=-1.797693134862315708145274237317043567981e+308 &
|
||||||
|
// <=1.797693134862315708145274237317043567981e+308
|
||||||
|
|
||||||
|
----------------------------------------------------
|
||||||
|
|
||||||
|
[
|
||||||
|
["comment", "// Types"],
|
||||||
|
["keyword", "null"], ["comment", "// The null type and value"],
|
||||||
|
["builtin", "bool"], ["comment", "// All boolean values"],
|
||||||
|
["builtin", "int"], ["comment", "// All integral numbers"],
|
||||||
|
["builtin", "float"], ["comment", "// All decimal floating-point numbers"],
|
||||||
|
["builtin", "string"], ["comment", "// Any valid UTF-8 sequence"],
|
||||||
|
["builtin", "bytes"], ["comment", "// Any valid byte sequence"],
|
||||||
|
|
||||||
|
["comment", "// Derived Value"],
|
||||||
|
["builtin", "number"],
|
||||||
|
["comment", "// int | float"],
|
||||||
|
["builtin", "uint"],
|
||||||
|
["comment", "// >=0"],
|
||||||
|
["builtin", "uint8"],
|
||||||
|
["comment", "// >=0 & <=255"],
|
||||||
|
["builtin", "int8"],
|
||||||
|
["comment", "// >=-128 & <=127"],
|
||||||
|
["builtin", "uint16"],
|
||||||
|
["comment", "// >=0 & <=65536"],
|
||||||
|
["builtin", "int16"],
|
||||||
|
["comment", "// >=-32_768 & <=32_767"],
|
||||||
|
["builtin", "rune"],
|
||||||
|
["comment", "// >=0 & <=0x10FFFF"],
|
||||||
|
["builtin", "uint32"],
|
||||||
|
["comment", "// >=0 & <=4_294_967_296"],
|
||||||
|
["builtin", "int32"],
|
||||||
|
["comment", "// >=-2_147_483_648 & <=2_147_483_647"],
|
||||||
|
["builtin", "uint64"],
|
||||||
|
["comment", "// >=0 & <=18_446_744_073_709_551_615"],
|
||||||
|
["builtin", "int64"],
|
||||||
|
["comment", "// >=-9_223_372_036_854_775_808 & <=9_223_372_036_854_775_807"],
|
||||||
|
["builtin", "uint128"],
|
||||||
|
["comment", "// >=0 & <=340_282_366_920_938_463_463_374_607_431_768_211_455"],
|
||||||
|
["builtin", "int128"],
|
||||||
|
["comment", "// >=-170_141_183_460_469_231_731_687_303_715_884_105_728 &"],
|
||||||
|
["comment", "// <=170_141_183_460_469_231_731_687_303_715_884_105_727"],
|
||||||
|
["builtin", "float32"],
|
||||||
|
["comment", "// >=-3.40282346638528859811704183484516925440e+38 &"],
|
||||||
|
["comment", "// <=3.40282346638528859811704183484516925440e+38"],
|
||||||
|
["builtin", "float64"],
|
||||||
|
["comment", "// >=-1.797693134862315708145274237317043567981e+308 &"],
|
||||||
|
["comment", "// <=1.797693134862315708145274237317043567981e+308"]
|
||||||
|
]
|
|
@ -0,0 +1,7 @@
|
||||||
|
// comment
|
||||||
|
|
||||||
|
----------------------------------------------------
|
||||||
|
|
||||||
|
[
|
||||||
|
["comment", "// comment"]
|
||||||
|
]
|
|
@ -0,0 +1,12 @@
|
||||||
|
math.Sin(x)
|
||||||
|
|
||||||
|
----------------------------------------------------
|
||||||
|
|
||||||
|
[
|
||||||
|
"math",
|
||||||
|
["punctuation", "."],
|
||||||
|
["function", "Sin"],
|
||||||
|
["punctuation", "("],
|
||||||
|
"x",
|
||||||
|
["punctuation", ")"]
|
||||||
|
]
|
|
@ -0,0 +1,19 @@
|
||||||
|
for
|
||||||
|
if
|
||||||
|
import
|
||||||
|
in
|
||||||
|
let
|
||||||
|
null
|
||||||
|
package
|
||||||
|
|
||||||
|
----------------------------------------------------
|
||||||
|
|
||||||
|
[
|
||||||
|
["keyword", "for"],
|
||||||
|
["keyword", "if"],
|
||||||
|
["keyword", "import"],
|
||||||
|
["keyword", "in"],
|
||||||
|
["keyword", "let"],
|
||||||
|
["keyword", "null"],
|
||||||
|
["keyword", "package"]
|
||||||
|
]
|
|
@ -0,0 +1,39 @@
|
||||||
|
42
|
||||||
|
1.5G // 1_000_000_000
|
||||||
|
1.3Ki // 1.3 * 1024 = trunc(1331.2) = 1331
|
||||||
|
170_141_183_460_469_231_731_687_303_715_884_105_727
|
||||||
|
0xBad_Face
|
||||||
|
0o755
|
||||||
|
0b0101_0001
|
||||||
|
|
||||||
|
0.
|
||||||
|
72.40
|
||||||
|
072.40 // == 72.40
|
||||||
|
2.71828
|
||||||
|
1.e+0
|
||||||
|
6.67428e-11
|
||||||
|
1E6
|
||||||
|
.25
|
||||||
|
.12345E+5
|
||||||
|
|
||||||
|
----------------------------------------------------
|
||||||
|
|
||||||
|
[
|
||||||
|
["number", "42"],
|
||||||
|
["number", "1.5G"], ["comment", "// 1_000_000_000"],
|
||||||
|
["number", "1.3Ki"], ["comment", "// 1.3 * 1024 = trunc(1331.2) = 1331"],
|
||||||
|
["number", "170_141_183_460_469_231_731_687_303_715_884_105_727"],
|
||||||
|
["number", "0xBad_Face"],
|
||||||
|
["number", "0o755"],
|
||||||
|
["number", "0b0101_0001"],
|
||||||
|
|
||||||
|
["number", "0."],
|
||||||
|
["number", "72.40"],
|
||||||
|
["number", "072.40"], ["comment", "// == 72.40"],
|
||||||
|
["number", "2.71828"],
|
||||||
|
["number", "1.e+0"],
|
||||||
|
["number", "6.67428e-11"],
|
||||||
|
["number", "1E6"],
|
||||||
|
["number", ".25"],
|
||||||
|
["number", ".12345E+5"]
|
||||||
|
]
|
|
@ -0,0 +1,32 @@
|
||||||
|
+ - * /
|
||||||
|
< <= > >= == != =~ !~
|
||||||
|
|
||||||
|
&& || & |
|
||||||
|
! ? =
|
||||||
|
|
||||||
|
_|_
|
||||||
|
...
|
||||||
|
|
||||||
|
----------------------------------------------------
|
||||||
|
|
||||||
|
[
|
||||||
|
["operator", "+"],
|
||||||
|
["operator", "-"],
|
||||||
|
["operator", "*"],
|
||||||
|
["operator", "/"],
|
||||||
|
|
||||||
|
["operator", "<"],
|
||||||
|
["operator", "<="],
|
||||||
|
["operator", ">"],
|
||||||
|
["operator", ">="],
|
||||||
|
["operator", "=="],
|
||||||
|
["operator", "!="],
|
||||||
|
["operator", "=~"],
|
||||||
|
["operator", "!~"],
|
||||||
|
|
||||||
|
["operator", "&&"], ["operator", "||"], ["operator", "&"], ["operator", "|"],
|
||||||
|
["operator", "!"], ["operator", "?"], ["operator", "="],
|
||||||
|
|
||||||
|
["operator", "_|_"],
|
||||||
|
["operator", "..."]
|
||||||
|
]
|
|
@ -0,0 +1,17 @@
|
||||||
|
( ) [ ] { }
|
||||||
|
, . :
|
||||||
|
|
||||||
|
----------------------------------------------------
|
||||||
|
|
||||||
|
[
|
||||||
|
["punctuation", "("],
|
||||||
|
["punctuation", ")"],
|
||||||
|
["punctuation", "["],
|
||||||
|
["punctuation", "]"],
|
||||||
|
["punctuation", "{"],
|
||||||
|
["punctuation", "}"],
|
||||||
|
|
||||||
|
["punctuation", ","],
|
||||||
|
["punctuation", "."],
|
||||||
|
["punctuation", ":"]
|
||||||
|
]
|
|
@ -0,0 +1,190 @@
|
||||||
|
'a\000\xab'
|
||||||
|
'\007'
|
||||||
|
'\377'
|
||||||
|
'\xa' // illegal: too few hexadecimal digits
|
||||||
|
"\n"
|
||||||
|
"\""
|
||||||
|
'Hello, world!\n'
|
||||||
|
"Hello, \( name )!"
|
||||||
|
"日本語"
|
||||||
|
"\u65e5本\U00008a9e"
|
||||||
|
'\xff\u00FF'
|
||||||
|
"\uD800" // illegal: surrogate half (TODO: probably should allow)
|
||||||
|
"\U00110000" // illegal: invalid Unicode code point
|
||||||
|
|
||||||
|
#"This is not an \(interpolation)"#
|
||||||
|
#"This is an \#(interpolation)"#
|
||||||
|
#"The sequence "\U0001F604" renders as \#U0001F604."#
|
||||||
|
|
||||||
|
"日本語" // UTF-8 input text
|
||||||
|
'日本語' // UTF-8 input text as byte sequence
|
||||||
|
"\u65e5\u672c\u8a9e" // the explicit Unicode code points
|
||||||
|
"\U000065e5\U0000672c\U00008a9e" // the explicit Unicode code points
|
||||||
|
'\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e' // the explicit UTF-8 bytes
|
||||||
|
|
||||||
|
"""
|
||||||
|
lily:
|
||||||
|
out of the water
|
||||||
|
out of itself
|
||||||
|
|
||||||
|
bass
|
||||||
|
picking bugs
|
||||||
|
off the moon
|
||||||
|
— Nick Virgilio, Selected Haiku, 1988
|
||||||
|
"""
|
||||||
|
|
||||||
|
----------------------------------------------------
|
||||||
|
|
||||||
|
[
|
||||||
|
["string-literal", [
|
||||||
|
["string", "'a"],
|
||||||
|
["escape", "\\000"],
|
||||||
|
["escape", "\\xab"],
|
||||||
|
["string", "'"]
|
||||||
|
]],
|
||||||
|
|
||||||
|
["string-literal", [
|
||||||
|
["string", "'"],
|
||||||
|
["escape", "\\007"],
|
||||||
|
["string", "'"]
|
||||||
|
]],
|
||||||
|
|
||||||
|
["string-literal", [
|
||||||
|
["string", "'"],
|
||||||
|
["escape", "\\377"],
|
||||||
|
["string", "'"]
|
||||||
|
]],
|
||||||
|
|
||||||
|
["string-literal", [
|
||||||
|
["string", "'"],
|
||||||
|
["escape", "\\xa"],
|
||||||
|
["string", "'"]
|
||||||
|
]],
|
||||||
|
["comment", "// illegal: too few hexadecimal digits"],
|
||||||
|
|
||||||
|
["string-literal", [
|
||||||
|
["string", "\""],
|
||||||
|
["escape", "\\n"],
|
||||||
|
["string", "\""]
|
||||||
|
]],
|
||||||
|
|
||||||
|
["string-literal", [
|
||||||
|
["string", "\""],
|
||||||
|
["escape", "\\\""],
|
||||||
|
["string", "\""]
|
||||||
|
]],
|
||||||
|
|
||||||
|
["string-literal", [
|
||||||
|
["string", "'Hello, world!"],
|
||||||
|
["escape", "\\n"],
|
||||||
|
["string", "'"]
|
||||||
|
]],
|
||||||
|
|
||||||
|
["string-literal", [
|
||||||
|
["string", "\"Hello, "],
|
||||||
|
["interpolation", [
|
||||||
|
["punctuation", "\\("],
|
||||||
|
["expression", [" name "]],
|
||||||
|
["punctuation", ")"]
|
||||||
|
]],
|
||||||
|
["string", "!\""]
|
||||||
|
]],
|
||||||
|
|
||||||
|
["string-literal", [
|
||||||
|
["string", "\"日本語\""]
|
||||||
|
]],
|
||||||
|
|
||||||
|
["string-literal", [
|
||||||
|
["string", "\""],
|
||||||
|
["escape", "\\u65e5"],
|
||||||
|
["string", "本"],
|
||||||
|
["escape", "\\U00008a9e"],
|
||||||
|
["string", "\""]
|
||||||
|
]],
|
||||||
|
|
||||||
|
["string-literal", [
|
||||||
|
["string", "'"],
|
||||||
|
["escape", "\\xff"],
|
||||||
|
["escape", "\\u00FF"],
|
||||||
|
["string", "'"]
|
||||||
|
]],
|
||||||
|
|
||||||
|
["string-literal", [
|
||||||
|
["string", "\""],
|
||||||
|
["escape", "\\uD800"],
|
||||||
|
["string", "\""]
|
||||||
|
]],
|
||||||
|
["comment", "// illegal: surrogate half (TODO: probably should allow)"],
|
||||||
|
|
||||||
|
["string-literal", [
|
||||||
|
["string", "\""],
|
||||||
|
["escape", "\\U00110000"],
|
||||||
|
["string", "\""]
|
||||||
|
]],
|
||||||
|
["comment", "// illegal: invalid Unicode code point"],
|
||||||
|
|
||||||
|
["string-literal", [
|
||||||
|
["string", "#\"This is not an \\(interpolation)\"#"]
|
||||||
|
]],
|
||||||
|
["string-literal", [
|
||||||
|
["string", "#\"This is an "],
|
||||||
|
["interpolation", [
|
||||||
|
["punctuation", "\\#("],
|
||||||
|
["expression", ["interpolation"]],
|
||||||
|
["punctuation", ")"]
|
||||||
|
]],
|
||||||
|
["string", "\"#"]
|
||||||
|
]],
|
||||||
|
["string-literal", [
|
||||||
|
["string", "#\"The sequence \"\\U0001F604\" renders as "],
|
||||||
|
["escape", "\\#U0001F604"],
|
||||||
|
["string", ".\"#"]
|
||||||
|
]],
|
||||||
|
|
||||||
|
["string-literal", [
|
||||||
|
["string", "\"日本語\""]
|
||||||
|
]],
|
||||||
|
["comment", "// UTF-8 input text"],
|
||||||
|
|
||||||
|
["string-literal", [
|
||||||
|
["string", "'日本語'"]
|
||||||
|
]],
|
||||||
|
["comment", "// UTF-8 input text as byte sequence"],
|
||||||
|
|
||||||
|
["string-literal", [
|
||||||
|
["string", "\""],
|
||||||
|
["escape", "\\u65e5"],
|
||||||
|
["escape", "\\u672c"],
|
||||||
|
["escape", "\\u8a9e"],
|
||||||
|
["string", "\""]
|
||||||
|
]],
|
||||||
|
["comment", "// the explicit Unicode code points"],
|
||||||
|
|
||||||
|
["string-literal", [
|
||||||
|
["string", "\""],
|
||||||
|
["escape", "\\U000065e5"],
|
||||||
|
["escape", "\\U0000672c"],
|
||||||
|
["escape", "\\U00008a9e"],
|
||||||
|
["string", "\""]
|
||||||
|
]],
|
||||||
|
["comment", "// the explicit Unicode code points"],
|
||||||
|
|
||||||
|
["string-literal", [
|
||||||
|
["string", "'"],
|
||||||
|
["escape", "\\xe6"],
|
||||||
|
["escape", "\\x97"],
|
||||||
|
["escape", "\\xa5"],
|
||||||
|
["escape", "\\xe6"],
|
||||||
|
["escape", "\\x9c"],
|
||||||
|
["escape", "\\xac"],
|
||||||
|
["escape", "\\xe8"],
|
||||||
|
["escape", "\\xaa"],
|
||||||
|
["escape", "\\x9e"],
|
||||||
|
["string", "'"]
|
||||||
|
]],
|
||||||
|
["comment", "// the explicit UTF-8 bytes"],
|
||||||
|
|
||||||
|
["string-literal", [
|
||||||
|
["string", "\"\"\"\r\n lily:\r\n out of the water\r\n out of itself\r\n\r\n bass\r\n picking bugs\r\n off the moon\r\n — Nick Virgilio, Selected Haiku, 1988\r\n \"\"\""]
|
||||||
|
]]
|
||||||
|
]
|
Loading…
Reference in New Issue