1fd4e5da5Sopenharmony_ci{
2fd4e5da5Sopenharmony_ci	"scopeName": "source.spirv",
3fd4e5da5Sopenharmony_ci	"name": "SPIR-V",
4fd4e5da5Sopenharmony_ci	"comment": "Generated by {{GenerateArguments}}. Do not modify this file directly.",
5fd4e5da5Sopenharmony_ci	"patterns": [
6fd4e5da5Sopenharmony_ci{{range $o := .All.OperandKinds}}{{if len $o.Enumerants}}		{ "include": "#{{$o.Category}}_{{$o.Kind}}" },
7fd4e5da5Sopenharmony_ci{{end}}{{end}}		{ "include": "#opcode" },
8fd4e5da5Sopenharmony_ci		{ "include": "#extopcode" },
9fd4e5da5Sopenharmony_ci		{ "include": "#identifier" },
10fd4e5da5Sopenharmony_ci		{ "include": "#number" },
11fd4e5da5Sopenharmony_ci		{ "include": "#string" },
12fd4e5da5Sopenharmony_ci		{ "include": "#comment" },
13fd4e5da5Sopenharmony_ci		{ "include": "#operator" }
14fd4e5da5Sopenharmony_ci	],
15fd4e5da5Sopenharmony_ci	"repository": { {{range $o := .All.OperandKinds}}{{if len $o.Enumerants}}
16fd4e5da5Sopenharmony_ci		"{{$o.Category}}_{{$o.Kind}}": {
17fd4e5da5Sopenharmony_ci			"match": "\\b({{OperandKindsMatch $o}})\\b",
18fd4e5da5Sopenharmony_ci			"name": "keyword.spirv"
19fd4e5da5Sopenharmony_ci		},{{end}}{{end}}
20fd4e5da5Sopenharmony_ci		"opcode": {
21fd4e5da5Sopenharmony_ci			"match": "(Op[a-zA-Z]+)",
22fd4e5da5Sopenharmony_ci			"name": "entity.name.function.spirv"
23fd4e5da5Sopenharmony_ci		},
24fd4e5da5Sopenharmony_ci		"extopcode": {
25fd4e5da5Sopenharmony_ci			"match": "({{AllExtOpcodes}})",
26fd4e5da5Sopenharmony_ci			"name": "entity.name.function.ext"
27fd4e5da5Sopenharmony_ci		},
28fd4e5da5Sopenharmony_ci		"identifier": {
29fd4e5da5Sopenharmony_ci			"match": "%[a-zA-Z0-9_]+",
30fd4e5da5Sopenharmony_ci			"name": "variable.spirv"
31fd4e5da5Sopenharmony_ci		},
32fd4e5da5Sopenharmony_ci		"number": {
33fd4e5da5Sopenharmony_ci			"match": "\\b[0-9]+.?[0-9]*\\b",
34fd4e5da5Sopenharmony_ci			"name": "constant.numeric.spirv"
35fd4e5da5Sopenharmony_ci		},
36fd4e5da5Sopenharmony_ci		"comment": {
37fd4e5da5Sopenharmony_ci			"match": ";[^\n]*",
38fd4e5da5Sopenharmony_ci			"name": "comment.line.spirv"
39fd4e5da5Sopenharmony_ci		},
40fd4e5da5Sopenharmony_ci		"operator": {
41fd4e5da5Sopenharmony_ci			"match": "=",
42fd4e5da5Sopenharmony_ci			"name": "keyword.operator.spirv"
43fd4e5da5Sopenharmony_ci		},
44fd4e5da5Sopenharmony_ci		"string": {
45fd4e5da5Sopenharmony_ci			"begin": "\"",
46fd4e5da5Sopenharmony_ci			"beginCaptures": {
47fd4e5da5Sopenharmony_ci				"0": {
48fd4e5da5Sopenharmony_ci					"name": "punctuation.definition.string.begin.spirv"
49fd4e5da5Sopenharmony_ci				}
50fd4e5da5Sopenharmony_ci			},
51fd4e5da5Sopenharmony_ci			"end": "\"",
52fd4e5da5Sopenharmony_ci			"endCaptures": {
53fd4e5da5Sopenharmony_ci				"0": {
54fd4e5da5Sopenharmony_ci					"name": "punctuation.definition.string.end.spirv"
55fd4e5da5Sopenharmony_ci				}
56fd4e5da5Sopenharmony_ci			},
57fd4e5da5Sopenharmony_ci			"name": "string.quoted.double.spirv",
58fd4e5da5Sopenharmony_ci			"patterns": [ { "include": "#string_escaped_char" } ]
59fd4e5da5Sopenharmony_ci		},
60fd4e5da5Sopenharmony_ci		"string_escaped_char": {
61fd4e5da5Sopenharmony_ci			"patterns": [
62fd4e5da5Sopenharmony_ci				{
63fd4e5da5Sopenharmony_ci					"match": "\\\\([0-7]{3}|[abfnrtv\\\\'\"]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})",
64fd4e5da5Sopenharmony_ci					"name": "constant.character.escape.spirv"
65fd4e5da5Sopenharmony_ci				}, {
66fd4e5da5Sopenharmony_ci					"match": "\\\\[^0-7xuUabfnrtv\\'\"]",
67fd4e5da5Sopenharmony_ci					"name": "invalid.illegal.unknown-escape.spirv"
68fd4e5da5Sopenharmony_ci				}
69fd4e5da5Sopenharmony_ci			]
70fd4e5da5Sopenharmony_ci		}
71fd4e5da5Sopenharmony_ci	}
72fd4e5da5Sopenharmony_ci}
73